Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge pull request #2 from mquinson/master
authorfabienchaix <fabien.chaix@gmail.com>
Tue, 23 Feb 2016 10:01:36 +0000 (12:01 +0200)
committerfabienchaix <fabien.chaix@gmail.com>
Tue, 23 Feb 2016 10:01:36 +0000 (12:01 +0200)
Importing new commits from the main fork

1225 files changed:
.cproject
.editorconfig [new file with mode: 0644]
.gitignore
.travis.yml
CMakeLists.txt
ChangeLog
appveyor.yml
configure [deleted file]
contrib/deployment_generation/generate_random_deployment.pl [deleted file]
contrib/psg/Makefile [deleted file]
contrib/psg/README.txt [deleted file]
contrib/psg/configs/bittorrent.txt [deleted file]
contrib/psg/configs/bittorrentPSG.txt [deleted file]
contrib/psg/configs/chord.txt [deleted file]
contrib/psg/configs/chordPSG.txt [deleted file]
contrib/psg/configs/edaggregation.txt [deleted file]
contrib/psg/configs/edaggregationPSG.txt [deleted file]
contrib/psg/configs/symphony.txt [deleted file]
contrib/psg/configs/symphonyPSG.txt [deleted file]
contrib/psg/lib.jar [deleted file]
contrib/psg/platforms/psg.xml [deleted file]
contrib/psg/run.sh [deleted file]
contrib/psg/src/example/bittorrent/BTObserver.java [deleted file]
contrib/psg/src/example/bittorrent/BitTorrent.java [deleted file]
contrib/psg/src/example/bittorrent/BitfieldMsg.java [deleted file]
contrib/psg/src/example/bittorrent/IntMsg.java [deleted file]
contrib/psg/src/example/bittorrent/NetworkDynamics.java [deleted file]
contrib/psg/src/example/bittorrent/NetworkInitializer.java [deleted file]
contrib/psg/src/example/bittorrent/NodeInitializer.java [deleted file]
contrib/psg/src/example/bittorrent/PeerSetMsg.java [deleted file]
contrib/psg/src/example/bittorrent/SimpleEvent.java [deleted file]
contrib/psg/src/example/bittorrent/SimpleMsg.java [deleted file]
contrib/psg/src/example/chord/ChordInitializer.java [deleted file]
contrib/psg/src/example/chord/ChordMessage.java [deleted file]
contrib/psg/src/example/chord/ChordProtocol.java [deleted file]
contrib/psg/src/example/chord/CreateNw.java [deleted file]
contrib/psg/src/example/chord/FinalMessage.java [deleted file]
contrib/psg/src/example/chord/LookUpMessage.java [deleted file]
contrib/psg/src/example/chord/MessageCounterObserver.java [deleted file]
contrib/psg/src/example/chord/NodeComparator.java [deleted file]
contrib/psg/src/example/chord/Parameters.java [deleted file]
contrib/psg/src/example/chord/TrafficGenerator.java [deleted file]
contrib/psg/src/example/edaggregation/AverageED.java [deleted file]
contrib/psg/src/example/symphony/AdapterIterableNetwork.java [deleted file]
contrib/psg/src/example/symphony/AdapterSymphonyNodeComparator.java [deleted file]
contrib/psg/src/example/symphony/Handler.java [deleted file]
contrib/psg/src/example/symphony/LeaveTest.java [deleted file]
contrib/psg/src/example/symphony/Message.java [deleted file]
contrib/psg/src/example/symphony/NetworkSizeEstimatorProtocolInterface.java [deleted file]
contrib/psg/src/example/symphony/RandomRouteTest.java [deleted file]
contrib/psg/src/example/symphony/RingRouteTest.java [deleted file]
contrib/psg/src/example/symphony/RoutingException.java [deleted file]
contrib/psg/src/example/symphony/SimpleNetworkSizeEstimatorProtocol.java [deleted file]
contrib/psg/src/example/symphony/SymphonyEstimationProtocol.java [deleted file]
contrib/psg/src/example/symphony/SymphonyNetworkBuilder.java [deleted file]
contrib/psg/src/example/symphony/SymphonyNetworkChecker.java [deleted file]
contrib/psg/src/example/symphony/SymphonyNetworkManager.java [deleted file]
contrib/psg/src/example/symphony/SymphonyNodeComparator.java [deleted file]
contrib/psg/src/example/symphony/SymphonyNodeInizializer.java [deleted file]
contrib/psg/src/example/symphony/SymphonyProtocol.java [deleted file]
contrib/psg/src/example/symphony/SymphonyStatistics.java [deleted file]
contrib/psg/src/example/symphony/Tuple.java [deleted file]
contrib/psg/src/example/symphony/test/NetworkEstimationTest.java [deleted file]
contrib/psg/src/peersim/Simulator.java [deleted file]
contrib/psg/src/peersim/cdsim/CDProtocol.java [deleted file]
contrib/psg/src/peersim/cdsim/CDSimulator.java [deleted file]
contrib/psg/src/peersim/cdsim/CDState.java [deleted file]
contrib/psg/src/peersim/cdsim/DaemonProtocol.java [deleted file]
contrib/psg/src/peersim/cdsim/FullNextCycle.java [deleted file]
contrib/psg/src/peersim/cdsim/NextCycle.java [deleted file]
contrib/psg/src/peersim/cdsim/Shuffle.java [deleted file]
contrib/psg/src/peersim/config/CheckConfig.java [deleted file]
contrib/psg/src/peersim/config/ClassFinder.java [deleted file]
contrib/psg/src/peersim/config/ConfigContainer.java [deleted file]
contrib/psg/src/peersim/config/ConfigProperties.java [deleted file]
contrib/psg/src/peersim/config/Configuration.java [deleted file]
contrib/psg/src/peersim/config/FastConfig.java [deleted file]
contrib/psg/src/peersim/config/IllegalParameterException.java [deleted file]
contrib/psg/src/peersim/config/MissingParameterException.java [deleted file]
contrib/psg/src/peersim/config/NullPrintStream.java [deleted file]
contrib/psg/src/peersim/config/Operators.java [deleted file]
contrib/psg/src/peersim/config/ParsedProperties.java [deleted file]
contrib/psg/src/peersim/core/Cleanable.java [deleted file]
contrib/psg/src/peersim/core/CommonState.java [deleted file]
contrib/psg/src/peersim/core/Control.java [deleted file]
contrib/psg/src/peersim/core/Fallible.java [deleted file]
contrib/psg/src/peersim/core/GeneralNode.java [deleted file]
contrib/psg/src/peersim/core/IdleProtocol.java [deleted file]
contrib/psg/src/peersim/core/Linkable.java [deleted file]
contrib/psg/src/peersim/core/MaliciousProtocol.java [deleted file]
contrib/psg/src/peersim/core/ModifiableNode.java [deleted file]
contrib/psg/src/peersim/core/Network.java [deleted file]
contrib/psg/src/peersim/core/Node.java [deleted file]
contrib/psg/src/peersim/core/OracleIdleProtocol.java [deleted file]
contrib/psg/src/peersim/core/OverlayGraph.java [deleted file]
contrib/psg/src/peersim/core/Protocol.java [deleted file]
contrib/psg/src/peersim/core/Scheduler.java [deleted file]
contrib/psg/src/peersim/dynamics/DynamicNetwork.java [deleted file]
contrib/psg/src/peersim/dynamics/MethodInvoker.java [deleted file]
contrib/psg/src/peersim/dynamics/NodeInitializer.java [deleted file]
contrib/psg/src/peersim/dynamics/OscillatingNetwork.java [deleted file]
contrib/psg/src/peersim/dynamics/RandNI.java [deleted file]
contrib/psg/src/peersim/dynamics/StarNI.java [deleted file]
contrib/psg/src/peersim/dynamics/WireByMethod.java [deleted file]
contrib/psg/src/peersim/dynamics/WireFromFile.java [deleted file]
contrib/psg/src/peersim/dynamics/WireGraph.java [deleted file]
contrib/psg/src/peersim/dynamics/WireKOut.java [deleted file]
contrib/psg/src/peersim/dynamics/WireRegRootedTree.java [deleted file]
contrib/psg/src/peersim/dynamics/WireRingLattice.java [deleted file]
contrib/psg/src/peersim/dynamics/WireScaleFreeBA.java [deleted file]
contrib/psg/src/peersim/dynamics/WireScaleFreeDM.java [deleted file]
contrib/psg/src/peersim/dynamics/WireStar.java [deleted file]
contrib/psg/src/peersim/dynamics/WireWS.java [deleted file]
contrib/psg/src/peersim/edsim/CDScheduler.java [deleted file]
contrib/psg/src/peersim/edsim/ControlEvent.java [deleted file]
contrib/psg/src/peersim/edsim/EDProtocol.java [deleted file]
contrib/psg/src/peersim/edsim/EDSimulator.java [deleted file]
contrib/psg/src/peersim/edsim/Heap.java [deleted file]
contrib/psg/src/peersim/edsim/NextCycleEvent.java [deleted file]
contrib/psg/src/peersim/edsim/PriorityQ.java [deleted file]
contrib/psg/src/peersim/edsim/RandNextCycle.java [deleted file]
contrib/psg/src/peersim/edsim/RegRandNextCycle.java [deleted file]
contrib/psg/src/peersim/edsim/edsim_jsp.xmi [deleted file]
contrib/psg/src/peersim/edsim/edsim_kdm.xmi [deleted file]
contrib/psg/src/peersim/graph/BitMatrixGraph.java [deleted file]
contrib/psg/src/peersim/graph/ConstUndirGraph.java [deleted file]
contrib/psg/src/peersim/graph/FastUndirGraph.java [deleted file]
contrib/psg/src/peersim/graph/Graph.java [deleted file]
contrib/psg/src/peersim/graph/GraphAlgorithms.java [deleted file]
contrib/psg/src/peersim/graph/GraphFactory.java [deleted file]
contrib/psg/src/peersim/graph/GraphIO.java [deleted file]
contrib/psg/src/peersim/graph/NeighbourListGraph.java [deleted file]
contrib/psg/src/peersim/graph/PrefixSubGraph.java [deleted file]
contrib/psg/src/peersim/graph/SubGraphEdges.java [deleted file]
contrib/psg/src/peersim/graph/UndirectedGraph.java [deleted file]
contrib/psg/src/peersim/rangesim/ProcessHandler.java [deleted file]
contrib/psg/src/peersim/rangesim/ProcessManager.java [deleted file]
contrib/psg/src/peersim/rangesim/RangeSimulator.java [deleted file]
contrib/psg/src/peersim/rangesim/TaggedOutputStream.java [deleted file]
contrib/psg/src/peersim/reports/BallExpansion.java [deleted file]
contrib/psg/src/peersim/reports/Clustering.java [deleted file]
contrib/psg/src/peersim/reports/ConnectivityObserver.java [deleted file]
contrib/psg/src/peersim/reports/DegreeStats.java [deleted file]
contrib/psg/src/peersim/reports/GraphObserver.java [deleted file]
contrib/psg/src/peersim/reports/GraphPrinter.java [deleted file]
contrib/psg/src/peersim/reports/GraphStats.java [deleted file]
contrib/psg/src/peersim/reports/MemoryObserver.java [deleted file]
contrib/psg/src/peersim/reports/RandRemoval.java [deleted file]
contrib/psg/src/peersim/transport/E2ENetwork.java [deleted file]
contrib/psg/src/peersim/transport/E2ETransport.java [deleted file]
contrib/psg/src/peersim/transport/KingParser.java [deleted file]
contrib/psg/src/peersim/transport/RouterInfo.java [deleted file]
contrib/psg/src/peersim/transport/Transport.java [deleted file]
contrib/psg/src/peersim/transport/TriangularMatrixParser.java [deleted file]
contrib/psg/src/peersim/transport/UniformRandomTransport.java [deleted file]
contrib/psg/src/peersim/transport/UniformRouterAssignment.java [deleted file]
contrib/psg/src/peersim/transport/UnreliableTransport.java [deleted file]
contrib/psg/src/peersim/util/ExtendedRandom.java [deleted file]
contrib/psg/src/peersim/util/FileNameGenerator.java [deleted file]
contrib/psg/src/peersim/util/IncrementalFreq.java [deleted file]
contrib/psg/src/peersim/util/IncrementalStats.java [deleted file]
contrib/psg/src/peersim/util/IndexIterator.java [deleted file]
contrib/psg/src/peersim/util/LinearIterator.java [deleted file]
contrib/psg/src/peersim/util/MedianStats.java [deleted file]
contrib/psg/src/peersim/util/MomentStats.java [deleted file]
contrib/psg/src/peersim/util/RandPermutation.java [deleted file]
contrib/psg/src/peersim/util/StringListParser.java [deleted file]
contrib/psg/src/peersim/util/WeightedRandPerm.java [deleted file]
contrib/psg/src/peersim/vector/Getter.java [deleted file]
contrib/psg/src/peersim/vector/GetterSetterFinder.java [deleted file]
contrib/psg/src/peersim/vector/InitVectFromFile.java [deleted file]
contrib/psg/src/peersim/vector/LinearDistribution.java [deleted file]
contrib/psg/src/peersim/vector/Normalizer.java [deleted file]
contrib/psg/src/peersim/vector/PeakDistribution.java [deleted file]
contrib/psg/src/peersim/vector/Setter.java [deleted file]
contrib/psg/src/peersim/vector/SingleValue.java [deleted file]
contrib/psg/src/peersim/vector/SingleValueComparator.java [deleted file]
contrib/psg/src/peersim/vector/SingleValueHolder.java [deleted file]
contrib/psg/src/peersim/vector/SingleValueObserver.java [deleted file]
contrib/psg/src/peersim/vector/TestVectors.java [deleted file]
contrib/psg/src/peersim/vector/UniformDistribution.java [deleted file]
contrib/psg/src/peersim/vector/ValueDumper.java [deleted file]
contrib/psg/src/peersim/vector/VectAngle.java [deleted file]
contrib/psg/src/peersim/vector/VectControl.java [deleted file]
contrib/psg/src/peersim/vector/VectCopy.java [deleted file]
contrib/psg/src/peersim/vector/VectorComparator.java [deleted file]
contrib/psg/src/peersim/vector/VectorObserver.java [deleted file]
contrib/psg/src/psgsim/NodeHost.java [deleted file]
contrib/psg/src/psgsim/PSGDynamicNetwork.java [deleted file]
contrib/psg/src/psgsim/PSGPlatform.java [deleted file]
contrib/psg/src/psgsim/PSGProcessController.java [deleted file]
contrib/psg/src/psgsim/PSGProcessCycle.java [deleted file]
contrib/psg/src/psgsim/PSGProcessEvent.java [deleted file]
contrib/psg/src/psgsim/PSGProcessLauncher.java [deleted file]
contrib/psg/src/psgsim/PSGSimulator.java [deleted file]
contrib/psg/src/psgsim/PSGTask.java [deleted file]
contrib/psg/src/psgsim/PSGTransport.java [deleted file]
contrib/psg/src/psgsim/Sizable.java [deleted file]
contrib/psg/test.sh [deleted file]
contrib/psg/tutorial.odt [deleted file]
contrib/psg/tutorial.pdf [deleted file]
doc/Doxyfile.in
doc/HelloWorld/CMakeLists.txt [deleted file]
doc/HelloWorld/HelloWorld.c [deleted file]
doc/HelloWorld/README [deleted file]
doc/Layout.xml
doc/doxygen/contributing.doc
doc/doxygen/deployment.doc
doc/doxygen/getting_started.doc
doc/doxygen/index.doc
doc/doxygen/inside_tests.doc
doc/doxygen/install.doc
doc/doxygen/options.doc
doc/doxygen/platform.doc
doc/doxygen/tracing.doc
doc/msg-tuto-src/deployment0.xml
doc/msg-tuto-src/deployment1.xml
doc/msg-tuto-src/deployment2.xml
doc/msg-tuto-src/deployment3.xml
doc/msg-tuto-src/deployment_general.xml
doc/msg-tuto-src/masterworker1.c
doc/msg-tuto-src/masterworker2.c
doc/msg-tuto-src/masterworker3.c
doc/msg-tuto-src/masterworker4.c
doc/simgrid.css [deleted file]
examples/java/CMakeLists.txt
examples/java/async/AsyncTest.java
examples/java/async/CMakeLists.txt
examples/java/async/FinalizeTask.java
examples/java/async/Forwarder.java
examples/java/async/Master.java
examples/java/async/Slave.java
examples/java/async/asyncDeployment.xml
examples/java/bittorrent/Bittorrent.java
examples/java/bittorrent/CMakeLists.txt
examples/java/bittorrent/Common.java
examples/java/bittorrent/Connection.java
examples/java/bittorrent/MessageTask.java
examples/java/bittorrent/Peer.java
examples/java/bittorrent/Tracker.java
examples/java/bittorrent/TrackerTask.java
examples/java/bittorrent/bittorrent.xml
examples/java/bittorrent/generate.py
examples/java/chord/CMakeLists.txt
examples/java/chord/Chord.java
examples/java/chord/ChordTask.java
examples/java/chord/Common.java
examples/java/chord/FindSuccessorAnswerTask.java
examples/java/chord/FindSuccessorTask.java
examples/java/chord/GetPredecessorAnswerTask.java
examples/java/chord/GetPredecessorTask.java
examples/java/chord/Node.java
examples/java/chord/NotifyTask.java
examples/java/chord/chord.xml
examples/java/cloud/CMakeLists.txt
examples/java/cloud/Cloud.java
examples/java/cloud/FinalizeTask.java
examples/java/cloud/Master.java
examples/java/cloud/Slave.java
examples/java/cloud/energy/CMakeLists.txt
examples/java/cloud/energy/EnergyVMRunner.java
examples/java/cloud/energy/Main.java
examples/java/cloud/migration/CMakeLists.txt
examples/java/cloud/migration/Main.java
examples/java/cloud/migration/Test.java
examples/java/cloud/migration/TestHostOnOff.java
examples/java/cloud/migration/XVM.java
examples/java/cloud/migration/deploy_simple.xml
examples/java/cloud/migration/migration.tesh
examples/java/commTime/CMakeLists.txt
examples/java/commTime/CommTimeTest.java
examples/java/commTime/FinalizeTask.java
examples/java/commTime/Master.java
examples/java/commTime/README [deleted file]
examples/java/commTime/Slave.java
examples/java/commTime/commTimeDeployment.xml
examples/java/energy/CMakeLists.txt
examples/java/energy/Energy.java
examples/java/energy/EnergyConsumer.java
examples/java/io/CMakeLists.txt
examples/java/io/Client.java
examples/java/io/IO.java
examples/java/io/Node.java
examples/java/io/Storage.java
examples/java/io/storage.tesh [new file with mode: 0644]
examples/java/kademlia/Answer.java
examples/java/kademlia/Bucket.java
examples/java/kademlia/CMakeLists.txt
examples/java/kademlia/Common.java
examples/java/kademlia/Contact.java
examples/java/kademlia/FindNodeAnswerTask.java
examples/java/kademlia/FindNodeTask.java
examples/java/kademlia/Kademlia.java
examples/java/kademlia/KademliaTask.java
examples/java/kademlia/Node.java
examples/java/kademlia/PingAnswerTask.java
examples/java/kademlia/PingTask.java
examples/java/kademlia/RoutingTable.java
examples/java/kademlia/kademlia.xml
examples/java/master_slave_bypass/CMakeLists.txt
examples/java/master_slave_bypass/MsBypass.java
examples/java/master_slave_kill/CMakeLists.txt
examples/java/masterslave/CMakeLists.txt
examples/java/masterslave/deploy.xml
examples/java/masterslave/masterslaveDeployment.xml
examples/java/migration/CMakeLists.txt
examples/java/migration/Emigrant.java
examples/java/migration/Migration.java
examples/java/migration/Policeman.java
examples/java/migration/migrationDeployment.xml
examples/java/mutualExclusion/CMakeLists.txt
examples/java/mutualExclusion/Coordinator.java
examples/java/mutualExclusion/GrantTask.java
examples/java/mutualExclusion/MutexCentral.java
examples/java/mutualExclusion/Node.java
examples/java/mutualExclusion/ReleaseTask.java
examples/java/mutualExclusion/RequestTask.java
examples/java/mutualExclusion/mutex_centralized_deployment.xml
examples/java/pingPong/CMakeLists.txt
examples/java/pingPong/PingPongTask.java
examples/java/pingPong/PingPongTest.java
examples/java/pingPong/README [deleted file]
examples/java/pingPong/Receiver.java
examples/java/pingPong/Sender.java
examples/java/pingPong/pingPongDeployment.xml
examples/java/priority/CMakeLists.txt
examples/java/priority/Priority.java
examples/java/priority/Test.java
examples/java/priority/priorityDeployment.xml
examples/java/startKillTime/CMakeLists.txt
examples/java/startKillTime/Master.java
examples/java/startKillTime/Slave.java
examples/java/startKillTime/StartKillTime.java
examples/java/startKillTime/deployment.xml [deleted file]
examples/java/startKillTime/deployment_kill.xml [deleted file]
examples/java/startKillTime/deployment_start.xml [deleted file]
examples/java/startKillTime/deployment_start_kill.xml
examples/java/suspend/CMakeLists.txt
examples/java/suspend/DreamMaster.java
examples/java/suspend/LazyGuy.java
examples/java/suspend/Suspend.java
examples/java/suspend/suspendDeployment.xml
examples/java/tracing/CMakeLists.txt
examples/java/tracing/PingPongTask.java
examples/java/tracing/README [deleted file]
examples/java/tracing/Receiver.java
examples/java/tracing/Sender.java
examples/java/tracing/TracingTest.java
examples/java/tracing/tracingPingPongDeployment.xml
examples/msg/CMakeLists.txt
examples/msg/actions/CMakeLists.txt
examples/msg/actions/NAS_LU_S_4/deploy_MPI_4.xml [deleted file]
examples/msg/actions/NAS_LU_S_4/instr_actions.tesh [deleted file]
examples/msg/actions/NAS_LU_S_4/simgrid0.txt [deleted file]
examples/msg/actions/NAS_LU_S_4/simgrid1.txt [deleted file]
examples/msg/actions/NAS_LU_S_4/simgrid2.txt [deleted file]
examples/msg/actions/NAS_LU_S_4/simgrid3.txt [deleted file]
examples/msg/actions/actions.c
examples/msg/actions/deployment.xml
examples/msg/actions/deployment_split.xml
examples/msg/actions/storage_actions.c
examples/msg/actions/storage_deployment.xml
examples/msg/bittorrent/CMakeLists.txt
examples/msg/bittorrent/bittorrent.c
examples/msg/bittorrent/bittorrent.h
examples/msg/bittorrent/bittorrent.tesh
examples/msg/bittorrent/bittorrent.xml
examples/msg/bittorrent/bittorrent_platfgen.c [deleted file]
examples/msg/bittorrent/connection.h
examples/msg/bittorrent/generate.py
examples/msg/bittorrent/messages.c
examples/msg/bittorrent/messages.h
examples/msg/bittorrent/peer.c
examples/msg/bittorrent/peer.h
examples/msg/bittorrent/tracker.c
examples/msg/chainsend/CMakeLists.txt
examples/msg/chainsend/broadcaster.c
examples/msg/chainsend/deployment_tesh.xml
examples/msg/chainsend/generate_deployment_file.rb [deleted file]
examples/msg/chord/CMakeLists.txt
examples/msg/chord/chord.c
examples/msg/chord/chord.xml
examples/msg/chord/chord10.xml
examples/msg/chord/generate.py
examples/msg/cloud/CMakeLists.txt
examples/msg/cloud/bound.c
examples/msg/cloud/migrate_vm.c
examples/msg/cloud/multicore.c
examples/msg/cloud/multicore_plat.xml
examples/msg/cloud/scale.c
examples/msg/cloud/two_tasks_vm.c
examples/msg/energy/consumption/CMakeLists.txt
examples/msg/energy/consumption/deployment_consumption.xml
examples/msg/energy/consumption/energy_consumption.c
examples/msg/energy/onoff/CMakeLists.txt
examples/msg/energy/onoff/deployment_onoff.xml
examples/msg/energy/onoff/onoff.c
examples/msg/energy/onoff/platform_onoff.xml
examples/msg/energy/pstate/CMakeLists.txt
examples/msg/energy/pstate/deployment_pstate.xml
examples/msg/energy/pstate/pstate.c
examples/msg/energy/vm/CMakeLists.txt
examples/msg/energy/vm/deployment_consumption.xml
examples/msg/energy/vm/energy_vm.c
examples/msg/exception/CMakeLists.txt
examples/msg/exception/deployment_exception.xml
examples/msg/exception/exception.c
examples/msg/gpu/CMakeLists.txt
examples/msg/gtnets/CMakeLists.txt
examples/msg/gtnets/crosstraffic-d.xml
examples/msg/gtnets/dogbone-d.xml
examples/msg/gtnets/dogbone-p.xml
examples/msg/gtnets/gtnets.c
examples/msg/gtnets/onelink-d.xml
examples/msg/gtnets/onelink-p.xml
examples/msg/icomms/CMakeLists.txt
examples/msg/icomms/deployment_peer.xml
examples/msg/icomms/deployment_peer01.xml
examples/msg/icomms/deployment_peer02.xml
examples/msg/icomms/deployment_peer03.xml
examples/msg/icomms/deployment_peer04.xml
examples/msg/icomms/deployment_peer05.xml
examples/msg/icomms/peer.c
examples/msg/icomms/peer2.c
examples/msg/icomms/peer3.c
examples/msg/io/CMakeLists.txt
examples/msg/io/remote.c
examples/msg/io/remote.tesh
examples/msg/io/remote_io.deployment.xml [moved from examples/platforms/storage/remote_io.deployment.xml with 95% similarity]
examples/msg/kademlia/CMakeLists.txt
examples/msg/kademlia/answer.c
examples/msg/kademlia/answer.h
examples/msg/kademlia/generate.py
examples/msg/kademlia/kademlia.c
examples/msg/kademlia/kademlia.h
examples/msg/kademlia/kademlia.tesh
examples/msg/kademlia/kademlia.xml
examples/msg/kademlia/node.c
examples/msg/kademlia/node.h
examples/msg/kademlia/routing_table.c
examples/msg/kademlia/routing_table.h
examples/msg/kademlia/task.c
examples/msg/kademlia/task.h
examples/msg/masterslave/CMakeLists.txt
examples/msg/masterslave/deployment_masterslave.xml
examples/msg/masterslave/deployment_masterslave_forwarder.xml
examples/msg/masterslave/deployment_masterslave_kill.xml
examples/msg/masterslave/deployment_masterslave_mailbox.xml
examples/msg/masterslave/deployment_masterslave_mailbox_multicore.xml
examples/msg/masterslave/deployment_masterslave_vivaldi.xml
examples/msg/masterslave/masterslave_arg.c
examples/msg/masterslave/masterslave_bypass.c [deleted file]
examples/msg/masterslave/masterslave_bypass.tesh [deleted file]
examples/msg/masterslave/masterslave_cluster.c [deleted file]
examples/msg/masterslave/masterslave_cpu_ti_crosstraffic.tesh
examples/msg/masterslave/masterslave_failure.c
examples/msg/masterslave/masterslave_forwarder.c
examples/msg/masterslave/masterslave_kill.c
examples/msg/masterslave/masterslave_mailbox.c
examples/msg/mc/CMakeLists.txt
examples/msg/mc/bugged1.c
examples/msg/mc/bugged2.c
examples/msg/mc/bugged2.tesh
examples/msg/mc/bugged3.c
examples/msg/mc/deploy_bugged1.xml
examples/msg/mc/deploy_bugged1_liveness.xml
examples/msg/mc/deploy_bugged1_liveness_visited.xml
examples/msg/mc/deploy_bugged2.xml
examples/msg/mc/deploy_bugged2_liveness.xml
examples/msg/mc/deploy_bugged3.xml
examples/msg/mc/deploy_electric_fence.xml
examples/msg/mc/deploy_mutex.xml
examples/msg/mc/platform.xml
examples/msg/migration/CMakeLists.txt
examples/msg/migration/migration.c
examples/msg/migration/migration.deploy
examples/msg/ns3/3hosts_2links_d.xml
examples/msg/ns3/3links-d-timer.xml
examples/msg/ns3/3links-d.xml
examples/msg/ns3/CMakeLists.txt
examples/msg/ns3/One_cluster-d.xml
examples/msg/ns3/Two_clusters-d.xml
examples/msg/ns3/dogbone-d.xml
examples/msg/ns3/ns3.c
examples/msg/ns3/ns3.tesh
examples/msg/parallel_task/CMakeLists.txt
examples/msg/parallel_task/parallel_task.c
examples/msg/parallel_task/parallel_task.tesh
examples/msg/parallel_task/test_ptask.c [deleted file]
examples/msg/parallel_task/test_ptask_deployment.xml [deleted file]
examples/msg/pastry/CMakeLists.txt
examples/msg/pastry/pastry.c
examples/msg/pastry/pastry10.xml
examples/msg/pmm/CMakeLists.txt
examples/msg/pmm/msg_pmm.c
examples/msg/pmm/pmm_9_deploy.xml
examples/msg/priority/CMakeLists.txt
examples/msg/priority/deployment_priority.xml
examples/msg/priority/priority.c
examples/msg/properties/CMakeLists.txt
examples/msg/properties/deployment_properties.xml
examples/msg/properties/msg_prop.c
examples/msg/semaphores/CMakeLists.txt
examples/msg/semaphores/synchro.c
examples/msg/semaphores/synchro.tesh [new file with mode: 0644]
examples/msg/sendrecv/CMakeLists.txt
examples/msg/sendrecv/deployment_sendrecv.xml
examples/msg/sendrecv/deployment_sendrecv_main.xml [new file with mode: 0644]
examples/msg/sendrecv/sendrecv.c
examples/msg/sendrecv/sendrecv_CLM03_main.tesh [new file with mode: 0644]
examples/msg/sendrecv/sendrecv_main.c [new file with mode: 0644]
examples/msg/start_kill_time/CMakeLists.txt
examples/msg/start_kill_time/deployment.xml
examples/msg/start_kill_time/deployment_kill.xml
examples/msg/start_kill_time/deployment_start.xml
examples/msg/start_kill_time/deployment_start_kill.xml
examples/msg/start_kill_time/sk_time.c
examples/msg/suspend/CMakeLists.txt
examples/msg/suspend/deployment_suspend.xml
examples/msg/suspend/suspend.c
examples/msg/token_ring/CMakeLists.txt
examples/msg/token_ring/ring_call.c
examples/msg/token_ring/token_bypass.c [deleted file]
examples/msg/tracing/CMakeLists.txt
examples/msg/tracing/categories.c
examples/msg/tracing/deployment.xml
examples/msg/tracing/ms.c
examples/msg/tracing/procmig-deploy.xml
examples/platforms/2clusters.xml [moved from examples/simdag/2clusters.xml with 94% similarity]
examples/platforms/bypassASroute.xml
examples/platforms/bypassRoute.xml
examples/platforms/cloud.xml
examples/platforms/cluster.xml
examples/platforms/cluster_and_one_host.xml
examples/platforms/cluster_no_backbone.xml
examples/platforms/clusters_routing_full.xml
examples/platforms/conf/gridpp_grid_2004.xml [deleted file]
examples/platforms/conf/lcg_sept2004_grid.xml [deleted file]
examples/platforms/conf/transform_optorsim_platform.pl
examples/platforms/config.xml
examples/platforms/config_tracing.xml
examples/platforms/crosstraffic.xml
examples/platforms/data_center.xml
examples/platforms/energy_platform.xml
examples/platforms/fat_tree_cluster.xml
examples/platforms/faulty_host.xml [new file with mode: 0644]
examples/platforms/g5k.xml
examples/platforms/generation_scripts/create_hierarchical_clusters.pl [deleted file]
examples/platforms/generation_scripts/enhancedDTDwithHierarchicalCluster.pl [deleted file]
examples/platforms/generation_scripts/generate_g5k_platform.pl [deleted file]
examples/platforms/generation_scripts/generate_g5k_platform_cabinets.pl [deleted file]
examples/platforms/griffon.xml
examples/platforms/meta_cluster.xml
examples/platforms/multicore_machine.xml
examples/platforms/platform.lua [deleted file]
examples/platforms/platform.xml
examples/platforms/prop.xml
examples/platforms/routing_cluster.xml
examples/platforms/routing_none.xml
examples/platforms/simulacrum_7_hosts.xml
examples/platforms/small_platform.xml
examples/platforms/small_platform_fatpipe.xml
examples/platforms/small_platform_one_link_routes.xml
examples/platforms/small_platform_with_failures.xml
examples/platforms/small_platform_with_routers.xml
examples/platforms/storage/remote_io.xml
examples/platforms/storage/storage.xml
examples/platforms/syscoord/median_harvard.xml
examples/platforms/syscoord/median_meridian.xml
examples/platforms/syscoord/median_p2psim.xml
examples/platforms/torus_cluster.xml
examples/platforms/trace/faulty_host.trace [moved from examples/simdag/faulty_host.trace with 100% similarity]
examples/platforms/trace/jupiter_speed.trace [moved from examples/simdag/jupiter_power.trace with 100% similarity]
examples/platforms/trace/link1_avail.trace [moved from examples/simdag/link1_avail.trace with 100% similarity]
examples/platforms/two_hosts.xml [new file with mode: 0644]
examples/platforms/two_hosts_platform.xml
examples/platforms/two_hosts_platform_shared.xml
examples/platforms/two_hosts_platform_with_availability.xml
examples/platforms/two_hosts_platform_with_availability_included.xml
examples/platforms/two_peers.xml
examples/platforms/vivaldi.xml
examples/s4u/CMakeLists.txt
examples/s4u/basic/CMakeLists.txt
examples/s4u/basic/s4u_basic.cpp
examples/s4u/io/CMakeLists.txt
examples/s4u/io/s4u_io_test.cpp
examples/scala/CMakeLists.txt [deleted file]
examples/scala/master_slave_bypass/CMakeLists.txt [deleted file]
examples/scala/master_slave_bypass/FinalizeTask.scala [deleted file]
examples/scala/master_slave_bypass/Master.scala [deleted file]
examples/scala/master_slave_bypass/MsBypass.scala [deleted file]
examples/scala/master_slave_bypass/Slave.scala [deleted file]
examples/scala/master_slave_bypass/bypass.tesh [deleted file]
examples/scala/master_slave_kill/FinalizeTask.scala [deleted file]
examples/scala/master_slave_kill/Master.scala [deleted file]
examples/scala/master_slave_kill/MsKill.scala [deleted file]
examples/scala/master_slave_kill/Slave.scala [deleted file]
examples/scala/master_slave_kill/kill.tesh [deleted file]
examples/scala/masterslave/CMakeLists.txt [deleted file]
examples/scala/masterslave/FinalizeTask.scala [deleted file]
examples/scala/masterslave/Forwarder.scala [deleted file]
examples/scala/masterslave/Master.scala [deleted file]
examples/scala/masterslave/Masterslave.scala [deleted file]
examples/scala/masterslave/README [deleted file]
examples/scala/masterslave/Slave.scala [deleted file]
examples/scala/masterslave/masterslave.tesh [deleted file]
examples/scala/masterslave/masterslaveDeployment.xml [deleted file]
examples/simdag/CMakeLists.txt
examples/simdag/dax/CMakeLists.txt
examples/simdag/dax/Montage_50.xml [deleted file]
examples/simdag/dax/dax_test.c
examples/simdag/dax/generate_forkjoin.pl [deleted file]
examples/simdag/dax/generate_strassen.pl [deleted file]
examples/simdag/dax/simple_dax_with_cycle.tesh
examples/simdag/dax/smalldax.tesh
examples/simdag/dot/CMakeLists.txt
examples/simdag/dot/dot_test.c
examples/simdag/dot/dot_test2.c
examples/simdag/dot/ptg_test.c
examples/simdag/dot/simulate_dot.c
examples/simdag/dot/test_simdag_dotload.tesh
examples/simdag/faulty_host.xml [deleted file]
examples/simdag/goal/CMakeLists.txt
examples/simdag/io/CMakeLists.txt
examples/simdag/io/sd_io.c
examples/simdag/metaxml/CMakeLists.txt [deleted file]
examples/simdag/metaxml/metaxml_test.tesh [deleted file]
examples/simdag/metaxml/metaxml_test2.tesh [deleted file]
examples/simdag/metaxml/sd_meta.c [deleted file]
examples/simdag/properties/CMakeLists.txt
examples/simdag/properties/sd_prop.c
examples/simdag/scheduling/CMakeLists.txt
examples/simdag/scheduling/minmin_test.c
examples/simdag/sd_avail.c
examples/simdag/sd_comm_throttling.c
examples/simdag/sd_fail.c
examples/simdag/sd_test.c
examples/simdag/sd_test2.c
examples/simdag/sd_typed_tasks_test.c
examples/simdag/test_simdag.in [deleted file]
examples/simdag/test_simdag2.tesh
examples/simdag/test_simdag_avail.tesh
examples/simdag/test_simdag_comm_throttling.tesh
examples/simdag/test_simdag_fail.tesh
examples/simdag/test_simdag_typed_tasks.tesh
examples/simdag/two_hosts.xml [deleted file]
examples/smpi/CMakeLists.txt
examples/smpi/MM/CMakeLists.txt
examples/smpi/MM/MM_mpi.c
examples/smpi/NAS/DT/Makefile
examples/smpi/NAS/EP/Makefile
examples/smpi/NAS/EP/README [deleted file]
examples/smpi/NAS/EP/ep-sampling.c
examples/smpi/NAS/EP/ep.c
examples/smpi/NAS/EP/mpinpb.h [deleted file]
examples/smpi/NAS/EP/randlc.c [deleted file]
examples/smpi/NAS/EP/randlc.h [deleted file]
examples/smpi/NAS/IS/Makefile
examples/smpi/NAS/Makefile
examples/smpi/NAS/README [deleted file]
examples/smpi/NAS/README.install
examples/smpi/NAS/common/c_print_results.c
examples/smpi/NAS/common/c_timers.c
examples/smpi/NAS/common/randdp.c
examples/smpi/NAS/config/NAS.samples/suite.def.ep [deleted file]
examples/smpi/NAS/config/NAS.samples/suite.def.is [deleted file]
examples/smpi/NAS/config/make.def
examples/smpi/NAS/config/make.def.template [deleted file]
examples/smpi/NAS/config/suite.def.template [deleted file]
examples/smpi/NAS/sys/Makefile
examples/smpi/NAS/sys/README
examples/smpi/NAS/sys/make.common
examples/smpi/NAS/sys/print_header [deleted file]
examples/smpi/NAS/sys/print_instructions
examples/smpi/NAS/sys/setparams.c
examples/smpi/NAS/sys/suite.awk [deleted file]
examples/smpi/energy/CMakeLists.txt
examples/smpi/energy/f77/CMakeLists.txt
examples/smpi/energy/f90/CMakeLists.txt
examples/smpi/mc/bugged1_liveness.c
examples/smpi/mc/non_deterministic.tesh
examples/smpi/mc/non_termination4.c
examples/smpi/mc/only_send_deterministic.c
examples/smpi/mc/only_send_deterministic.tesh
examples/smpi/mvmul.c
examples/smpi/replay_multiple/CMakeLists.txt
examples/smpi/replay_multiple/generate_multiple_deployment.sh
examples/smpi/replay_multiple/replay_multiple.c
examples/smpi/smpi_msg_masterslave/CMakeLists.txt
examples/smpi/smpi_msg_masterslave/deployment_masterslave_mailbox_smpi.xml
examples/smpi/smpi_msg_masterslave/masterslave_mailbox_smpi.c
examples/xbt/CMakeLists.txt [deleted file]
examples/xbt/sem_basic.c [deleted file]
examples/xbt/sem_sched.c [deleted file]
include/simgrid/forward.h
include/simgrid/host.h
include/simgrid/jedule/jedule_events.h
include/simgrid/jedule/jedule_output.h
include/simgrid/jedule/jedule_platform.h
include/simgrid/msg.h
include/simgrid/platf.h [deleted file]
include/simgrid/platf_generator.h [deleted file]
include/simgrid/s4u/actor.hpp
include/simgrid/s4u/async.hpp
include/simgrid/s4u/comm.hpp
include/simgrid/s4u/engine.hpp
include/simgrid/s4u/file.hpp
include/simgrid/s4u/host.hpp
include/simgrid/s4u/mailbox.hpp
include/simgrid/s4u/storage.hpp
include/simgrid/simdag.h
include/simgrid/simix.h
include/simgrid/simix.hpp
include/simgrid_config.h.in
include/smpi/smpi.h
include/smpi/smpi_cocci.h [deleted file]
include/surf/surf_routing.h
include/surf/surfxml_parse.h [deleted file]
include/xbt/base.h
include/xbt/config.h
include/xbt/dynar.h
include/xbt/graphxml.h
include/xbt/hash.h
include/xbt/log.h
include/xbt/range.hpp [new file with mode: 0644]
include/xbt/str.h
include/xbt/strbuff.h
src/bindings/java/MANIFEST.in [moved from src/bindings/java/MANIFEST.MF.in with 100% similarity]
src/bindings/java/jmsg.cpp
src/bindings/java/jmsg.h
src/bindings/java/jmsg_as.cpp
src/bindings/java/jmsg_as.h
src/bindings/java/jmsg_file.h
src/bindings/java/jmsg_host.cpp
src/bindings/java/jmsg_host.h
src/bindings/java/jmsg_process.cpp
src/bindings/java/jmsg_process.h
src/bindings/java/jmsg_storage.cpp
src/bindings/java/jmsg_storage.h
src/bindings/java/jmsg_task.cpp
src/bindings/java/jmsg_task.h
src/bindings/java/jmsg_vm.cpp
src/bindings/java/jmsg_vm.h
src/bindings/java/org/simgrid/msg/As.java
src/bindings/lua/factories/host.lua [deleted file]
src/bindings/lua/lua_debug.cpp [moved from src/bindings/lua/lua_debug.c with 98% similarity]
src/bindings/lua/lua_host.cpp [moved from src/bindings/lua/lua_host.c with 99% similarity]
src/bindings/lua/lua_platf.cpp [moved from src/bindings/lua/lua_platf.c with 91% similarity]
src/bindings/lua/lua_private.h
src/bindings/lua/lua_utils.h
src/bindings/lua/simgrid_lua.cpp [moved from src/bindings/lua/simgrid_lua.c with 97% similarity]
src/bindings/lua/simgrid_lua.h
src/include/mc/datatypes.h
src/include/mc/mc.h
src/include/simgrid/platf_interface.h [deleted file]
src/include/smpi/smpi_interface.h
src/include/surf/maxmin.h
src/include/surf/random_mgr.h [deleted file]
src/include/surf/surf.h
src/instr/instr_config.cpp
src/instr/instr_paje_containers.cpp
src/instr/instr_private.h
src/instr/instr_resource_utilization.cpp
src/instr/jedule/jedule_events.cpp [moved from src/instr/jedule/jedule_events.c with 100% similarity]
src/instr/jedule/jedule_output.cpp [moved from src/instr/jedule/jedule_output.c with 99% similarity]
src/instr/jedule/jedule_platform.cpp [moved from src/instr/jedule/jedule_platform.c with 91% similarity]
src/instr/jedule/jedule_sd_binding.cpp [moved from src/instr/jedule/jedule_sd_binding.c with 100% similarity]
src/mc/AddressSpace.hpp
src/mc/ChunkedData.hpp
src/mc/DwarfExpression.cpp
src/mc/DwarfExpression.hpp
src/mc/Frame.hpp
src/mc/ModelChecker.cpp
src/mc/ModelChecker.hpp
src/mc/ObjectInformation.cpp
src/mc/Process.cpp
src/mc/Process.hpp
src/mc/RegionSnapshot.cpp
src/mc/mc_checkpoint.cpp
src/mc/mc_client.cpp
src/mc/mc_compare.cpp
src/mc/mc_diff.cpp
src/mc/mc_dwarf.cpp
src/mc/mc_ignore.cpp
src/mc/mc_snapshot.cpp
src/mc/mc_snapshot.h
src/mc/mc_unw.cpp
src/mc/simgrid_mc.cpp
src/msg/instr_msg_vm.cpp
src/msg/msg_environment.cpp
src/msg/msg_global.cpp
src/msg/msg_host.cpp
src/msg/msg_io.cpp
src/msg/msg_process.cpp
src/msg/msg_synchro.cpp
src/msg/msg_task.cpp
src/msg/msg_vm.cpp
src/s4u/s4u_actor.cpp
src/s4u/s4u_async.cpp
src/s4u/s4u_comm.cpp
src/s4u/s4u_engine.cpp
src/s4u/s4u_file.cpp
src/s4u/s4u_host.cpp
src/s4u/s4u_mailbox.cpp
src/s4u/s4u_storage.cpp
src/simdag/dax_dtd.c
src/simdag/dax_dtd.h
src/simdag/sd_daxloader.cpp
src/simdag/sd_dotloader.cpp
src/simdag/sd_global.cpp
src/simdag/sd_task.cpp
src/simdag/sd_workstation.cpp
src/simgrid/host.cpp
src/simgrid/sg_config.c
src/simix/BoostContext.cpp
src/simix/BoostContext.hpp
src/simix/Context.cpp
src/simix/RawContext.cpp
src/simix/ThreadContext.cpp
src/simix/ThreadContext.hpp
src/simix/UContext.cpp
src/simix/libsmx.cpp
src/simix/popping_accessors.h
src/simix/popping_bodies.cpp
src/simix/popping_enum.h
src/simix/popping_generated.cpp
src/simix/simcalls.in
src/simix/simcalls.py
src/simix/smx_context.cpp
src/simix/smx_deployment.cpp
src/simix/smx_environment.cpp
src/simix/smx_global.cpp
src/simix/smx_host.cpp
src/simix/smx_network.cpp
src/simix/smx_private.h
src/simix/smx_process.cpp
src/simix/smx_process_private.h
src/simix/smx_synchro.cpp
src/simix/smx_synchro_private.h
src/simix/smx_vm.cpp
src/smpi/colls/colls.h
src/smpi/fixsrc.pl [deleted file]
src/smpi/instr_smpi.cpp [moved from src/smpi/instr_smpi.c with 98% similarity]
src/smpi/myprintloc.cocci [deleted file]
src/smpi/patch_source.sh [deleted file]
src/smpi/private.h
src/smpi/replace_globals.cocci [deleted file]
src/smpi/replace_static.cocci [deleted file]
src/smpi/smpi_base.cpp [moved from src/smpi/smpi_base.c with 95% similarity]
src/smpi/smpi_bench.cpp [moved from src/smpi/smpi_bench.c with 96% similarity]
src/smpi/smpi_c99.cpp [moved from src/smpi/smpi_c99.c with 100% similarity]
src/smpi/smpi_coll.cpp [moved from src/smpi/smpi_coll.c with 95% similarity]
src/smpi/smpi_comm.cpp [moved from src/smpi/smpi_comm.c with 94% similarity]
src/smpi/smpi_deployment.cpp [moved from src/smpi/smpi_deployment.c with 93% similarity]
src/smpi/smpi_dvfs.cpp [moved from src/smpi/smpi_dvfs.c with 88% similarity]
src/smpi/smpi_f77.cpp [moved from src/smpi/smpi_f77.c with 99% similarity]
src/smpi/smpi_global.cpp [moved from src/smpi/smpi_global.c with 93% similarity]
src/smpi/smpi_group.cpp [moved from src/smpi/smpi_group.c with 98% similarity]
src/smpi/smpi_mpi.cpp [moved from src/smpi/smpi_mpi.c with 100% similarity]
src/smpi/smpi_mpi_dt.cpp [moved from src/smpi/smpi_mpi_dt.c with 96% similarity]
src/smpi/smpi_mpi_dt_private.h
src/smpi/smpi_pmpi.cpp [moved from src/smpi/smpi_pmpi.c with 99% similarity]
src/smpi/smpi_replay.cpp [moved from src/smpi/smpi_replay.c with 97% similarity]
src/smpi/smpi_rma.cpp [moved from src/smpi/smpi_rma.c with 97% similarity]
src/smpi/smpi_topo.cpp [moved from src/smpi/smpi_topo.c with 96% similarity]
src/smpi/smpirun.in
src/surf/PropertyHolder.cpp
src/surf/PropertyHolder.hpp
src/surf/cpu_cas01.cpp
src/surf/cpu_cas01.hpp
src/surf/cpu_interface.cpp
src/surf/cpu_interface.hpp
src/surf/cpu_ti.cpp
src/surf/cpu_ti.hpp
src/surf/fair_bottleneck.cpp
src/surf/host_clm03.cpp
src/surf/host_clm03.hpp
src/surf/host_interface.cpp
src/surf/host_interface.hpp
src/surf/instr_routing.cpp
src/surf/instr_surf.cpp [moved from src/surf/instr_surf.c with 94% similarity]
src/surf/lagrange.cpp
src/surf/maxmin.cpp
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_constant.cpp
src/surf/network_constant.hpp
src/surf/network_ib.cpp
src/surf/network_interface.cpp
src/surf/network_interface.hpp
src/surf/network_ns3.cpp
src/surf/network_ns3.hpp
src/surf/network_smpi.cpp
src/surf/ns3/ns3_interface.cc
src/surf/platf_generator.c [deleted file]
src/surf/platf_generator_private.h [deleted file]
src/surf/platform.hpp [deleted file]
src/surf/plugins/energy.cpp
src/surf/ptask_L07.cpp [moved from src/surf/host_ptask_L07.cpp with 69% similarity]
src/surf/ptask_L07.hpp [moved from src/surf/host_ptask_L07.hpp with 75% similarity]
src/surf/random_mgr.c [deleted file]
src/surf/sg_platf.cpp
src/surf/storage_interface.cpp
src/surf/storage_interface.hpp
src/surf/storage_n11.cpp
src/surf/storage_n11.hpp
src/surf/surf_c_bindings.cpp
src/surf/surf_interface.cpp
src/surf/surf_interface.hpp
src/surf/surf_private.h
src/surf/surf_routing.cpp
src/surf/surf_routing.hpp
src/surf/surf_routing_RoutedGraph.cpp [new file with mode: 0644]
src/surf/surf_routing_RoutedGraph.hpp [new file with mode: 0644]
src/surf/surf_routing_cluster.cpp
src/surf/surf_routing_cluster.hpp
src/surf/surf_routing_cluster_fat_tree.cpp
src/surf/surf_routing_cluster_fat_tree.hpp
src/surf/surf_routing_cluster_torus.cpp
src/surf/surf_routing_cluster_torus.hpp
src/surf/surf_routing_dijkstra.cpp
src/surf/surf_routing_dijkstra.hpp
src/surf/surf_routing_floyd.cpp
src/surf/surf_routing_floyd.hpp
src/surf/surf_routing_full.cpp
src/surf/surf_routing_full.hpp
src/surf/surf_routing_generic.cpp [deleted file]
src/surf/surf_routing_generic.hpp [deleted file]
src/surf/surf_routing_none.cpp
src/surf/surf_routing_none.hpp
src/surf/surf_routing_private.hpp
src/surf/surf_routing_vivaldi.cpp
src/surf/surf_routing_vivaldi.hpp
src/surf/trace_mgr.cpp
src/surf/trace_mgr.hpp
src/surf/virtual_machine.hpp
src/surf/vm_hl13.cpp
src/surf/vm_hl13.hpp
src/surf/xml/platf.hpp [new file with mode: 0644]
src/surf/xml/platf_private.hpp [new file with mode: 0644]
src/surf/xml/simgrid.dtd [moved from src/surf/simgrid.dtd with 71% similarity]
src/surf/xml/simgrid_dtd.c [moved from src/surf/simgrid_dtd.c with 53% similarity]
src/surf/xml/simgrid_dtd.h [moved from include/surf/simgrid_dtd.h with 96% similarity]
src/surf/xml/surfxml_parseplatf.cpp [moved from src/surf/surfxml_parseplatf.cpp with 59% similarity]
src/surf/xml/surfxml_sax_cb.cpp [moved from src/surf/surfxml_parse.c with 82% similarity]
src/xbt/automaton/automaton.c
src/xbt/automaton/parserPromela.tab.cacc
src/xbt/automaton/parserPromela.tab.hacc
src/xbt/backtrace_linux.c
src/xbt/config.c
src/xbt/dict.c
src/xbt/dynar.c
src/xbt/ex.c
src/xbt/graph.c
src/xbt/graphxml.c
src/xbt/heap.c
src/xbt/lib.c
src/xbt/log.c
src/xbt/mmalloc/mm_module.c
src/xbt/mmalloc/mmtrace.awk [deleted file]
src/xbt/xbt_log_appender_file.c
src/xbt/xbt_main.c
src/xbt/xbt_os_file.c
src/xbt/xbt_os_synchro.c
src/xbt/xbt_os_thread.c
src/xbt/xbt_replay.c
src/xbt/xbt_sg_stubs.c
src/xbt/xbt_str.c
teshsuite/bug-17132/CMakeLists.txt
teshsuite/java/CMakeLists.txt [deleted file]
teshsuite/java/semaphore/CMakeLists.txt [moved from examples/scala/master_slave_kill/CMakeLists.txt with 50% similarity]
teshsuite/java/semaphore/SemaphoreGC.java [new file with mode: 0644]
teshsuite/java/semaphore/semaphore_gc.tesh [new file with mode: 0644]
teshsuite/java/sleep_host_off/CMakeLists.txt
teshsuite/java/sleep_host_off/Main.java [deleted file]
teshsuite/java/sleep_host_off/SleepHostOff.java
teshsuite/java/sleep_host_off/sleep_host_off.tesh
teshsuite/java/sleep_host_off/sleep_host_off_d.xml
teshsuite/mc/CMakeLists.txt
teshsuite/mc/dwarf/CMakeLists.txt
teshsuite/mc/dwarf_expression/CMakeLists.txt
teshsuite/mc/mutex_handling.c
teshsuite/mc/mutex_handling.xml
teshsuite/mc/replay/CMakeLists.txt
teshsuite/mc/replay/random_bug.xml
teshsuite/msg/CMakeLists.txt [deleted file]
teshsuite/msg/get_sender/CMakeLists.txt
teshsuite/msg/get_sender/get_sender_d.xml
teshsuite/msg/host_on_off/CMakeLists.txt
teshsuite/msg/host_on_off/host_on_off.c
teshsuite/msg/host_on_off/host_on_off_d.xml
teshsuite/msg/host_on_off/host_on_off_recv.c
teshsuite/msg/host_on_off/host_on_off_wait.c
teshsuite/msg/host_on_off_processes/CMakeLists.txt
teshsuite/msg/host_on_off_processes/host_on_off_processes_d.xml
teshsuite/msg/pid/CMakeLists.txt
teshsuite/msg/pid/pid_d.xml
teshsuite/msg/process/CMakeLists.txt
teshsuite/msg/process/process.c
teshsuite/msg/process/process_d.xml
teshsuite/msg/process_join/CMakeLists.txt
teshsuite/msg/process_join/process_join_d.xml
teshsuite/msg/storage/CMakeLists.txt
teshsuite/msg/storage/concurrent_rw.c
teshsuite/msg/storage/deployment.xml
teshsuite/msg/storage/storage_basic.c
teshsuite/msg/task_destroy_cancel/CMakeLists.txt
teshsuite/msg/task_destroy_cancel/task_destroy_cancel.c
teshsuite/msg/task_destroy_cancel/task_destroy_cancel_d.xml
teshsuite/msg/trace/CMakeLists.txt
teshsuite/msg/trace/test-hbp1-c0s0-c0s1.xml
teshsuite/msg/trace/test-hbp1-c0s0-c1s0.xml
teshsuite/msg/trace/test-hbp1-c0s1-c0s2.xml
teshsuite/msg/trace/test-hbp1-c0s1-c2s2.xml
teshsuite/msg/trace/test-hbp1-c0s2-c1s0.xml
teshsuite/msg/trace/test-hbp1-c0s2-c1s1.xml
teshsuite/msg/trace/test-hbp1-c1s1-c1s2.xml
teshsuite/msg/trace/test-hbp1-c1s1-c3s2.xml
teshsuite/msg/trace/test-hbp1.0-hbp1.0-hbp1.0.xml
teshsuite/msg/trace/test-hbp1.0-hbp3.0-hbp4.0.xml
teshsuite/msg/trace/test-hbp1.5-hbp1.5.xml
teshsuite/msg/trace/test-hbp2.5-hbp1.5.xml
teshsuite/msg/trace/test_trace_integration.c
teshsuite/simdag/availability/CMakeLists.txt
teshsuite/simdag/availability/availability_test.c
teshsuite/simdag/basic/CMakeLists.txt
teshsuite/simdag/basic/basic0.c
teshsuite/simdag/basic/basic1.c
teshsuite/simdag/basic/basic2.c
teshsuite/simdag/basic/basic3.c
teshsuite/simdag/basic/basic4.c
teshsuite/simdag/basic/basic5.c
teshsuite/simdag/basic/basic6.c
teshsuite/simdag/incomplete/CMakeLists.txt
teshsuite/simdag/incomplete/incomplete.c
teshsuite/simdag/network/CMakeLists.txt [deleted file]
teshsuite/simdag/network/mxn/CMakeLists.txt
teshsuite/simdag/network/mxn/platform_4p_1switch.xml
teshsuite/simdag/network/mxn/test_intra_all2all.c
teshsuite/simdag/network/mxn/test_intra_independent_comm.c
teshsuite/simdag/network/mxn/test_intra_scatter.c
teshsuite/simdag/network/p2p/CMakeLists.txt
teshsuite/simdag/network/p2p/platform_2p_1bb.xml
teshsuite/simdag/network/p2p/platform_2p_1fl.xml
teshsuite/simdag/network/p2p/platform_2p_1sl.xml
teshsuite/simdag/network/p2p/platform_2p_1switch.xml
teshsuite/simdag/network/p2p/test_latency1.c
teshsuite/simdag/network/p2p/test_latency2.c
teshsuite/simdag/network/p2p/test_latency3.c
teshsuite/simdag/network/p2p/test_latency_bound.c
teshsuite/simdag/network/platform_2p_1sl.xml [deleted file]
teshsuite/simdag/network/test_reinit_costs.c [deleted file]
teshsuite/simdag/network/test_reinit_costs.tesh [deleted file]
teshsuite/simdag/partask/CMakeLists.txt
teshsuite/simdag/partask/platform_2p_1sl.xml
teshsuite/simdag/partask/platform_2p_1sl_hetero.xml
teshsuite/simdag/partask/test_comp_only_par.c
teshsuite/simdag/partask/test_comp_only_seq.c
teshsuite/simdag/platforms/CMakeLists.txt
teshsuite/simdag/platforms/Dijkstra.xml
teshsuite/simdag/platforms/Evaluate_get_route_time.c
teshsuite/simdag/platforms/Evaluate_parse_time.c
teshsuite/simdag/platforms/basic_link_test.c
teshsuite/simdag/platforms/basic_parsing_test.c
teshsuite/simdag/platforms/basic_parsing_test_failing.tesh
teshsuite/simdag/platforms/basic_tracing.c [deleted file]
teshsuite/simdag/platforms/bogus_disk_attachment.tesh
teshsuite/simdag/platforms/bogus_disk_attachment.xml
teshsuite/simdag/platforms/bogus_missing_dst_gateway.xml
teshsuite/simdag/platforms/bogus_missing_gateway.tesh
teshsuite/simdag/platforms/bogus_missing_src_gateway.xml
teshsuite/simdag/platforms/bogus_two_hosts_asymetric-2.xml
teshsuite/simdag/platforms/bogus_two_hosts_asymetric.tesh
teshsuite/simdag/platforms/bogus_two_hosts_asymetric.xml
teshsuite/simdag/platforms/clusterA.xml
teshsuite/simdag/platforms/flatifier.cpp
teshsuite/simdag/platforms/flatifier.tesh
teshsuite/simdag/platforms/four_hosts_Dijkstra_ns3.xml
teshsuite/simdag/platforms/four_hosts_floyd.xml
teshsuite/simdag/platforms/four_hosts_floyd_bis.xml
teshsuite/simdag/platforms/four_hosts_floyd_ns3.xml
teshsuite/simdag/platforms/is_router_test.cpp [moved from teshsuite/simdag/platforms/is_router_test.c with 56% similarity]
teshsuite/simdag/platforms/one_cluster.xml
teshsuite/simdag/platforms/one_cluster_file.xml
teshsuite/simdag/platforms/one_cluster_foreach.xml [deleted file]
teshsuite/simdag/platforms/one_cluster_fullduplex.xml
teshsuite/simdag/platforms/one_cluster_multicore.xml
teshsuite/simdag/platforms/one_cluster_one_host.xml [deleted file]
teshsuite/simdag/platforms/one_cluster_one_host_random.xml [deleted file]
teshsuite/simdag/platforms/one_cluster_properties_foreach.xml [deleted file]
teshsuite/simdag/platforms/one_cluster_properties_override.xml [deleted file]
teshsuite/simdag/platforms/one_cluster_router_id.xml
teshsuite/simdag/platforms/one_host.xml
teshsuite/simdag/platforms/one_host_availability.xml
teshsuite/simdag/platforms/one_host_properties.xml
teshsuite/simdag/platforms/one_host_state_file.xml
teshsuite/simdag/platforms/one_host_state_off.xml
teshsuite/simdag/platforms/one_host_state_on.xml
teshsuite/simdag/platforms/one_host_trace_file.xml
teshsuite/simdag/platforms/one_host_trace_inside.xml
teshsuite/simdag/platforms/one_link_availability.xml
teshsuite/simdag/platforms/one_link_fatpipe.xml
teshsuite/simdag/platforms/one_link_shared.xml
teshsuite/simdag/platforms/one_link_state_file.xml
teshsuite/simdag/platforms/platform_include.xml
teshsuite/simdag/platforms/properties.xml
teshsuite/simdag/platforms/random.xml
teshsuite/simdag/platforms/route_override.xml [deleted file]
teshsuite/simdag/platforms/test_of_is_router.xml
teshsuite/simdag/platforms/three_hosts_non_symmetric_route.xml
teshsuite/simdag/platforms/two_clusters.xml
teshsuite/simdag/platforms/two_clusters_one_name.xml
teshsuite/simdag/platforms/two_clusters_router_id.xml
teshsuite/simdag/platforms/two_clusters_symmetric.xml
teshsuite/simdag/platforms/two_hosts_multi_hop.xml
teshsuite/simdag/platforms/two_hosts_one_link.xml
teshsuite/simdag/platforms/two_hosts_one_link_fullduplex.xml
teshsuite/simdag/platforms/two_hosts_one_link_symmetrical.xml
teshsuite/simix/check_defaults/CMakeLists.txt
teshsuite/simix/stack_overflow/CMakeLists.txt
teshsuite/simix/stack_overflow/stack_overflow.c
teshsuite/simix/stack_overflow/stack_overflow.xml
teshsuite/simix/stack_overflow/stack_overflow_platform.xml
teshsuite/smpi/CMakeLists.txt
teshsuite/smpi/allgather/CMakeLists.txt
teshsuite/smpi/allgatherv/CMakeLists.txt
teshsuite/smpi/allreduce/CMakeLists.txt
teshsuite/smpi/alltoall/CMakeLists.txt
teshsuite/smpi/alltoallv/CMakeLists.txt
teshsuite/smpi/barrier/CMakeLists.txt
teshsuite/smpi/bcast/CMakeLists.txt
teshsuite/smpi/compute/CMakeLists.txt
teshsuite/smpi/gather/CMakeLists.txt
teshsuite/smpi/hvector/CMakeLists.txt
teshsuite/smpi/indexed/CMakeLists.txt
teshsuite/smpi/mpich3-test/CMakeLists.txt
teshsuite/smpi/mpich3-test/attr/CMakeLists.txt
teshsuite/smpi/mpich3-test/coll/CMakeLists.txt
teshsuite/smpi/mpich3-test/coll/allgatherv4.c
teshsuite/smpi/mpich3-test/coll/allgatherv4_manual.c
teshsuite/smpi/mpich3-test/coll/allred.c
teshsuite/smpi/mpich3-test/comm/CMakeLists.txt
teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/attr/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/coll/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/comm/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/datatype/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/ext/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/info/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/init/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/pt2pt/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/rma/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/topo/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/util/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/coll/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/datatype/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/info/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/init/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/pt2pt/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/rma/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/util/CMakeLists.txt
teshsuite/smpi/mpich3-test/group/CMakeLists.txt
teshsuite/smpi/mpich3-test/info/CMakeLists.txt
teshsuite/smpi/mpich3-test/init/CMakeLists.txt
teshsuite/smpi/mpich3-test/perf/CMakeLists.txt
teshsuite/smpi/mpich3-test/pt2pt/CMakeLists.txt
teshsuite/smpi/mpich3-test/rma/CMakeLists.txt
teshsuite/smpi/mpich3-test/topo/CMakeLists.txt
teshsuite/smpi/mpich3-test/util/mtest_manual.c
teshsuite/smpi/pingpong/CMakeLists.txt
teshsuite/smpi/reduce/CMakeLists.txt
teshsuite/smpi/reduce/reduce_scatter_coll.c
teshsuite/smpi/scatter/CMakeLists.txt
teshsuite/smpi/shared/CMakeLists.txt
teshsuite/smpi/struct/CMakeLists.txt
teshsuite/smpi/vector/CMakeLists.txt
teshsuite/surf/CMakeLists.txt [deleted file]
teshsuite/surf/lmm_usage/CMakeLists.txt
teshsuite/surf/maxmin_bench/CMakeLists.txt
teshsuite/surf/surf_usage/CMakeLists.txt
teshsuite/surf/surf_usage/surf_usage.cpp
teshsuite/surf/surf_usage/surf_usage2.cpp
teshsuite/surf/trace_usage/CMakeLists.txt
teshsuite/surf/trace_usage/trace_usage.cpp
teshsuite/xbt/graphxml_usage/CMakeLists.txt
teshsuite/xbt/heap_bench/CMakeLists.txt
teshsuite/xbt/log_large/CMakeLists.txt
teshsuite/xbt/log_usage/CMakeLists.txt
teshsuite/xbt/mallocator/CMakeLists.txt
teshsuite/xbt/mmalloc/CMakeLists.txt
teshsuite/xbt/parallel_log/CMakeLists.txt
teshsuite/xbt/parmap_bench/CMakeLists.txt
teshsuite/xbt/parmap_test/CMakeLists.txt
tools/cmake/DefinePackages.cmake
tools/cmake/Distrib.cmake
tools/cmake/Documentation.cmake
tools/cmake/Java.cmake
tools/cmake/MaintainerMode.cmake
tools/cmake/MakeExe.cmake
tools/cmake/MakeLib.cmake
tools/cmake/Modules/FindLibSigc++.cmake
tools/cmake/Modules/FindScala.cmake [deleted file]
tools/cmake/Option.cmake
tools/cmake/PrintArgs.cmake
tools/cmake/Tests.cmake
tools/cmake/scripts/Makefile.default [deleted file]
tools/cmake/scripts/SimGrid.packproj [deleted file]
tools/cmake/scripts/generate_memcheck_tests.pl
tools/cmake/scripts/postinstall.sh [deleted file]
tools/cmake/scripts/preinstall.sh [deleted file]
tools/cmake/src/internal_config.h.in
tools/cmake/test_prog/prog_gnu_dynlinker.c
tools/cmake/test_prog/prog_stackgrowth.c
tools/graphicator/CMakeLists.txt
tools/internal/check_dist_archive.exclude
tools/internal/eclipse-formating.xml
tools/internal/generate-multi-jar.py
tools/internal/spell_comments.pl
tools/normalize-pointers.py
tools/platf_route_rulebased2full.py
tools/sg_xml_unit_converter.py
tools/simgrid_update_xml.pl
tools/stack-cleaner/compiler-wrapper
tools/tesh/CMakeLists.txt
tools/tesh/colorize.pl [deleted file]

index 418a44b..3354e0b 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -25,6 +25,7 @@
                                                                        <listOptionValue builtIn="false" value="/usr/lib/jvm/java-7-openjdk-amd64/include"/>
                                                                        <listOptionValue builtIn="false" value="/usr/include/ns3.22"/>
                                                                        <listOptionValue builtIn="false" value="/opt/gtnets/include"/>
+                                                                       <listOptionValue builtIn="false" value="/usr/include/lua5.3"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1641160853" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
                                                        </tool>
@@ -33,6 +34,7 @@
                                                                        <listOptionValue builtIn="false" value="/usr/lib/jvm/java-7-openjdk-amd64/include"/>
                                                                        <listOptionValue builtIn="false" value="/usr/include/ns3.22"/>
                                                                        <listOptionValue builtIn="false" value="/opt/gtnets/include"/>
+                                                                       <listOptionValue builtIn="false" value="/usr/include/lua5.3"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.538328935" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
                                                        </tool>
@@ -48,6 +50,7 @@
                                                                        <listOptionValue builtIn="false" value="/usr/lib/jvm/java-7-openjdk-amd64/include"/>
                                                                        <listOptionValue builtIn="false" value="/usr/include/ns3.22"/>
                                                                        <listOptionValue builtIn="false" value="/opt/gtnets/include"/>
+                                                                       <listOptionValue builtIn="false" value="/usr/include/lua5.3"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.assembler.input.2071407067" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
                                                        </tool>
diff --git a/.editorconfig b/.editorconfig
new file mode 100644 (file)
index 0000000..6e09c62
--- /dev/null
@@ -0,0 +1,22 @@
+# http://editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+
+[*.{c,cpp,h,hpp,yml,cmake}]
+trim_trailing_whitespace = true
+charset = utf-8
+indent_style = space
+indent_size = 2
+
+# PEP8 https://www.python.org/dev/peps/pep-0008/ http://pep8.org/
+[*.py]
+trim_trailing_whitespace = true
+charset = utf-8
+indent_style = space
+indent_size = 4
+
+[Makefile]
+indent_style = tab
index 7227b38..be91017 100644 (file)
@@ -23,16 +23,13 @@ CTestResults.xml
 
 ### Maintainer mode
 src/simdag/dax_dtd.l
-src/surf/simgrid_dtd.l
+src/surf/xml/simgrid_dtd.l
 src/xbt/graphxml.l
 ### Jedule
 examples/simdag/scheduling/simgrid.jed
 teshsuite/simdag/platforms/simgrid.jed
 ### Libraries links 
-src/bindings/ruby/simgrid.so
-examples/ruby/simgrid.so
 examples/lua/simgrid.so
-src/bindings/ruby/libsimgrid.so
 examples/msg/masterslave/simgrid.so
 examples/simdag/simgrid.so
 examples/lua/console/simgrid.so
@@ -161,7 +158,6 @@ examples/msg/irc_isend/peer
 examples/msg/irc_isend/toto.txt
 examples/msg/kademlia/kademlia
 examples/msg/masterslave/masterslave_arg
-examples/msg/masterslave/masterslave_bypass
 examples/msg/masterslave/masterslave_cluster
 examples/msg/masterslave/masterslave_console
 examples/msg/masterslave/masterslave_failure
@@ -200,11 +196,11 @@ examples/msg/procmig.trace
 examples/msg/properties/msg_prop
 examples/msg/semaphores/synchro
 examples/msg/sendrecv/sendrecv
+examples/msg/sendrecv/sendrecv_main
 examples/msg/simulation.trace
 examples/msg/start_kill_time/sk_time
 examples/msg/suspend/suspend
 examples/msg/tasks.trace
-examples/msg/token_ring/token_bypass
 examples/msg/token_ring/token_ring
 examples/msg/toto.txt
 examples/msg/trace/test_trace_integration
@@ -275,6 +271,7 @@ src/replay/replay
 src/testall
 teshsuite/bug-17132/bug-17132
 teshsuite/datadesc_usage.out
+teshsuite/java/semaphore/java_semaphore_gc_compiled
 teshsuite/java/sleep_host_off/java_sleep_host_off_compiled
 teshsuite/mc/dwarf/dwarf
 teshsuite/mc/dwarf_expression/dwarf-expression
@@ -1071,9 +1068,6 @@ examples/java/tracing/java_tracing_compiled
 examples/java/reservationSurfPlugin/java_reservation_surf_plugin_compiled
 examples/java/surfCpuModel/java_surf_cpu_model_compiled
 examples/java/surfPlugin/java_surf_plugin_compiled
-examples/scala/master_slave_bypass/scala_master_slave_bypass_compiled
-examples/scala/master_slave_kill/scala_master_slave_kill_compiled
-examples/scala/masterslave/scala_masterslave_compiled
 /CMakeCache.txt
 examples/smpi/mc/smpi_bugged1
 examples/smpi/mc/smpi_bugged1_liveness
index a7867b4..6553d7d 100644 (file)
@@ -21,14 +21,14 @@ addons:
     packages:
     - gcc-4.7
     - g++-4.7
-#      - clang
-#- coverity_scan:
-#    project:
-#      name: "mquinson/simgrid"
-#    notification_email: martin.quinson@loria.fr
-#    build_command_prepend: "cmake -Denable_documentation=OFF -Denable_coverage=OFF -Denable_java=OFF -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=OFF -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=OFF ."  coverity_scan:
-#    build_command:   "make VERBOSE=1"
-#    branch_pattern: coverity_scan
+  coverity_scan:
+    project:
+      name: "mquinson/simgrid"
+      description: "Build submitted via Travis CI"
+    notification_email: martin.quinson@ens-rennes.fr
+    build_command_prepend: "cmake -Denable_documentation=OFF -Denable_coverage=OFF -Denable_java=OFF -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=OFF -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=OFF ."
+    build_command:   "make VERBOSE=1"
+    branch_pattern: coverity
 
 # Don't install lua from Debian as we need 5.3 and don't have a backport.
 #   Installing lua from the source does not make any dynamic library.
@@ -54,7 +54,7 @@ script:
 #      - master
 notifications:
   recipients:
-    - martin.quinson@loria.fr
+    - martin.quinson@ens-rennes.fr
   email:
     on_success: change
     on_failure: always
index 3747faf..ea6d1be 100644 (file)
@@ -101,7 +101,7 @@ set(SIMGRID_VERSION_MINOR "13")
 set(SIMGRID_VERSION_PATCH "0")
 set(SIMGRID_VERSION_EXTRA "-devel") # Extra words to add to version string (e.g. -rc1)
 
-set(SIMGRID_VERSION_DATE  "2015") # Year for copyright information
+set(SIMGRID_VERSION_DATE  "2016") # Year for copyright information
 
 if(${SIMGRID_VERSION_PATCH} EQUAL "0")
   set(release_version "${SIMGRID_VERSION_MAJOR}.${SIMGRID_VERSION_MINOR}")
@@ -214,7 +214,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64|amd64")
   if (MSVC)
     message(STATUS "Disable fast raw contextes on Microsoft Visual.")
   else()
-    set(HAVE_RAWCTX 1)
+    set(HAVE_RAW_CONTEXTS 1)
   endif()
 
 ENDIF()
@@ -226,14 +226,11 @@ include(CheckIncludeFiles)
 include(CheckLibraryExists)
 include(CheckSymbolExists)
 
+set(HAVE_GRAPHVIZ 0)
 include(FindGraphviz)
 include(FindLibSigc++)
 
-if(enable_scala)
-  find_package(Scala REQUIRED)
-  message("-- [Scala] scalac found: ${SCALA_COMPILE}")
-  set(HAVE_Scala 1)
-endif()
+set(HAVE_LUA 0)
 if(enable_lua)
   include(FindLuaSimgrid)
 endif()
@@ -267,15 +264,15 @@ if(Boost_FOUND AND Boost_CONTEXT_FOUND)
   # We should use feature detection for this instead:
   if (Boost_VERSION LESS 105600)
     message("Found Boost.Context API v1")
-    set(HAVE_BOOST_CONTEXT 1)
+    set(HAVE_BOOST_CONTEXTS 1)
   else()
     message("Found Boost.Context API v2")
-    set(HAVE_BOOST_CONTEXT 2)
+    set(HAVE_BOOST_CONTEXTS 2)
   endif()
 else()
   message ("   boost        : found.")
   message ("   boost-context: missing. Install libboost-context-dev for this optional feature.")
-  set(HAVE_BOOST_CONTEXT 0)
+  set(HAVE_BOOST_CONTEXTS 0)
 endif()
 
 # Checks for header libraries functions.
@@ -383,8 +380,8 @@ if(WIN32) # Those files are not detected despite being present
   set(HAVE_MAKECONTEXT 1)
 endif()
 
-set(CONTEXT_UCONTEXT 0)
-set(CONTEXT_THREADS 0)
+set(HAVE_UCONTEXT_CONTEXTS 0)
+set(HAVE_THREAD_CONTEXTS 0)
 
 if(enable_jedule)
   set(HAVE_JEDULE 1)
@@ -626,12 +623,12 @@ endif()
 #If can have both context
 
 if(HAVE_UCONTEXT)
-  set(CONTEXT_UCONTEXT 1)
+  set(HAVE_UCONTEXT_CONTEXTS 1)
   message("-- Support for ucontext factory")
 endif()
 
 if(HAVE_PTHREAD)
-  set(CONTEXT_THREADS 1)
+  set(HAVE_THREAD_CONTEXTS 1)
   message("-- Support for thread context factory")
 endif()
 
@@ -738,11 +735,12 @@ endif()
 
 ### check for stackgrowth
 if (NOT CMAKE_CROSSCOMPILING)
-  try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
+  try_run(RUN_stackgrowth_VAR COMPILE_stackgrowth_VAR
     ${CMAKE_BINARY_DIR}
     ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_stackgrowth.c
     RUN_OUTPUT_VARIABLE stack
-    )
+    COPY_FILE test_stackgrowth
+  )
 endif()
 if("${stack}" STREQUAL "down")
   set(PTH_STACKGROWTH "-1")
@@ -754,7 +752,7 @@ else()
   elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
     set(PTH_STACKGROWTH "-1")
   else()
-    message(ERROR "Could not figure the stack direction.")
+    message(FATAL_ERROR "Could not figure out the stack direction. Test prog returned: ${stack}; CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}.")
   endif()
 endif()
 
@@ -762,123 +760,8 @@ endif()
 ## System checks
 ##
 
-#SG_CONFIGURE_PART([System checks...])
-#AC_PROG_CC(xlC gcc cc) -auto
-#AM_SANITY_CHECK -auto
-
-#AC_PROG_MAKE_SET
-
-#AC_CHECK_VA_COPY
-
-set(diff_va "va_copy((d),(s))"
-  "VA_COPY((d),(s))"
-  "__va_copy((d),(s))"
-  "__builtin_va_copy((d),(s))"
-  "do { (d) = (s)\; } while (0)"
-  "do { *(d) = *(s)\; } while (0)"
-  "memcpy((void *)&(d), (void *)&(s), sizeof(s))"
-  "memcpy((void *)(d), (void *)(s), sizeof(*(s)))"
-  )
-
-foreach(fct ${diff_va})
-  write_file("${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_va_copy.c" "#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#define DO_VA_COPY(d,s) ${fct}
-void test(char *str, ...)
-{
-  va_list ap, ap2;
-  int i;
-  va_start(ap, str);
-  DO_VA_COPY(ap2, ap);
-  for (i = 1; i <= 9; i++) {
-    int k = (int)va_arg(ap, int);
-    if (k != i)
-      abort();
-  }
-  DO_VA_COPY(ap, ap2);
-  for (i = 1; i <= 9; i++) {
-    int k = (int)va_arg(ap, int);
-    if (k != i)
-      abort();
-  }
-  va_end(ap);
-}
-int main(void)
-{
-  test(\"test\", 1, 2, 3, 4, 5, 6, 7, 8, 9);
-  exit(0);
-}"
-    )
-
-  execute_process(
-  COMMAND ${CMAKE_C_COMPILER} "${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_va_copy.c"
-  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-  RESULT_VARIABLE COMPILE_VA_NULL_VAR
-  OUTPUT_QUIET
-  ERROR_QUIET
-  )
-
-  if(NOT COMPILE_VA_NULL_VAR)
-    string(REGEX REPLACE "\;" "" fctbis ${fct})
-    if(${fctbis} STREQUAL "va_copy((d),(s))")
-      set(HAVE_VA_COPY 1)
-      set(ac_cv_va_copy "C99")
-      set(__VA_COPY_USE_C99 "va_copy((d),(s))")
-    endif()
-
-    if(${fctbis} STREQUAL "VA_COPY((d),(s))")
-      set(ac_cv_va_copy "GCM")
-      set(__VA_COPY_USE_GCM "VA_COPY((d),(s))")
-    endif()
-
-    if(${fctbis} STREQUAL "__va_copy((d),(s))")
-      set(ac_cv_va_copy "GCH")
-      set(__VA_COPY_USE_GCH "__va_copy((d),(s))")
-    endif()
-
-    if(${fctbis} STREQUAL "__builtin_va_copy((d),(s))")
-      set(ac_cv_va_copy "GCB")
-      set(__VA_COPY_USE_GCB "__builtin_va_copy((d),(s))")
-    endif()
-
-    if(${fctbis} STREQUAL "do { (d) = (s) } while (0)")
-      set(ac_cv_va_copy "ASS")
-      set(__VA_COPY_USE_ASS "do { (d) = (s); } while (0)")
-    endif()
-
-    if(${fctbis} STREQUAL "do { *(d) = *(s) } while (0)")
-      set(ac_cv_va_copy "ASP")
-      set(__VA_COPY_USE_ASP "do { *(d) = *(s); } while (0)")
-    endif()
-
-    if(${fctbis} STREQUAL "memcpy((void *)&(d), (void *)&(s), sizeof(s))")
-      set(ac_cv_va_copy "CPS")
-      set(__VA_COPY_USE_CPS "memcpy((void *)&(d), (void *)&(s), sizeof(s))")
-    endif()
-
-    if(${fctbis} STREQUAL "memcpy((void *)(d), (void *)(s), sizeof(*(s)))")
-      set(ac_cv_va_copy "CPP")
-      set(__VA_COPY_USE_CPP "memcpy((void *)(d), (void *)(s), sizeof(*(s)))")
-    endif()
-
-    if(NOT STATUS_OK)
-      set(__VA_COPY_USE "__VA_COPY_USE_${ac_cv_va_copy}(d, s)")
-    endif()
-    set(STATUS_OK "1")
-
-  endif()
-
-endforeach(fct ${diff_va})
-
-#--------------------------------------------------------------------------------------------------
 ### check for a working snprintf
 if(HAVE_SNPRINTF AND HAVE_VSNPRINTF OR WIN32)
-  if(WIN32)
-    #set(HAVE_SNPRINTF 1)
-    #set(HAVE_VSNPRINTF 1)
-  endif()
-
   if(CMAKE_CROSSCOMPILING)
     set(RUN_SNPRINTF_FUNC "cross")
     #set(PREFER_PORTABLE_SNPRINTF 1)
index b1d4706..ec75dfc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,46 +1,88 @@
 SimGrid (3.13) UNRELEASED; urgency=low
 
  The Easter Trim Release.
+
+ Backwards Compatibility breaks
+   - Some command line options were renamed for consistency sake:
+     - model-check/sparse-checkpoint -> model-check/sparse_checkpoint
+     - smpi/async_small_thres        -> smpi/async_small_thresh
+     - smpi/send_is_detached_thres   -> smpi/send_is_detached_thresh 
+
+   - Removed Lua simulation bindings (switch to C or Java for that).
+     Lua can still be used to describe platforms
+   - Removed Java kernel plug-ins.
+     Will be reintroduced after the ongoing major internals reorg.
+   - In SimDag 
+      - the SD_application_reinit function was removed. It was a noop for a while. 
+      - The ACCESS_MODE of SD_workstation has been removed. This feature was not really usable and should soon be 
+        replaced by a more flexible mechanism.
+      - The following functions thus do not exist anymore
+         - SD_workstation_get_access_mode
+         - SD_workstation_set_access_mode
+         - SD_workstation_get_current_task
+      - Basic estimation functions have been removed but can easily be replaced
+        - SD_route_get_communication_time => SG_route_get_latency() + amount / SD_route_get_bandwidth()
+        - SD_workstation_get_computation_time => amount / sg_host_speed()
+
+ XML platforms:
+ * Switch to platform v4 format.
+   - Rename from 'power' to 'speed' the attributes describing the amount of
+     flops that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
+   - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+   - The DOCTYPE points to the right URL:
+     http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+     (the file at this address now documents the changelog since its v1)
+   - A warning is emitted for unit-less values (they are still accepted).
+     - speed. Default: 'f' or 'flops'. Also defined:
+        'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
+        'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+     - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
+       Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+       And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+     - latency. Default: 's' second. Also defined:
+       'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
+       
+ * bin/simgrid_update_xml can upgrade your files automatically (won't convert unit-less values)
+   tools/sg_xml_unit_converter.py may help (but it's just a warning and will probably ever be).
+
  S4U
- * s4u::Host is now the prefered public interface to the Host features.
+ * s4u::Host is now the preferred public interface to the Host features.
    sg_host_* functions are C bindings to the exact same behavior
    MSG_host_* and SD_workstation_* are #define to the sg_host_* ones
 
  MSG
- * Kill all deprecated functions. They were deprecated since a few
-   releases anyway, and probably did not even compile anymore.
+ * Kill all deprecated functions (the ones you had when declaring MSG_DEPRECATED). 
+   They were deprecated since a few years, and probably did not even compile anymore.
+
+ SimDag
+ * The API has been profoundly modified to directly use the core objects instead of redefining its own. 
+   SD_Workstation_t and SD_link_t are now sg_host_t and sg_link_t respectively.
+   Some functions have also been renamed for consistency. Backward compatibility is maintained, but users are 
+   encouraged to update their codes. A list of the modified functions can be found at the end of 
+   include/simgrid/simdag.h
 
  Simix
  * simgrid::simix::kernel() is the closure callback. It ensures that
     the lambda or closure passed as a parameter will run in kernel mode.
    Every callbacks should be rewritten to that interface at some point.
    
- MC
- * BC breaks:
-   - The option "model-check/sparse-checkpoint" was renamed to
-     "model-check/sparse_checkpoint" as we attempt to unify our naming
-     schemes.
-
  Surf
  * Reorganizing and cleaning the internals all around the place.
 
  SMPI
- * BC breaks:
-   - The option smpi/async_small_thres was renamed to smpi/async_small_thresh
-     as we attempt to unify our naming schemes -> smpi/send_is_detached_thresh
  * Remove old default barrier/bcast buggy algorithms (see #18407)
- * Various bugfixes to handle more codes
+ * Various bug fixes to handle more codes
 
  XBT
  * Kill the setset data container: MC don't use it anymore.
  * Kill the queue data container: it made more sense with GRAS.
  * Kill the xbt_peer_t data type: it's useless without GRAS.
+ * Kill rm_cb feature of config sets: it was never useful.
+ * New functions:
+   - xbt_dynar_sort_strings(), when the content is char*
+   - xbt_str_parse_int / xbt_str_parse_double, wrapping strtol/strtod
+     They throw exceptions on invalid input.
  
- JAVA:
- * Remove the ability to write internal plugins in Java. 
-   It may be reintroduced once the ongoing cleanup is done.
-
  -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.12) stable; urgency=low
index 5fd78d3..b618a2a 100644 (file)
@@ -34,14 +34,11 @@ environment:
 #- if [%COMPILER%]==[MinGW-w64] 7z x -tzip lua.zip > NULL
 
 install:
-# Perl: The installed version breaks with Perl::IPC 0.94. Get an older one.
-- call .appveyor-download.cmd "http://strawberryperl.com/download/5.18.4.1/strawberry-perl-5.18.4.1-64bit.msi" -FileName strawberry-perl.msi
-- msiexec /i "strawberry-perl.msi" /qn INSTALLDIR="C:\projects\perl"
 # Sane migwin, as installed by symengine
 - if [%COMPILER%]==[MinGW-w64] call .appveyor-download.cmd "https://raw.githubusercontent.com/symengine/dependencies/5cff7d1736877336cf9fb58267111beea4fa152f/x86_64-4.9.1-release-posix-seh-rt_v3-rev1.7z" -FileName mw64.7z
 - if [%COMPILER%]==[MinGW-w64] 7z x -oC:\ mw64.7z > NUL
 # Take the newly installed stuff in the path
-- set PATH=C:\mingw64\bin;C:\projects\perl\perl\bin;C:\projects\perl\perl\site\bin;C:\projects\perl\c\bin;%PATH%
+- set PATH=C:\mingw64\bin;%PATH%
 - if [%COMPILER%]==[MinGW-w64] rename "C:\Program Files\Git\usr\bin\sh.exe" "sh-ignored.exe"
 
 build_script:
@@ -60,6 +57,7 @@ build_script:
 #- bash -c "cd C:/projects/simgrid; exec 0<&-; ctest --output-on-failure" < nul || true
 
 #test_script:
+# IPC::Run broken on windows. We should switch to https://rt.cpan.org/Public/Bug/Display.html?id=104812#txn-1546043
 #- perl %TESH_ARGS% C:/projects/simgrid/examples/java/async/async.tesh
 #- perl %TESH_ARGS% C:/projects/simgrid/examples/java/bittorrent/bittorrent.tesh
 #- perl %TESH_ARGS% C:/projects/simgrid/examples/java/master_slave_bypass/bypass.tesh
diff --git a/configure b/configure
deleted file mode 100755 (executable)
index ca32ca4..0000000
--- a/configure
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/sh
-
-cat <<EOT
-THIS COMMAND IS NOT AVAILABLE!
-Since v3.4 we use cmake. Now use:
-        cmake -DCMAKE_INSTALL_PREFIX=<where_you_want> .
-        make
-        make install
-EOT
-
-exit 1
diff --git a/contrib/deployment_generation/generate_random_deployment.pl b/contrib/deployment_generation/generate_random_deployment.pl
deleted file mode 100755 (executable)
index bd353fa..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/usr/bin/env perl
-
-# Copyright (c) 2009, 2011, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use strict;
-use warnings;
-
-sub melange {
-    my $tableau=shift;
-    my($i,$j);
-    
-    for($i = @$tableau ; --$i; ) {
-       $j = int rand ($i+1);
-       next if $i==$j;
-       @$tableau[$i,$j] = @$tableau[$j,$i];
-    }
-}
-
-sub read_file {
-    my($filename)=shift;
-    my($line);
-    my(@host_list);
-    open(INPUT,"$filename");
-    while(defined($line=<INPUT>)) {
-       chomp $line;
-       if($line=~/host id/) {
-           $line=~ s/.*host id="//;
-           $line=~ s/\".*$//;
-           push @host_list,$line;
-       }
-    }
-    close(INPUT);
-    return \@host_list;
-}
-
-sub generate_random_deployment{
-    my($host_list,$nflows,$filename)=@_;
-    my(%pairs);
-    my($nhost) = scalar(@$host_list);
-    my(%taken);
-
-    $nflows< $nhost*$nhost-$nhost or die "Too much flows! I can't do it\n";
-    
-    open(OUTPUT,"> $filename");
-    while(scalar(keys(%pairs))<$nflows) {
-       my($src)=int(rand(scalar(@$host_list)));
-       my($dst)=int(rand(scalar(@$host_list)));
-
-       if($src!=$dst && !defined($pairs{"$$host_list[$src] $$host_list[$dst]"})) {
-           $pairs{"$$host_list[$src] $$host_list[$dst]"}=1;
-           $taken{"$$host_list[$src]"}=1;
-           $taken{"$$host_list[$dst]"}=1;
-#         && !$taken{$$host_list[$src]} && !$taken{$$host_list[$dst]}
-       }
-    }
-    my($p);
-
-    my($count)=0;
-
-    print OUTPUT <<EOF;
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="2">
-EOF
-
-    foreach $p (keys %pairs) {
-       my($src,$dst)=split(/ /,$p);
-       print OUTPUT "  <process host='$src' function='master'>\n";
-       print OUTPUT "    <argument value='10000000'/>\n";
-       print OUTPUT "    <argument value='$dst'/>\n";
-       print OUTPUT "    <argument value='$count'/>\n";
-       print OUTPUT "  </process>\n";
-       print OUTPUT "  <process host='$dst' function='slave'>\n";
-       print OUTPUT "    <argument value='$count'/>\n";
-       print OUTPUT "  </process>\n";
-       $count++;
-    }
-
-    print OUTPUT <<EOF;
-</platform>
-EOF
-    close(OUTPUT);
-}
-
-
-sub generate_random_deployment2{
-    my($host_list,$nflows,$filename)=@_;
-    my(%pairs);
-    my($nhost) = scalar(@$host_list);
-    my(%taken);
-
-    melange($host_list);
-    $nflows< $nhost/2 or die "Too much flows! I can't do it\n";
-    
-    open(OUTPUT,"> $filename");
-    foreach (0..$nflows-1) {
-       my($src)=shift(@$host_list);
-       my($dst)=shift(@$host_list);
-
-       $pairs{"$src $dst"}=1;
-    }
-    my($p);
-
-    my($count)=0;
-
-    print OUTPUT <<EOF;
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="2">
-EOF
-
-    foreach $p (keys %pairs) {
-       my($src,$dst)=split(/ /,$p);
-       print OUTPUT "  <process host='$src' function='master'>\n";
-       print OUTPUT "    <argument value='10000000'/>\n";
-       print OUTPUT "    <argument value='$dst'/>\n";
-       print OUTPUT "    <argument value='$count'/>\n";
-       print OUTPUT "  </process>\n";
-       print OUTPUT "  <process host='$dst' function='slave'>\n";
-       print OUTPUT "    <argument value='$count'/>\n";
-       print OUTPUT "  </process>\n";
-       $count++;
-    }
-
-    print OUTPUT <<EOF;
-</platform>
-EOF
-    close(OUTPUT);
-}
-
-sub main {
-    my($nodes,$edges,$interferences,$host_list,$count_interferences);
-
-    $#ARGV>=1 or die "Need a xml platform file and a number of flows!";
-    my($filename)=$ARGV[0];
-    my($nflows)=$ARGV[1];
-    $filename =~ s/\.xml$//g;
-    $filename =~ s/-p$//g;
-    
-    $host_list = read_file $ARGV[0];
-    generate_random_deployment2($host_list,$nflows,"$filename-d.xml");
-}
-
-main;
diff --git a/contrib/psg/Makefile b/contrib/psg/Makefile
deleted file mode 100644 (file)
index 43fc9dd..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-LIB_JARS= lib.jar
-
-all: compile doc
-
-compile:
-       mkdir -p classes
-       javac -sourcepath src -classpath $(LIB_JARS):../../simgrid.jar -d classes `find -L -name "*.java"`
-
-doc:
-       mkdir -p doc
-       javadoc -sourcepath src -classpath $(LIB_JARS):../../simgrid.jar -d doc psgsim
-
-test:
-       ./test.sh 
-
-clean: 
-       rm -rf classes doc outputs
-       
-# Help Target
-help:
-       @echo "The following are a valid targets for this Makefile:"
-       @echo "................ all (the default if no target is provided)"
-       @echo "................ compile"
-       @echo "................ doc"
-       @echo "................ test"
-       @echo "................ clean"
-       
diff --git a/contrib/psg/README.txt b/contrib/psg/README.txt
deleted file mode 100644 (file)
index 4435990..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-Mon Jan 26 16:00 CEST 2015
-This is version 1.0 of PeerSimGrid
-
-1) An overview
-2) Preliminaries
-3) Compile & Run 
-
---------------------------------------------------------------------------------------------
-1) An overview:
-PeerSimGrid (PSG) is an interface developed in Java and allows users to simulate 
-and execute their code under PeerSim or Simgrid simulator, using PeerSim implementation policy.
-       
-This archive is composed of:
-* the src/ directory containing the simulator source and examples
-* the configs/ directory containing example of configuration files
-* psg.jar, a java archive containing all libraries  
-
-
-2) Preliminaries:
-       Before using psg simulator, you need to make some changes in your configuration file:
-               * Replace the "UniformRandomTransport" transport protocol by "psgsim.PSGTransport".
-               * Replace the "simulation.endtime" by "simulation.duration"
-               * you can define your platform on the configuration file as:
-                       platform path/to/your/file.xml 
-       
-       
-3) Compile & Run:
-       In short, the way to compile and execute your code is: 
-               Compile it:                
-               $> make compile
-               
-               Test it (optional):
-               $> make test
-               This test execute two examples, (chord and edaggregation found in the example folder), under the two simulators
-               and compare their outputs.      
-               
-               Run it:
-               $> ./run.sh path/to/your/configuration_file 
-               For example: 
-                       $>./run.sh configs/chordPSG.txt 
-                       
-               For the documentation
-               $> make doc
-               
-               For the help command
-               $> make help
-               
-Note: For more informations please contact khaled.baati@gmail.com
\ No newline at end of file
diff --git a/contrib/psg/configs/bittorrent.txt b/contrib/psg/configs/bittorrent.txt
deleted file mode 100644 (file)
index 356b302..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#Config file for BitTorrent extension
-
-random.seed 1234567890
-simulation.endtime 1800000#6^8
-simulation.logtime 10^3
-OutputName bittorrent
-simulation.experiments 1
-
-network.size 30
-network.node peersim.core.GeneralNode
-
-protocol.urt UniformRandomTransport
-protocol.urt.mindelay 10
-protocol.urt.maxdelay 400
-
-#BE AWARE: the value "max_swarm_size" must be greater than
-#the value "peerset_size", since I have to be sure
-#that the space for the neighbor nodes is enough.
-
-protocol.bittorrent example.bittorrent.BitTorrent
-protocol.bittorrent.file_size 100
-protocol.bittorrent.max_swarm_size 80
-protocol.bittorrent.peerset_size 50
-protocol.bittorrent.duplicated_requests 1
-protocol.bittorrent.transport urt
-protocol.bittorrent.max_growth 20
-
-init.net example.bittorrent.NetworkInitializer
-init.net.protocol bittorrent
-init.net.transport urt
-init.net.newer_distr 80
-init.net.seeder_distr 15
-
-control.observer example.bittorrent.BTObserver
-control.observer.protocol bittorrent
-control.observer.step 10000
-
-control.dynamics example.bittorrent.NetworkDynamics
-control.dynamics.protocol bittorrent
-control.dynamics.newer_distr 60
-control.dynamics.minsize 20
-control.dynamics.tracker_can_die 1
-control.dynamics.step 100000
-control.dynamics.transport urt
-control.dynamics.add 0#5
-control.dynamics.remove 0#5
\ No newline at end of file
diff --git a/contrib/psg/configs/bittorrentPSG.txt b/contrib/psg/configs/bittorrentPSG.txt
deleted file mode 100644 (file)
index 647ccb4..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#Config file for BitTorrent extension
-OutputName bittorrent
-platform platforms/psg.xml
-unit ms
-random.seed 1234567890
-simulation.duration 1800000
-simulation.logtime 10^3
-
-simulation.experiments 1
-
-network.size 40
-network.node peersim.core.GeneralNode
-
-protocol.urt psgsim.PSGTransport
-protocol.urt.mindelay 0#10
-protocol.urt.maxdelay 0#400
-
-#BE AWARE: the value "max_swarm_size" must be greater than
-#the value "peerset_size", since I have to be sure
-#that the space for the neighbor nodes is enough.
-
-protocol.bittorrent example.bittorrent.BitTorrent
-protocol.bittorrent.file_size 100
-protocol.bittorrent.max_swarm_size 80
-protocol.bittorrent.peerset_size 50
-protocol.bittorrent.duplicated_requests 1
-protocol.bittorrent.transport urt
-protocol.bittorrent.max_growth 20
-
-init.net example.bittorrent.NetworkInitializer
-init.net.protocol bittorrent
-init.net.transport urt
-init.net.newer_distr 80
-init.net.seeder_distr 15
-
-control.observer example.bittorrent.BTObserver
-control.observer.protocol bittorrent
-control.observer.step 10000
-
-control.dynamics example.bittorrent.NetworkDynamics
-control.dynamics.protocol bittorrent
-control.dynamics.newer_distr 60
-control.dynamics.minsize 20
-control.dynamics.tracker_can_die 1
-control.dynamics.step 100000
-control.dynamics.transport urt
-control.dynamics.add 0#5
-control.dynamics.remove 0#5
\ No newline at end of file
diff --git a/contrib/psg/configs/chord.txt b/contrib/psg/configs/chord.txt
deleted file mode 100644 (file)
index deeee8f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# PEERSIM CHORD\r
-\r
-random.seed 1234567890\r
-simulation.endtime 10^4\r
-simulation.logtime 10^6\r
-OutputName chord\r
-simulation.experiments 1\r
-\r
-network.size 40\r
-protocol.tr UniformRandomTransport\r
-{\r
-       mindelay 0\r
-       maxdelay 0\r
-}\r
-\r
-protocol.chord  example.chord.ChordProtocol\r
-{\r
-       transport tr\r
-}\r
-\r
-control.traffic example.chord.TrafficGenerator\r
-{\r
-       protocol chord\r
-       step 100\r
-}\r
-\r
-init.create example.chord.CreateNw \r
-{\r
-       protocol chord\r
-       idLength 128\r
-       succListSize 12\r
-}\r
-\r
-control.observer example.chord.MessageCounterObserver\r
-{\r
-       protocol chord\r
-       step 90000\r
-}\r
-\r
-#control.dnet DynamicNetwork\r
-#{\r
-#      #add 2\r
-#      add -2\r
-#      minsize 18#3000\r
-#      maxsize 60#7000\r
-#      step 100000\r
-#      init.0 example.chord.ChordInitializer\r
-#      {      \r
-#              protocol chord\r
-#      }\r
-#}
\ No newline at end of file
diff --git a/contrib/psg/configs/chordPSG.txt b/contrib/psg/configs/chordPSG.txt
deleted file mode 100644 (file)
index 7e67047..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-# PEERSIM CHORD\r
-\r
-random.seed 1234567890\r
-simulation.duration 10^4\r
-simulation.logtime 10^6\r
-unit sec\r
-OutputName chord\r
-platform platforms/psg.xml\r
-simulation.experiments 1\r
-\r
-network.size 40\r
-protocol.tr psgsim.PSGTransport\r
-{\r
-       mindelay 0\r
-       maxdelay 0\r
-}\r
-\r
-protocol.chord  example.chord.ChordProtocol\r
-{\r
-       transport tr\r
-}\r
-\r
-control.traffic example.chord.TrafficGenerator\r
-{\r
-       protocol chord\r
-       step 100\r
-}\r
-\r
-init.create example.chord.CreateNw \r
-{\r
-       protocol chord\r
-       idLength 128\r
-       succListSize 12\r
-}\r
-\r
-control.observer example.chord.MessageCounterObserver\r
-{\r
-       protocol chord\r
-       step 90000\r
-}\r
-\r
-\r
-#control.dnet DynamicNetwork\r
-#{\r
-#      #add 2\r
-#      add -2\r
-#      minsize 18#3000\r
-#      maxsize 60#7000\r
-#      step 100000\r
-#      init.0 example.chord.ChordInitializer\r
-#      {      \r
-#              protocol chord\r
-#      }\r
-#}\r
diff --git a/contrib/psg/configs/edaggregation.txt b/contrib/psg/configs/edaggregation.txt
deleted file mode 100644 (file)
index d3aec12..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# network size
-SIZE 50
-OutputName edaggregation
-
-# parameters of periodic execution
-CYCLES 100
-CYCLE SIZE*100
-
-# parameters of message transfer
-# delay values here are relative to cycle length, in percentage,
-# eg 50 means half the cycle length, 200 twice the cycle length, etc.
-MINDELAY 0
-MAXDELAY 0
-# drop is a probability, 0<=DROP<=1
-DROP 0
-
-random.seed 1234567890
-network.size SIZE
-simulation.endtime CYCLE*CYCLES
-simulation.logtime CYCLE
-
-################### protocols ===========================
-
-protocol.link peersim.core.IdleProtocol
-
-protocol.avg example.edaggregation.AverageED
-protocol.avg.linkable link
-protocol.avg.step CYCLE
-protocol.avg.transport tr
-
-protocol.tr UnreliableTransport
-protocol.tr.transport urt
-protocol.tr.drop DROP
-
-protocol.urt UniformRandomTransport
-protocol.urt.mindelay (CYCLE*MINDELAY)/100
-protocol.urt.maxdelay (CYCLE*MAXDELAY)/100
-################### initialization ======================
-
-init.rndlink WireKOut
-init.rndlink.k 20
-init.rndlink.protocol link
-
-init.vals LinearDistribution
-init.vals.protocol avg
-init.vals.max SIZE
-init.vals.min 1
-
-init.sch CDScheduler
-init.sch.protocol avg
-init.sch.randstart
-
-################ control ==============================
-
-control.0 SingleValueObserver
-control.0.protocol avg
-control.0.step CYCLE
diff --git a/contrib/psg/configs/edaggregationPSG.txt b/contrib/psg/configs/edaggregationPSG.txt
deleted file mode 100644 (file)
index 8510e90..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-# network size
-SIZE 50
-OutputName edaggregation
-platform platforms/psg.xml
-unit sec
-# parameters of periodic execution
-CYCLES 100
-CYCLE SIZE*100
-# parameters of message transfer
-# delay values here are relative to cycle length, in percentage,
-# eg 50 means half the cycle length, 200 twice the cycle length, etc.
-MINDELAY 0
-MAXDELAY 0
-# drop is a probability, 0<=DROP<=1
-DROP 0
-
-random.seed 1234567890
-network.size SIZE
-simulation.duration CYCLE*CYCLES
-simulation.logtime CYCLE
-
-################### protocols ===========================
-
-protocol.link peersim.core.IdleProtocol
-
-protocol.avg example.edaggregation.AverageED
-protocol.avg.linkable link
-protocol.avg.step CYCLE
-protocol.avg.transport tr
-
-protocol.tr UnreliableTransport
-protocol.tr.transport urt
-protocol.tr.drop DROP
-
-protocol.urt psgsim.PSGTransport
-protocol.urt.mindelay (CYCLE*MINDELAY)/100
-protocol.urt.maxdelay (CYCLE*MAXDELAY)/100
-################### initialization ======================
-
-init.rndlink WireKOut
-init.rndlink.k 20
-init.rndlink.protocol link
-
-init.vals LinearDistribution
-init.vals.protocol avg
-init.vals.max SIZE
-init.vals.min 1
-
-init.sch CDScheduler
-init.sch.protocol avg
-init.sch.randstart
-
-################ control ==============================
-
-control.0 SingleValueObserver
-control.0.protocol avg
-control.0.step CYCLE
diff --git a/contrib/psg/configs/symphony.txt b/contrib/psg/configs/symphony.txt
deleted file mode 100644 (file)
index fb5c778..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-# ::::::::::::::::::::::::::::::::::::::::::::::::::::::\r
-# :: Symphony Default Configuration\r
-# ::::::::::::::::::::::::::::::::::::::::::::::::::::::\r
-\r
-# network size\r
-SIZE 50\r
-\r
-# parameters of periodic execution\r
-CYCLES 100\r
-CYCLE SIZE/2\r
-OutputName symphony\r
-\r
-# parameters of message transfer\r
-# delay values here are relative to cycle length, in percentage,\r
-# eg 50 means half the cycle length, 200 twice the cycle length, etc.\r
-MINDELAY 0\r
-MAXDELAY 0\r
-\r
-random.seed 1234567890\r
-network.size SIZE\r
-simulation.experiments 1\r
-simulation.endtime 2000#CYCLE*CYCLES\r
-simulation.logtime CYCLE\r
-\r
-################### transports ===========================\r
-\r
-protocol.tr UniformRandomTransport \r
-{\r
-       mindelay (CYCLE*MINDELAY)/100\r
-       maxdelay (CYCLE*MAXDELAY)/100\r
-}\r
-\r
-################### protocols ===========================\r
-\r
-order.protocol link networkestimator symphony symphonynetworkmanager\r
-\r
-protocol.link peersim.core.IdleProtocol\r
-\r
-protocol.symphony example.symphony.SymphonyProtocol\r
-{\r
-       linkable link\r
-       transport tr\r
-       shortlink 4\r
-       # if commented means: longlink log(n)\r
-       #longlink 4\r
-       routing unidirectional\r
-       lookahead off\r
-}\r
-\r
-#protocol.networkestimator example.symphony.SimpleNetworkSizeEstimatorProtocol\r
-\r
-protocol.networkestimator example.symphony.SymphonyEstimationProtocol\r
-{\r
-       symphony symphony\r
-       # if commented means: s log(n)\r
-       #s 3\r
-}\r
-\r
-protocol.symphonynetworkmanager example.symphony.SymphonyNetworkManager\r
-{\r
-       symphony symphony\r
-       transport tr\r
-       networkestimator networkestimator\r
-       attempts 3\r
-       nTimeout 5\r
-       relinking on\r
-       relinkingLowerBound 0.5\r
-       relinkingUpperBound 2.0\r
-       step 4*CYCLE #useless\r
-}\r
-\r
-################### initialization ======================\r
-\r
-order.init netbuild checknet\r
-\r
-init.netbuild example.symphony.SymphonyNetworkBuilder\r
-{\r
-       symphony symphony\r
-       createLongLinks true\r
-       attempts 5\r
-}\r
-\r
-init.checknet example.symphony.SymphonyNetworkChecker\r
-{\r
-       symphony symphony\r
-       networkestimator networkestimator\r
-}\r
-\r
-################ control ==============================\r
-\r
-order.control sch checknet randomroutetest ringroutetest leavetest dnet estimationtest statistics\r
-\r
-control.randomroutetest example.symphony.RandomRouteTest\r
-{\r
-       symphony symphony\r
-       step CYCLE\r
-}\r
-\r
-control.ringroutetest example.symphony.RingRouteTest\r
-{\r
-       symphony symphony\r
-       startnode 0\r
-       step CYCLE\r
-}\r
-\r
-control.sch CDScheduler\r
-{\r
-       protocol symphonynetworkmanager\r
-       step CYCLE*2\r
-       randstart\r
-}\r
-\r
-control.checknet example.symphony.SymphonyNetworkChecker\r
-{\r
-       symphony symphony\r
-       networkestimator networkestimator\r
-       step CYCLE\r
-}\r
-\r
-control.dnet peersim.dynamics.DynamicNetwork\r
-{\r
-       add 0\r
-       maxsize 50\r
-       minsize SIZE/2\r
-       step CYCLE*2\r
-       init.0 example.symphony.SymphonyNodeInizializer\r
-       {\r
-               symphonynetworkmanager symphonynetworkmanager\r
-               symphony symphony\r
-               bootstrapnode 0\r
-       }\r
-}\r
-\r
-control.leavetest example.symphony.LeaveTest\r
-{\r
-       symphonynetworkmanager symphonynetworkmanager\r
-       n 1\r
-       minsizeOnline SIZE-1\r
-       waitTargetSizeToStart 2*SIZE\r
-       step CYCLE*2\r
-}\r
-\r
-control.statistics example.symphony.SymphonyStatistics\r
-{\r
-       symphony symphony\r
-       step (CYCLE*CYCLES)-1\r
-}\r
-\r
-control.estimationtest example.symphony.test.NetworkEstimationTest\r
-{\r
-       symphony symphony\r
-       symphonynetworkmanager symphonynetworkmanager\r
-       step CYCLE*4\r
-}
\ No newline at end of file
diff --git a/contrib/psg/configs/symphonyPSG.txt b/contrib/psg/configs/symphonyPSG.txt
deleted file mode 100644 (file)
index 20b7dce..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-# ::::::::::::::::::::::::::::::::::::::::::::::::::::::\r
-# :: Symphony Default Configuration\r
-# ::::::::::::::::::::::::::::::::::::::::::::::::::::::\r
-\r
-# network size\r
-SIZE 50\r
-unit sec\r
-# parameters of periodic execution\r
-CYCLES 100\r
-CYCLE SIZE/2\r
-OutputName symphony\r
-platform platforms/psg.xml\r
-\r
-# parameters of message transfer\r
-# delay values here are relative to cycle length, in percentage,\r
-# eg 50 means half the cycle length, 200 twice the cycle length, etc.\r
-MINDELAY 0\r
-MAXDELAY 0\r
-\r
-random.seed 1234567890\r
-network.size SIZE\r
-simulation.experiments 1\r
-simulation.duration 2000#CYCLE*CYCLES\r
-simulation.logtime CYCLE\r
-\r
-################### transports ===========================\r
-\r
-protocol.tr psgsim.PSGTransport \r
-{\r
-       mindelay (CYCLE*MINDELAY)/100\r
-       maxdelay (CYCLE*MAXDELAY)/100\r
-}\r
-\r
-################### protocols ===========================\r
-\r
-order.protocol link networkestimator symphony symphonynetworkmanager\r
-\r
-protocol.link peersim.core.IdleProtocol\r
-\r
-protocol.symphony example.symphony.SymphonyProtocol\r
-{\r
-       linkable link\r
-       transport tr\r
-       shortlink 4\r
-       # if commented means: longlink log(n)\r
-       #longlink 4\r
-       routing unidirectional\r
-       lookahead off\r
-}\r
-\r
-#protocol.networkestimator example.symphony.SimpleNetworkSizeEstimatorProtocol\r
-\r
-protocol.networkestimator example.symphony.SymphonyEstimationProtocol\r
-{\r
-       symphony symphony\r
-       # if commented means: s log(n)\r
-       #s 3\r
-}\r
-\r
-protocol.symphonynetworkmanager example.symphony.SymphonyNetworkManager\r
-{\r
-       symphony symphony\r
-       transport tr\r
-       networkestimator networkestimator\r
-       attempts 3\r
-       nTimeout 5\r
-       relinking on\r
-       relinkingLowerBound 0.5\r
-       relinkingUpperBound 2.0\r
-       step 4*CYCLE #useless\r
-}\r
-\r
-################### initialization ======================\r
-\r
-order.init netbuild checknet\r
-\r
-init.netbuild example.symphony.SymphonyNetworkBuilder\r
-{\r
-       symphony symphony\r
-       createLongLinks true\r
-       attempts 5\r
-}\r
-\r
-init.checknet example.symphony.SymphonyNetworkChecker\r
-{\r
-       symphony symphony\r
-       networkestimator networkestimator\r
-}\r
-\r
-################ control ==============================\r
-\r
-order.control sch checknet randomroutetest ringroutetest leavetest dnet estimationtest statistics\r
-\r
-control.randomroutetest example.symphony.RandomRouteTest\r
-{\r
-       symphony symphony\r
-       step CYCLE\r
-}\r
-\r
-control.ringroutetest example.symphony.RingRouteTest\r
-{\r
-       symphony symphony\r
-       startnode 0\r
-       step CYCLE\r
-}\r
-\r
-control.sch CDScheduler\r
-{\r
-       protocol symphonynetworkmanager\r
-       step CYCLE*2\r
-       randstart\r
-}\r
-\r
-control.checknet example.symphony.SymphonyNetworkChecker\r
-{\r
-       symphony symphony\r
-       networkestimator networkestimator\r
-       step CYCLE\r
-}\r
-\r
-control.dnet peersim.dynamics.DynamicNetwork\r
-{\r
-       add 0\r
-       maxsize 50\r
-       minsize SIZE/2\r
-       step CYCLE*2\r
-       init.0 example.symphony.SymphonyNodeInizializer\r
-       {\r
-               symphonynetworkmanager symphonynetworkmanager\r
-               symphony symphony\r
-               bootstrapnode 0\r
-       }\r
-}\r
-\r
-control.leavetest example.symphony.LeaveTest\r
-{\r
-       symphonynetworkmanager symphonynetworkmanager\r
-       n 1\r
-       minsizeOnline SIZE-1\r
-       waitTargetSizeToStart 2*SIZE\r
-       step CYCLE*2\r
-}\r
-\r
-control.statistics example.symphony.SymphonyStatistics\r
-{\r
-       symphony symphony\r
-       step (CYCLE*CYCLES)-1\r
-}\r
-\r
-control.estimationtest example.symphony.test.NetworkEstimationTest\r
-{\r
-       symphony symphony\r
-       symphonynetworkmanager symphonynetworkmanager\r
-       step CYCLE*4\r
-}\r
diff --git a/contrib/psg/lib.jar b/contrib/psg/lib.jar
deleted file mode 100644 (file)
index 8fd65fa..0000000
Binary files a/contrib/psg/lib.jar and /dev/null differ
diff --git a/contrib/psg/platforms/psg.xml b/contrib/psg/platforms/psg.xml
deleted file mode 100644 (file)
index bdd2e19..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<!--             _________
-                |          |
-                |  router  |
-    ____________|__________|_____________ backbone
-      |   |   |              |     |   |       
-    l0|        l1| l2|           l97| l96 |   | l99
-      |   |   |   ........   |     |   |
-      |                                |
-    c-0.me                             c-99.me 
-
--->
-<platform version="3">
-<config>
-<prop id="network/latency_factor" value="1.0"/>
-</config>
-<AS  id="AS0"  routing="Full">
-  <cluster id="my_cluster_1" prefix="" suffix=""
-               radical="0-50000"       power="1Gf"  bw="200Mbps" lat="0ms"
-        bb_bw="200Mbps" bb_lat="0ms"/>
-</AS>
-</platform>
diff --git a/contrib/psg/run.sh b/contrib/psg/run.sh
deleted file mode 100755 (executable)
index baac2ee..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-if [ $(uname -m) = "i686" ]; then
-       eval ulimit -s 64
-else 
-       eval ulimit -s 128
-fi
-echo '------------- Start execution..';
-java -Xmx1024m -cp lib.jar:classes:../../simgrid.jar peersim.Simulator $1
-echo '------------- done -------------';
-exit 0
-
-
-
-
diff --git a/contrib/psg/src/example/bittorrent/BTObserver.java b/contrib/psg/src/example/bittorrent/BTObserver.java
deleted file mode 100644 (file)
index ddd38da..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * This {@link Control} provides a way to keep track of some
- * parameters of the BitTorrent network.
- */
- public class BTObserver implements Control {
-        
-       /**
-        *      The protocol to operate on.
-        *      @config
-        */
-       private static final String PAR_PROT="protocol";
-       
-       /**
-        *      Protocol identifier, obtained from config property
-        */
-       private final int pid;
-       
-       /**
-        *      The basic constructor that reads the configuration file.
-        *      @param prefix the configuration prefix for this class
-        */
-       public BTObserver(String prefix) {
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);
-       }
-       
-       /**
-        * Prints information about the BitTorrent network
-        * and the number of leechers and seeders.
-        * Please refer to the code comments for more details.
-        * @return always false
-        */
-       public boolean execute() {
-               IncrementalFreq nodeStatusStats = new IncrementalFreq();
-               IncrementalStats neighborStats = new IncrementalStats();
-               
-               int numberOfNodes = Network.size();
-               int numberOfCompletedPieces = 0;
-               
-               // cycles from 1, since the node 0 is the tracker
-               for (int i=1; i<numberOfNodes; ++i) {
-                       
-                       // stats on number of leechers and seeders in the network
-                       // and consequently also on number of completed files in the network
-                       nodeStatusStats.add(((BitTorrent)(Network.get(i).getProtocol(pid))).getPeerStatus());
-                       
-                       // stats on number of neighbors per peer
-                       neighborStats.add(((BitTorrent)(Network.get(i).getProtocol(pid))).getNNodes());
-               }
-               
-               // number of the pieces of the file, equal for every node, here 1 is chosen,
-               // since 1 is the first "normal" node (0 is the tracker)
-               int numberOfPieces = ((BitTorrent)(Network.get(1).getProtocol(pid))).nPieces;
-       
-               for (int i=1; i<numberOfNodes; ++i) {
-                       numberOfCompletedPieces = 0;
-                       
-                       // discovers the status of the current peer (leecher or seeder)
-                       int ps = ((BitTorrent)(Network.get(i).getProtocol(pid))).getPeerStatus();
-                       String peerStatus;
-                       if (ps==0) {
-                               peerStatus = "L"; //leecher
-                       }
-                       else {
-                               peerStatus = "S"; //seeder
-                       }
-                       
-                       
-                       if (Network.get(i)!=null) {
-                               
-                               // counts the number of completed pieces for the i-th node
-                               for (int j=0; j<numberOfPieces; j++) {
-                                       if ( ((BitTorrent)(Network.get(i).getProtocol(pid))).getFileStatus()[j] == 16) {
-                                               numberOfCompletedPieces++;
-                                       }
-                               }
-                               
-                               /*
-                                * Put here the output lines of the Observer. An example is provided with
-                                * basic information and stats.
-                                * CommonState.getTime() is used to print out time references
-                                * (useful for graph plotting).
-                                */
-                               
-                               System.out.println("OBS: node " + ((BitTorrent)(Network.get(i).getProtocol(pid))).getThisNodeID() + "(" + peerStatus + ")" + "\t pieces completed: " + numberOfCompletedPieces + "\t \t down: " + ((BitTorrent)(Network.get(i).getProtocol(pid))).nPiecesDown + "\t up: " + ((BitTorrent)(Network.get(i).getProtocol(pid))).nPiecesUp + " time: " + CommonState.getTime());
-                               //System.out.println("[OBS] t " + CommonState.getTime() + "\t pc " + numberOfCompletedPieces + "\t n " + ((BitTorrent)(Network.get(i).getProtocol(pid))).getThisNodeID());
-                               //System.out.println( CommonState.getTime() + "\t" + numberOfCompletedPieces + "\t" + ((BitTorrent)(Network.get(i).getProtocol(pid))).getThisNodeID());
-
-                       }
-                       else {
-                               //System.out.println("[OBS] t " + CommonState.getTime() + "\t pc " + "0" + "\t n " + "0");
-                       }
-               
-               }
-               
-               // prints the frequency of 0 (leechers) and 1 (seeders)
-               nodeStatusStats.printAll(System.out);
-               
-               // prints the average number of neighbors per peer
-               System.out.println("Avg number of neighbors per peer: " + neighborStats.getAverage());
-               
-               return false;
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/BitTorrent.java b/contrib/psg/src/example/bittorrent/BitTorrent.java
deleted file mode 100644 (file)
index 1604a4d..0000000
+++ /dev/null
@@ -1,1989 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-import peersim.config.*;
-import peersim.edsim.*;
-import peersim.transport.*;
-
-/**
- *     This is the class that implements the BitTorrent module for Peersim
- */
-public class BitTorrent implements EDProtocol {
-       /**
-        *      The size in Megabytes of the file being shared.
-        *      @config
-        */
-       private static final String PAR_SIZE="file_size";
-       /**
-        *      The Transport used by the the protocol.
-        *      @config
-        */
-       private static final String PAR_TRANSPORT="transport";
-       /**
-        *      The maximum number of neighbor that a node can have. 
-        *      @config
-        */
-       private static final String PAR_SWARM="max_swarm_size";
-       /**
-        *      The maximum number of peers returned by the tracker when a new
-        *      set of peers is requested through a <tt>TRACKER</tt> message.
-        *      @config
-        */
-       private static final String PAR_PEERSET_SIZE="peerset_size";
-       /**
-        *      Defines how much the network can grow with respect to the <tt>network.size</tt> 
-        *  when {@link NetworkDynamics} is used.
-        *      @config
-        */
-       private static final String PAR_MAX_GROWTH="max_growth";
-       /**
-        *      Is the number of requests of the same block sent to different peers.
-        *      @config
-        */
-       private static final String PAR_DUP_REQ = "duplicated_requests";
-       
-       /**
-        *      KEEP_ALIVE message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int KEEP_ALIVE = 1;
-       
-       /**
-        *      CHOKE message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int CHOKE = 2;
-       
-       /**
-        *      UNCHOKE message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int UNCHOKE = 3;
-       
-       /**
-        *      INTERESTED message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int INTERESTED = 4;
-       
-       /**
-        *      NOT_INTERESTED message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int NOT_INTERESTED = 5;
-       
-       /**
-        *      HAVE message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int HAVE = 6;
-       
-       /**
-        *      BITFIELD message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int BITFIELD = 7;
-       
-       /**
-        *      REQUEST message.
-        *      @see SimpleEvent#type "Event types"
-        */
-       private static final int REQUEST = 8;
-       
-       /**
-        *      PIECE message.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int PIECE = 9;
-
-       /**
-        *      CANCEL message.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int CANCEL = 10;
-       
-       /**
-        *      TRACKER message.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int TRACKER = 11;
-       
-       /**
-        *      PEERSET message.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int PEERSET = 12;
-       
-       /**
-        *      CHOKE_TIME event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int CHOKE_TIME = 13;
-       
-       /**
-        *      OPTUNCHK_TIME event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int OPTUNCHK_TIME = 14;
-       
-       /**
-        *      ANTISNUB_TIME event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int ANTISNUB_TIME = 15;
-       
-       /**
-        *      CHECKALIVE_TIME event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int CHECKALIVE_TIME = 16;
-       
-       /**
-        *      TRACKERALIVE_TIME event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int TRACKERALIVE_TIME = 17;
-       
-       /**
-        *      DOWNLOAD_COMPLETED event.
-        *      @see SimpleEvent#type "Event types"
-        */     
-       private static final int DOWNLOAD_COMPLETED = 18;
-
-       /**
-        *      The maxium connection speed of the local node.
-        */
-       int maxBandwidth;
-       
-       /**
-        *      Stores the neighbors ordered by ID.
-        *  @see Element
-        */
-       private example.bittorrent.Element byPeer[];
-       
-       /**
-        *      Contains the neighbors ordered by bandwidth as needed by the unchocking
-        *      algorithm.
-        */
-       private example.bittorrent.Element byBandwidth[];
-       
-       /**
-        *      The Neighbors list.
-        */
-       private Neighbor cache[];
-       
-       /**
-        *      Reference to the neighbors that unchocked the local node.
-        */
-       private boolean unchokedBy[];
-       
-       /**
-        *      Number of neighbors in the cache. When it decreases under 20, a new peerset
-        *      is requested to the tracker.
-        */
-       private int nNodes = 0;
-       
-       /**
-        *      Maximum number of nodes in the network.
-        */
-       private int nMaxNodes;
-       
-       /**
-        *      The status of the local peer. 0 means that the current peer is a leecher, 1 a seeder.
-        */ 
-       private int peerStatus;
-       
-       /**
-        *      Defines how much the network can grow with respect to the <tt>network.size</tt> 
-        *  when {@link NetworkDynamics} is used.
-        */
-       public int maxGrowth;
-       
-       /**
-        *      File status of the local node. Contains the blocks owned by the local node.
-        */
-       private int status[];
-       
-       /**
-        *      Current number of Bitfield request sent. It must be taken into account 
-        *      before sending another one.
-        */
-       private int nBitfieldSent = 0;
-       
-       /**
-        *      Current number of pieces in upload from the local peer.
-        */
-       public int nPiecesUp = 0;
-       /**
-        *      Current number of pieces in download to the local peer.
-        */
-       public int nPiecesDown = 0;
-       
-       /**
-        *      Current number of piece completed.
-        */
-       private int nPieceCompleted = 0;
-       
-       /**
-        *      Current downloading piece ID, the previous lastInterested piece.
-        */
-       int currentPiece = -1;
-       
-       /**
-        *      Used to compute the average download rates in choking algorithm. Stores the
-        *      number of <tt>CHOKE</tt> events.
-        */
-       int n_choke_time = 0;
-       
-       /**
-        *      Used to send the <tt>TRACKER</tt> message when the local node has 20 neighbors
-        *      for the first time.
-        */
-       boolean lock = false;
-       
-       /**
-        *      Number of peers interested to my pieces.
-        */
-       int numInterestedPeers = 0;
-       
-       /**
-        *      Last piece for which the local node sent an <tt>INTERESTED</tt> message.
-        */
-       int lastInterested = -1;
-       
-       /** 
-        *      The status of the current piece in download. Length 16, every time the local node
-        *      receives a PIECE message, it updates the corrisponding block's cell. The cell
-        *      contains the ID for that block of that piece. If an already owned
-        *      block is received this is discarded.
-        */
-       private int pieceStatus[];
-       
-       /**     
-        *      Length of the file. Stored as number of pieces (256KB each one).
-        */
-       int nPieces;
-       
-       /**
-        *      Contains the neighbors's status of the file. Every row represents a
-        *      node and every a cell has value O if the neighbor doesn't 
-        *      have the piece, 1 otherwise. It has {@link #swarmSize} rows and {@link #nPieces}
-        *      columns.
-        */
-       int [][]swarm;
-       
-       /**     
-        *      The summation of the swarm's rows. Calculated every time a {@link #BITFIELD} message
-        *      is received and updated every time HAVE message is received.
-        */
-       int rarestPieceSet[];
-       
-       /**
-        *      The five pending block requests.
-        */
-       int pendingRequest[];
-       
-       /**
-        *      The maximum swarm size (default is 80)
-        */
-       int swarmSize;
-       
-       /**
-        *      The size of the peerset. This is the number of "friends" nodes
-        *      sent from the tracker to each new node (default: 50)
-        */
-       int peersetSize;
-       
-       /**
-        * The ID of the current node
-        */
-       private long thisNodeID;
-       
-       /**
-     * Number of duplicated requests as specified in the configuration file.
-        *      @see BitTorrent#PAR_DUP_REQ
-        */
-       private int numberOfDuplicatedRequests;
-       
-       /**
-        *      The queue where the requests to serve are stored.
-        *      The default dimension of the queue is 20.
-        */
-       Queue requestToServe = null;
-       
-       /**
-        *      The queue where the out of sequence incoming pieces are stored
-        *      waiting for the right moment to be processed.
-     * The default dimension of the queue is 100.
-        */
-       Queue incomingPieces = null;
-       
-       /**
-        *      The Transport ID.
-        *      @see BitTorrent#PAR_TRANSPORT
-        */
-       int tid;
-       
-       /**
-        *      The reference to the tracker node. If equals to <tt>null</tt>, the local
-        *      node is the tracker.
-        */
-       private Node tracker = null;
-       
-       /**
-        *      The default constructor. Reads the configuration file and initializes the
-        *      configuration parameters.
-        *      @param prefix the component prefix declared in the configuration file
-        */
-       public BitTorrent(String prefix){ // Used for the tracker's protocol
-               tid = Configuration.getPid(prefix+"."+PAR_TRANSPORT);
-               nPieces = (int)((Configuration.getInt(prefix+"."+PAR_SIZE))*1000000/256000);
-               swarmSize = (int)Configuration.getInt(prefix+"."+PAR_SWARM);
-               peersetSize = (int)Configuration.getInt(prefix+"."+PAR_PEERSET_SIZE);
-               numberOfDuplicatedRequests = (int)Configuration.getInt(prefix+"."+PAR_DUP_REQ);
-               maxGrowth = (int)Configuration.getInt(prefix+"."+PAR_MAX_GROWTH);
-               nMaxNodes = Network.getCapacity()-1;
-       }
-       
-       /**
-        *      Gets the reference to the tracker node.
-        *      @return the reference to the tracker
-        */
-       public Node getTracker(){
-               return tracker;
-       }
-       
-       /**
-        *      Gets the number of neighbors currently stored in the cache of the local node.
-        *      @return the number of neighbors in the cache
-        */
-       public int getNNodes(){
-               return this.nNodes;
-       }
-       
-       /**
-        *      Sets the reference to the tracker node.
-        *      @param t the tracker node
-        */
-       public void setTracker(Node t){
-               tracker = t;
-       }
-       
-       /**
-        *      Sets the ID of the local node.
-        *      @param id the ID of the node
-        */
-       public void setThisNodeID(long id) {
-               this.thisNodeID = id;
-       }
-       
-       /**
-        *      Gets the ID of the local node.
-        *      @return the ID of the local node
-        */
-       public long getThisNodeID(){
-               return this.thisNodeID;
-       }
-       
-       /**
-        *      Gets the file status of the local node.
-        *      @return the file status of the local node
-        */
-       public int[] getFileStatus(){
-               return this.status;
-       }
-       
-       /**
-        *      Initializes the tracker node. This method
-        *      only performs the initialization of the tracker's cache.
-        */
-       public void initializeTracker() {
-               cache = new Neighbor[nMaxNodes+maxGrowth];
-               for(int i=0; i<nMaxNodes+maxGrowth; i++){
-                       cache[i]= new Neighbor();
-               }
-       }
-       
-       /**
-        *      <p>Checks the number of neighbors and if it is equal to 20
-        *      sends a TRACKER messages to the tracker, asking for a new
-        *      peer set.</p>
-        *
-        *      <p>This method *must* be called after every call of {@link #removeNeighbor}
-        *      in {@link #processEvent}.
-        *      </p>
-        */
-       private void processNeighborListSize(Node node, int pid) {
-               if (nNodes==20) {
-                       Object ev;
-                       long latency;
-                       ev = new SimpleMsg(TRACKER, node);
-                       Node tracker = ((BitTorrent)node.getProtocol(pid)).tracker;
-                       if(tracker != null){
-//                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, tracker);
-//                             EDSimulator.add(latency,ev,tracker,pid);
-                               ((Transport) node.getProtocol(tid)).send(node, tracker, ev, pid);
-                       }
-               }
-       }
-       
-       /**
-        *      The standard method that processes incoming events.
-        *      @param node reference to the local node for which the event is going to be processed
-        *      @param pid BitTorrent's protocol id
-        *      @param event the event to process
-        */
-       public void processEvent(Node node, int pid, Object event){
-               
-               Object ev;
-               long latency;
-               switch(((SimpleEvent)event).getType()){
-                       
-                       case KEEP_ALIVE: // 1
-                       {
-                               Node sender = ((IntMsg)event).getSender();
-                               int isResponse = ((IntMsg)event).getInt();
-                               //System.out.println("process, keep_alive: sender is "+sender.getID()+", local is "+node.getID());
-                               Element e = search(sender.getID());
-                               if(e!= null){ //if I know the sender
-                                       cache[e.peer].isAlive();
-                                       if(isResponse==0 && alive(sender)){
-                                               Object msg = new IntMsg(KEEP_ALIVE,node,1,0);
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, sender);
-//                                             EDSimulator.add(latency,msg,sender,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node, sender, msg, pid);
-                                               cache[e.peer].justSent();
-                                       }
-                               }
-                               else{
-                                       System.err.println("despite it should never happen, it happened");
-                                       ev = new BitfieldMsg(BITFIELD, true, false, node, status, nPieces);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);                                 
-                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                       nBitfieldSent++;
-                               }
-                               
-                       };break;
-                               
-                       case CHOKE: // 2, CHOKE message.
-                       {
-                               Node sender = ((SimpleMsg)event).getSender();
-                               //System.out.println("process, choke: sender is "+sender.getID()+", local is "+node.getID());
-                               Element e = search(sender.getID());
-                               if(e!= null){ //if I know the sender
-                                       cache[e.peer].isAlive();
-                                       unchokedBy[e.peer]= false; // I'm choked by it
-                               }
-                               else{
-                                       System.err.println("despite it should never happen, it happened");
-                                       ev = new BitfieldMsg(BITFIELD, true, false, node, status, nPieces);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                       nBitfieldSent++;
-                               }
-                       };break;
-                               
-                       case UNCHOKE: // 3, UNCHOKE message.
-                       {                       
-                               Node sender = ((SimpleMsg)event).getSender();
-                               //System.out.println("process, unchoke: sender is "+sender.getID()+", local is "+node.getID());
-                               Element e = search(sender.getID());
-                               if(e != null){ // If I know the sender
-                                       int senderIndex = e.peer;
-                                       cache[senderIndex].isAlive();
-                                       /* I send to it some of the pending requests not yet satisfied. */
-                                       int t = numberOfDuplicatedRequests;
-                                       for(int i=4;i>=0 && t>0;i--){
-                                               if(pendingRequest[i]==-1)
-                                                       break;
-                                               if(alive(cache[senderIndex].node) && swarm[senderIndex][decode(pendingRequest[i],0)]==1){ //If the sender has that piece
-                                                       ev = new IntMsg(REQUEST, node,pendingRequest[i],0);
-//                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                                     EDSimulator.add(latency,ev, sender,pid);
-                                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                                       cache[senderIndex].justSent();
-                                               }
-                                               if(!alive(cache[senderIndex].node)){
-                                                       System.out.println("unchoke1 rm neigh "+ cache[i].node.getID() );
-                                                       removeNeighbor(cache[senderIndex].node);
-                                                       processNeighborListSize(node,pid);
-                                                       return;
-                                               }
-                                               t--;
-                                       }
-                                       // I request missing blocks to fill the queue
-                                       int block = getBlock();
-                                       int piece;
-                                       while(block != -2){ //while still available request to send
-                                               if(block < 0){ // No more block to request for the current piece 
-                                                       piece = getPiece();
-                                                       if(piece == -1){ // no more piece to request
-                                                               break;
-                                                       }
-                                                       for(int j=0; j<swarmSize; j++){// send the interested message to those  
-                                                                                                       // nodes which have that piece
-                                                               lastInterested = piece;
-                                                               if(alive(cache[j].node) && swarm[j][piece]==1){                                                                 
-                                                                       ev = new IntMsg(INTERESTED, node, lastInterested,0);
-//                                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[j].node);
-//                                                                     EDSimulator.add(latency,ev,cache[j].node,pid);  
-                                                                       ((Transport) node.getProtocol(tid)).send(node, cache[j].node, ev, pid);
-                                                                       cache[j].justSent();
-                                                               }
-                                                               
-                                                               if(!alive(cache[j].node)){
-                                                                       //System.out.println("unchoke2 rm neigh "+ cache[j].node.getID() );
-                                                                       removeNeighbor(cache[j].node);
-                                                                       processNeighborListSize(node,pid);
-                                                               }
-                                                       }
-                                                       block = getBlock();
-                                               }
-                                               else{ // block value referred to a real block
-                                                       if(alive(cache[senderIndex].node) && swarm[senderIndex][decode(block,0)]==1 && addRequest(block)){ // The sender has that block
-                                                               ev = new IntMsg(REQUEST, node, block,0);
-//                                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                                             EDSimulator.add(latency,ev,sender,pid);
-                                                               ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-
-                                                               cache[senderIndex].justSent();
-                                                       }
-                                                       else{
-                                                               if(!alive(cache[senderIndex].node)){
-                                                                       System.out.println("unchoke3 rm neigh "+ cache[senderIndex].node.getID() );
-                                                                       removeNeighbor(cache[senderIndex].node);
-                                                                       processNeighborListSize(node,pid);
-                                                               }
-                                                               return;
-                                                       }
-                                                       block = getBlock();
-                                               }
-                                       }
-                                       unchokedBy[senderIndex] = true; // I add the sender to the list
-                               }
-                               else // It should never happen.
-                               {
-                                       System.err.println("despite it should never happen, it happened");
-                                       for(int i=0; i<swarmSize; i++)
-                                               if(cache[i].node !=null)
-                                                       System.err.println(cache[i].node.getID());
-                                       ev = new BitfieldMsg(BITFIELD, true, false, node, status, nPieces);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                       nBitfieldSent++;
-                               }
-                       };break;
-                               
-                       case INTERESTED: // 4, INTERESTED message.
-                       {
-                               numInterestedPeers++;
-                               Node sender = ((IntMsg)event).getSender();
-                               //System.out.println("process, interested: sender is "+sender.getID()+", local is "+node.getID());
-                               int value = ((IntMsg)event).getInt();
-                               Element e = search(sender.getID());
-                               if(e!=null){
-                                       cache[e.peer].isAlive();
-                                       cache[e.peer].interested = value;
-                               }
-                               else{
-                                       System.err.println("despite it should never happen, it happened");
-                                       ev = new BitfieldMsg(BITFIELD, true, false, node, status, nPieces);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                       nBitfieldSent++;
-                               }
-                               
-                       }; break;
-                               
-                       case NOT_INTERESTED: // 5, NOT_INTERESTED message.
-                       {
-                               numInterestedPeers--;
-                               Node sender = ((IntMsg)event).getSender();
-                               //System.out.println("process, not_interested: sender is "+sender.getID()+", local is "+node.getID());
-                               int value = ((IntMsg)event).getInt();
-                               Element e = search(sender.getID());
-                               if(e!=null){
-                                       cache[e.peer].isAlive();
-                                       if(cache[e.peer].interested == value)
-                                               cache[e.peer].interested = -1; // not interested
-                               }
-                       }; break;
-                               
-                       case HAVE: // 6, HAVE message.
-                       {               
-                               Node sender = ((IntMsg)event).getSender();
-                               //System.out.println("process, have: sender is "+sender.getID()+", local is "+node.getID());
-                               int piece = ((IntMsg)event).getInt();
-                               Element e = search(sender.getID());
-                               if(e!=null){
-                                       cache[e.peer].isAlive();
-                                       swarm[e.peer][piece]=1;
-                                       rarestPieceSet[piece]++;
-                                       boolean isSeeder = true;
-                                       for(int i=0; i<nPieces; i++){
-                                               isSeeder = isSeeder && (swarm[e.peer][i]==1);   
-                                       }
-                                       e.isSeeder = isSeeder;
-                               }
-                               else{
-                                       System.err.println("despite it should never happen, it happened");
-                                       ev = new BitfieldMsg(BITFIELD, true, false, node, status, nPieces);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                       nBitfieldSent++;
-                               }
-                       }; break;
-                               
-                       case BITFIELD: // 7, BITFIELD message
-                       {                       
-                               Node sender = ((BitfieldMsg)event).getSender();
-                               int []fileStatus = ((BitfieldMsg)event).getArray();
-                               /*Response with NACK*/
-                               if(!((BitfieldMsg)event).isRequest && !((BitfieldMsg)event).ack){
-                                       Element e = search(sender.getID());
-                                       if(e == null) // if is a response with nack that follows a request
-                                               nBitfieldSent--;
-                                       // otherwise is a response with ack that follows a duplicate
-                                       // insertion attempt
-                                       //System.out.println("process, bitfield_resp_nack: sender is "+sender.getID()+", local is "+node.getID());
-                                       return;
-                               }
-                               /*Request with NACK*/
-                               if(((BitfieldMsg)event).isRequest && !((BitfieldMsg)event).ack){
-                                       //System.out.println("process, bitfield_req_nack: sender is "+sender.getID()+", local is "+node.getID());
-                                       if(alive(sender)){
-                                               Element e = search(sender.getID());
-                                               ev = new BitfieldMsg(BITFIELD, false, true, node, status, nPieces); //response with ack
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                             EDSimulator.add(latency,ev,sender,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                               cache[e.peer].justSent();
-                                       }
-                               }
-                               /*Response with ACK*/
-                               if(!((BitfieldMsg)event).isRequest && ((BitfieldMsg)event).ack){
-                                       nBitfieldSent--;
-                                       //System.out.println("process, bitfield_resp_ack: sender is "+sender.getID()+", local is "+node.getID());
-                                       if(alive(sender)){
-                                               if(addNeighbor(sender)){
-                                                       Element e = search(sender.getID());
-                                                       cache[e.peer].isAlive();
-                                                       swarm[e.peer] = fileStatus;
-                                                       boolean isSeeder = true;
-                                                       for(int i=0; i<nPieces; i++){
-                                                               rarestPieceSet[i]+= fileStatus[i];
-                                                               isSeeder = isSeeder && (fileStatus[i]==1);
-                                                       }
-                                                       e.isSeeder = isSeeder;
-                                                       
-                                                       if(nNodes==10 && !lock){ // I begin to request pieces
-                                                               lock = true;
-                                                               int piece = getPiece();
-                                                               if(piece == -1)
-                                                                       return;
-                                                               lastInterested = piece;
-                                                               currentPiece = lastInterested;
-                                                               ev = new IntMsg(INTERESTED, node, lastInterested,0);
-                                                               for(int i=0; i<swarmSize; i++){// send the interested message to those  
-                                                                                                               // nodes which have that piece
-                                                                       if(alive(cache[i].node) && swarm[i][piece]==1){                                                                         
-//                                                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[i].node);
-//                                                                             EDSimulator.add(latency,ev,cache[i].node,pid);
-                                                                               ((Transport) node.getProtocol(tid)).send(node, cache[i].node, ev, pid);
-                                                                               cache[i].justSent();
-                                                                       }
-                                                               }
-                                                               
-                                                       }
-                                                       
-                                               }
-                                       }
-                                       else
-                                               System.out.println("Sender "+sender.getID()+" not alive");
-                               }
-                               /*Request with ACK*/
-                               if(((BitfieldMsg)event).isRequest && ((BitfieldMsg)event).ack){
-                                       //System.out.println("process, bitfield_req_ack: sender is "+sender.getID()+", local is "+node.getID());
-                                       if(alive(sender)){
-                                               if(addNeighbor(sender)){
-                                                       Element e = search(sender.getID()); 
-                                                       cache[e.peer].isAlive();
-                                                       swarm[e.peer] = fileStatus;
-                                                       boolean isSeeder = true;
-                                                       for(int i=0; i<nPieces; i++){
-                                                               rarestPieceSet[i]+= fileStatus[i]; // I update the rarestPieceSet with the pieces of the new node
-                                                               isSeeder = isSeeder && (fileStatus[i]==1); // I check if the new node is a seeder
-                                                       }
-                                                       e.isSeeder = isSeeder;
-                                                       ev = new BitfieldMsg(BITFIELD, false, true, node, status, nPieces); //response with ack
-//                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                                     EDSimulator.add(latency,ev,sender,pid);
-                                                       ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                                       cache[e.peer].justSent();
-                                                       if(nNodes==10 && !lock){ // I begin to request pieces
-                                                               int piece = getPiece();
-                                                               if(piece == -1)
-                                                                       return;
-                                                               lastInterested = piece;
-                                                               currentPiece = lastInterested;
-                                                               ev = new IntMsg(INTERESTED, node, lastInterested,0);
-                                                               for(int i=0; i<swarmSize; i++){// send the interested message to those  
-                                                                                                               // nodes which have that piece
-                                                                       if(alive(cache[i].node) && swarm[i][piece]==1){
-//                                                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[i].node);
-//                                                                             EDSimulator.add(latency,ev,cache[i].node,pid);
-                                                                               ((Transport) node.getProtocol(tid)).send(node, cache[i].node, ev, pid);
-                                                                               cache[i].justSent();
-                                                                       }
-                                                               }
-                                                               
-                                                       }
-                                               }
-                                               else {
-                                                       Element e;
-                                                       if((e = search(sender.getID()))!=null){ // The sender was already in the cache
-                                                               cache[e.peer].isAlive();
-                                                               ev = new BitfieldMsg(BITFIELD, false, true, node, status, nPieces); //response with ack
-//                                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                                             EDSimulator.add(latency,ev,sender,pid);
-                                                               ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                                               cache[e.peer].justSent();
-                                                       }
-                                                       else{ // Was not be possible add the sender (nBitfield+nNodes > swarmSize)
-                                                               ev = new BitfieldMsg(BITFIELD, false, false, node, status, nPieces); //response with nack
-//                                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,sender);
-//                                                             EDSimulator.add(latency,ev,sender,pid);
-                                                               ((Transport) node.getProtocol(tid)).send(node, sender, ev, pid);
-                                                       }
-                                               }
-                                               
-                                       }
-                                       else
-                                               System.out.println("Sender "+sender.getID()+" not alive");
-                               }
-                       };break;
-                               
-                       case REQUEST: // 8, REQUEST message.
-                       {
-                               Object evnt;
-                               Node sender = ((IntMsg)event).getSender();
-                               int value = ((IntMsg)event).getInt();
-                               Element e;
-                               BitTorrent senderP;
-                               int remoteRate;
-                               int localRate;
-                               int bandwidth;
-                               int downloadTime;
-                               
-                               e = search(sender.getID());
-                               if (e==null)
-                                       return;
-                               cache[e.peer].isAlive();
-                               
-                               requestToServe.enqueue(value, sender);
-                                                               
-                               /*I serve the enqueued requests until 10 uploding pieces or an empty queue*/
-                               while(!requestToServe.empty() && nPiecesUp <10){ 
-                                       Request req = requestToServe.dequeue();
-                                       e = search(req.sender.getID());
-                                       if(e!=null && alive(req.sender)){
-//                                             ev = new IntMsg(PIECE, node, req.id);
-                                               nPiecesUp++;
-                                               e.valueUP++;
-                                               senderP = ((BitTorrent)req.sender.getProtocol(pid));
-                                               senderP.nPiecesDown++;
-                                               remoteRate = senderP.maxBandwidth/(senderP.nPiecesUp + senderP.nPiecesDown);
-                                               localRate = maxBandwidth/(nPiecesUp + nPiecesDown);
-                                               bandwidth = Math.min(remoteRate, localRate);
-                                               downloadTime = ((16*8)/(bandwidth))*1000; // in milliseconds
-                                               
-                                               ev = new IntMsg(PIECE, node, req.id, 16*8 * 1024);
-                                               ((Transport) node.getProtocol(tid)).send(node, req.sender, ev, pid);
-                                               
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,req.sender);
-//                                             EDSimulator.add(latency+downloadTime,ev,req.sender,pid);
-                                               cache[e.peer].justSent();
-                                               
-                                               /*I send to me an event to indicate that the download is completed.
-                                               This prevent that, when the receiver death occurres, my value nPiecesUp
-                                               doesn't decrease.*/
-                                               evnt = new SimpleMsg(DOWNLOAD_COMPLETED, req.sender);
-//                                             EDSimulator.add(latency+downloadTime,evnt,node,pid); 
-                                               ((Transport) node.getProtocol(tid)).send(node, node, evnt, pid);
-                                       }
-                               }
-                       }; break;
-                               
-                       case PIECE: // 9, PIECE message.
-                       {
-                               Node sender = ((IntMsg)event).getSender();
-                               /*      Set the correct value for the local uploading and remote 
-                               downloading number of pieces */
-                               nPiecesDown--;
-                               
-                               if(peerStatus == 1)// To save CPU cycles
-                                       return;
-                               //System.out.println("process, piece: sender is "+sender.getID()+", local is "+node.getID());
-                               Element e = search(sender.getID());
-                               
-                               if(e==null){ //I can't accept a piece not wait
-                                       return;
-                               }
-                               e.valueDOWN++;
-                               
-                               cache[e.peer].isAlive();
-                               
-                               int value = ((IntMsg)event).getInt();
-                               int piece = decode(value,0);
-                               int block = decode(value,1);
-                               /* If the block has not been already downloaded and it belongs to
-                                       the current downloading piece.*/
-                               if(piece == currentPiece && decode(pieceStatus[block],0)!= piece){
-                                       pieceStatus[block] = value;
-                                       status[piece]++;
-                                       removeRequest(value);                                   
-                                       requestNextBlocks(node, pid, e.peer);
-                                       
-                               }else{ // Either a future piece or an owned piece
-                                       if(piece!=currentPiece && status[piece]!=16){ // Piece not owned, will be considered later
-                                               incomingPieces.enqueue(value, sender);
-                                       }
-                                       
-                               }
-                               ev = new IntMsg(CANCEL, node, value,0);
-                               /* I send a CANCEL to all nodes to which I previously requested the block*/
-                               for(int i=0; i<swarmSize; i++){ 
-                                       if(alive(cache[i].node) && unchokedBy[i]==true && swarm[i][decode(block,0)]==1 && cache[i].node != sender){
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[i].node);
-//                                             EDSimulator.add(latency,ev,cache[i].node,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node, cache[i].node, ev, pid);
-                                               cache[i].justSent();
-                                       }
-                               }
-                               
-                               if(status[currentPiece]==16){ // if piece completed, I change the currentPiece to the next wanted                                       
-                                       nPieceCompleted++;
-                                       ev = new IntMsg(HAVE, node, currentPiece,0);
-                                       for(int i=0; i<swarmSize; i++){ // I send the HAVE for the piece
-                                               if(alive(cache[i].node)){
-//                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[i].node);
-//                                                     EDSimulator.add(latency,ev,cache[i].node,pid);
-                                                       ((Transport) node.getProtocol(tid)).send(node, cache[i].node, ev, pid);
-                                                       cache[i].justSent();
-                                               }
-                                               if(!alive(cache[i].node)){
-                                                       //System.out.println("piece3 rm neigh "+ cache[i].node.getID() );                                                       
-                                                       removeNeighbor(cache[i].node);
-                                                       processNeighborListSize(node,pid);
-                                               }
-                                       }
-                                       ev = new IntMsg(NOT_INTERESTED, node, currentPiece,0);
-                                       for(int i=0; i<swarmSize; i++){ // I send the NOT_INTERESTED to which peer I sent an INTERESTED
-                                               if(swarm[i][piece]==1 && alive(cache[i].node)){
-//                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[i].node);
-//                                                     EDSimulator.add(latency,ev,cache[i].node,pid);
-                                                       ((Transport) node.getProtocol(tid)).send(node, cache[i].node, ev, pid);
-                                                       cache[i].justSent();
-                                               }
-                                               if(!alive(cache[i].node)){
-                                                       //System.out.println("piece4 rm neigh "+ cache[i].node.getID() );                                                       
-                                                       removeNeighbor(cache[i].node);
-                                                       processNeighborListSize(node,pid);
-                                               }
-                                       }
-                                       if(nPieceCompleted == nPieces){
-                                               System.out.println("FILE COMPLETED for peer "+node.getID());
-                                               this.peerStatus = 1;    
-                                       }
-                                       
-                                       /*      I set the currentPiece to the lastInterested. Then I extract 
-                                               the queued received blocks
-                                               */
-                                       
-                                       currentPiece = lastInterested;
-                                       int m = incomingPieces.dim;
-                                       while(m > 0){ // I process the queue
-                                               m--;
-                                               Request temp = incomingPieces.dequeue();
-                                               int p = decode(temp.id,0); // piece id
-                                               int b = decode(temp.id,1); // block id
-                                               Element s = search(temp.sender.getID());
-                                               if(s==null) // if the node that sent the block in the queue is dead
-                                                       continue;
-                                               if(p==currentPiece && decode(pieceStatus[b],0)!= p){
-                                                       pieceStatus[b] = temp.id;
-                                                       status[p]++;
-                                                       removeRequest(temp.id);
-                                                       requestNextBlocks(node, pid, s.peer);
-                                               }
-                                               else{ // The piece not currently desired will be moved to the tail
-                                                       if(p!= currentPiece) // If not a duplicate block but belongs to another piece
-                                                               incomingPieces.enqueue(temp.id,temp.sender);
-                                                       else // duplicate block
-                                                               requestNextBlocks(node, pid, s.peer);
-                                               }
-                                       }
-                               }
-                       }; break;
-                               
-                       case CANCEL:
-                       {
-                               Node sender = ((IntMsg)event).getSender();
-                               int value = ((IntMsg)event).getInt();
-                               requestToServe.remove(sender, value);
-                       };break;
-                               
-                       case PEERSET: // PEERSET message
-                       {
-                               Node sender = ((PeerSetMsg)event).getSender();
-                               //System.out.println("process, peerset: sender is "+sender.getID()+", local is "+node.getID());
-                               Neighbor n[] = ((PeerSetMsg)event).getPeerSet();
-                               
-                               for(int i=0; i<peersetSize; i++){
-                                       if( n[i]!=null && alive(n[i].node) && search(n[i].node.getID())==null && nNodes+nBitfieldSent <swarmSize-2) {
-                                               ev = new BitfieldMsg(BITFIELD, true, true, node, status, nPieces);
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node,n[i].node);
-//                                             EDSimulator.add(latency,ev,n[i].node,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node, n[i].node, ev, pid);
-
-                                               nBitfieldSent++;
-                                               // Here I should call the Neighbor.justSent(), but here
-                                               // the node is not yet in the cache.
-                                       }
-                               }
-                       }; break;
-                               
-                       case TRACKER: // TRACKER message
-                       {
-                               
-                               int j=0;
-                               Node sender = ((SimpleMsg)event).getSender();
-                               //System.out.println("process, tracker: sender is "+sender.getID()+", local is "+node.getID());
-                               if(!alive(sender))
-                                       return;
-                               Neighbor tmp[] = new Neighbor[peersetSize];
-                               int k=0;
-                               if(nNodes <= peersetSize){
-                                       for(int i=0; i< nMaxNodes+maxGrowth; i++){
-                                               if(cache[i].node != null && cache[i].node.getID()!= sender.getID()){
-                                                       tmp[k]=cache[i];
-                                                       k++;
-                                               }
-                                       }
-                                       ev = new PeerSetMsg(PEERSET, tmp, node);
-//                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node, sender);
-//                                     EDSimulator.add(latency,ev,sender,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node,sender, ev, pid);
-                                       return;
-                               }
-                               
-                               while(j < peersetSize){
-                                       int i = CommonState.r.nextInt(nMaxNodes+maxGrowth);
-                                       for (int z=0; z<j; z++){
-                                               if(cache[i].node==null || tmp[z].node.getID() == cache[i].node.getID() || cache[i].node.getID() == sender.getID()){
-                                                       z=0;
-                                                       i= CommonState.r.nextInt(nMaxNodes+maxGrowth);
-                                               }
-                                       }
-                                       if(cache[i].node != null){
-                                               tmp[j] = cache[i];
-                                               j++;
-                                       }
-                               }
-                               ev = new PeerSetMsg(PEERSET, tmp, node);
-//                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, sender);
-//                             EDSimulator.add(latency,ev,sender,pid);
-                               ((Transport) node.getProtocol(tid)).send(node,sender, ev, pid);
-                       }; break;
-                               
-                       case CHOKE_TIME: //Every 10 secs.
-                       {       
-                               n_choke_time++;
-                               
-                               ev = new SimpleEvent(CHOKE_TIME);
-                               EDSimulator.add(10000,ev,node,pid);
-                               int j=0;
-                               /*I copy the interested nodes in the byBandwidth array*/
-                               for(int i=0;i< swarmSize && byPeer[i].peer != -1; i++){
-                                       if(cache[byPeer[i].peer].interested > 0){
-                                               byBandwidth[j]=byPeer[i]; //shallow copy
-                                               j++;
-                                       }
-                               }
-                               
-                               /*It ensures that in the next 20sec, if there are less nodes interested
-                                       than now, those in surplus will not be ordered. */
-                               for(;j<swarmSize;j++){
-                                       byBandwidth[j]=null;
-                               }
-                               sortByBandwidth();
-                               int optimistic = 3;
-                               int luckies[] = new int[3];
-                               try{ // It takes the first three neighbors
-                                       luckies[0] = byBandwidth[0].peer;
-                                       optimistic--;
-                                       luckies[1] = byBandwidth[1].peer;
-                                       optimistic--;
-                                       luckies[2] = byBandwidth[2].peer;
-                               }
-                               catch(NullPointerException e){ // If not enough peer in byBandwidth it chooses the other romdomly 
-                                       for(int z = optimistic; z>0;z--){
-                                               int lucky = CommonState.r.nextInt(nNodes);
-                                               while(cache[byPeer[lucky].peer].status ==1 && alive(cache[byPeer[lucky].peer].node) && 
-                                                         cache[byPeer[lucky].peer].interested == 0)// until the lucky peer is already unchoked or not interested
-                                                       lucky = CommonState.r.nextInt(nNodes);
-                                               luckies[3-z]= byPeer[lucky].peer;
-                                       }
-                               }
-                               for(int i=0; i<swarmSize; i++){ // I perform the chokes and the unchokes
-                                       if((i==luckies[0] || i==luckies[1] || i==luckies[2]) &&  alive(cache[i].node) && cache[i].status != 2){ //the unchokes
-                                               cache[i].status = 1;
-                                               ev = new SimpleMsg(UNCHOKE, node);
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, cache[i].node);
-//                                             EDSimulator.add(latency,ev,cache[i].node,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node,cache[i].node, ev, pid);
-                                               cache[i].justSent();
-                                               //System.out.println("average time, unchoked: "+cache[i].node.getID());
-                                       }
-                                       else{ // the chokes
-                                               if(alive(cache[i].node) && (cache[i].status == 1 || cache[i].status == 2)){
-                                                       cache[i].status = 0;
-                                                       ev = new SimpleMsg(CHOKE, node);
-//                                                     latency = ((Transport)node.getProtocol(tid)).getLatency(node, cache[i].node);
-//                                                     EDSimulator.add(latency,ev,cache[i].node,pid);
-                                                       ((Transport) node.getProtocol(tid)).send(node,cache[i].node, ev, pid);
-                                                       cache[i].justSent();
-                                               }
-                                       }
-                               }
-                               
-                               if(n_choke_time%2==0){ //every 20 secs. Used in computing the average download rates
-                                       for(int i=0; i<nNodes; i++){
-                                               if(this.peerStatus == 0){ // I'm a leeacher
-                                                       byPeer[i].head20 = byPeer[i].valueDOWN;
-                                               }
-                                               else{
-                                                       byPeer[i].head20 = byPeer[i].valueUP;
-                                               }
-                                       }
-                               }
-                       }; break;
-                               
-                       case OPTUNCHK_TIME:
-                       {
-                               
-                               //System.out.println("process, optunchk_time");
-                               
-                               ev = new SimpleEvent(OPTUNCHK_TIME);
-                               EDSimulator.add(30000,ev,node,pid);
-                               int lucky = CommonState.r.nextInt(nNodes);
-                               while(cache[byPeer[lucky].peer].status ==1)// until the lucky peer is already unchoked
-                                       lucky = CommonState.r.nextInt(nNodes);
-                               if(!alive(cache[byPeer[lucky].peer].node))
-                                       return;
-                               cache[byPeer[lucky].peer].status = 1;
-                               Object msg = new SimpleMsg(UNCHOKE,node);
-//                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, cache[byPeer[lucky].peer].node);
-//                             EDSimulator.add(latency,msg,cache[byPeer[lucky].peer].node,pid);
-                               ((Transport) node.getProtocol(tid)).send(node,cache[byPeer[lucky].peer].node, msg, pid);
-                               cache[byPeer[lucky].peer].justSent();
-                       }; break;
-                               
-                       case ANTISNUB_TIME:
-                       {
-                               if(this.peerStatus == 1) // I'm a seeder, I don't update the event
-                                       return;
-                               //System.out.println("process, antisnub_time");
-                               for(int i=0; i<nNodes; i++){
-                                       if(byPeer[i].valueDOWN >0 && (byPeer[i].valueDOWN - byPeer[i].head60)==0){// No blocks downloaded in 1 min
-                                               cache[byPeer[i].peer].status = 2; // I'm snubbed by it
-                                       }
-                                       byPeer[i].head60 = byPeer[i].valueDOWN;
-                               }
-                               ev = new SimpleEvent(ANTISNUB_TIME);
-                               EDSimulator.add(60000,ev,node,pid);
-                               long time = CommonState.getTime();
-                       }; break;
-                               
-                       case CHECKALIVE_TIME:
-                       {
-                               
-                               //System.out.println("process, checkalive_time");
-                               
-                               long now = CommonState.getTime();
-                               for(int i=0; i<swarmSize; i++){
-                                       /*If are at least 2 minutes (plus 1 sec of tolerance) that
-                                       I don't send anything to it.*/
-                                       if(alive(cache[i].node) && (cache[i].lastSent < (now-121000))){
-                                               Object msg = new IntMsg(KEEP_ALIVE,node,0,0);
-//                                             latency = ((Transport)node.getProtocol(tid)).getLatency(node, cache[i].node);
-//                                             EDSimulator.add(latency,msg,cache[i].node,pid);
-                                               ((Transport) node.getProtocol(tid)).send(node,cache[i].node, msg, pid);
-                                               cache[i].justSent();
-                                       }
-                                       /*If are at least 2 minutes (plus 1 sec of tolerance) that I don't
-                                       receive anything from it though I sent a keepalive 2 minutes ago*/
-                                       else{
-                                               if(cache[i].lastSeen <(now-121000) && cache[i].node != null && cache[i].lastSent < (now-121000)){
-                                                       System.out.println("process, checkalive_time, rm neigh " + cache[i].node.getID());
-                                                       if(cache[i].node.getIndex() != -1){
-                                                               System.out.println("This should never happen: I remove a node that is not effectively died");
-                                                       }
-                                                       removeNeighbor(cache[i].node);
-                                                       processNeighborListSize(node,pid);
-                                               }
-                                       }
-                               }
-                               ev = new SimpleEvent(CHECKALIVE_TIME);
-                               EDSimulator.add(120000,ev,node,pid);
-                       }; break;
-                               
-                       case TRACKERALIVE_TIME:
-                       {
-                               //System.out.println("process, trackeralive_time");
-                               if(alive(tracker)){
-                                       ev = new SimpleEvent(TRACKERALIVE_TIME);
-                                       EDSimulator.add(1800000,ev,node,pid);
-                               }
-                               else
-                                       tracker=null;
-                               
-                       }; break;
-                               
-                       case DOWNLOAD_COMPLETED:
-                       {
-                               nPiecesUp--;
-                       }; break;
-                               
-               }
-       }
-       
-       /**
-        *      Given a piece index and a block index it encodes them in an unique integer value.
-        *      @param piece the index of the piece to encode.
-        *      @param block the index of the block to encode.
-        *      @return the encoding of the piece and the block indexes.
-        */
-       private int encode(int piece, int block){
-               return (piece*100)+block;
-               
-       }
-       /** 
-        *      Returns either the piece or the block that contained in the <tt>value</tt> depending
-        *      on <tt>part</tt>: 0 means the piece value, 1 the block value.
-        *      @param value the ID of the block to decode.
-        *      @param part the information to extract from <tt>value</tt>. 0 means the piece index, 1 the block index.
-        *      @return the piece or the block index depending about the value of <tt>part</tt>
-        */
-       private int decode(int value, int part){
-               if (value==-1) // Not a true value to decode
-                       return -1;
-               if(part == 0) // I'm interested to the piece
-                       return value/100;
-               else // I'm interested to the block
-                       return value%100;
-       }
-       
-       /**
-        *      Used by {@link NodeInitializer#choosePieces(int, BitTorrent) NodeInitializer} to set 
-        *      the number of piece completed from the beginning in according with
-        *      the distribution in the configuration file.
-        *      @param number the number of piece completed
-        */
-       public void setCompleted(int number){
-               this.nPieceCompleted = number;
-       }
-       
-       /**
-        *      Sets the status (the set of blocks) of the file for the current node.
-        *  Note that a piece is considered <i>completed</i> if the number
-        *  of downloaded blocks is 16.
-        *  @param index The index of the piece
-        *  @param value Number of blocks downloaded for the piece index.
-        */
-       public void setStatus(int index, int value){
-               status[index]=value;
-       }
-       
-       /**
-        *      Sets the status of the local node.
-        *      @param status The status of the node: 1 means seeder, 0 leecher
-        */
-       public void setPeerStatus(int status){
-               this.peerStatus = status;
-       }
-       
-       /**
-        *      Gets the status of the local node.
-        *      @return The status of the local node: 1 means seeder, 0 leecher
-        */
-       public int getPeerStatus(){
-               return peerStatus;
-       }
-       
-       /**
-        *  Gets the number of blocks for a given piece owned by the local node.
-        *      @param index The index of the piece
-        *      @return Number of blocks downloaded for the piece index
-        */
-       public int getStatus(int index){
-               return status[index];   
-       }
-       
-       /**
-        *      Sets the maximum bandwdith for the local node.
-        *      @param value The value of bandwidth in Kbps
-        */
-       public void setBandwidth(int value){
-               maxBandwidth = value;
-       }
-       
-       /**
-        *      Checks if a node is still alive in the simulated network.
-        *      @param node The node to check
-        *      @return true if the node <tt>node</tt> is up, false otherwise
-        *      @see peersim.core.GeneralNode#isUp
-        */
-       public boolean alive(Node node){
-               if(node == null)
-                       return false;
-               else
-                       return node.isUp();
-       }
-               
-       /**     
-        *      Adds a neighbor to the cache of the local node.
-        *  The new neighbor is put in the first null position.
-        *      @param neighbor The neighbor node to add
-        *  @return <tt>false</tt> if the neighbor is already present in the cache (this can happen when the peer requests a
-        *      new peer set to the tracker an there is still this neighbor within) or no place is available.
-        *      Otherwise, returns true if the node is correctly added to the cache.
-        */
-       public boolean addNeighbor(Node neighbor){
-               if(search(neighbor.getID()) !=null){// if already exists
-               //      System.err.println("Node "+neighbor.getID() + " not added, already exist.");
-                       return false;
-               }
-               if(this.tracker == null){ // I'm in the tracker's BitTorrent protocol
-                       for(int i=0; i< nMaxNodes+maxGrowth; i++){
-                               if(cache[i].node == null){
-                                       cache[i].node = neighbor;
-                                       cache[i].status = 0; //chocked
-                                       cache[i].interested = -1; //not interested
-                                       this.nNodes++;
-                                       
-                                       //System.err.println("i: " + i +" nMaxNodes: " + nMaxNodes);
-                                       return true;
-                               }
-                       }
-               }
-               else{
-                       if((nNodes+nBitfieldSent) < swarmSize){
-                               //System.out.println("I'm the node " + this.thisNodeID + ", trying to add node "+neighbor.getID());
-                               for(int i=0; i<swarmSize; i++){
-                                       if(cache[i].node == null){
-                                               cache[i].node = neighbor;
-                                               cache[i].status = 0; //choked
-                                               cache[i].interested = -1; // not interested
-                                               byPeer[nNodes].peer = i;
-                                               byPeer[nNodes].ID = neighbor.getID();
-                                               sortByPeer();
-                                               this.nNodes++;
-                                               //System.out.println(neighbor.getID()+" added!");
-                                               return true;
-                                       }
-                               }
-                               System.out.println("Node not added, no places available");
-                       }
-               }
-               return false;
-       }
-       
-       /**
-        *      Removes a neighbor from the cache of the local node.
-        *      @param neighbor The node to remove
-        *      @return true if the node is correctly removed, false otherwise.
-     */
-       public boolean removeNeighbor(Node neighbor) {
-               
-               if (neighbor == null)
-                       return true;
-               
-               // this is the tracker's bittorrent protocol
-               if (this.tracker == null) {
-                       for (int i=0; i< (nMaxNodes+maxGrowth); i++) {
-                               
-                               // check the feasibility of the removal
-                               if ( (cache[i] != null) && (cache[i].node != null) &&
-                                        (cache[i].node.getID() == neighbor.getID()) ) {
-                                       cache[i].node = null;
-                                       this.nNodes--;
-                                       return true;
-                               }
-                       }
-                       return false;
-               }
-               // this is the bittorrent protocol of a peer
-               else {
-                       
-                       Element e = search(neighbor.getID());
-                       
-                       if (e != null) {
-                               for (int i=0; i<nPieces; i++) {
-                                       rarestPieceSet[i] -= swarm[e.peer][i];
-                                       swarm[e.peer][i] = 0;
-                               }
-                               
-                               cache[e.peer].node = null;
-                               cache[e.peer].status = 0;
-                               cache[e.peer].interested = -1;
-                               unchokedBy[e.peer] = false;
-                               this.nNodes--;
-                               e.peer = -1;
-                               e.ID = Integer.MAX_VALUE;
-                               e.valueUP = 0;
-                               e.valueDOWN = 0;
-                               e.head20 = 0;
-                               e.head60 = 0;
-                               sortByPeer();
-                               
-                               return true;
-                       }
-               }
-               return false;
-       }
-       
-       /**
-     * Adds a request to the pendingRequest queue.
-        *      @param block The requested block
-        *      @return true if the request has been successfully added to the queue, false otherwise
-        */
-       private boolean addRequest(int block){
-               int i=4;
-               while(i>=0 && pendingRequest[i]!=-1){
-                       i--;
-               }
-               if(i>=0){
-                       pendingRequest[i] = block;
-                       return true;
-               }
-               else { // It should never happen
-                          //System.err.println("pendingRequest queue full");
-                       return false;           
-               }
-       }
-       
-       /**
-        *      Removes the block with the given <tt>id</tt> from the {@link #pendingRequest} queue
-        *  and sorts the queue leaving the empty cell at the left.
-        *      @param id the id of the requested block
-        */
-       private void removeRequest(int id){
-               int i = 4;
-               for(; i>=0; i--){
-                       if(pendingRequest[i]==id)
-                               break;
-               }
-               for(; i>=0; i--){
-                       if(i==0)
-                               pendingRequest[i] = -1;
-                       else
-                               pendingRequest[i] = pendingRequest[i-1];
-               }
-       }
-       
-       /**
-        *      Requests new block until the {@link #pendingRequest} is full to the sender of the just received piece.
-        *      It calls {@link #getNewBlock(Node, int)} to implement the <i>strict priority</i> strategy. 
-        *      @param node the local node
-        *      @param pid the BitTorrent protocol id
-        *      @param sender the sender of the just received received piece. 
-        */
-       private void requestNextBlocks(Node node, int pid, int sender){
-               int block = getNewBlock(node, pid);
-               while(block != -2){
-                       if(unchokedBy[sender]==true && alive(cache[sender].node) && addRequest(block)){
-                               Object ev = new IntMsg(REQUEST, node, block,0);
-                               
-//                             long latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[sender].node);
-//                             EDSimulator.add(latency,ev,cache[sender].node,pid);
-                               
-                               ((Transport) node.getProtocol(tid)).send(node,cache[sender].node, ev, pid);
-                               cache[sender].justSent();
-                       }
-                       else{ // I cannot send request
-                               if(!alive(cache[sender].node) && cache[sender].node!=null){
-                                       System.out.println("piece2 rm neigh "+ cache[sender].node.getID() );
-                                       removeNeighbor(cache[sender].node);
-                                       processNeighborListSize(node,pid);
-                               }
-                               return;
-                       }
-                       block = getNewBlock(node, pid);
-               }
-       }
-       
-       /**
-        *      It returns the id of the next block to request. Sends <tt>INTERESTED</tt> if the new
-        *      block belongs to a new piece.
-        *      It uses {@link #getBlock()} to get the next block of a piece and calls {@link #getPiece()}
-        *      when all the blocks for the {@link #currentPiece} have been requested.
-        *      @param node the local node
-        *      @param pid the BitTorrent protocol id
-        *      @return -2 if no more places available in the <tt>pendingRequest</tt> queue;<br/>
-        *                      the value of the next block to request otherwise</p>
-        */
-       private int getNewBlock(Node node, int pid){
-               int block = getBlock();
-               if(block < 0){ // No more block to request for the current piece 
-                       
-                       if(block ==-2) // Pending request queue full
-                               return -2;
-                       
-                       int newPiece = getPiece();
-                       if(newPiece == -1){ // no more piece to request
-                               return -2;
-                       }
-                       
-                       lastInterested = newPiece;
-                       Object ev = new IntMsg(INTERESTED, node, lastInterested,0);
-                       
-                       for(int j=0; j<swarmSize; j++){// send the interested message to those  
-                                                                       // nodes which have that piece
-                               if(alive(cache[j].node) && swarm[j][newPiece]==1){
-//                                     long latency = ((Transport)node.getProtocol(tid)).getLatency(node,cache[j].node);
-//                                     EDSimulator.add(latency,ev,cache[j].node,pid);
-                                       ((Transport) node.getProtocol(tid)).send(node,cache[j].node, ev, pid);
-                                       cache[j].justSent();
-                               }
-                               if(!alive(cache[j].node)){
-                                       //System.out.println("piece1 rm neigh "+ cache[j].node.getID() );
-                                       
-                                       removeNeighbor(cache[j].node);
-                                       processNeighborListSize(node,pid);
-                               }
-                       }
-                       block = getBlock();
-                       return block;
-               }
-               else{
-                       // block value referred to a real block
-                       return block;
-               }
-       }
-       
-       /**
-        *      Returns the next block to request for the {@link #currentPiece}.
-        *      @return an index of a block of the <tt>currentPiece</tt> if there are still 
-        *                      available places in the {@link #pendingRequest} queue;<br/>
-        *                      -2 if the <tt>pendingRequest</tt> queue is full;<br/>
-        *                      -1 if no more blocks to request for the current piece. 
-        */
-       private int getBlock(){
-               int i=4;
-               while(i>=0 && pendingRequest[i]!=-1){ // i is the first empty position from the head
-                       i--;
-               }
-               if(i==-1){// No places in the pendingRequest available
-                                 //System.out.println("Pendig request queue full!");
-                       return -2;
-               }
-               int j;
-               //The queue is not empty & last requested block belongs to lastInterested piece 
-               if(i!=4 && decode(pendingRequest[i+1],0)==lastInterested)
-                       j=decode(pendingRequest[i+1],1)+1; // the block following the last requested
-               else // I don't know which is the next block, so I search it.
-                       j=0; 
-               /*      I search another block until the current has been already received. 
-                       *       If in pieceStatus at position j there is a block that belongs to
-                       *       lastInterested piece, means that the block j has been already
-                       *       received, otherwise I can request it.
-                       */
-               while(j<16 && decode(pieceStatus[j],0)==lastInterested){
-                       j++;
-               }
-               if(j==16) // No more block to request for lastInterested piece
-                       return -1;
-               return encode(lastInterested,j);
-       }
-       
-       /**
-        *      Returns the next correct piece to download. It choose the piece by using the
-        *      <i>random first</i> and <i>rarest first</i> policy. For the beginning 4 pieces
-        *      of a file the first one is used then the pieces are chosen using <i>rarest first</i>.
-        *      @see "Documentation about the BitTorrent module"
-        *      @return the next piece to download. If the whole file has been requested
-        *      -1 is returned.
-        */
-       private int getPiece(){
-               int piece = -1;
-               if(nPieceCompleted < 4){ //Uses random first piece
-                       piece = CommonState.r.nextInt(nPieces);
-                       while(status[piece]==16 || piece == currentPiece) // until the piece is owned
-                               piece = CommonState.r.nextInt(nPieces);
-                       return piece;
-               }
-               else{ //Uses rarest piece first
-                       int j=0;
-                       for(; j<nPieces; j++){ // I find the first not owned piece
-                               if(status[j]==0){
-                                       piece = j;
-                                       if(piece != lastInterested) // teoretically it works because
-                                                                                               // there should be only one interested 
-                                                                                               // piece not yet downloaded
-                                               break;
-                               }
-                       }
-                       if(piece==-1){ // Never entered in the previous 'if' statement; for all
-                                                  // pieces an has been sent
-                               return -1;
-                       }
-                       
-                       int rarestPieces[] = new int[nPieces-j]; // the pieces with the less number of occurences\
-                       rarestPieces[0] = j;
-                       int nValues = 1; // number of pieces less distributed in the network
-                       for(int i=j+1; i<nPieces; i++){ // Finds the rarest piece not owned
-                               if(rarestPieceSet[i]< rarestPieceSet[rarestPieces[0]] && status[i]==0){ // if strictly less than the current one
-                                       rarestPieces[0] = i; 
-                                       nValues = 1;
-                               }
-                               if(rarestPieceSet[i]==rarestPieceSet[rarestPieces[0]] && status[i]==0){ // if equal
-                                       rarestPieces[nValues] = i;
-                                       nValues++;
-                               }
-                       }
-                       
-                       piece = CommonState.r.nextInt(nValues); // one of the less owned pieces
-                       return rarestPieces[piece];
-               }
-       }
-       
-       /**
-        *      Returns the file's size as number of pieces of 256KB.
-        *      @return number of pieces that compose the file.
-        */
-       public int getNPieces(){
-               return nPieces; 
-       }
-       /**
-        *      Clone method of the class. Returns a deep copy of the BitTorrent class. Used
-        *      by the simulation to initialize the {@link peersim.core.Network}
-        *      @return the deep copy of the BitTorrent class.
-        */
-       public Object clone(){
-               Object prot = null;
-               try{
-                       prot = (BitTorrent)super.clone();
-               }
-               catch(CloneNotSupportedException e){};
-               
-               ((BitTorrent)prot).cache = new Neighbor[swarmSize];
-               for(int i=0; i<swarmSize; i++){
-                       ((BitTorrent)prot).cache[i] = new Neighbor();
-               }
-               
-               ((BitTorrent)prot).byPeer = new Element[swarmSize];
-               for(int i=0; i<swarmSize; i++){
-                       ((BitTorrent)prot).byPeer[i] = new Element();
-               }
-               
-               ((BitTorrent)prot).unchokedBy = new boolean[swarmSize];
-               
-               ((BitTorrent)prot).byBandwidth = new Element[swarmSize];
-               ((BitTorrent)prot).status = new int[nPieces];
-               ((BitTorrent)prot).pieceStatus = new int[16];
-               for(int i=0; i<16;i++)
-                       ((BitTorrent)prot).pieceStatus[i] = -1;
-               ((BitTorrent)prot).pendingRequest = new int[5];
-               for(int i=0; i<5;i++)
-                       ((BitTorrent)prot).pendingRequest[i] = -1;
-               ((BitTorrent)prot).rarestPieceSet = new int[nPieces];
-               for(int i=0; i<nPieces;i++)
-                       ((BitTorrent)prot).rarestPieceSet[i] = 0;
-               ((BitTorrent)prot).swarm = new int[swarmSize][nPieces];
-               ((BitTorrent)prot).requestToServe = new Queue(20);
-               ((BitTorrent)prot).incomingPieces = new Queue(100);
-               return prot;
-       }
-       
-       /**
-        *      Sorts {@link #byPeer} array by peer's ID. It implements the <i>InsertionSort</i>
-        *      algorithm. 
-        */
-       public void sortByPeer(){
-               int i;
-               
-               for(int j=1; j<swarmSize; j++)   // out is dividing line
-               {
-                       Element key = new Element(); 
-                       byPeer[j].copyTo(key) ;    // remove marked item
-                       i = j-1;           // start shifts at out
-                       while(i>=0 && (byPeer[i].ID > key.ID)) // until one is smaller,
-                       {
-                               byPeer[i].copyTo(byPeer[i+1]);      // shift item right,
-                               i--;            // go left one position
-                       }
-                       key.copyTo(byPeer[i+1]);         // insert marked item
-               } 
-               
-       }
-       
-       /**
-        *      Sorts the array {@link #byBandwidth} using <i>QuickSort</i> algorithm.
-        *      <tt>null</tt> elements and seeders are moved to the end of the array.
-        */
-       public void sortByBandwidth() {
-        quicksort(0, swarmSize-1);
-    }
-       
-       /**
-        *      Used by {@link #sortByBandwidth()}. It's the implementation of the
-        *      <i>QuickSort</i> algorithm.
-        *      @param left the leftmost index of the array to sort.
-        *      @param right the rightmost index of the array to sort.
-        */
-       private void quicksort(int left, int right) {
-        if (right <= left) return;
-        int i = partition(left, right);
-        quicksort(left, i-1);
-        quicksort(i+1, right);
-    }
-       
-       /**
-        *      Used by {@link #quicksort(int, int)}, partitions the subarray to sort returning
-        *      the splitting point as stated by the <i>QuickSort</i> algorithm.
-        *      @see "The <i>QuickSort</i> algorithm".
-        */
-       private int partition(int left, int right) {
-        int i = left - 1;
-        int j = right;
-        while (true) {
-            while (greater(byBandwidth[++i], byBandwidth[right]))      // find item on left to swap
-                ;                               // a[right] acts as sentinel
-            while (greater(byBandwidth[right], byBandwidth[--j])) {      // find item on right to swap
-                if (j == left) break;  // don't go out-of-bounds
-                       }
-            if (i >= j) break;                  // check if pointers cross
-            swap(i, j);                      // swap two elements into place
-        }
-        swap(i, right);                      // swap with partition element
-        return i;
-    }
-       
-       /**
-        *      Aswers to the question "is x > y?". Compares the {@link Element}s given as 
-        *      parameters. <tt>Element x</tt> is greater than <tt>y</tt> if isn't <tt>null</tt>
-        *      and in the last 20 seconds the local node has downloaded ("uploaded" if the local node is a 
-        *      seeder) more blocks than from <tt>y</tt>.
-        *      @param x the first <tt>Element</tt> to compare.
-        *      @param y the second <tt>Element</tt> to compare
-        *      @return <tt>true</tt> if x > y;<br/>
-        *                      <tt>false</tt> otherwise.
-        */
-    private boolean greater(Element x, Element y) {
-               /*
-                * Null elements and seeders are shifted at the end
-                * of the array
-                */
-               if (x==null) return false;
-               if (y==null) return true;
-               if (x.isSeeder) return false;
-               if (y.isSeeder) return true;
-               
-               // if the local node is a leecher
-               if (peerStatus==0) {
-                       if ((x.valueDOWN - x.head20) >
-                               (y.valueDOWN -y.head20))
-                               return true;
-                       else return false;
-               }
-               
-               // if peerStatus==1 (the local node is a seeder)
-               else {                  
-                       if ((x.valueUP - x.head20) >
-                               (y.valueUP -y.head20))
-                               return true;
-                       else return false;
-               }
-    }
-       
-       /**
-        *      Swaps {@link Element} <tt>i</tt> with <tt>j</tt> in the {@link #byBandwidth}.<br/>
-        *      Used by {@link #partition(int, int)}
-        *      @param i index of the first element to swap
-        *      @param j index of the second element to swap
-        */
-       private void swap(int i, int j) {
-        Element swap = byBandwidth[i];
-        byBandwidth[i] = byBandwidth[j];
-        byBandwidth[j] = swap;
-    }
-       
-       /**     Searches the node with the given ID. It does a dychotomic 
-        *      search.
-        *      @param ID ID of the node to search.
-        *      @return the {@link Element} in {@link #byPeer} which represents the node with the
-        *      given ID.
-        */
-       public Element search(long ID){
-               int low = 0;
-               int high = swarmSize-1;
-               int p = low+((high-low)/2);              //Initial probe position
-               while ( low <= high) {
-                       if ( byPeer[p] == null || byPeer[p].ID > ID)
-                               high = p - 1;
-                       else { 
-                               if( byPeer[p].ID < ID )  //Wasteful second comparison forced by syntax limitations.
-                                       low = p + 1;
-                               else
-                                       return byPeer[p];
-                       }
-                       p = low+((high-low)/2);         //Next probe position.
-               }
-               return null;    
-       }
-}
-
-/**
- *     This class is used to store the main informations about a neighbors regarding
- *     the calculation of the Downloading/Uploading rates. Is the class of items in 
- *     {@link example.bittorrent.BitTorrent#byPeer} and {@link example.bittorrent.BitTorrent#byBandwidth}.
- */
-class Element{
-       /**
-        *      ID of the represented node.
-        */
-       public long ID = Integer.MAX_VALUE;
-       /**
-        *      Index position of the node in the {@link example.bittorrent.BitTorrent#cache} array.
-        */
-       public int peer = -1; 
-       /**
-        *      Number of blocks uploaded to anyone since the beginning.
-        */
-       public int valueUP = 0;
-       /**
-        *      Number of blocks downloaded from anyone since the beginning.
-        */
-       public int valueDOWN = 0; 
-       /**
-        *      Value of either {@link #valueUP} or {@link #valueDOWN} (depending by 
-        *      {@link example.bittorrent.BitTorrent#peerStatus}) 20 seconds before.
-        */
-       public int head20 = 0;
-       /**
-        *      Value of either {@link #valueUP} or {@link #valueDOWN} (depending by 
-        *      {@link example.bittorrent.BitTorrent#peerStatus}) 60 seconds before.
-        */
-       public int head60 = 0; 
-       /**
-        *      <tt>true</tt> if the node is a seeder, <tt>false</tt> otherwise.
-        */
-       public boolean isSeeder = false;
-       /**
-        *      Makes a deep copy of the Element to <tt>destination</tt>
-        *      @param destination Element instance where to make the copy
-        */
-       public void copyTo(Element destination){
-               destination.ID = this.ID;
-               destination.peer = this.peer;
-               destination.valueUP = this.valueUP;
-               destination.valueDOWN = this.valueDOWN;
-               destination.head20 = this.head20;
-               destination.head60 = this.head60;
-       }
-}
-
-/**
- *     This class stores information about the neighbors regarding their status. It is 
- *     the type of the items in the {@link example.bittorrent.BitTorrent#cache}.
- */
-class Neighbor{
-       /**
-        *      Reference to the node in the {@link peersim.core.Network}.
-        */
-       public Node node = null;
-       /**
-        *      -1 means not interested<br/>
-        *      Other values means the last piece number for which the node is interested.
-        */
-       public int interested;
-       /**
-        *      0 means CHOKED<br/>
-        *      1 means UNCHOKED<br/>
-        *      2 means SNUBBED_BY. If this value is set and the node is to be unchocked,
-        *      value 2 has the priority.
-        */
-       public int status;
-       /**
-        *      Last time a message from the node represented has been received.
-        */
-       public long lastSeen = 0; 
-       /**
-        *      Last time a message to the node represented has been sent.
-        */
-       public long lastSent = 0;
-       
-       /**
-        * Sets the last time the neighbor was seen.
-        */
-       public void isAlive(){
-               long now = CommonState.getTime();
-               this.lastSeen = now;
-       }
-       
-       /*
-        * Sets the last time the local peer sent something to the neighbor.
-        */
-       public void justSent(){
-               long now = CommonState.getTime();
-               this.lastSent = now;
-       }
-       
-}
-
-/**
- *     Class type of the queues's items in {@link example.bittorrent.BitTorrent#incomingPieces} 
- *     and {@link example.bittorrent.BitTorrent#requestToServe}.
- */
-class Queue{
-       int maxSize;
-       int head = 0;
-       int tail = 0;
-       int dim = 0;
-       Request queue[];
-       
-       /**
-        *      Public constructor. Creates a queue of size <tt>size</tt>.
-        */
-       public Queue(int size){
-               maxSize = size;
-               queue = new Request[size];
-               for(int i=0; i< size; i++)
-                       queue[i]= new Request();
-       }
-       
-       /**
-        *      Enqueues the request of the block <tt>id</tt> and its <tt>sender</tt>
-        *      @param id the id of the block in the request
-        *      @param sender a reference to the sender of the request
-        *      @return <tt>true</tt> if the request has been correctly added, <tt>false</tt>
-        *      otherwise.
-        */
-       public boolean enqueue(int id, Node sender){
-               if(dim < maxSize){
-                       queue[tail%maxSize].id = id;
-                       queue[tail%maxSize].sender = sender;
-                       tail++;
-                       dim++;
-                       return true;
-               }
-               else return false;
-       }
-       
-       /**
-        *      Returns the {@link Request} in the head of the queue.
-        *      @return the element in the head.<br/>
-        *                      <tt>null</tt> if the queue is empty.
-        */
-       public Request dequeue(){
-               Request value;
-               if(dim > 0){
-                       value = queue[head%maxSize];
-                       head++;
-                       dim--;
-                       return value;
-               }
-               else return null; //empty queue
-       }
-       
-       /**
-        *      Returns the status of the queue.
-        *      @return <tt>true</tt> if the queue is empty, <tt>false</tt>
-        *      otherwise.
-        */
-       public boolean empty(){
-               return (dim == 0);
-       }
-       
-       /**
-        *      Returns <tt>true</tt> if block given as parameter is in.
-        *      @param  value the id of the block to search.
-        *      @return <tt>true</tt> if the block <tt>value</tt> is in the queue, <tt>false</tt>
-        *      otherwise.
-        */
-       public boolean contains(int value){
-               if(empty())
-                       return false;
-               for(int i=head; i<head+dim; i++){
-                       if(queue[i%maxSize].id == value)
-                               return true;
-               }
-               return false;
-       }
-       
-       /**
-        *      Removes a request from the queue.
-        *      @param sender the sender of the request.
-        *      @param value the id of the block requested.
-        *      @return <tt>true</tt> if the request has been correctly removed, <tt>false</tt>
-        *      otherwise.
-        */
-       public boolean remove(Node sender, int value){
-               if(empty())
-                       return false;
-               for(int i=head; i<head+dim; i++){
-                       if(queue[i%maxSize].id == value && queue[i%maxSize].sender == sender){
-                               for(int j=i; j>head; j--){ // Shifts the elements for the removal
-                                       queue[j%maxSize]= queue[(j-1)%maxSize];
-                               }
-                               head++;
-                               dim--;
-                               return true;
-                       }
-               }
-               return false;
-       }
-}
-
-/**
- *     This class represent an enqueued request of a block.
- */
-class Request{
-       /**
-        *      The id of the block.
-        */
-       public int id;
-       /**
-        *      The sender of the request.
-        */
-       public Node sender;
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/BitfieldMsg.java b/contrib/psg/src/example/bittorrent/BitfieldMsg.java
deleted file mode 100644 (file)
index d459482..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-
-/**
- *     This class is a {@link SimpleMsg} and represents the <tt>bitfield</tt>
- *     message.
- */
-public class BitfieldMsg extends SimpleMsg{
-       /**
-        *      The status of the file to transmit to neighbors nodes
-        */
-       int[] array;
-       
-       /**
-        *      Defines the type of the Bitfield message. If <tt>isRequest</tt> is true, then
-        *      the message is a request of subscription; otherwise the message is a response.
-        */
-       boolean isRequest;
-       
-       /**
-        *      <p>The ACK value used to implement <i>ack</i> and <i>nack</i> messages.</p>
-        *      <p>It has value <tt>true</tt> if the message is a reponse and the sender has inserted
-        *      the receiver in its own cache of neighbors.<br/>
-        *      If for some reason (for instance the cache had already 80 peer inside at the moment of the
-        *      request) it was not possible to insert the peer, the value is <tt>false</tt>.<br/>
-        *      It has value <tt>false</tt> also if the message is a request and is sent when occours
-        *      an unespected message.
-        *      </p>
-        *      @see "The documentation to understand the 4 different types of Bitfield messages"
-        */
-       boolean ack;
-       
-       /**
-        *      The basic constructor of the Bitfield message.
-        *      @param type The type of the message, according to {@link SimpleMsg}
-        *      @param isRequest Defines if the message is a request or not
-        *      @param ack Defines if the message type is an <i>ack</i> or a <i>nack</i>
-        *      @param sender The sender node
-        *      @param source The array containing the status of the file
-        *      @param size The size of the array
-        */
-       public BitfieldMsg(int type, boolean isRequest, boolean ack, Node sender, int source[], int size){
-               super.type = type;
-               super.sender = sender;
-               this.isRequest = isRequest;
-               this.ack = ack;
-               this.array = new int[size];
-               for(int i=0; i<size;i++){ // it sends a copy
-                       if(source[i]==16)
-                               this.array[i] = 1;
-                       else
-                               this.array[i] = 0;
-               }
-       }
-       
-       /**
-        *      Gets the array containing the status of the file.
-        *      @return The status of the file
-        */
-       public int[] getArray(){
-               return this.array;      
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/IntMsg.java b/contrib/psg/src/example/bittorrent/IntMsg.java
deleted file mode 100644 (file)
index a10eaea..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-import psgsim.Sizable;
-
-/**
- * This class is a {@link SimpleMsg} and acts as a container for a message that
- * uses only an integer value.
- */
-public class IntMsg extends SimpleMsg implements Sizable {
-
-       /**
-        * The data value (an integer) contained in the message.
-        */
-       private int integer;
-       private double size;
-
-       /**
-        * The basic constructor of the message.
-        *
-        * @param type
-        *            the type of the message
-        * @param sender
-        *            The sender node
-        * @param value
-        *            The data value of the message
-        */
-       public IntMsg(int type, Node sender, int value, double size) {
-               super.type = type;
-               super.sender = sender;
-               this.integer = value;
-               this.size = size;
-       }
-
-       /**
-        * Gets the value contained in the message.
-        *
-        * @return the integer value contained in the message
-        */
-       public int getInt() {
-               return this.integer;
-       }
-
-       @Override
-       public double getSize() {
-               // TODO Auto-generated method stub
-               return size;
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/NetworkDynamics.java b/contrib/psg/src/example/bittorrent/NetworkDynamics.java
deleted file mode 100644 (file)
index bdbd93a..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.transport.*;
-import peersim.edsim.*;
-
-/**
- * This {@link Control} can change the size of networks by adding and removing
- * nodes. This class supports only permanent removal of nodes and the addition
- * of brand new nodes. That is, temporary downtime is not supported by this
- * class.
- */
-public class NetworkDynamics implements Control {
-       private static final int TRACKER = 11;
-       private static final int CHOKE_TIME = 13;
-       private static final int OPTUNCHK_TIME = 14;
-       private static final int ANTISNUB_TIME = 15;
-       private static final int CHECKALIVE_TIME = 16;
-       private static final int TRACKERALIVE_TIME = 17;
-
-       /**
-        * The protocol to operate on.
-        *
-        * @config
-        */
-       private static final String PAR_PROT = "protocol";
-
-       /**
-        * Nodes are removed until the size specified by this parameter is reached.
-        * The network will never go below this size as a result of this class.
-        * Defaults to 0.
-        * 
-        * @config
-        */
-       private static final String PAR_MIN = "minsize";
-
-       /**
-        * Specifies if the tracker can disappear from the network. 0 means no, 1
-        * means yes
-        * 
-        * @config
-        */
-       private static final String PAR_TRACKER_DIE = "tracker_can_die";
-
-       /**
-        * The Transport used by the the control.
-        * 
-        * @config
-        */
-       private static final String PAR_TRANSPORT = "transport";
-
-       /**
-        * Specifies how many nodes will be added to the network.
-        * 
-        * @config
-        */
-       private static final String PAR_ADD = "add";
-
-       /**
-        * Specifies how many nodes will be removed from the network.
-        * 
-        * @config
-        */
-       private static final String PAR_REMOVE = "remove";
-
-       /*
-        * The following are local variables, obtained from config property.
-        */
-       private final int pid;
-       private final int tid;
-       private final int maxSize;
-       private final int minsize;
-       private boolean trackerCanDie = false; // false (value 0) by default
-       private final int add; // number of nodes to be added
-       private final int remove; // number of nodes to be removed
-
-       private final NodeInitializer init;
-       private Node tracker;
-
-       /**
-        * Standard constructor that reads the configuration parameters. Invoked by
-        * the simulation engine.
-        * 
-        * @param prefix
-        *            the configuration prefix for this class
-        */
-       public NetworkDynamics(String prefix) {
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);
-               minsize = Configuration.getInt(prefix + "." + PAR_MIN, 0);
-               tid = Configuration.getPid(prefix + "." + PAR_TRANSPORT);
-               add = Configuration.getInt(prefix + "." + PAR_ADD);
-               remove = Configuration.getInt(prefix + "." + PAR_REMOVE);
-
-               /*
-                * By default, the tracker can not disappear. If
-                * control.dynamics.tracker_can_die is set to 1, the tracker can die.
-                */
-               if (Configuration.getInt(prefix + "." + PAR_TRACKER_DIE) == 1) {
-                       trackerCanDie = true;
-               }
-
-               init = new NodeInitializer("init.net");
-               tracker = Network.get(0);
-
-               maxSize = (Network.size() - 1)
-                               + ((BitTorrent) tracker.getProtocol(pid)).maxGrowth;
-       }
-
-       /**
-        * Adds n nodes to the network. New nodes can be added only if the tracker
-        * is up.
-        * 
-        * @param n
-        *            the number of nodes to add, must be non-negative.
-        */
-       protected void add(int n) {
-               if (n == 0)
-                       return;
-               // tracker is up
-               if (tracker.isUp()) {
-                       for (int i = 0; i < n; ++i) {
-                               // create a new node
-                               Node nodeToBeAdded = (Node) Network.prototype.clone();
-
-                               // add the new node to the network
-                               Network.add(nodeToBeAdded); // questo nodo sara' in posizione
-                                                                                       // Network.len -1
-
-                               /*
-                                * Initialize the new node using the NodeInitializer class; this
-                                * it the same as
-                                * init.initialize(Network.get(Network.size()-1));
-                                */
-                               init.initialize(nodeToBeAdded);
-
-                               /*
-                                * The new node sends a TRACKER message to the tracker, asking
-                                * for a list of peers. The tracker will respond with a PEERSET
-                                * message. All the related events are also attached to the new
-                                * node.
-                                */
-                               long latency =((Transport)nodeToBeAdded.getProtocol(tid)).getLatency(nodeToBeAdded,tracker);
-                               Object ev = new SimpleMsg(TRACKER, nodeToBeAdded);
-                               EDSimulator.add(latency,ev,tracker,pid);
-//                             ((Transport) nodeToBeAdded.getProtocol(tid)).send(
-//                                             nodeToBeAdded, tracker, ev, pid);
-
-                               ev = new SimpleEvent(CHOKE_TIME);
-                               EDSimulator.add(10000, ev, nodeToBeAdded, pid);
-                               ev = new SimpleEvent(OPTUNCHK_TIME);
-                               EDSimulator.add(30000, ev, nodeToBeAdded, pid);
-                               ev = new SimpleEvent(ANTISNUB_TIME);
-                               EDSimulator.add(60000, ev, nodeToBeAdded, pid);
-                               ev = new SimpleEvent(CHECKALIVE_TIME);
-                               EDSimulator.add(120000, ev, nodeToBeAdded, pid);
-                               ev = new SimpleEvent(TRACKERALIVE_TIME);
-                               EDSimulator.add(1800000, ev, nodeToBeAdded, pid);
-
-                               // add the new node to the tracker's cache
-                               if (((BitTorrent) tracker.getProtocol(pid))
-                                               .addNeighbor(nodeToBeAdded))
-                                       System.out
-                                                       .println("DYN: A new node has been added to the network.");
-                       }
-               }
-               /*
-                * Otherwise, the tracker is down and no new nodes can be added to the
-                * network.
-                */
-               else
-                       System.out.println("DYN: Tracker is down. No new nodes added.");
-       }
-
-       /**
-        * Removes n nodes from the network. A node can be removed either if the
-        * tracker is up or down; if the tracker is up, the node to be removed will
-        * be removed also from the tracker's cache.
-        *
-        * @param n
-        *            the number of nodes to remove.
-        */
-       protected void remove(int n) {
-               // the index of the node to be removed
-               int nodeIndex = 0;
-
-               for (int i = 0; i < n; ++i) {
-                       nodeIndex = CommonState.r.nextInt(Network.size());
-                       // if the tracker can not disappear from the network
-                       if (!trackerCanDie) {
-                               /*
-                                * Choose an index for the node to be removed. The value 0 will
-                                * be discarded, since the tracker cannot disappear. Non
-                                * existing nodes cannot be removed: if the returned index
-                                * corresponds to a non-existing node, a new index will be
-                                * generated.
-                                */
-                               while (nodeIndex == 0) {
-                                       nodeIndex = CommonState.r.nextInt(Network.size());
-                               }
-                       }
-                       // otherwise, also the tracker can disappear
-                       else {
-                               nodeIndex = CommonState.r.nextInt(Network.size());
-                       }
-
-                       // a warning message
-                       // if (nodeIndex==0)
-                       // System.out.println("DYN: The tracker is going to disapper.");
-
-                       // remove the node with the given index from the network
-                       Node nodeToBeRemoved = Network.remove(nodeIndex);
-
-                       // then remove it from the tracker's cache, if it is possible (= the
-                       // tracker is up);
-                       if (tracker.isUp()) {
-                               if (((BitTorrent) tracker.getProtocol(pid))
-                                               .removeNeighbor(nodeToBeRemoved))
-                                       System.err
-                                                       .println("DYN: A node has been removed from the network.");
-                       } else { // the tracker is down
-                               System.err.println("DYN: The tracker is DOWN!");
-                       }
-               }
-       }
-
-       /**
-        * Calls {@link #add(int)} or {@link #remove} with the parameters defined by
-        * the configuration.
-        * 
-        * @return always false
-        */
-       public boolean execute() {
-               int choice = (CommonState.r.nextInt(2)); // 0 or 1
-               // adding new nodes
-               if (choice == 0) {
-                       /*
-                        * If the specified number of nodes cannot be added, it tries to add
-                        * a less number of nodes without going out of bounds. Otherwise,
-                        * all specified nodes will be added.
-                        */
-                       if (Network.size() + this.add > maxSize) {
-                               System.err.println("DYN: " + (maxSize - Network.size())
-                                               + " nodes will be added.");
-                               add(maxSize - Network.size());
-                       } else {
-                               System.err
-                                               .println("DYN: " + this.add + " nodes will be added.");
-                               add(this.add);
-                       }
-               }
-               // removing existing nodes
-               else {
-                       if (Network.size() - this.remove < minsize) {
-                               System.err.println("DYN: " + (Network.size() - minsize)
-                                               + " nodes will be removed.");
-                               remove(Network.size() - minsize);
-                       } else {
-                               System.err.println("DYN: " + this.remove
-                                               + " nodes will be removed.");
-                               remove(this.remove);
-                       }
-               }
-               return false;
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/NetworkInitializer.java b/contrib/psg/src/example/bittorrent/NetworkInitializer.java
deleted file mode 100644 (file)
index 4b5ba72..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-import peersim.edsim.EDSimulator;
-import peersim.transport.Transport;
-import java.util.Random;
-
-/**
- * This {@link Control} ...
- */
-public class NetworkInitializer implements Control {
-       /**
-       * The protocol to operate on.
-       *
-       * @config
-       */
-       private static final String PAR_PROT="protocol";
-               
-       private static final String PAR_TRANSPORT="transport";
-       
-       private static final int TRACKER = 11;
-       
-       private static final int CHOKE_TIME = 13;
-       
-       private static final int OPTUNCHK_TIME = 14;
-       
-       private static final int ANTISNUB_TIME = 15;
-       
-       private static final int CHECKALIVE_TIME = 16;
-       
-       private static final int TRACKERALIVE_TIME = 17;
-       
-       /** Protocol identifier, obtained from config property */
-       private final int pid;
-       private final int tid;
-       private NodeInitializer init;
-       
-       private Random rnd;
-       
-       public NetworkInitializer(String prefix) {
-               pid = Configuration.getPid(prefix+"."+PAR_PROT);
-               tid = Configuration.getPid(prefix+"."+PAR_TRANSPORT);
-               init = new NodeInitializer(prefix);
-       }
-       
-       public boolean execute() {
-               int completed;
-               Node tracker = Network.get(0);
-               
-               // manca l'inizializzazione del tracker;
-               
-               ((BitTorrent)Network.get(0).getProtocol(pid)).initializeTracker();
-               
-               for(int i=1; i<Network.size(); i++){
-                       System.err.println("chiamate ad addNeighbor " + i);
-                       ((BitTorrent)Network.get(0).getProtocol(pid)).addNeighbor(Network.get(i));
-                       init.initialize(Network.get(i));
-               }
-               for(int i=1; i< Network.size(); i++){
-                       Node n = Network.get(i);
-                       
-                       Object ev = new SimpleMsg(TRACKER, n);
-                       long latency = ((Transport)n.getProtocol(tid)).getLatency(n,tracker);
-                       EDSimulator.add(latency,ev,tracker,pid);                        
-//                     ((Transport) n.getProtocol(tid)).send(n,tracker, ev, pid);
-
-                       ev = new SimpleEvent(CHOKE_TIME);
-                       EDSimulator.add(10000,ev,n,pid);
-                       ev = new SimpleEvent(OPTUNCHK_TIME);
-                       EDSimulator.add(30000,ev,n,pid);
-                       ev = new SimpleEvent(ANTISNUB_TIME);
-                       EDSimulator.add(60000,ev,n,pid);
-                       ev = new SimpleEvent(CHECKALIVE_TIME);
-                       EDSimulator.add(120000,ev,n,pid);
-                       ev = new SimpleEvent(TRACKERALIVE_TIME);
-                       EDSimulator.add(1800000,ev,n,pid);
-               }
-               return true;
-       }
-       
-       }
diff --git a/contrib/psg/src/example/bittorrent/NodeInitializer.java b/contrib/psg/src/example/bittorrent/NodeInitializer.java
deleted file mode 100644 (file)
index df71688..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
- *     This class provides a way to initialize a single node of the network.
- *     The initialization is performed by choosing the bandwidth of the node
- *     and choosing how much the shared file has been downloaded.
- */
-public class NodeInitializer{
-       
-       /**
-        *      The protocol to operate on.
-        *      @config
-        */
-       private static final String PAR_PROT="protocol";
-       
-       /**
-        *      The percentage of nodes with no downloaded pieces.
-        *      @config
-        *      @see "The documentation for an example on how to properly set this parameter."
-        */
-       private static final String PAR_NEWER_DISTR="newer_distr";
-       
-       /**
-        *      The percentage of seeders in the network.
-        *      @config
-        */
-       private static final String PAR_SEEDER_DISTR="seeder_distr";
-
-       /**
-        *      The percentage of nodes with no downloaded pieces,
-        *      as defined in {@see #PAR_NEWER_DISTR}.
-        */
-       private int newerDistr;
-       
-       /**
-        *      The percentage of seeder nodes,
-        *      as defined in {@see #PAR_SEEDER_DISTR}.
-        */
-       private int seederDistr;
-       
-       /**
-        *      The BitTorrent protocol ID.
-        */     
-       private final int pid;
-       
-       /**
-        *      The basic constructor of the class, which reads the parameters
-        *      from the configuration file.
-        *      @param prefix the configuration prefix for this class
-        */
-       public NodeInitializer(String prefix){
-               pid = Configuration.getPid(prefix+"."+PAR_PROT);
-               newerDistr = Configuration.getInt(prefix+"."+PAR_NEWER_DISTR);
-               seederDistr = Configuration.getInt(prefix+"."+PAR_SEEDER_DISTR);
-       }
-       
-       /**
-        *      Initializes the node <tt>n</tt> associating it
-        *      with the BitTorrent protocol and setting the reference to the tracker,
-        *      the status of the file and the bandwidth.
-        *      @param n The node to initialize
-        */
-       public void initialize(Node n){
-               Node tracker = Network.get(0);
-               BitTorrent p;
-               p = (BitTorrent)n.getProtocol(pid);
-               p.setTracker(tracker);
-               p.setThisNodeID(n.getID());
-               setFileStatus(p);
-               setBandwidth(p);
-       }
-
-       /**
-        *      Sets the status of the shared file according to the
-        *      probability value given by {@link #getProbability()}.
-        *      @param p The BitTorrent protocol
-        */
-       private void setFileStatus(BitTorrent p){
-               int percentage = getProbability();
-               choosePieces(percentage, p);
-       }
-       
-       /**
-        *      Set the maximum bandwidth for the node, choosing
-        *      uniformly at random among 4 values.
-        *      <p>
-        *      The allowed bandwidth speed are 640 Kbps, 1 Mbps, 2 Mbps and 4 Mbps.
-        *      </p>
-        *      @param p The BitTorrent protocol
-        */
-       private void setBandwidth(BitTorrent p){
-               int value = CommonState.r.nextInt(4);
-               switch(value){
-                       case 0: p.setBandwidth(640);break; //640Kbps
-                       case 1: p.setBandwidth(1024);break;// 1Mbps
-                       case 2: p.setBandwidth(2048);break;// 2Mbps
-                       case 3: p.setBandwidth(4096);break; //4Mbps
-               }
-       }
-       
-       /**
-        *      Sets the completed pieces for the given protocol <tt>p</tt>.
-        *      @parm percentage The percentage of the downloaded pieces, according to {@link #getProbability()}
-        *      @param p the BitTorrent protocol
-        */
-       private void choosePieces(int percentage, BitTorrent p){
-               double temp = ((double)p.nPieces/100.0)*percentage; // We use a double to avoid the loss of precision
-                                                                                                // during the division operation
-               int completed = (int)temp; //integer number of piece to set as completed
-                                                         //0 if the peer is a newer
-               p.setCompleted(completed);
-               if(percentage == 100)
-                       p.setPeerStatus(1);
-               int tmp;
-               while(completed!=0){
-                       tmp = CommonState.r.nextInt(p.nPieces);
-                       if(p.getStatus(tmp)!=16){
-                               p.setStatus(tmp, 16);
-                               completed--;
-                       }
-               }
-       }
-       
-       /**
-        *      Gets a probability according with the parameter <tt>newer_distr</tt>
-        *      defined in the configuration file.
-        *      @return the probabilty value, where 0 means that the peer is new and no pieces has been downloaded,
-        *                      100 means that the peer is a seeder; other values defines a random probability.
-        *      @see #PAR_NEWER_DISTR
-        */
-       private int getProbability(){
-               int value = CommonState.r.nextInt(100);
-               if((value+1)<=seederDistr)
-                       return 100;
-               value = CommonState.r.nextInt(100);
-               if((value+1)<=newerDistr){
-                       return 0; // A newer peer, with probability newer_distr
-               }
-               else{
-                       value = CommonState.r.nextInt(9);
-                       return (value+1)*10;
-               }
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/bittorrent/PeerSetMsg.java b/contrib/psg/src/example/bittorrent/PeerSetMsg.java
deleted file mode 100644 (file)
index d0e92d5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-package example.bittorrent;
-
-import peersim.core.*;
-
-/**
- *     This class is a {@link SimpleMsg} and represents the <tt>peerset</tt>
- *     message used by the tracker to send to the peers a list of neighbors.
- */
-public class PeerSetMsg extends SimpleMsg{
-       
-       /**
-        *      The set of "friends" peers sent by the tracker to each node.
-        */
-       private Neighbor[] peerSet;
-       
-       /**
-        *      Initializes a new <tt>peerset</tt> message.
-        *      @param type is the type of the message (it should be 12)
-        *      @param array is the array containing the references to the neighbor nodes
-        *      @param sender the sender node
-        *      @see SimpleEvent
-        */
-       public PeerSetMsg(int type, Neighbor []array, Node sender){
-               super.type = type;
-               peerSet = array; // references to the effective nodes
-               super.sender = sender;
-       }
-       
-       /**
-        *      Gets the peer set.
-        *      @return the peer set, namely the set of neighbor nodes.
-        */
-       public Neighbor[] getPeerSet(){
-               return this.peerSet;    
-       }
-}
diff --git a/contrib/psg/src/example/bittorrent/SimpleEvent.java b/contrib/psg/src/example/bittorrent/SimpleEvent.java
deleted file mode 100644 (file)
index 1da537a..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-/**
- * This class defines a simple event. A simple event is characterized only
- * by its type.
- */
-public class SimpleEvent {
-       
-       /**
-       * The identifier of the type of the event.
-       * <p>
-       * The available identifiers for event type are:<br/>
-       * <ul>
-       *  <li>1 is KEEP_ALIVE message</li>
-       *  <li>2 is CHOKE message</li>
-       *  <li>3 is UNCHOKE message</li>
-       *  <li>4 is INTERESTED message</li>
-       *  <li>5 is NOT_INTERESTED message</li>
-       *  <li>6 is HAVE message</li>
-       *  <li>7 is BITFIELD message</li>
-       *  <li>8 is REQUEST message</li>
-       *  <li>9 is PIECE message</li>
-       *  <li>10 is CANCEL message</li>
-       *  <li>11 is TRACKER message</li>
-       *  <li>12 is PEERSET message</li>
-       *  <li>13 is CHOKE_TIME event</li>
-       *  <li>14 is OPTUNCHK_TIME event</li>
-       *  <li>15 is ANTISNUB_TIME event</li>
-       *  <li>16 is CHECKALIVE_TIME event</li>
-       *  <li>17 is TRACKERALIVE_TIME event</li>
-       *  <li>18 is DOWNLOAD_COMPLETED event</li>
-       *</ul></p>
-       */
-       protected int type;
-       
-       public SimpleEvent(){
-       }
-       
-       /**
-     * Initializes the type of the event.
-        * @param type The identifier of the type of the event
-        */
-       public SimpleEvent(int type){
-               this.type = type;
-       }
-       
-       /**
-        * Gets the type of the event.
-        * @return The type of the current event.
-        */
-       public int getType(){
-               return this.type;       
-       }
-}
-
-
diff --git a/contrib/psg/src/example/bittorrent/SimpleMsg.java b/contrib/psg/src/example/bittorrent/SimpleMsg.java
deleted file mode 100644 (file)
index cf9436e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2007-2008 Fabrizio Frioli, Michele Pedrolli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * --
- *
- * Please send your questions/suggestions to:
- * {fabrizio.frioli, michele.pedrolli} at studenti dot unitn dot it
- *
- */
-
-package example.bittorrent;
-
-import peersim.core.*;
-
-/**
- * This class defines a simple message.
- * A simple message has its type and the reference of the sender node.
- * @see SimpleEvent
- */
-public class SimpleMsg extends SimpleEvent {
-       
-       /**
-       * The sender of the message.
-       */
-       protected Node sender;
-       
-       public SimpleMsg(){
-       }
-       
-       /**
-        * Initializes the simple message with its type and sender.
-        * @param type The identifier of the type of the message
-        * @param sender The sender of the message
-        */
-       public SimpleMsg(int type, Node sender){
-               super.type = type;
-               this.sender = sender;
-       }
-       
-       /**
-     * Gets the sender of the message.
-        * @return The sender of the message.
-        */
-       public Node getSender(){
-               return this.sender;     
-       }
-}
diff --git a/contrib/psg/src/example/chord/ChordInitializer.java b/contrib/psg/src/example/chord/ChordInitializer.java
deleted file mode 100644 (file)
index 799b0d7..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-package example.chord;\r
-\r
-import java.math.BigInteger;\r
-import java.util.Random;\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-import peersim.dynamics.NodeInitializer;\r
-\r
-public class ChordInitializer implements NodeInitializer {\r
-\r
-       private static final String PAR_PROT = "protocol";\r
-\r
-       private int pid = 0;\r
-\r
-       private ChordProtocol cp;\r
-\r
-       public ChordInitializer(String prefix) {\r
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);\r
-       }\r
-\r
-       public void initialize(Node n) {\r
-               cp = (ChordProtocol) n.getProtocol(pid);\r
-               join(n);\r
-       }\r
-\r
-       public void join(Node myNode) {\r
-               Random generator = new Random();\r
-               //Random generator = new Random(1234567890);\r
-               cp.predecessor = null;\r
-               // search a node to join\r
-               Node n;\r
-               do {\r
-                       n = Network.get(generator.nextInt(Network.size()));\r
-               } while (n == null || n.isUp() == false);\r
-               cp.m = ((ChordProtocol) n.getProtocol(pid)).m;\r
-               cp.chordId = new BigInteger(cp.m, CommonState.r);\r
-               ChordProtocol cpRemote = (ChordProtocol) n.getProtocol(pid);\r
-\r
-               Node successor = cpRemote.find_successor(cp.chordId);\r
-               cp.fails = 0;\r
-               cp.stabilizations = 0;\r
-               cp.varSuccList = cpRemote.varSuccList;\r
-               cp.varSuccList = 0;\r
-               cp.succLSize = cpRemote.succLSize;\r
-               cp.successorList = new Node[cp.succLSize];\r
-               cp.successorList[0] = successor;\r
-               cp.fingerTable = new Node[cp.m];\r
-               long succId = 0;\r
-               BigInteger lastId = ((ChordProtocol) Network.get(Network.size() - 1)\r
-                               .getProtocol(pid)).chordId;\r
-               do {\r
-                       cp.stabilizations++;\r
-                       succId = cp.successorList[0].getID();\r
-                       cp.stabilize(myNode);\r
-                       if (((ChordProtocol) cp.successorList[0].getProtocol(pid)).chordId\r
-                                       .compareTo(cp.chordId) < 0) {\r
-                               cp.successorList[0] = ((ChordProtocol) cp.successorList[0]\r
-                                               .getProtocol(pid)).find_successor(cp.chordId);\r
-                       }\r
-                       // controllo di non essere l'ultimo elemento della rete\r
-                       if (cp.chordId.compareTo(lastId) > 0) {\r
-                               cp.successorList[0] = Network.get(0);\r
-                               break;\r
-                       }\r
-               } while (cp.successorList[0].getID() != succId\r
-                               || ((ChordProtocol) cp.successorList[0].getProtocol(pid)).chordId\r
-                                               .compareTo(cp.chordId) < 0);\r
-               cp.fixFingers();\r
-       }\r
-}\r
diff --git a/contrib/psg/src/example/chord/ChordMessage.java b/contrib/psg/src/example/chord/ChordMessage.java
deleted file mode 100644 (file)
index f87fafb..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public interface ChordMessage {\r
-\r
-}\r
diff --git a/contrib/psg/src/example/chord/ChordProtocol.java b/contrib/psg/src/example/chord/ChordProtocol.java
deleted file mode 100644 (file)
index 485c3ba..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-import peersim.edsim.EDProtocol;\r
-import peersim.transport.Transport;\r
-\r
-import java.math.*;\r
-\r
-import org.simgrid.msg.Host;\r
-import org.simgrid.msg.Msg;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public class ChordProtocol implements EDProtocol {\r
-\r
-       private static final String PAR_TRANSPORT = "transport";\r
-\r
-       private Parameters p;\r
-\r
-       private int[] lookupMessage;\r
-\r
-       public int index = 0;\r
-\r
-       public Node predecessor;\r
-\r
-       public Node[] fingerTable;\r
-\r
-       public Node[] successorList;\r
-\r
-       public BigInteger chordId;\r
-\r
-       public int m;\r
-\r
-       public int succLSize;\r
-\r
-       public String prefix;\r
-\r
-       private int next = 0;\r
-\r
-       // campo x debug\r
-       private int currentNode = 0;\r
-\r
-       public int varSuccList = 0;\r
-\r
-       public int stabilizations = 0;\r
-\r
-       public int fails = 0;\r
-\r
-       /**\r
-        * \r
-        */\r
-       public ChordProtocol(String prefix) {\r
-               this.prefix = prefix;\r
-               lookupMessage = new int[1];\r
-               lookupMessage[0] = 0;\r
-               p = new Parameters();\r
-               p.tid = Configuration.getPid(prefix + "." + PAR_TRANSPORT);\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * \r
-        * @see peersim.edsim.EDProtocol#processEvent(peersim.core.Node, int,\r
-        * java.lang.Object)\r
-        */\r
-       public void processEvent(Node node, int pid, Object event) {\r
-               // processare le richieste a seconda della routing table del nodo\r
-               p.pid = pid;\r
-               // currentNode = node.getIndex();\r
-               currentNode = (int) node.getID();\r
-               if (event.getClass() == LookUpMessage.class) {\r
-                       LookUpMessage message = (LookUpMessage) event;\r
-                       message.increaseHopCounter();\r
-                       BigInteger target = message.getTarget();\r
-                       Transport t = (Transport) node.getProtocol(p.tid);\r
-                       Node n = message.getSender();\r
-                       System.out.println("R process " + "at time="\r
-                                       + CommonState.getTime() + " to dest:" + currentNode\r
-                                       + " from src:" + n.getID() + " message: ("\r
-                                       + message.getSender().getID() + ";" + message.getTarget()\r
-                                       + ")");\r
-                       if (target == ((ChordProtocol) node.getProtocol(pid)).chordId) {\r
-                               // mandare mess di tipo final\r
-                               Object msg = new FinalMessage(message.getHopCounter());\r
-                               System.out.println("S Final Message " + "at time="\r
-                                               + CommonState.getTime() + " from src:" + node.getID()\r
-                                               + " to dest:" + n.getID() + " message: "\r
-                                               + message.getHopCounter() + " HopCounter");\r
-                               t.send(node, n, msg, pid);\r
-\r
-                       }\r
-                       if (target != ((ChordProtocol) node.getProtocol(pid)).chordId) {\r
-                               // funzione lookup sulla fingertabable\r
-                               Node dest = find_successor(target);\r
-                               if (dest.isUp() == false) {\r
-                                       do {\r
-                                               varSuccList = 0;\r
-                                               stabilize(node);\r
-                                               stabilizations++;\r
-                                               fixFingers();\r
-                                               dest = find_successor(target);\r
-                                       } while (dest.isUp() == false);\r
-                               }\r
-                               if (dest.getID() == successorList[0].getID()\r
-                                               && (target.compareTo(((ChordProtocol) dest\r
-                                                               .getProtocol(p.pid)).chordId) < 0)) {\r
-                                       fails++;\r
-                               } else {\r
-                                       System.out.println("S process " + "at time="\r
-                                                       + CommonState.getTime() + " from src:"\r
-                                                       + node.getID() + " to dest:" + dest.getID()\r
-                                                       + " message: (" + message.getSender().getID() + ";"\r
-                                                       + message.getTarget() + ")");\r
-                                       // t.send(message.getSender(), dest, message, pid);\r
-                                       t.send(node, dest, message, pid);\r
-\r
-                               }\r
-                       }\r
-               }\r
-               if (event.getClass() == FinalMessage.class) {\r
-                       FinalMessage message = (FinalMessage) event;\r
-                       System.out.println("R Final Message " + "at time="\r
-                                       + CommonState.getTime() + " to dest:" + node.getID()+"\n");\r
-                       lookupMessage = new int[index + 1];\r
-                       lookupMessage[index] = message.getHopCounter();\r
-                       index++;\r
-               }\r
-       }\r
-\r
-       public Object clone() {\r
-               ChordProtocol cp = new ChordProtocol(prefix);\r
-               String val = BigInteger.ZERO.toString();\r
-               cp.chordId = new BigInteger(val);\r
-               cp.fingerTable = new Node[m];\r
-               cp.successorList = new Node[succLSize];\r
-               cp.currentNode = 0;\r
-               return cp;\r
-       }\r
-\r
-       public int[] getLookupMessage() {\r
-               return lookupMessage;\r
-       }\r
-\r
-       public void stabilize(Node myNode) {\r
-               try {\r
-                       Node node = ((ChordProtocol) successorList[0].getProtocol(p.pid)).predecessor;\r
-                       if (node != null) {\r
-                               if (this.chordId == ((ChordProtocol) node.getProtocol(p.pid)).chordId)\r
-                                       return;\r
-                               BigInteger remoteID = ((ChordProtocol) node.getProtocol(p.pid)).chordId;\r
-                               if (idInab(\r
-                                               remoteID,\r
-                                               chordId,\r
-                                               ((ChordProtocol) successorList[0].getProtocol(p.pid)).chordId))\r
-                                       successorList[0] = node;\r
-                               ((ChordProtocol) successorList[0].getProtocol(p.pid))\r
-                                               .notify(myNode);\r
-                       }\r
-                       updateSuccessorList();\r
-               } catch (Exception e1) {\r
-                       e1.printStackTrace();\r
-                       updateSuccessor();\r
-               }\r
-       }\r
-\r
-       private void updateSuccessorList() throws Exception {\r
-               try {\r
-                       while (successorList[0] == null || successorList[0].isUp() == false) {\r
-                               updateSuccessor();\r
-                       }\r
-                       System.arraycopy(\r
-                                       ((ChordProtocol) successorList[0].getProtocol(p.pid)).successorList,\r
-                                       0, successorList, 1, succLSize - 2);\r
-               } catch (Exception e) {\r
-                       e.printStackTrace();\r
-               }\r
-       }\r
-\r
-       public void notify(Node node) throws Exception {\r
-               BigInteger nodeId = ((ChordProtocol) node.getProtocol(p.pid)).chordId;\r
-               if ((predecessor == null)\r
-                               || (idInab(\r
-                                               nodeId,\r
-                                               ((ChordProtocol) predecessor.getProtocol(p.pid)).chordId,\r
-                                               this.chordId))) {\r
-                       predecessor = node;\r
-               }\r
-       }\r
-\r
-       private void updateSuccessor() {\r
-               boolean searching = true;\r
-               while (searching) {\r
-                       try {\r
-                               Node node = successorList[varSuccList];\r
-                               varSuccList++;\r
-                               successorList[0] = node;\r
-                               if (successorList[0] == null\r
-                                               || successorList[0].isUp() == false) {\r
-                                       if (varSuccList >= succLSize - 1) {\r
-                                               searching = false;\r
-                                               varSuccList = 0;\r
-                                       } else\r
-                                               updateSuccessor();\r
-                               }\r
-                               updateSuccessorList();\r
-                               searching = false;\r
-                       } catch (Exception e) {\r
-                               e.printStackTrace();\r
-                       }\r
-               }\r
-       }\r
-\r
-       private boolean idInab(BigInteger id, BigInteger a, BigInteger b) {\r
-               if ((a.compareTo(id) == -1) && (id.compareTo(b) == -1)) {\r
-                       return true;\r
-               }\r
-               return false;\r
-       }\r
-\r
-       public Node find_successor(BigInteger id) {\r
-               try {\r
-                       if (successorList[0] == null || successorList[0].isUp() == false) {\r
-                               updateSuccessor();\r
-                       }\r
-                       if (idInab(\r
-                                       id,\r
-                                       this.chordId,\r
-                                       ((ChordProtocol) successorList[0].getProtocol(p.pid)).chordId)) {\r
-                               return successorList[0];\r
-                       } else {\r
-                               Node tmp = closest_preceding_node(id);\r
-                               return tmp;\r
-                       }\r
-               } catch (Exception e) {\r
-                       e.printStackTrace();\r
-               }\r
-               return successorList[0];\r
-       }\r
-\r
-       private Node closest_preceding_node(BigInteger id) {\r
-               for (int i = m; i > 0; i--) {\r
-                       try {\r
-                               if (fingerTable[i - 1] == null\r
-                                               || fingerTable[i - 1].isUp() == false) {\r
-                                       continue;\r
-                               }\r
-                               BigInteger fingerId = ((ChordProtocol) (fingerTable[i - 1]\r
-                                               .getProtocol(p.pid))).chordId;\r
-                               if ((idInab(fingerId, this.chordId, id))\r
-                                               || (id.compareTo(fingerId) == 0)) {\r
-                                       return fingerTable[i - 1];\r
-                               }\r
-                               if (fingerId.compareTo(this.chordId) == -1) {\r
-                                       // sono nel caso in cui ho fatto un giro della rete\r
-                                       // circolare\r
-                                       if (idInab(id, fingerId, this.chordId)) {\r
-                                               return fingerTable[i - 1];\r
-                                       }\r
-                               }\r
-                               if ((id.compareTo(fingerId) == -1)\r
-                                               && (id.compareTo(this.chordId) == -1)) {\r
-                                       if (i == 1)\r
-                                               return successorList[0];\r
-                                       BigInteger lowId = ((ChordProtocol) fingerTable[i - 2]\r
-                                                       .getProtocol(p.pid)).chordId;\r
-                                       if (idInab(id, lowId, fingerId))\r
-                                               return fingerTable[i - 2];\r
-                                       else if (fingerId.compareTo(this.chordId) == -1)\r
-                                               continue;\r
-                                       else if (fingerId.compareTo(this.chordId) == 1)\r
-                                               return fingerTable[i - 1];\r
-                               }\r
-                       } catch (Exception e) {\r
-                               e.printStackTrace();\r
-                       }\r
-               }\r
-               if (fingerTable[m - 1] == null)\r
-                       return successorList[0];\r
-               return successorList[0];\r
-       }\r
-\r
-       // debug function\r
-       private void printFingers() {\r
-               for (int i = fingerTable.length - 1; i > 0; i--) {\r
-                       if (fingerTable[i] == null) {\r
-                               System.out.println("Finger " + i + " is null");\r
-                               continue;\r
-                       }\r
-                       if ((((ChordProtocol) fingerTable[i].getProtocol(p.pid)).chordId)\r
-                                       .compareTo(this.chordId) == 0)\r
-                               break;\r
-                       System.out\r
-                                       .println("Finger["\r
-                                                       + i\r
-                                                       + "] = "\r
-                                                       + fingerTable[i].getIndex()\r
-                                                       + " chordId "\r
-                                                       + ((ChordProtocol) fingerTable[i]\r
-                                                                       .getProtocol(p.pid)).chordId);\r
-               }\r
-       }\r
-\r
-       public void fixFingers() {\r
-               if (next >= m - 1)\r
-                       next = 0;\r
-               if (fingerTable[next] != null && fingerTable[next].isUp()) {\r
-                       next++;\r
-                       return;\r
-               }\r
-               BigInteger base;\r
-               if (next == 0)\r
-                       base = BigInteger.ONE;\r
-               else {\r
-                       base = BigInteger.valueOf(2);\r
-                       for (int exp = 1; exp < next; exp++) {\r
-                               base = base.multiply(BigInteger.valueOf(2));\r
-                       }\r
-               }\r
-               BigInteger pot = this.chordId.add(base);\r
-               BigInteger idFirst = ((ChordProtocol) Network.get(0).getProtocol(p.pid)).chordId;\r
-               BigInteger idLast = ((ChordProtocol) Network.get(Network.size() - 1)\r
-                               .getProtocol(p.pid)).chordId;\r
-               if (pot.compareTo(idLast) == 1) {\r
-                       pot = (pot.mod(idLast));\r
-                       if (pot.compareTo(this.chordId) != -1) {\r
-                               next++;\r
-                               return;\r
-                       }\r
-                       if (pot.compareTo(idFirst) == -1) {\r
-                               this.fingerTable[next] = Network.get(Network.size() - 1);\r
-                               next++;\r
-                               return;\r
-                       }\r
-               }\r
-               do {\r
-                       fingerTable[next] = ((ChordProtocol) successorList[0]\r
-                                       .getProtocol(p.pid)).find_successor(pot);\r
-                       pot = pot.subtract(BigInteger.ONE);\r
-                       ((ChordProtocol) successorList[0].getProtocol(p.pid)).fixFingers();\r
-               } while (fingerTable[next] == null || fingerTable[next].isUp() == false);\r
-               next++;\r
-       }\r
-\r
-       /**\r
-        */\r
-       public void emptyLookupMessage() {\r
-               index = 0;\r
-               this.lookupMessage = new int[0];\r
-       }\r
-}\r
diff --git a/contrib/psg/src/example/chord/CreateNw.java b/contrib/psg/src/example/chord/CreateNw.java
deleted file mode 100644 (file)
index 9268653..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-import peersim.core.*;\r
-import peersim.config.Configuration;\r
-import java.math.*;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public class CreateNw implements Control {\r
-\r
-       private int pid = 0;\r
-\r
-       private static final String PAR_IDLENGTH = "idLength";\r
-\r
-       private static final String PAR_PROT = "protocol";\r
-\r
-       private static final String PAR_SUCCSIZE = "succListSize";\r
-\r
-       int idLength = 0;\r
-\r
-       int successorLsize = 0;\r
-\r
-       int fingSize = 0;\r
-       //campo x debug\r
-       boolean verbose = false;\r
-\r
-       /**\r
-        * \r
-        */\r
-       public CreateNw(String prefix) {\r
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);\r
-               idLength = Configuration.getInt(prefix + "." + PAR_IDLENGTH); \r
-               successorLsize = Configuration.getInt(prefix + "." + PAR_SUCCSIZE); \r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * \r
-        * @see peersim.core.Control#execute()\r
-        */\r
-\r
-       public boolean execute() {\r
-               for (int i = 0; i < Network.size(); i++) {\r
-                       Node node = (Node) Network.get(i);\r
-                       ChordProtocol cp = (ChordProtocol) node.getProtocol(pid);\r
-                       cp.m = idLength;\r
-                       cp.succLSize = successorLsize;\r
-                       cp.varSuccList = 0;\r
-                       cp.chordId = new BigInteger(idLength, CommonState.r);\r
-                       cp.fingerTable = new Node[idLength];\r
-                       cp.successorList = new Node[successorLsize];\r
-               }\r
-               NodeComparator nc = new NodeComparator(pid);\r
-               Network.sort(nc);\r
-               createFingerTable();\r
-               return false;\r
-       }\r
-\r
-       public Node findId(BigInteger id, int nodeOne, int nodeTwo) {\r
-               if (nodeOne >= (nodeTwo - 1)) \r
-                       return Network.get(nodeOne);\r
-               int middle = (nodeOne + nodeTwo) / 2;\r
-               if (((middle) >= Network.size() - 1))\r
-                       System.out.print("ERROR: Middle is bigger than Network.size");\r
-               if (((middle) <= 0))\r
-                       return Network.get(0);\r
-               try {\r
-                       BigInteger newId = ((ChordProtocol) ((Node) Network.get(middle))\r
-                                       .getProtocol(pid)).chordId;\r
-                       BigInteger lowId;\r
-                       if (middle > 0)\r
-                               lowId = ((ChordProtocol) ((Node) Network.get(middle - 1))\r
-                                               .getProtocol(pid)).chordId;\r
-                       else\r
-                               lowId = newId;\r
-                       BigInteger highId = ((ChordProtocol) ((Node) Network\r
-                                       .get(middle + 1)).getProtocol(pid)).chordId;\r
-                       if (id.compareTo(newId) == 0\r
-                                       || ((id.compareTo(newId) == 1) && (id.compareTo(highId) == -1))) {\r
-                               return Network.get(middle);\r
-                       }\r
-                       if ((id.compareTo(newId) == -1) && (id.compareTo(lowId) == 1)) {\r
-                               if (middle > 0)\r
-                                       return Network.get(middle - 1);\r
-                               else\r
-                                       return Network.get(0);\r
-                       }\r
-                       if (id.compareTo(newId) == -1) {\r
-                               return findId(id, nodeOne, middle);\r
-                       } else if (id.compareTo(newId) == 1) {\r
-                               return findId(id, middle, nodeTwo);\r
-                       }\r
-                       return null;\r
-               } catch (Exception e) {\r
-                       e.printStackTrace();\r
-                       return null;\r
-               }\r
-       }\r
-\r
-       public void createFingerTable() {\r
-               BigInteger idFirst = ((ChordProtocol) Network.get(0).getProtocol(pid)).chordId;\r
-               BigInteger idLast = ((ChordProtocol) Network.get(Network.size() - 1)\r
-                               .getProtocol(pid)).chordId;\r
-               for (int i = 0; i < Network.size(); i++) {\r
-                       Node node = (Node) Network.get(i);\r
-                       ChordProtocol cp = (ChordProtocol) node.getProtocol(pid);\r
-                       for (int a = 0; a < successorLsize; a++) {\r
-                               if (a + i < (Network.size() - 1))\r
-                                       cp.successorList[a] = Network.get(a + i + 1);\r
-                               else\r
-                                       cp.successorList[a] = Network.get(a);\r
-                       }\r
-                       if (i > 0)\r
-                               cp.predecessor = (Node) Network.get(i - 1);\r
-                       else\r
-                               cp.predecessor = (Node) Network.get(Network.size() - 1);\r
-                       int j = 0;\r
-                       for (j = 0; j < idLength; j++) {\r
-                               BigInteger base;\r
-                               if (j == 0)\r
-                                       base = BigInteger.ONE;\r
-                               else {\r
-                                       base = BigInteger.valueOf(2);\r
-                                       for (int exp = 1; exp < j; exp++) {\r
-                                               base = base.multiply(BigInteger.valueOf(2));\r
-                                       }\r
-                               }\r
-                               BigInteger pot = cp.chordId.add(base);\r
-                               if (pot.compareTo(idLast) == 1) {\r
-                                       pot = (pot.mod(idLast));\r
-                                       if (pot.compareTo(cp.chordId) != -1) {\r
-                                               break;\r
-                                       }\r
-                                       if (pot.compareTo(idFirst) == -1) {\r
-                                               cp.fingerTable[j] = Network.get(Network.size() - 1);\r
-                                               continue;\r
-                                       }\r
-                               }\r
-                               cp.fingerTable[j] = findId(pot, 0, Network.size() - 1);\r
-                       }\r
-               }\r
-       }\r
-}\r
diff --git a/contrib/psg/src/example/chord/FinalMessage.java b/contrib/psg/src/example/chord/FinalMessage.java
deleted file mode 100644 (file)
index 847dba9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-package example.chord;\r
-\r
-public class FinalMessage implements ChordMessage {\r
-\r
-       private int hopCounter = 0;\r
-\r
-       public FinalMessage(int hopCounter) {\r
-               this.hopCounter = hopCounter;\r
-       }\r
-\r
-       public int getHopCounter() {\r
-               return hopCounter;\r
-       }\r
-}\r
diff --git a/contrib/psg/src/example/chord/LookUpMessage.java b/contrib/psg/src/example/chord/LookUpMessage.java
deleted file mode 100644 (file)
index 091089e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-package example.chord;\r
-\r
-import java.math.*;\r
-import peersim.core.*;\r
-\r
-public class LookUpMessage implements ChordMessage {\r
-\r
-       private Node sender;\r
-\r
-       private BigInteger targetId;\r
-\r
-       private int hopCounter = -1;\r
-\r
-       public LookUpMessage(Node sender, BigInteger targetId) {\r
-               this.sender = sender;\r
-               this.targetId = targetId;\r
-       }\r
-\r
-       public void increaseHopCounter() {\r
-               hopCounter++;\r
-       }\r
-\r
-       /**\r
-        * @return the senderId\r
-        */\r
-       public Node getSender() {\r
-               return sender;\r
-       }\r
-\r
-       /**\r
-        * @return the target\r
-        */\r
-       public BigInteger getTarget() {\r
-               return targetId;\r
-       }\r
-\r
-       /**\r
-        * @return the hopCounter\r
-        */\r
-       public int getHopCounter() {\r
-               return hopCounter;\r
-       }\r
-\r
-}\r
diff --git a/contrib/psg/src/example/chord/MessageCounterObserver.java b/contrib/psg/src/example/chord/MessageCounterObserver.java
deleted file mode 100644 (file)
index dbcbb8f..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-import java.util.ArrayList;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.config.Configuration;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public class MessageCounterObserver implements Control {\r
-\r
-       private static final String PAR_PROT = "protocol";\r
-\r
-       private final String prefix;\r
-\r
-       private final int pid;\r
-\r
-       /**\r
-        * \r
-        */\r
-       public MessageCounterObserver(String prefix) {\r
-               this.prefix = prefix;\r
-               this.pid = Configuration.getPid(prefix + "." + PAR_PROT);\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * \r
-        * @see peersim.core.Control#execute()\r
-        */\r
-       public boolean execute() {\r
-               int size = Network.size();\r
-               int totalStab = 0;\r
-               int totFails = 0;\r
-               ArrayList hopCounters = new ArrayList(); // struttura dati che\r
-                                                                                                       // memorizza gli hop di\r
-                                                                                                       // tutti i mess mandati\r
-               hopCounters.clear();\r
-               int max = 0;\r
-               int min = Integer.MAX_VALUE;\r
-               for (int i = 0; i < size; i++) {\r
-                       ChordProtocol cp = (ChordProtocol) Network.get(i).getProtocol(pid);\r
-                       // trovare tutti gli hopCOunter dei messaggi lookup mandati\r
-                       int[] counters = new int[cp.getLookupMessage().length];\r
-                       System.arraycopy(cp.getLookupMessage(), 0, counters, 0, cp\r
-                                       .getLookupMessage().length);\r
-                       totalStab = totalStab + cp.stabilizations;\r
-                       totFails = totFails + cp.fails;\r
-                       cp.stabilizations = 0;\r
-                       cp.fails = 0;\r
-                       int maxNew = maxArray(counters, cp.index);\r
-                       if (maxNew > max)\r
-                               max = maxNew;\r
-                       if (cp.index != 0) {\r
-                               for (int j = 0; j < cp.index; j++)\r
-                                       hopCounters.add(counters[j]);\r
-                               int minNew = minArray(counters, cp.index);\r
-                               if (minNew < min)\r
-                                       min = minNew;\r
-                       }\r
-                       cp.emptyLookupMessage();\r
-               }\r
-               double media = meanCalculator(hopCounters);\r
-               if (media > 0)\r
-                       System.out.println("Mean:  " + media + " Max Value: " + max\r
-                                       + " Min Value: " + min + " # Observations: "\r
-                                       + hopCounters.size());\r
-               System.out.println("     # Stabilizations: " + totalStab + " # Failures: "\r
-                               + totFails);\r
-               System.out.println("");\r
-               return false;\r
-       }\r
-\r
-       private double meanCalculator(ArrayList list) {\r
-               int lenght = list.size();\r
-               if (lenght == 0)\r
-                       return 0;\r
-               int sum = 0;\r
-               for (int i = 0; i < lenght; i++) {\r
-                       sum = sum + ((Integer) list.get(i)).intValue();\r
-               }\r
-               double mean = sum / lenght;\r
-               return mean;\r
-       }\r
-\r
-       private int maxArray(int[] array, int dim) {\r
-               int max = 0;\r
-               for (int j = 0; j < dim; j++) {\r
-                       if (array[j] > max)\r
-                               max = array[j];\r
-               }\r
-               return max;\r
-       }\r
-\r
-       private int minArray(int[] array, int dim) {\r
-               int min = 0;\r
-               for (int j = 0; j < dim; j++) {\r
-                       if (array[j] < min)\r
-                               min = array[j];\r
-               }\r
-               return min;\r
-       }\r
-}\r
diff --git a/contrib/psg/src/example/chord/NodeComparator.java b/contrib/psg/src/example/chord/NodeComparator.java
deleted file mode 100644 (file)
index def16dc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package example.chord;\r
-\r
-import java.util.Comparator;\r
-import java.math.*;\r
-import peersim.core.*;\r
-\r
-public class NodeComparator implements Comparator {\r
-\r
-       public int pid = 0;\r
-\r
-       public NodeComparator(int pid) {\r
-               this.pid = pid;\r
-       }\r
-\r
-       public int compare(Object arg0, Object arg1) {\r
-               BigInteger one = ((ChordProtocol) ((Node) arg0).getProtocol(pid)).chordId;\r
-               BigInteger two = ((ChordProtocol) ((Node) arg1).getProtocol(pid)).chordId;\r
-               return one.compareTo(two);\r
-       }\r
-\r
-}\r
diff --git a/contrib/psg/src/example/chord/Parameters.java b/contrib/psg/src/example/chord/Parameters.java
deleted file mode 100644 (file)
index d32d82f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-package example.chord;\r
-\r
-public class Parameters {\r
-       int pid;\r
-\r
-       int tid;\r
-}\r
diff --git a/contrib/psg/src/example/chord/TrafficGenerator.java b/contrib/psg/src/example/chord/TrafficGenerator.java
deleted file mode 100644 (file)
index 09c5854..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-import org.simgrid.msg.Host;\r
-\r
-import peersim.core.*;\r
-import peersim.config.Configuration;\r
-import peersim.edsim.EDSimulator;\r
-import psgsim.PSGSimulator;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public class TrafficGenerator implements Control {\r
-\r
-       private static final String PAR_PROT = "protocol";\r
-\r
-       private final int pid;\r
-\r
-       /**\r
-        * \r
-        */\r
-       public TrafficGenerator(String prefix) {\r
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * \r
-        * @see peersim.core.Control#execute()\r
-        */\r
-       public boolean execute() {\r
-               int size = Network.size();\r
-               Node sender, target;\r
-               int i = 0;\r
-               do {\r
-                       i++;\r
-                       sender = Network.get(CommonState.r.nextInt(size));\r
-                       target = Network.get(CommonState.r.nextInt(size));\r
-               } while (sender == null || sender.isUp() == false || target == null\r
-                               || target.isUp() == false);\r
-               LookUpMessage message = new LookUpMessage(sender,\r
-                               ((ChordProtocol) target.getProtocol(pid)).chordId);\r
-               System.out.println("TrafficGenerator at time "+CommonState.getTime()+" Node:"\r
-                               + message.getSender().getID() +" target "+target.getID() + " pid:"\r
-                               + pid);\r
-               EDSimulator.add(10, message, sender, pid);\r
-               return false;\r
-       }\r
-\r
-}\r
diff --git a/contrib/psg/src/example/edaggregation/AverageED.java b/contrib/psg/src/example/edaggregation/AverageED.java
deleted file mode 100644 (file)
index c5f3358..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2003 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package example.edaggregation;
-
-import peersim.vector.SingleValueHolder;
-import peersim.config.*;
-import peersim.core.*;
-import peersim.transport.Transport;
-import peersim.cdsim.CDProtocol;
-import peersim.edsim.EDProtocol;
-
-/**
- * Event driven version of epidemic averaging.
- */
-public class AverageED extends SingleValueHolder implements CDProtocol,
-               EDProtocol {
-
-       // --------------------------------------------------------------------------
-       // Initialization
-       // --------------------------------------------------------------------------
-
-       /**
-        * @param prefix
-        *            string prefix for config properties
-        */
-       public AverageED(String prefix) {
-               super(prefix);
-       }
-
-       // --------------------------------------------------------------------------
-       // methods
-       // --------------------------------------------------------------------------
-
-       /**
-        * This is the standard method the define periodic activity. The frequency
-        * of execution of this method is defined by a
-        * {@link peersim.edsim.CDScheduler} component in the configuration.
-        */
-       public void nextCycle(Node node, int pid) {
-               Linkable linkable = (Linkable) node.getProtocol(FastConfig
-                               .getLinkable(pid));
-               if (linkable.degree() > 0) {
-                       int degree=linkable.degree();
-                       int i=CommonState.r.nextInt(degree);            
-                       Node peern = linkable.getNeighbor(i);
-                       System.out.println("Pid of the protocol: "+pid);
-                       System.out.println("Time="+CommonState.getTime()+" degree="+degree+" i="+i+" peernID="+peern.getID()+" peernIndex="+peern.getIndex());
-                       if (!peern.isUp())
-                               return;
-                       AverageMessage ob=new AverageMessage(value, node);
-                       System.out.println("NextCycle\t"+"\t Time: " + CommonState.getTime()+ "\t src: " + node.getID() + "\t dst: " + peern.getID()+"\t msg:"+ob.value);
-                       ((Transport) node.getProtocol(FastConfig.getTransport(pid))).send(
-                                       node, peern, ob, pid);
-               }
-       }
-
-       // --------------------------------------------------------------------------
-
-       /**
-        * This is the standard method to define to process incoming messages.
-        */
-       public void processEvent(Node node, int pid, Object event) {
-
-               AverageMessage aem = (AverageMessage) event;
-
-               AverageMessage ob=null;
-               if (aem.sender != null){
-                       System.out.println("ProcessEventR\t"+"\t Time: " + CommonState.getTime() + "\t src: " + aem.sender.getID() + "\t dst: " + node.getID()+"\t msg:"+aem.value);
-                       ob=new AverageMessage(value, null);
-                       System.out.println("ProcessEventS\t"+"\t Time: " + CommonState.getTime()+ "\t src: " + node.getID() + "\t dst: " + aem.sender.getID()+"\t msg:"+ob.value);
-                       ((Transport) node.getProtocol(FastConfig.getTransport(pid))).send(
-                                       node, aem.sender, ob, pid);
-       } else {
-               System.out.println("ProcessEventR\t"+"\t Time: " +CommonState.getTime() + "\t src: " + "NULL" + "\t dst: " + node.getID()+"\t msg:"+aem.value);
-       }
-               value = (value + aem.value) / 2;
-       }
-
-}
-
-// --------------------------------------------------------------------------
-// --------------------------------------------------------------------------
-
-/**
- * The type of a message. It contains a value of type double and the sender node
- * of type {@link peersim.core.Node}.
- */
-class AverageMessage {
-
-       final double value;
-       /**
-        * If not null, this has to be answered, otherwise this is the answer.
-        */
-       final Node sender;
-
-       public AverageMessage(double value, Node sender) {
-               this.value = value;
-               this.sender = sender;
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/example/symphony/AdapterIterableNetwork.java b/contrib/psg/src/example/symphony/AdapterIterableNetwork.java
deleted file mode 100644 (file)
index 37bf104..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Iterator;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- * Adapter Class absolutely UNSAFE, just to be able to iterate peersim.core.Network\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class AdapterIterableNetwork implements Iterable<Node>, Iterator<Node> {\r
-\r
-    private int i = 0;\r
-\r
-    public Iterator<Node> iterator() {\r
-        return this;\r
-    }\r
-\r
-    public boolean hasNext() {\r
-        return i < Network.size();\r
-    }\r
-\r
-    public Node next() {\r
-        return Network.get(i++);\r
-    }\r
-\r
-    public void remove() {\r
-        throw new UnsupportedOperationException("Not supported yet.");\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/AdapterSymphonyNodeComparator.java b/contrib/psg/src/example/symphony/AdapterSymphonyNodeComparator.java
deleted file mode 100644 (file)
index b05bbb6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Comparator;\r
-\r
-import example.symphony.SymphonyProtocol.BootstrapStatus;\r
-import peersim.core.Node;\r
-\r
-/**\r
- * Object-Adapter\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class AdapterSymphonyNodeComparator implements Comparator<Tuple<Node, BootstrapStatus>> {\r
-\r
-    private SymphonyNodeComparator comparator;\r
-\r
-    public AdapterSymphonyNodeComparator(SymphonyNodeComparator comparator) {\r
-        this.comparator = comparator;\r
-    }\r
-\r
-    public int compare(Tuple<Node, BootstrapStatus> o1, Tuple<Node, BootstrapStatus> o2) {\r
-\r
-        Node node1 = o1.x;\r
-        Node node2 = o2.x;\r
-\r
-        return comparator.compare(node1, node2);\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/Handler.java b/contrib/psg/src/example/symphony/Handler.java
deleted file mode 100644 (file)
index c78d774..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public interface Handler {\r
-\r
-    /**\r
-     * Handler associable to a routing request\r
-     *\r
-     * @param src Symphony Protocol that has sent the routing request\r
-     * @param evt Tuple that contains: Node that manages the identifier, Identifier that the routing\r
-     * has done on\r
-     */\r
-    void handle(SymphonyProtocol src, Tuple<Node, Double> evt);\r
-}\r
diff --git a/contrib/psg/src/example/symphony/LeaveTest.java b/contrib/psg/src/example/symphony/LeaveTest.java
deleted file mode 100644 (file)
index b4c9167..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class LeaveTest implements Control {\r
-\r
-    private static final String PAR_NETMANAGER = "symphonynetworkmanager";\r
-    private static final String PAR_NUMBER_LEAVES = "n";\r
-    private static final String PAR_MIN_SIZE = "minsizeOnline";\r
-    private static final String PAR_WAIT_TARGET_SIZE = "waitTargetSizeToStart";\r
-    private final int networkManagerID;\r
-    private final double n;\r
-    private final int minSizeNetwork;\r
-    private int targetSize;\r
-\r
-    public LeaveTest(String prefix) {\r
-        networkManagerID = Configuration.getPid(prefix + "." + PAR_NETMANAGER);\r
-        double nAppo = Configuration.getDouble(prefix + "." + PAR_NUMBER_LEAVES);\r
-        if (!(nAppo > 0.0 && nAppo < 1.0)) {\r
-            n = (int) Math.round(nAppo);\r
-        } else {\r
-            n = nAppo;\r
-        }\r
-\r
-        minSizeNetwork = Configuration.getInt(prefix + "." + PAR_MIN_SIZE, -1);\r
-        targetSize = Configuration.getInt(prefix + "." + PAR_WAIT_TARGET_SIZE, -1);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        if (minSizeNetwork > 0) {\r
-\r
-            int onlineNode = 0;\r
-            AdapterIterableNetwork it = new AdapterIterableNetwork();\r
-            for (Node node : it) {\r
-                if (node.isUp()) {\r
-                    onlineNode++;\r
-                }\r
-            }\r
-\r
-            if (targetSize <= 0 || targetSize <= onlineNode) {\r
-                targetSize = -1;\r
-\r
-                // verify if i have to remove an exact number of nodes or a percentage of them\r
-                int actualN = (int) (n < 1.0 ? Math.ceil(Network.size() * n) : n);\r
-\r
-                for (int i = 0; i < actualN && Network.size() > 0; i++) {\r
-                    if (onlineNode > minSizeNetwork) {\r
-                        Node leaveNode = Network.get(Math.abs(CommonState.r.nextInt()) % Network.size());\r
-\r
-                        while (!leaveNode.isUp()) {\r
-                            leaveNode = Network.get(Math.abs(CommonState.r.nextInt()) % Network.size());\r
-                        }\r
-\r
-                        SymphonyNetworkManager networkManager = (SymphonyNetworkManager) leaveNode.getProtocol(networkManagerID);\r
-\r
-                        networkManager.leave(leaveNode);\r
-\r
-                        onlineNode--;\r
-                    } else {\r
-                        break;\r
-                    }\r
-                }\r
-            }\r
-        }\r
-\r
-        return false;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/Message.java b/contrib/psg/src/example/symphony/Message.java
deleted file mode 100644 (file)
index 5f63d11..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class Message implements Cloneable {\r
-\r
-    public enum MessageType {\r
-\r
-        ROUTE, ROUTE_RESPONSE, ROUTE_FAIL,\r
-        JOIN, JOIN_RESPONSE,\r
-        UPDATE_NEIGHBOURS, UPDATE_NEIGHBOURS_RESPONSE,\r
-        REQUEST_LONG_RANGE_LINK, ACCEPTED_LONG_RANGE_LINK, REJECT_LONG_RANGE_LINK, DISCONNECT_LONG_RANGE_LINK, UNAVAILABLE_LONG_RANGE_LINK,\r
-        UPDATE_STATUS, UPDATE_STATUS_RESPONSE,\r
-        LEAVE,\r
-        KEEP_ALIVE, KEEP_ALIVE_RESPONSE\r
-    }\r
-    private long hopCounter;\r
-    private MessageType type;\r
-    private Node src;\r
-    private Node currentHop;\r
-    private Object body;\r
-    private static long globalID = 0;\r
-    private final long id;\r
-\r
-    public Message(Object body, Node src, MessageType type) {\r
-        this.type = type;\r
-        this.src = src;\r
-        this.body = body;\r
-        hopCounter = 0;\r
-        id = globalID++;\r
-        currentHop = src;\r
-    }\r
-\r
-    public long getID() {\r
-        return id;\r
-    }\r
-\r
-    public Object getBody() {\r
-        return body;\r
-    }\r
-\r
-    public void incrementHop() {\r
-        hopCounter++;\r
-    }\r
-\r
-    public long getHop() {\r
-        return hopCounter;\r
-    }\r
-\r
-    public MessageType getType() {\r
-        return type;\r
-    }\r
-\r
-    public Node getSourceNode() {\r
-        return src;\r
-    }\r
-\r
-    public Node getCurrentHop() {\r
-        return currentHop;\r
-    }\r
-\r
-    public void setCurrentHop(Node currentHop) {\r
-        this.currentHop = currentHop;\r
-    }\r
-\r
-    @Override\r
-    public Object clone() throws CloneNotSupportedException {\r
-        return super.clone();\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-\r
-        StringBuilder builder = new StringBuilder();\r
-        builder.append("Message@").append(this.hashCode()).append("[\n");\r
-\r
-        builder.append("\tID : ").append(id).append(",\n");\r
-        builder.append("\tSource ID: ").append(src.getID()).append(",\n");\r
-        builder.append("\tType : ").append(type).append(",\n");\r
-        builder.append("\tBody : ").append(body).append(",\n");\r
-        builder.append("\tCurrent Hop ID: ").append(currentHop.getID()).append(",\n");\r
-        builder.append("\tHop Counter : ").append(hopCounter).append("\n]\n");\r
-\r
-        return builder.toString();\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/NetworkSizeEstimatorProtocolInterface.java b/contrib/psg/src/example/symphony/NetworkSizeEstimatorProtocolInterface.java
deleted file mode 100644 (file)
index ffb8ba9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.core.Node;\r
-import peersim.core.Protocol;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public interface NetworkSizeEstimatorProtocolInterface extends Protocol {\r
-\r
-    public int getNetworkSize(Node node);\r
-}\r
diff --git a/contrib/psg/src/example/symphony/RandomRouteTest.java b/contrib/psg/src/example/symphony/RandomRouteTest.java
deleted file mode 100644 (file)
index fe55f33..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class RandomRouteTest implements Control, Handler {\r
-\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private final int symphonyID;\r
-\r
-    public RandomRouteTest(String prefix) {\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        Node src = Network.get(Math.abs(CommonState.r.nextInt()) % Network.size());\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) src.getProtocol(symphonyID);\r
-        try {\r
-            symphony.route(src, CommonState.r.nextDouble(), this);\r
-        } catch (RoutingException ex) {\r
-            Logger.getLogger(RandomRouteTest.class.getName()).log(Level.SEVERE, ex.getMessage());\r
-        }\r
-\r
-        return false;\r
-\r
-    }\r
-\r
-    public void handle(SymphonyProtocol symphony, Tuple<Node, Double> tuple) {\r
-\r
-        if (tuple == null) {\r
-            Logger.getLogger(RandomRouteTest.class.getName()).log(Level.SEVERE, "FAIL ROUTE RANDOMTEST");\r
-            return;\r
-        }\r
-\r
-        Logger.getLogger(RandomRouteTest.class.getName()).log(Level.FINE, symphony.getIdentifier() + " source find the manager of " + tuple.y + " and it is " + ((SymphonyProtocol) tuple.x.getProtocol(symphonyID)).getIdentifier());\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/RingRouteTest.java b/contrib/psg/src/example/symphony/RingRouteTest.java
deleted file mode 100644 (file)
index 06262cb..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.HashSet;\r
-import java.util.LinkedList;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-\r
-import example.symphony.SymphonyProtocol.BootstrapStatus;\r
-import peersim.config.Configuration;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class RingRouteTest implements Control, Handler {\r
-\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private static final String PAR_STARTNODE = "startnode";\r
-    private final int symphonyID;\r
-    private final int indexStartNode;\r
-    private Node start;\r
-    private boolean finished;\r
-    private boolean flagTimeout;\r
-    private HashSet<Node> antiLoopSet;\r
-\r
-    public RingRouteTest(String prefix) {\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-        indexStartNode = Configuration.getInt(prefix + "." + PAR_STARTNODE, 0);\r
-\r
-        finished = true;\r
-        flagTimeout = false;\r
-        antiLoopSet = new HashSet<Node>();\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        if (!finished && flagTimeout) {\r
-\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.WARNING, "Sent msg but no aswer. Timeout. Ring Route Test terminated for Timeout.");\r
-\r
-            finished = true;\r
-            flagTimeout = false;\r
-        }\r
-\r
-        if (finished) {\r
-\r
-            flagTimeout = true;\r
-            antiLoopSet.clear();\r
-\r
-            int indexRealStartNode = indexStartNode;\r
-            Node realStartNode = Network.get(indexStartNode);\r
-            SymphonyProtocol symphony = (SymphonyProtocol) realStartNode.getProtocol(symphonyID);\r
-\r
-            while (!symphony.isBootstrapped() || !realStartNode.isUp()) {\r
-                indexRealStartNode = (indexRealStartNode + 1) % Network.size();\r
-                realStartNode = Network.get(indexRealStartNode);\r
-                symphony = (SymphonyProtocol) realStartNode.getProtocol(symphonyID);\r
-\r
-                if (indexRealStartNode == indexStartNode) {\r
-                    Logger.getLogger(RingRouteTest.class.getName()).log(Level.WARNING, "No ONLINE nodes. The ring is vanished. Ring Route Terminated.");\r
-                    finished = true;\r
-                    flagTimeout = false;\r
-                    return false;\r
-                }\r
-            }\r
-\r
-            start = realStartNode;\r
-            finished = false;\r
-\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.INFO, "RingRoute started.");\r
-\r
-            doRoute(start, true);\r
-        }\r
-\r
-        return false;\r
-    }\r
-\r
-    public void handle(SymphonyProtocol symphony, Tuple<Node, Double> tuple) {\r
-\r
-        if (tuple == null) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.SEVERE, "FAIL RING ROUTING");\r
-            finished = true;\r
-            return;\r
-        }\r
-\r
-        Logger.getLogger(RingRouteTest.class.getName()).log(Level.FINER, symphony.getIdentifier() + " source find the manager of " + tuple.y + " and it is " + ((SymphonyProtocol) tuple.x.getProtocol(symphonyID)).getIdentifier());\r
-\r
-        doRoute(tuple.x, false);\r
-    }\r
-\r
-    private void doRoute(Node node, boolean firstTime) {\r
-\r
-        SymphonyProtocol symphonyStartNode = (SymphonyProtocol) start.getProtocol(symphonyID);\r
-\r
-        if (!symphonyStartNode.isBootstrapped()) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.INFO, "The node i started from left. Ring Route Terminated.");\r
-            finished = true;\r
-            return;\r
-        }\r
-\r
-        if (!firstTime && node.equals(start)) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.INFO, "RingRoute Terminated");\r
-            finished = true;\r
-            return;\r
-        }\r
-\r
-        if (antiLoopSet.contains(node)) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.INFO, "Not able to reach the node that i started from. Ring Route Terminated.");\r
-            finished = true;\r
-            return;\r
-        } else {\r
-            antiLoopSet.add(node);\r
-        }\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        AdapterSymphonyNodeComparator adapterSymphonyNodeComparator = new AdapterSymphonyNodeComparator(new SymphonyNodeComparator(symphonyID, node));\r
-\r
-        Collection<Tuple<Node, BootstrapStatus>> collection = (Collection<Tuple<Node, BootstrapStatus>>) symphony.leftShortRangeLinks.clone();\r
-        LinkedList<Tuple<Node, BootstrapStatus>> list = new LinkedList<Tuple<Node, BootstrapStatus>>(collection);\r
-        Collections.sort(list, adapterSymphonyNodeComparator);\r
-\r
-        Node targetNode = null;\r
-        for (Tuple<Node, BootstrapStatus> tuple : list) {\r
-            if (tuple.y == BootstrapStatus.ONLINE) {\r
-                targetNode = tuple.x;\r
-                break;\r
-            }\r
-        }\r
-\r
-        if (targetNode == null || !targetNode.isUp()) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.WARNING, "Terminated Ring Route but not done completely");\r
-            finished = true;\r
-            return;\r
-        }\r
-\r
-        SymphonyProtocol symphonyTarget = (SymphonyProtocol) targetNode.getProtocol(symphonyID);\r
-        try {\r
-            symphony.route(node, symphonyTarget.getIdentifier(), this);\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.FINEST, "Ring from: " + symphony.getIdentifier() + " to " + symphonyTarget.getIdentifier());\r
-        } catch (RoutingException ex) {\r
-            Logger.getLogger(RingRouteTest.class.getName()).log(Level.WARNING, "Finito AnelloRoute MA NON FATTO TUTTO");\r
-            finished = true;\r
-        }\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/RoutingException.java b/contrib/psg/src/example/symphony/RoutingException.java
deleted file mode 100644 (file)
index 1b6bb9b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-package example.symphony;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class RoutingException extends Exception {\r
-\r
-    public RoutingException() {\r
-    }\r
-\r
-    public RoutingException(String msg) {\r
-        super(msg);\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SimpleNetworkSizeEstimatorProtocol.java b/contrib/psg/src/example/symphony/SimpleNetworkSizeEstimatorProtocol.java
deleted file mode 100644 (file)
index 6d17371..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SimpleNetworkSizeEstimatorProtocol implements NetworkSizeEstimatorProtocolInterface {\r
-\r
-    public SimpleNetworkSizeEstimatorProtocol(String prefix) {\r
-    }\r
-\r
-    public int getNetworkSize(Node node) {\r
-        return Network.size();\r
-    }\r
-\r
-    @Override\r
-    public Object clone() {\r
-        return this;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyEstimationProtocol.java b/contrib/psg/src/example/symphony/SymphonyEstimationProtocol.java
deleted file mode 100644 (file)
index 642677d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.*;\r
-import peersim.config.Configuration;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyEstimationProtocol implements NetworkSizeEstimatorProtocolInterface {\r
-\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private static final String PAR_S = "s";\r
-    private final int symphonyID;\r
-    private final int s;\r
-\r
-    public SymphonyEstimationProtocol(String prefix) {\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-        s = Configuration.getInt(prefix + "." + PAR_S, -1);\r
-    }\r
-\r
-    /**\r
-     * Implementation of the estimated network size as a variant of the paper one. It use anyway the\r
-     * idea to calculate the size from the length segments but without exchanging the information\r
-     * with the neighbours instead using only the local information.\r
-     */\r
-    public int getNetworkSize(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-        // If the node is not yet inside the ring i return the minimum size (2 nodes)\r
-        if (!symphony.isBootstrapped()) {\r
-            return 2;\r
-        }\r
-\r
-        /*\r
-         * I clone the short range links views (wrapped into an ArrayList because the returned list\r
-         * 'Arrays.asList doesn't support the "removeAll" method or better its size is fixed)\r
-         */\r
-        ArrayList<Tuple<Node, SymphonyProtocol.BootstrapStatus>> leftList = new ArrayList<Tuple<Node, SymphonyProtocol.BootstrapStatus>>(Arrays.asList((Tuple<Node, SymphonyProtocol.BootstrapStatus>[]) symphony.leftShortRangeLinks.toArray(new Tuple[0])));\r
-        ArrayList<Tuple<Node, SymphonyProtocol.BootstrapStatus>> rightList = new ArrayList<Tuple<Node, SymphonyProtocol.BootstrapStatus>>(Arrays.asList((Tuple<Node, SymphonyProtocol.BootstrapStatus>[]) symphony.rightShortRangeLinks.toArray(new Tuple[0])));\r
-\r
-        // Remove the neighbours that are offline\r
-        LinkedList<Tuple<Node, SymphonyProtocol.BootstrapStatus>> offlineNeighbors = new LinkedList<Tuple<Node, SymphonyProtocol.BootstrapStatus>>();\r
-        for (Tuple<Node, SymphonyProtocol.BootstrapStatus> tuple : leftList) {\r
-            if (tuple.y == SymphonyProtocol.BootstrapStatus.OFFLINE) {\r
-                offlineNeighbors.add(tuple);\r
-            }\r
-        }\r
-        leftList.removeAll(offlineNeighbors);\r
-        offlineNeighbors.clear();\r
-        for (Tuple<Node, SymphonyProtocol.BootstrapStatus> tuple : rightList) {\r
-            if (tuple.y == SymphonyProtocol.BootstrapStatus.OFFLINE) {\r
-                offlineNeighbors.add(tuple);\r
-            }\r
-        }\r
-        rightList.removeAll(offlineNeighbors);\r
-\r
-        // Sort the neighbours based on the distance from me\r
-        Comparator<Tuple<Node, SymphonyProtocol.BootstrapStatus>> comparator = new AdapterSymphonyNodeComparator(new SymphonyNodeComparator(symphonyID, symphony.getIdentifier()));\r
-        Collections.sort(leftList, comparator);\r
-        Collections.sort(rightList, comparator);\r
-\r
-        // Calculate the variables to estimated the network size\r
-        double Xs = 0;\r
-        int countS = 0;\r
-\r
-        List<Tuple<Node, SymphonyProtocol.BootstrapStatus>> appoList[] = new List[2];\r
-        appoList[0] = leftList;\r
-        appoList[1] = rightList;\r
-\r
-        double[] appoPrecIdentifier = new double[]{symphony.getIdentifier(), symphony.getIdentifier()};\r
-        int[] appoCurrentIndex = new int[]{0, 0};\r
-\r
-        int realS = (int) (s <= 0 ? Math.log(Network.size() / Math.log(2)) : s);\r
-\r
-        for (int i = 0; i < realS; i++) {\r
-            double precIdentifier = appoPrecIdentifier[i % 2];\r
-            int currentIndex = appoCurrentIndex[i % 2];\r
-            List<Tuple<Node, SymphonyProtocol.BootstrapStatus>> currentList = appoList[i % 2];\r
-\r
-            try {\r
-                double currentIdentifier = ((SymphonyProtocol) currentList.get(currentIndex).x.getProtocol(symphonyID)).getIdentifier();\r
-\r
-                appoPrecIdentifier[i % 2] = currentIdentifier;\r
-                appoCurrentIndex[i % 2] = appoCurrentIndex[i % 2] + 1;\r
-\r
-                double distance = Math.abs(currentIdentifier - precIdentifier);\r
-                Xs += Math.min(distance, 1.0 - distance);\r
-                countS++;\r
-            } catch (IndexOutOfBoundsException ex) {\r
-                // Simply i skip the counting\r
-            }\r
-        }\r
-\r
-        int ret = Xs == 0 ? 0 : (int) Math.round(countS / Xs);\r
-\r
-        return ret;\r
-    }\r
-\r
-    @Override\r
-    public Object clone() {\r
-        return this;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyNetworkBuilder.java b/contrib/psg/src/example/symphony/SymphonyNetworkBuilder.java
deleted file mode 100644 (file)
index a012d60..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Collection;\r
-import java.util.Comparator;\r
-import java.util.LinkedList;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-\r
-import example.symphony.SymphonyProtocol.BootstrapStatus;\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- * Inizializer that create the initial ring\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyNetworkBuilder implements Control {\r
-\r
-    private static final String PAR_SYMHONY = "symphony";\r
-    private static final String PAR_LONG_LINK = "createLongLinks";\r
-    private static final String PAR_MAX_ATTEMPTS = "attempts";\r
-    private final int symphonyID;\r
-    private final boolean createLongRangeLinks;\r
-    private final int MAX_ATTEMPTS;\r
-\r
-    public SymphonyNetworkBuilder(String prefix) {\r
-\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMHONY);\r
-        createLongRangeLinks = Configuration.getBoolean(prefix + "." + PAR_LONG_LINK, true);\r
-        MAX_ATTEMPTS = Configuration.getInt(prefix + "." + PAR_MAX_ATTEMPTS, 5);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        // Sort the network for convenience (from 0.0 to 1.0)\r
-        Network.sort(new Comparator<Node>() {\r
-\r
-            public int compare(Node o1, Node o2) {\r
-\r
-                SymphonyProtocol symphony1 = (SymphonyProtocol) o1.getProtocol(symphonyID);\r
-                SymphonyProtocol symphony2 = (SymphonyProtocol) o2.getProtocol(symphonyID);\r
-\r
-                Double identifier1 = symphony1.getIdentifier();\r
-                Double identifier2 = symphony2.getIdentifier();\r
-\r
-                return identifier1.compareTo(identifier2);\r
-            }\r
-        });\r
-\r
-        int numShortLinksPerSide = ((SymphonyProtocol) Network.get(0).getProtocol(symphonyID)).numberShortRangeLinksPerSide;\r
-\r
-        for (int i = 0; i < Network.size(); i++) {\r
-\r
-            Node node = Network.get(i);\r
-            SymphonyProtocol symphonyNode = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-            // Create the short links\r
-            for (int j = 1; j <= numShortLinksPerSide; j++) {\r
-\r
-                int pos = i - j;\r
-                pos = pos < 0 ? Network.size() + pos : pos;\r
-                symphonyNode.rightShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(Network.get(pos), BootstrapStatus.ONLINE));\r
-\r
-                pos = (i + j) % Network.size();\r
-                symphonyNode.leftShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(Network.get(pos), BootstrapStatus.ONLINE));\r
-            }\r
-\r
-            symphonyNode.loggedIntoNetwork = SymphonyProtocol.BootstrapStatus.ONLINE;\r
-        }\r
-\r
-        /*\r
-         * UPDATE: Putted a flag to decide if perform this part of code or not at configuration\r
-         * time. At default i create the long range links.\r
-         *\r
-         * The Long Range Links could be left to the networkmanager but the tests that we'll do have\r
-         * to put into account that in an initial phase will be some message exchanging to create\r
-         * the long range links and so the latency is faked... for that reason the long range links\r
-         * are created manually here such a way to have a complete symphony network from the\r
-         * beginning.\r
-         */\r
-        if (createLongRangeLinks) {\r
-            for (Node node : new AdapterIterableNetwork()) {\r
-\r
-                SymphonyProtocol symphonyNode = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-                // Create the long links\r
-                int k = (int) Math.ceil(Math.log(Network.size()) / Math.log(2));\r
-\r
-                if (symphonyNode.fixedLongRangeLinks) {\r
-                    k = symphonyNode.numberFixedLongRangeLinks;\r
-                }\r
-\r
-                Collection<Node> allShortLinks = new LinkedList<Node>();\r
-                for (Tuple<Node, BootstrapStatus> shortTuple : symphonyNode.leftShortRangeLinks) {\r
-                    allShortLinks.add(shortTuple.x);\r
-                }\r
-                for (Tuple<Node, BootstrapStatus> shortTuple : symphonyNode.rightShortRangeLinks) {\r
-                    allShortLinks.add(shortTuple.x);\r
-                }\r
-\r
-                int j = 0;\r
-                int attempts = MAX_ATTEMPTS;\r
-                while (j <= k) {\r
-\r
-                    double distance = Math.exp(k * (CommonState.r.nextDouble() - 1.0));\r
-                    double targetIdentifier = (symphonyNode.getIdentifier() + distance) % 1;\r
-\r
-                    Node targetNode;\r
-                    try {\r
-\r
-                        // use the unidirectional routing because i want to catch the manager\r
-                        targetNode = symphonyNode.findClosestNode(targetIdentifier, new AdapterIterableNetwork(), true);\r
-                        SymphonyProtocol symphonyTargetNode = (SymphonyProtocol) targetNode.getProtocol(symphonyID);\r
-                        if (!targetNode.equals(node)\r
-                                && !symphonyNode.longRangeLinksOutgoing.contains(targetNode)\r
-                                && symphonyTargetNode.longRangeLinksIncoming.size() < (2 * k)\r
-                                && !allShortLinks.contains(targetNode)) {\r
-\r
-                            boolean fresh = symphonyTargetNode.longRangeLinksIncoming.add(node);\r
-\r
-                            if (fresh) {\r
-                                j++;\r
-                                attempts = MAX_ATTEMPTS;\r
-                                symphonyNode.longRangeLinksOutgoing.add(targetNode);\r
-                            } else {\r
-                                attempts--;\r
-                                if (attempts <= 0) { // Because i don't want to loop i try a finite number of times\r
-                                    attempts = MAX_ATTEMPTS;\r
-                                    j++;\r
-                                }\r
-\r
-                            }\r
-                        } else {\r
-                            attempts--;\r
-                            if (attempts <= 0) { // Because i don't want to loop i try a finite number of times\r
-                                attempts = MAX_ATTEMPTS;\r
-                                j++;\r
-                            }\r
-\r
-                        }\r
-                    } catch (RoutingException ex) {\r
-                        Logger.getLogger(SymphonyNetworkBuilder.class.getName()).log(Level.SEVERE, null, ex);\r
-                    }\r
-                }\r
-            }\r
-        }\r
-\r
-        // Shuffle\r
-        Network.shuffle();\r
-\r
-        return false;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyNetworkChecker.java b/contrib/psg/src/example/symphony/SymphonyNetworkChecker.java
deleted file mode 100644 (file)
index d5f2aef..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Collections;\r
-import java.util.HashSet;\r
-import java.util.Set;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-\r
-import example.symphony.SymphonyProtocol.BootstrapStatus;\r
-import peersim.config.Configuration;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyNetworkChecker implements Control {\r
-\r
-    private static final String PAR_SYMHONY = "symphony";\r
-    private static final String PAR_NETSIZE = "networkestimator";\r
-    private final int symphonyID;\r
-    private final int networkEstimatorID;\r
-\r
-    public SymphonyNetworkChecker(String prefix) {\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMHONY);\r
-        networkEstimatorID = Configuration.getPid(prefix + "." + PAR_NETSIZE);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        boolean isNotOK = false;\r
-\r
-        Set<Double> idSet = new HashSet<Double>();\r
-        Iterable<Node> coll = new AdapterIterableNetwork();\r
-\r
-        int countOnline = 0;\r
-        int count = 0;\r
-        int notBootstrapped = 0;\r
-        int countKO = 0;\r
-        int disconnected = 0;\r
-\r
-        for (Node node : coll) {\r
-            SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-            if (!node.isUp()) {\r
-                disconnected++;\r
-            } else {\r
-                count++;\r
-            }\r
-\r
-            if (symphony.loggedIntoNetwork == SymphonyProtocol.BootstrapStatus.ONLINE) {\r
-\r
-                countOnline++;\r
-\r
-                NetworkSizeEstimatorProtocolInterface networkEstimator = (NetworkSizeEstimatorProtocolInterface) node.getProtocol(networkEstimatorID);\r
-                int k = (int) Math.ceil(Math.log(networkEstimator.getNetworkSize(node)) / Math.log(2));\r
-\r
-                boolean checkLeftShortRangeLinks = symphony.leftShortRangeLinks.size() > 0 && symphony.leftShortRangeLinks.size() <= symphony.numberShortRangeLinksPerSide;\r
-                boolean checkRightShortRangeLinks = symphony.rightShortRangeLinks.size() > 0 && symphony.rightShortRangeLinks.size() <= symphony.numberShortRangeLinksPerSide;\r
-\r
-                boolean oneNeighborOnline = false;\r
-                for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-                    if (leftTuple.y != BootstrapStatus.ONLINE && leftTuple.y != BootstrapStatus.OFFLINE) {\r
-                        notBootstrapped++;\r
-                    } else {\r
-                        oneNeighborOnline = true;\r
-                        checkLeftShortRangeLinks = checkLeftShortRangeLinks && SymphonyProtocol.isLeftNeighbour(node, leftTuple.x);\r
-                    }\r
-                }\r
-                checkLeftShortRangeLinks = checkLeftShortRangeLinks && oneNeighborOnline;\r
-\r
-                oneNeighborOnline = false;\r
-                for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-                    if (rightTuple.y != BootstrapStatus.ONLINE && rightTuple.y != BootstrapStatus.OFFLINE) {\r
-                        notBootstrapped++;\r
-                    } else {\r
-                        oneNeighborOnline = true;\r
-                        checkRightShortRangeLinks = checkRightShortRangeLinks && !SymphonyProtocol.isLeftNeighbour(node, rightTuple.x);\r
-                    }\r
-                }\r
-                checkRightShortRangeLinks = checkRightShortRangeLinks && oneNeighborOnline;\r
-\r
-                // Check if the node is in its neighbours\r
-                if (checkLeftShortRangeLinks) {\r
-                    AdapterSymphonyNodeComparator comparator = new AdapterSymphonyNodeComparator(new SymphonyNodeComparator(symphonyID, node));\r
-                    checkLeftShortRangeLinks = checkLeftShortRangeLinks && !Collections.min(symphony.leftShortRangeLinks, comparator).x.equals(node);\r
-                }\r
-\r
-                if (checkRightShortRangeLinks) {\r
-                    AdapterSymphonyNodeComparator comparator = new AdapterSymphonyNodeComparator(new SymphonyNodeComparator(symphonyID, node));\r
-                    checkRightShortRangeLinks = checkRightShortRangeLinks && !Collections.min(symphony.rightShortRangeLinks, comparator).x.equals(node);\r
-                }\r
-\r
-                boolean checkLongRangeLinksOutgoing = !symphony.longRangeLinksOutgoing.contains(node);\r
-                boolean checkLongRangeLinksIncoming = /*\r
-                         * symphony.longRangeLinksIncoming.size() <= (2 * k) &&\r
-                         */ !symphony.longRangeLinksIncoming.contains(node);\r
-\r
-                boolean checkUniqueID = !idSet.contains(symphony.getIdentifier());\r
-                idSet.add(symphony.getIdentifier());\r
-\r
-                boolean nextIsNotOK = !(checkUniqueID && checkLeftShortRangeLinks && checkRightShortRangeLinks && checkLongRangeLinksOutgoing && checkLongRangeLinksIncoming);\r
-\r
-                if (nextIsNotOK) {\r
-                    countKO++;\r
-                    Logger.getLogger(SymphonyNetworkChecker.class.getName()).log(Level.SEVERE, "OPS");\r
-                }\r
-\r
-                isNotOK = isNotOK || nextIsNotOK;\r
-            }\r
-        }\r
-\r
-        System.out.println("Error: " + countKO);\r
-        System.out.println("Online: " + countOnline + "/" + count);\r
-        System.out.println("Not Bootstrapped: " + notBootstrapped);\r
-        System.out.println("Disconnected: " + disconnected);\r
-        System.out.println("Network Size: " + Network.size());\r
-\r
-        return isNotOK;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyNetworkManager.java b/contrib/psg/src/example/symphony/SymphonyNetworkManager.java
deleted file mode 100644 (file)
index 4a1277f..0000000
+++ /dev/null
@@ -1,864 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.*;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-\r
-import example.symphony.Message.MessageType;\r
-import example.symphony.SymphonyProtocol.BootstrapStatus;\r
-import peersim.cdsim.CDProtocol;\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Fallible;\r
-import peersim.core.Node;\r
-import peersim.edsim.EDProtocol;\r
-import peersim.transport.Transport;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyNetworkManager implements EDProtocol, CDProtocol {\r
-\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private static final String PAR_TRANSP = "transport";\r
-    private static final String PAR_ATTEMPTS = "attempts";\r
-    private static final String PAR_NETSIZE = "networkestimator";\r
-    private static final String PAR_NUM_TIMEOUT = "nTimeout";\r
-    private static final String PAR_RELINKING = "relinking";\r
-    private static final String PAR_RELINKING_LOWER_BOUND = "relinkingLowerBound";\r
-    private static final String PAR_RELINKING_UPPER_BOUND = "relinkingUpperBound";\r
-    private static final int DEFAULT_K = 1;\r
-    private static final int DEFAULT_N = 2;\r
-    private static final double DEFAULT_RELINKING_LOWER_BOUND = 0.5;\r
-    private static final double DEFAULT_RELINKING_UPPER_BOUND = 2.0;\r
-    private final String prefix;\r
-    private final int symphonyID;\r
-    private final int transportID;\r
-    private final int networkEstimatorID;\r
-    private final int attempts;\r
-    private final int pid;\r
-    private final int nTimeout;\r
-    private final HashMap<Node, Integer> keepAliveMap;\r
-    private final boolean relinkingProtocolActivated;\r
-    private final double relinkingUpperBound;\r
-    private final double relinkingLowerBound;\r
-    private int k = DEFAULT_K; // Number of Long Range Link\r
-    private int n = DEFAULT_N; // Estimation Network size\r
-    private static boolean firstPrintConfig = true;\r
-    /*\r
-     * Estimation Network size at which last long distance link was established, at the beginning -1\r
-     * to indicate that we never had Long Range Links\r
-     */\r
-    private int nLink = -1;\r
-    private int currentAttempts;\r
-\r
-    public SymphonyNetworkManager(String prefix) {\r
-\r
-        this.prefix = prefix;\r
-        pid = Configuration.lookupPid(prefix.replaceAll("protocol.", ""));\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-        transportID = Configuration.getPid(prefix + "." + PAR_TRANSP);\r
-        networkEstimatorID = Configuration.getPid(prefix + "." + PAR_NETSIZE);\r
-        attempts = Configuration.getInt(prefix + "." + PAR_ATTEMPTS);\r
-        nTimeout = Configuration.getInt(prefix + "." + PAR_NUM_TIMEOUT, 10);\r
-        relinkingProtocolActivated = !Configuration.getString(prefix + "." + PAR_RELINKING, "on").toLowerCase().equals("off");\r
-        double relinkingLowerBoundAppo = Configuration.getDouble(prefix + "." + PAR_RELINKING_LOWER_BOUND, DEFAULT_RELINKING_LOWER_BOUND);\r
-        double relinkingUpperBoundAppo = Configuration.getDouble(prefix + "." + PAR_RELINKING_UPPER_BOUND, DEFAULT_RELINKING_UPPER_BOUND);\r
-        if (relinkingLowerBoundAppo > relinkingUpperBoundAppo) {\r
-            relinkingLowerBound = DEFAULT_RELINKING_LOWER_BOUND;\r
-            relinkingUpperBound = DEFAULT_RELINKING_UPPER_BOUND;\r
-        } else {\r
-            relinkingLowerBound = relinkingLowerBoundAppo;\r
-            relinkingUpperBound = relinkingUpperBoundAppo;\r
-        }\r
-\r
-        keepAliveMap = new HashMap<Node, Integer>();\r
-\r
-        printConfig();\r
-    }\r
-\r
-    private void printConfig() {\r
-\r
-        if (firstPrintConfig) {\r
-            firstPrintConfig = false;\r
-            System.out.println(SymphonyNetworkManager.class.getSimpleName() + " Configuration:");\r
-            System.out.println("- Attempts per LongRangeLinks: " + attempts);\r
-            System.out.println("- Number of Timeout before a node is considered OFFLINE (through Keep-alive):" + nTimeout);\r
-            System.out.println("- Relinking: " + (relinkingProtocolActivated ? "ON" : "OFF"));\r
-            System.out.println("- Relinking Range: [" + relinkingLowerBound + ", " + relinkingUpperBound + "]");\r
-            System.out.println("-------------------------------\n");\r
-        }\r
-    }\r
-\r
-    public void join(final Node node, final Node bootstrapNode) throws RoutingException {\r
-        final SymphonyProtocol bootstrapSymphony = (SymphonyProtocol) bootstrapNode.getProtocol(symphonyID);\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-        /*\r
-         * Search (through the bootstrap node) and contact the Manager Node of myself such a way to\r
-         * be able to insert myself into the ring and create the short links\r
-         *\r
-         */\r
-        bootstrapSymphony.route(bootstrapNode, symphony.getIdentifier(), new Handler() {\r
-\r
-            public void handle(SymphonyProtocol src, Tuple<Node, Double> tuple) {\r
-                if (tuple == null) {\r
-                    Logger.getLogger(SymphonyNetworkManager.class.getName()).log(Level.SEVERE, "FAIL ROUTE JOIN");\r
-                    node.setFailState(Fallible.DEAD);\r
-                    return;\r
-                }\r
-\r
-                Node managerNode = tuple.x;\r
-\r
-                Transport transport = (Transport) node.getProtocol(transportID);\r
-                Message msg = new Message(node, node, MessageType.JOIN);\r
-                transport.send(node, managerNode, msg, pid);\r
-            }\r
-        });\r
-\r
-        // The Long Range Links are added after that i joined the ring (before i can't because i haven't got the nodes to do the routing)\r
-    }\r
-\r
-    /**\r
-     * Conservative Re-Linking (i reuse the ones already created: not all fresh)\r
-     *\r
-     * @param node\r
-     */\r
-    public void updateLongRangeLinks(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-        // if too much links i delete the farest ones\r
-        while (symphony.longRangeLinksOutgoing.size() > k) {\r
-            Node distantNode = Collections.max(symphony.longRangeLinksOutgoing, new SymphonyNodeComparator(symphonyID, node));\r
-            symphony.longRangeLinksOutgoing.remove(distantNode);\r
-\r
-            // Communicate to the outgoing node that it ins't anymore one of my long range links\r
-            Message disconnectMsg = new Message(null, node, MessageType.DISCONNECT_LONG_RANGE_LINK);\r
-            transport.send(node, distantNode, disconnectMsg, pid);\r
-        }\r
-\r
-        // I can search Long Range Links only if i'm into the ring and i'm able to do routing\r
-        if (symphony.isBootstrapped()) {\r
-            // if only few i try again, untill attempts times, to add new ones\r
-            int difference = k - symphony.longRangeLinksOutgoing.size();\r
-            currentAttempts = attempts;\r
-            for (int i = 0; i < difference; i++) {\r
-                sendLongRangeLinkRequest(symphony, node);\r
-            }\r
-        }\r
-    }\r
-    private static final int MAX_ANTILOOP_COUNT_MANAGER_MYSELF = 5;\r
-    private int antiLoopManagerMySelf = 0;\r
-\r
-    private void sendLongRangeLinkRequest(final SymphonyProtocol symphony, final Node node) {\r
-        boolean routingOk;\r
-        do {\r
-            double distance = Math.exp((Math.log(n) / Math.log(2)) * (CommonState.r.nextDouble() - 1.0)); // Harmonic Distribution\r
-            double targetIdentifier = (symphony.getIdentifier() + distance) % 1;\r
-            try {\r
-\r
-                symphony.route(node, targetIdentifier, new Handler() {\r
-\r
-                    public void handle(SymphonyProtocol src, Tuple<Node, Double> tuple) {\r
-\r
-                        if (tuple == null) {\r
-                            Logger.getLogger(SymphonyNetworkManager.class.getName()).log(Level.SEVERE, "FAIL ROUTE SENDLONGRANGELINKREQUEST");\r
-                            return;\r
-                        }\r
-\r
-                        Collection<Node> allShortLinks = new LinkedList<Node>();\r
-                        for (Tuple<Node, BootstrapStatus> shortTuple : symphony.leftShortRangeLinks) {\r
-                            allShortLinks.add(shortTuple.x);\r
-                        }\r
-                        for (Tuple<Node, BootstrapStatus> shortTuple : symphony.rightShortRangeLinks) {\r
-                            allShortLinks.add(shortTuple.x);\r
-                        }\r
-\r
-                        /*\r
-                         *\r
-                         * I'm myself one of my short links, special case... i try again without\r
-                         * reduce the attempts for a maximum of MAX_ANTILOOP_COUNT_MANAGER_MYSELF\r
-                         * times after that i start again to reduce the attempts\r
-                         */\r
-                        if (tuple.x.equals(node) || allShortLinks.contains(tuple.x)) {\r
-\r
-                            if (antiLoopManagerMySelf < MAX_ANTILOOP_COUNT_MANAGER_MYSELF) {\r
-\r
-                                antiLoopManagerMySelf++;\r
-                                sendLongRangeLinkRequest(symphony, node);\r
-                            } else {\r
-                                antiLoopManagerMySelf = 0;\r
-                                currentAttempts--;\r
-                            }\r
-                        } else {\r
-\r
-                            boolean alreadyAdded = symphony.longRangeLinksOutgoing.contains(tuple.x);\r
-                            /*\r
-                             *\r
-                             * OPINABLE: DESCREASE ATTEMPTS ONLY FOR REJECT? If yes i have to manage\r
-                             * the possible loop (nodi exhaurited so already all added)\r
-                             */\r
-                            if (alreadyAdded && currentAttempts > 0) {\r
-                                currentAttempts--;\r
-                                sendLongRangeLinkRequest(symphony, node);\r
-                            } else if (!alreadyAdded) {\r
-                                Message msg = new Message(null, node, MessageType.REQUEST_LONG_RANGE_LINK);\r
-                                Transport transport = (Transport) node.getProtocol(transportID);\r
-                                transport.send(node, tuple.x, msg, pid);\r
-                            }\r
-                        }\r
-                    }\r
-                });\r
-                routingOk = true;\r
-            } catch (RoutingException ex) {\r
-                routingOk = false;\r
-            }\r
-        } while (!routingOk);\r
-    }\r
-\r
-    public void leave(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-        if (symphony.loggedIntoNetwork != BootstrapStatus.OFFLINE) {\r
-            Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-            symphony.loggedIntoNetwork = BootstrapStatus.OFFLINE;\r
-\r
-            // Communicate that i'm leaving to the outgoing (that i point to) nodes\r
-            for (Node outgoingNode : symphony.longRangeLinksOutgoing) {\r
-                Message disconnectMsg = new Message(null, node, MessageType.DISCONNECT_LONG_RANGE_LINK);\r
-                transport.send(node, outgoingNode, disconnectMsg, pid);\r
-            }\r
-\r
-            // Communicate that i'm leaving to the incoming (that they point to me) nodes\r
-            for (Node incomingNode : symphony.longRangeLinksIncoming) {\r
-                Message unavailableMsg = new Message(null, node, MessageType.UNAVAILABLE_LONG_RANGE_LINK);\r
-                transport.send(node, incomingNode, unavailableMsg, pid);\r
-            }\r
-\r
-            // Communicate to my neighbours (short range links) that i'm leaving and i send to them the near neighbours\r
-            for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-                Message leaveMsg = new Message(symphony.rightShortRangeLinks.clone(), node, MessageType.LEAVE);\r
-                transport.send(node, leftTuple.x, leaveMsg, pid);\r
-            }\r
-\r
-            for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-                Message leaveMsg = new Message(symphony.leftShortRangeLinks.clone(), node, MessageType.LEAVE);\r
-                transport.send(node, rightTuple.x, leaveMsg, pid);\r
-            }\r
-\r
-            node.setFailState(Fallible.DEAD);\r
-        }\r
-    }\r
-\r
-    public void processEvent(Node node, int pid, Object event) {\r
-\r
-        Message msg = (Message) event;\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-        Collection<Tuple<Node, BootstrapStatus>> collection = null;\r
-        switch (msg.getType()) {\r
-            case JOIN:\r
-                // I send my  current neighbours to the entering node\r
-                collection = (Collection<Tuple<Node, BootstrapStatus>>) symphony.leftShortRangeLinks.clone();\r
-                collection.addAll((Collection<Tuple<Node, BootstrapStatus>>) symphony.rightShortRangeLinks.clone());\r
-                Message responseMsg = new Message(collection, node, MessageType.JOIN_RESPONSE);\r
-                transport.send(node, msg.getSourceNode(), responseMsg, pid);\r
-\r
-                /*\r
-                 * Update my neighbours list, adding the new one (for sure it is entering in the\r
-                 * left side)\r
-                 *\r
-                 * Put to "ONLINE_AND_ALL_NEIGHBOURS_OFFLINE" because maybe the bootstrap phase is\r
-                 * not terminated yet (ashyncronous communication)\r
-                 */\r
-                symphony.leftShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(msg.getSourceNode(), BootstrapStatus.ONLINE_AND_ALL_NEIGHBOURS_OFFLINE));\r
-\r
-\r
-                fixNeighbours(node, symphony.leftShortRangeLinks);\r
-                break;\r
-            case JOIN_RESPONSE:\r
-\r
-                Collection<Tuple<Node, BootstrapStatus>> tupleCollection = (Collection<Tuple<Node, BootstrapStatus>>) msg.getBody();\r
-\r
-                /*\r
-                 *\r
-                 * My manager is a right neighbour. The manager is already inside the ring, boostrap\r
-                 * obliviously ok\r
-                 */\r
-                symphony.rightShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(msg.getSourceNode(), BootstrapStatus.ONLINE));\r
-\r
-                // Set my neighbours in the correct position\r
-                for (Tuple<Node, BootstrapStatus> tuple : tupleCollection) {\r
-                    if (SymphonyProtocol.isLeftNeighbour(node, tuple.x)) {\r
-                        symphony.leftShortRangeLinks.add(tuple);\r
-                    } else {\r
-                        symphony.rightShortRangeLinks.add(tuple);\r
-                    }\r
-                }\r
-\r
-                fixNeighbours(node, symphony.leftShortRangeLinks);\r
-                fixNeighbours(node, symphony.rightShortRangeLinks);\r
-\r
-                // Update bootstrap status\r
-                checkBootstrapStatus(node);\r
-\r
-                // I send the refresh command such a way to exchange the views\r
-                refreshNeighbours(node);\r
-\r
-                // Update Long Range Links, because it's at the beginning is the same as adding k\r
-                updateLongRangeLinks(node);\r
-                break;\r
-            case UPDATE_NEIGHBOURS:\r
-\r
-                Collection<Tuple<Node, BootstrapStatus>> collectionCloned = ((Collection<Tuple<Node, BootstrapStatus>>) symphony.leftShortRangeLinks.clone());\r
-                collectionCloned.addAll(((Collection<Tuple<Node, BootstrapStatus>>) symphony.rightShortRangeLinks.clone()));\r
-\r
-                // Send my neighbours such a way it can also update itself\r
-                Message responseUpdateMsg = new Message(collectionCloned, node, MessageType.UPDATE_NEIGHBOURS_RESPONSE);\r
-                transport.send(node, msg.getSourceNode(), responseUpdateMsg, pid);\r
-\r
-                // Update my view with the new node\r
-                Tuple<Node, BootstrapStatus> neighbourTuple = new Tuple<Node, BootstrapStatus>(msg.getSourceNode(), (BootstrapStatus) msg.getBody());\r
-                if (SymphonyProtocol.isLeftNeighbour(node, msg.getSourceNode())) {\r
-                    collection = symphony.leftShortRangeLinks;\r
-                } else {\r
-                    collection = symphony.rightShortRangeLinks;\r
-                }\r
-                collection.add(neighbourTuple);\r
-\r
-                fixNeighbours(node, collection);\r
-                fixLookAheadMap(node);\r
-                break;\r
-            case UPDATE_NEIGHBOURS_RESPONSE:\r
-\r
-                Collection<Tuple<Node, BootstrapStatus>> responseCollection = (Collection<Tuple<Node, BootstrapStatus>>) msg.getBody();\r
-\r
-                for (Tuple<Node, BootstrapStatus> neighbourResponseTuple : responseCollection) {\r
-                    if (SymphonyProtocol.isLeftNeighbour(node, neighbourResponseTuple.x)) {\r
-                        collection = symphony.leftShortRangeLinks;\r
-                    } else {\r
-                        collection = symphony.rightShortRangeLinks;\r
-                    }\r
-                    collection.add(neighbourResponseTuple);\r
-                }\r
-\r
-                // Fix the neighbours number to the maximum allow and maybe remove myself from the list\r
-                fixNeighbours(node, symphony.leftShortRangeLinks);\r
-                fixNeighbours(node, symphony.rightShortRangeLinks);\r
-                fixLookAheadMap(node);\r
-                break;\r
-            case UPDATE_STATUS:\r
-            case UPDATE_STATUS_RESPONSE:\r
-\r
-                Node updNode = msg.getSourceNode();\r
-                BootstrapStatus updStatus = (BootstrapStatus) msg.getBody();\r
-\r
-                // I search the neighbour and i update its status\r
-                boolean founded = false;\r
-\r
-                // Try to see if it is on the left\r
-                for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-                    if (leftTuple.x.equals(updNode)) {\r
-                        symphony.leftShortRangeLinks.remove(leftTuple);\r
-                        symphony.leftShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(updNode, updStatus));\r
-\r
-                        founded = true;\r
-                        break;\r
-                    }\r
-                }\r
-\r
-                // If it isn't on the left i try with the neighbours on the right\r
-                if (!founded) {\r
-                    for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-                        if (rightTuple.x.equals(updNode)) {\r
-                            symphony.rightShortRangeLinks.remove(rightTuple);\r
-                            symphony.rightShortRangeLinks.add(new Tuple<Node, BootstrapStatus>(updNode, updStatus));\r
-\r
-                            break;\r
-                        }\r
-                    }\r
-\r
-                    fixNeighbours(node, symphony.rightShortRangeLinks);\r
-                } else {\r
-                    fixNeighbours(node, symphony.leftShortRangeLinks);\r
-                }\r
-\r
-                checkBootstrapStatusAndAlert(node);\r
-\r
-                if (msg.getType() == MessageType.UPDATE_STATUS) {\r
-                    Message responseUpdStatus = new Message(symphony.loggedIntoNetwork, node, MessageType.UPDATE_STATUS_RESPONSE);\r
-                    transport.send(node, updNode, responseUpdStatus, pid);\r
-                }\r
-\r
-                break;\r
-            case REQUEST_LONG_RANGE_LINK:\r
-                MessageType responseType = MessageType.REJECT_LONG_RANGE_LINK;\r
-                if (symphony.longRangeLinksIncoming.size() < (2 * k)) {\r
-                    boolean added = symphony.longRangeLinksIncoming.add(msg.getSourceNode());\r
-                    if (added) {\r
-                        responseType = MessageType.ACCEPTED_LONG_RANGE_LINK;\r
-                    }\r
-                }\r
-                Message responseLongLinkMsg = new Message(null, node, responseType);\r
-                transport.send(node, msg.getSourceNode(), responseLongLinkMsg, pid);\r
-                break;\r
-            case ACCEPTED_LONG_RANGE_LINK:\r
-                nLink = n;\r
-                symphony.longRangeLinksOutgoing.add(msg.getSourceNode());\r
-                break;\r
-            case REJECT_LONG_RANGE_LINK:\r
-                if (currentAttempts > 0) {\r
-                    currentAttempts--;\r
-                    sendLongRangeLinkRequest(symphony, node);\r
-                }\r
-                break;\r
-            case DISCONNECT_LONG_RANGE_LINK:\r
-                symphony.longRangeLinksIncoming.remove(msg.getSourceNode());\r
-                symphony.lookAheadMap.put(msg.getSourceNode(), null);\r
-                break;\r
-            case UNAVAILABLE_LONG_RANGE_LINK:\r
-                symphony.longRangeLinksOutgoing.remove(msg.getSourceNode());\r
-                symphony.lookAheadMap.put(msg.getSourceNode(), null);\r
-                break;\r
-            case LEAVE:\r
-                Tuple<Node, BootstrapStatus> foundedTuple = null;\r
-\r
-                // Verify if the node that is leaving is a left neighbour\r
-                for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-                    if (leftTuple.x.equals(msg.getSourceNode())) {\r
-                        collection = symphony.leftShortRangeLinks;\r
-                        foundedTuple = leftTuple;\r
-                        break;\r
-                    }\r
-                }\r
-\r
-                // Verify if the node that is leaving is a right neighbour\r
-                if (collection == null) {\r
-                    for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-                        if (rightTuple.x.equals(msg.getSourceNode())) {\r
-                            collection = symphony.rightShortRangeLinks;\r
-                            foundedTuple = rightTuple;\r
-                            break;\r
-                        }\r
-                    }\r
-                }\r
-\r
-                // if i've found the neighbour i remove it and i add to myself its neighbours\r
-                if (collection != null) {\r
-                    collection.addAll((Collection<Tuple<Node, BootstrapStatus>>) msg.getBody());\r
-                    collection.remove(foundedTuple);\r
-                    fixNeighbours(node, collection);\r
-\r
-                    // Update status and ready to send an alert in case i'm out of the ring\r
-                    checkBootstrapStatusAndAlert(node);\r
-                }\r
-                break;\r
-            case KEEP_ALIVE:\r
-                Set<Double>[] lookAheadSetArray = new LinkedHashSet[2];\r
-\r
-                /*\r
-                 * Check if the contacting node is doing lookAhead and in case of affirmative answer\r
-                 * i provide to it the long range link identifiers (according to my routing mode)\r
-                 */\r
-                if ((Boolean) msg.getBody()) {\r
-                    int i = 0;\r
-                    Iterable[] iterableArray;\r
-                    if (symphony.bidirectionalRouting) {\r
-                        iterableArray = new Iterable[]{symphony.longRangeLinksOutgoing, symphony.longRangeLinksIncoming};\r
-                    } else {\r
-                        iterableArray = new Iterable[]{symphony.longRangeLinksOutgoing};\r
-                    }\r
-\r
-                    for (Iterable<Node> iterable : iterableArray) {\r
-                        lookAheadSetArray[i] = new LinkedHashSet<Double>();\r
-                        Set<Double> lookAheadSet = lookAheadSetArray[i];\r
-                        Iterator<Node> it = iterable.iterator();\r
-                        while (it.hasNext()) {\r
-                            Node longLinkNode = it.next();\r
-                            lookAheadSet.add(((SymphonyProtocol) longLinkNode.getProtocol(symphonyID)).getIdentifier());\r
-                        }\r
-                        i++;\r
-                    }\r
-                }\r
-\r
-                transport.send(node, msg.getSourceNode(), new Message(lookAheadSetArray, node, MessageType.KEEP_ALIVE_RESPONSE), pid);\r
-                break;\r
-            case KEEP_ALIVE_RESPONSE:\r
-                // Reset the counter to 0\r
-                keepAliveMap.put(msg.getSourceNode(), 0);\r
-\r
-                if (symphony.lookAhead) {\r
-                    symphony.lookAheadMap.put(msg.getSourceNode(), (Set<Double>[]) msg.getBody());\r
-                }\r
-\r
-                break;\r
-        }\r
-    }\r
-\r
-    /**\r
-     *\r
-     * Update the status and communicate immediately to the neighbours if the node is gone out from\r
-     * the ring (and before it was inside)\r
-     *\r
-     * @param node\r
-     */\r
-    private void checkBootstrapStatusAndAlert(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        BootstrapStatus beforeStatus = symphony.loggedIntoNetwork;\r
-\r
-        checkBootstrapStatus(node);\r
-\r
-        // Instead of waiting that the update happens periodically i do it now because i'm out of the ring and before i wasn't\r
-        if (symphony.loggedIntoNetwork != beforeStatus && !symphony.isBootstrapped()) {\r
-            updateBootstrapStatusNeighbours(node, true);\r
-        }\r
-    }\r
-\r
-    private void fixNeighbours(Node node, Collection<Tuple<Node, BootstrapStatus>> neighbours) {\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-        // Remove duplicates, remove that ones that are in an obsolete status\r
-        Collection<Tuple<Node, BootstrapStatus>> removedNeighbours = new LinkedHashSet<Tuple<Node, BootstrapStatus>>();\r
-        for (Tuple<Node, BootstrapStatus> tuple : neighbours) {\r
-\r
-            // Remove myself from the neighbours list\r
-            if (tuple.x.equals(node)) {\r
-                removedNeighbours.add(tuple);\r
-                continue;\r
-            }\r
-\r
-            EnumSet<BootstrapStatus> status = EnumSet.allOf(BootstrapStatus.class);\r
-            status.remove(tuple.y);\r
-\r
-            for (BootstrapStatus opposite : status) {\r
-                Tuple<Node, BootstrapStatus> oppositeNeighbour = new Tuple<Node, BootstrapStatus>(tuple.x, opposite);\r
-                if (neighbours.contains(oppositeNeighbour)) {\r
-                    if (tuple.y != BootstrapStatus.ONLINE) {\r
-                        removedNeighbours.add(new Tuple<Node, BootstrapStatus>(tuple.x, BootstrapStatus.OFFLINE));\r
-                        if (opposite == BootstrapStatus.ONLINE) {\r
-                            removedNeighbours.add(new Tuple<Node, BootstrapStatus>(tuple.x, BootstrapStatus.ONLINE_AND_ALL_NEIGHBOURS_OFFLINE));\r
-                        }\r
-                    }\r
-                }\r
-            }\r
-        }\r
-        neighbours.removeAll(removedNeighbours);\r
-\r
-        /*\r
-         *\r
-         * I count the neighbours that are in the ONLINE status but before i remove the ones that\r
-         * are gone in timeout during the keep-alive procedure because can be someone that is old\r
-         * but not remove from the exchanging views (UPDATE_NEIGHBOURS) procedure and are not\r
-         * effectively online. To do anyway the possibility to the node to join again i decrease its\r
-         * timeout value. This only if the node is ONLINE and so i'm really interested that it is ok\r
-         * for the routing.\r
-         *\r
-         */\r
-        int onlineNeighbours = 0;\r
-        for (Tuple<Node, BootstrapStatus> tuple : neighbours) {\r
-\r
-            Integer value = keepAliveMap.get(tuple.x);\r
-            if (value != null && value >= nTimeout && tuple.y == BootstrapStatus.ONLINE) {\r
-                keepAliveMap.put(tuple.x, value - 1);\r
-                removedNeighbours.add(tuple);\r
-            } else {\r
-\r
-                if (tuple.y == BootstrapStatus.ONLINE) {\r
-                    onlineNeighbours++;\r
-                }\r
-            }\r
-        }\r
-        neighbours.removeAll(removedNeighbours);\r
-\r
-        // Fix the neighbours number to the maximum allowed\r
-        SymphonyNodeComparator comparator = new SymphonyNodeComparator(symphonyID, node);\r
-        AdapterSymphonyNodeComparator adapterComparator = new AdapterSymphonyNodeComparator(comparator);\r
-        while (neighbours.size() > symphony.numberShortRangeLinksPerSide) {\r
-            Tuple<Node, BootstrapStatus> distantTuple = Collections.max(neighbours, adapterComparator);\r
-\r
-            // Mantain the link with the ring\r
-            if (distantTuple.y == BootstrapStatus.ONLINE) {\r
-                if (onlineNeighbours > 1) {\r
-                    neighbours.remove(distantTuple);\r
-                    onlineNeighbours--;\r
-                } else {\r
-                    /*\r
-                     * If will be only one neighbour that is online i save it and i'm going to\r
-                     * eliminate another one (for sure it'll be not online)\r
-                     *\r
-                     */\r
-                    Tuple<Node, BootstrapStatus> backupOnlineNeighbour = distantTuple;\r
-                    neighbours.remove(backupOnlineNeighbour);\r
-                    distantTuple = Collections.max(neighbours, adapterComparator);\r
-                    neighbours.add(backupOnlineNeighbour);\r
-                    neighbours.remove(distantTuple);\r
-                }\r
-\r
-            } else {\r
-                neighbours.remove(distantTuple);\r
-            }\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public Object clone() {\r
-        SymphonyNetworkManager dolly = new SymphonyNetworkManager(prefix);\r
-        return dolly;\r
-    }\r
-\r
-    public void nextCycle(Node node, int protocolID) {\r
-\r
-        if (node.isUp()) {\r
-\r
-            // Update the estimated network size\r
-            updateN(node);\r
-\r
-            // Update the estimated K\r
-            updateK(node);\r
-\r
-            // Update the bootstrap status of my neighbours that were joining the ring\r
-            updateBootstrapStatusNeighbours(node, false);\r
-\r
-            // Refresh the neighbours views\r
-            refreshNeighbours(node);\r
-\r
-            // I send and check the connection status of the neighbours\r
-            keepAlive(node);\r
-\r
-            // Update the bootstrap status\r
-            checkBootstrapStatus(node);\r
-\r
-            // If it's active i check the Relinking criteria\r
-            if (relinkingProtocolActivated) {\r
-                reLinkingProtocol(node);\r
-            }\r
-\r
-            // Update the long range links (conservative)\r
-            updateLongRangeLinks(node);\r
-        }\r
-    }\r
-\r
-    /**\r
-     *\r
-     * @param allNeighbours true, communicate/receive the status update from all the neighbours.\r
-     * false, communicate/receive the status update only from the neighbours that are NOT ONLINE\r
-     *\r
-     */\r
-    private void updateBootstrapStatusNeighbours(Node node, boolean allNeighbours) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-        Collection<Tuple<Node, BootstrapStatus>> collection = new LinkedHashSet<Tuple<Node, BootstrapStatus>>();\r
-        collection.addAll(symphony.leftShortRangeLinks);\r
-        collection.addAll(symphony.rightShortRangeLinks);\r
-\r
-        for (Tuple<Node, BootstrapStatus> neighbourTuple : collection) {\r
-            if (allNeighbours || neighbourTuple.y != BootstrapStatus.ONLINE) {\r
-                Message msg = new Message(symphony.loggedIntoNetwork, node, MessageType.UPDATE_STATUS);\r
-                transport.send(node, neighbourTuple.x, msg, pid);\r
-            }\r
-        }\r
-    }\r
-\r
-    private void updateN(Node node) {\r
-        NetworkSizeEstimatorProtocolInterface networkEstimator = (NetworkSizeEstimatorProtocolInterface) node.getProtocol(networkEstimatorID);\r
-        n = networkEstimator.getNetworkSize(node);\r
-        if (n <= 0) {\r
-            n = DEFAULT_N;\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Update the K value with the current expectation of the network size\r
-     */\r
-    private void updateK(Node node) {\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        if (!symphony.fixedLongRangeLinks) {\r
-            k = (int) Math.ceil(Math.log(n) / Math.log(2));\r
-\r
-            if (k <= 0) {\r
-                k = DEFAULT_K;\r
-            }\r
-        } else {\r
-            k = symphony.numberFixedLongRangeLinks;\r
-        }\r
-    }\r
-\r
-    private void refreshNeighbours(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-        for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-            Node leftNode = leftTuple.x;\r
-            Message updateNeighbourMsg = new Message(symphony.loggedIntoNetwork, node, MessageType.UPDATE_NEIGHBOURS);\r
-            transport.send(node, leftNode, updateNeighbourMsg, pid);\r
-        }\r
-\r
-        for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-            Node rightNode = rightTuple.x;\r
-            Message updateNeighbourMsg = new Message(symphony.loggedIntoNetwork, node, MessageType.UPDATE_NEIGHBOURS);\r
-            transport.send(node, rightNode, updateNeighbourMsg, pid);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Method to update the (connection) status of the node. Perform the update to the "up" so:\r
-     * OFFLINE -> ONLINE_AND_ALL_NEIGHBOURS_OFFLINE -> ONLINE\r
-     *\r
-     * and to the "down" only: ONLINE -> ONLINE_AND_ALL_NEIGHBOURS_OFFLINE\r
-     *\r
-     * @param node\r
-     */\r
-    private void checkBootstrapStatus(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-\r
-        if (symphony.loggedIntoNetwork != BootstrapStatus.OFFLINE) {\r
-\r
-            symphony.loggedIntoNetwork = BootstrapStatus.ONLINE_AND_ALL_NEIGHBOURS_OFFLINE;\r
-\r
-            // Check if i'm inside the ring and i'm able to do routing\r
-            if (!symphony.leftShortRangeLinks.isEmpty() && !symphony.rightShortRangeLinks.isEmpty()) {\r
-\r
-                boolean leftOk = false;\r
-                for (Tuple<Node, BootstrapStatus> leftTuple : symphony.leftShortRangeLinks) {\r
-                    if (leftTuple.y == BootstrapStatus.ONLINE) {\r
-                        leftOk = true;\r
-                        break;\r
-                    }\r
-                }\r
-\r
-                if (leftOk) {\r
-                    for (Tuple<Node, BootstrapStatus> rightTuple : symphony.rightShortRangeLinks) {\r
-                        if (rightTuple.y == BootstrapStatus.ONLINE) {\r
-                            symphony.loggedIntoNetwork = BootstrapStatus.ONLINE;\r
-                            break;\r
-                        }\r
-                    }\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Remove the possible wrong entries from the lookAhead table\r
-     */\r
-    private void fixLookAheadMap(Node node) {\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        for (Tuple<Node, BootstrapStatus> tuple : symphony.leftShortRangeLinks) {\r
-            symphony.lookAheadMap.put(tuple.x, null);\r
-        }\r
-        for (Tuple<Node, BootstrapStatus> tuple : symphony.rightShortRangeLinks) {\r
-            symphony.lookAheadMap.put(tuple.x, null);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Sent keep-alive messages to verify if the links still online\r
-     *\r
-     * if enable the lookAhead mode i require the neighbours list from my neighbours (1-lookAhead).\r
-     *\r
-     * Note: I don't reuse the UPDATE_STATUS messages because i want to mantain separate the\r
-     * semantic and have more clear source code\r
-     */\r
-    private void keepAlive(Node node) {\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-        Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-        // Send and check for the long range links (both incoming and outgoing)\r
-        for (Iterable<Node> iterable : new Iterable[]{symphony.longRangeLinksOutgoing, symphony.longRangeLinksIncoming}) {\r
-            Iterator<Node> longLinksIterator = iterable.iterator();\r
-            while (longLinksIterator.hasNext()) {\r
-                Node longLinkNode = longLinksIterator.next();\r
-                Integer value = keepAliveMap.get(longLinkNode);\r
-                if (value == null) {\r
-                    value = 0;\r
-                }\r
-\r
-                /*\r
-                 * Verify if i reached the sufficient time of sending and not receiving an answer\r
-                 * and so i can consider that node as disconnected\r
-                 */\r
-                if (value >= nTimeout) {\r
-                    symphony.lookAheadMap.put(longLinkNode, null); // Do it anyway if it's enabled the lookAhead or not\r
-                    longLinksIterator.remove();\r
-                } else {\r
-                    keepAliveMap.put(longLinkNode, value + 1);\r
-\r
-                    Message keepAliveMsg = new Message(symphony.lookAhead, node, MessageType.KEEP_ALIVE);\r
-                    transport.send(node, longLinkNode, keepAliveMsg, pid);\r
-                }\r
-            }\r
-        }\r
-\r
-        // Send and check for the short links\r
-        for (Iterable<Tuple<Node, BootstrapStatus>> iterable : new Iterable[]{symphony.rightShortRangeLinks, symphony.leftShortRangeLinks}) {\r
-            Iterator<Tuple<Node, BootstrapStatus>> shortLinksIterator = iterable.iterator();\r
-            while (shortLinksIterator.hasNext()) {\r
-                Node shortLinkNode = shortLinksIterator.next().x;\r
-                Integer value = keepAliveMap.get(shortLinkNode);\r
-                if (value == null) {\r
-                    value = 0;\r
-                }\r
-\r
-                // the same as above\r
-                if (value >= nTimeout) {\r
-                    shortLinksIterator.remove();\r
-                } else {\r
-                    keepAliveMap.put(shortLinkNode, value + 1);\r
-\r
-                    // LookAhead is not to be performed to the short links!\r
-                    Message keepAliveMsg = new Message(false, node, MessageType.KEEP_ALIVE);\r
-                    transport.send(node, shortLinkNode, keepAliveMsg, pid);\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     * Implement the Re-Linking criteria of the Long Range Links. It does the complete refresh. The\r
-     * repopulation is done through the 'updateLongRangeLinks' method.\r
-     */\r
-    private void reLinkingProtocol(Node node) {\r
-        // I do the check only if i succeed at least one time to create a long range link\r
-        if (nLink > 0) {\r
-            double criterionValue = n / nLink;\r
-\r
-            if (!(criterionValue >= relinkingLowerBound && criterionValue <= relinkingUpperBound)) {\r
-\r
-                /*\r
-                 * Not explicitly precised in the paper: if i haven't created a new link i update\r
-                 * anyway nLink because can happen a special case that i will not be able to create\r
-                 * links because the reLinkingProtocol procedure is "faster".\r
-                 */\r
-                nLink = n;\r
-\r
-                SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-                Transport transport = (Transport) node.getProtocol(transportID);\r
-\r
-                // Communicate to the all Outgoing Long Range Links that they aren't anymore\r
-                for (Node longRangeLinkOutgoingNode : symphony.longRangeLinksOutgoing) {\r
-                    Message disconnectMsg = new Message(null, node, MessageType.DISCONNECT_LONG_RANGE_LINK);\r
-                    transport.send(node, longRangeLinkOutgoingNode, disconnectMsg, pid);\r
-                }\r
-\r
-                symphony.longRangeLinksOutgoing.clear();\r
-            }\r
-        }\r
-    }\r
-\r
-    public int getK() {\r
-        return k;\r
-    }\r
-\r
-    public int getN() {\r
-        return n;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyNodeComparator.java b/contrib/psg/src/example/symphony/SymphonyNodeComparator.java
deleted file mode 100644 (file)
index e5a17d2..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.Comparator;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-import peersim.core.Node;\r
-\r
-/**\r
- * Comparator that measure the relative distance from a target node\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyNodeComparator implements Comparator<Node> {\r
-\r
-    private final int symphonyID;\r
-    private double target;\r
-\r
-    public SymphonyNodeComparator(int symphonyID) {\r
-        this.symphonyID = symphonyID;\r
-    }\r
-\r
-    public SymphonyNodeComparator(int symphonyID, double target) {\r
-        this(symphonyID);\r
-        this.target = target;\r
-    }\r
-\r
-    public SymphonyNodeComparator(int symphonyID, Node targetNode) {\r
-        this(symphonyID);\r
-        SymphonyProtocol symphony = (SymphonyProtocol) targetNode.getProtocol(symphonyID);\r
-        this.target = symphony.getIdentifier();\r
-    }\r
-\r
-    public int compare(Node o1, Node o2) {\r
-\r
-        SymphonyProtocol symphony1 = (SymphonyProtocol) o1.getProtocol(symphonyID);\r
-        SymphonyProtocol symphony2 = (SymphonyProtocol) o2.getProtocol(symphonyID);\r
-\r
-        Double identifier1 = symphony1.getIdentifier();\r
-        Double identifier2 = symphony2.getIdentifier();\r
-\r
-        Double distance1 = Math.abs(target - identifier1) % 1;\r
-        Double distance2 = Math.abs(target - identifier2) % 1;\r
-\r
-        identifier1 = Math.min(1.0 - distance1, distance1);\r
-        identifier2 = Math.min(1.0 - distance2, distance2);\r
-\r
-        Logger.getLogger(SymphonyNodeComparator.class.getName()).log(Level.FINEST, "id1= " + symphony1.getIdentifier() + " target= " + target + " id2= " + symphony2.getIdentifier() + " res= " + identifier1.compareTo(identifier2));\r
-\r
-        return identifier1.compareTo(identifier2);\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyNodeInizializer.java b/contrib/psg/src/example/symphony/SymphonyNodeInizializer.java
deleted file mode 100644 (file)
index ec5dc68..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-package example.symphony;\r
-\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-import peersim.config.Configuration;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-import peersim.dynamics.NodeInitializer;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyNodeInizializer implements NodeInitializer {\r
-\r
-    private static final String PAR_NETMANAGER = "symphonynetworkmanager";\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private static final String PAR_BOOTNODE = "bootstrapnode";\r
-    private final int networkManagerID;\r
-    private final int symphonyID;\r
-    private final int indexBootstrapNode;\r
-\r
-    public SymphonyNodeInizializer(String prefix) {\r
-\r
-        networkManagerID = Configuration.getPid(prefix + "." + PAR_NETMANAGER);\r
-        indexBootstrapNode = Configuration.getInt(prefix + "." + PAR_BOOTNODE, 0);\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-    }\r
-\r
-    @Override\r
-    public void initialize(Node node) {\r
-        int indexRealBootstrapNode = indexBootstrapNode;\r
-        Node realBootstrapNode = Network.get(indexBootstrapNode);\r
-        SymphonyNetworkManager symphonyNetworkManager = (SymphonyNetworkManager) node.getProtocol(networkManagerID);\r
-        SymphonyProtocol symphony = (SymphonyProtocol) realBootstrapNode.getProtocol(symphonyID);\r
-\r
-        boolean joinSent;\r
-        do {\r
-            try {\r
-                while (!symphony.isBootstrapped() || !realBootstrapNode.isUp()) {\r
-                    indexRealBootstrapNode = (indexRealBootstrapNode + 1) % Network.size();\r
-                    realBootstrapNode = Network.get(indexRealBootstrapNode);\r
-                    symphony = (SymphonyProtocol) realBootstrapNode.getProtocol(symphonyID);\r
-\r
-                    if (indexRealBootstrapNode == indexBootstrapNode) {\r
-                        Logger.getLogger(SymphonyNodeInizializer.class.getName()).log(Level.WARNING, "No node ONLINE. Impossible to do the network bootstrap.");\r
-                        return;\r
-                    }\r
-                }\r
-\r
-                symphonyNetworkManager.join(node, realBootstrapNode);\r
-                joinSent = true;\r
-            } catch (RoutingException ex) {\r
-                Logger.getLogger(SymphonyNodeInizializer.class.getName()).log(Level.SEVERE, "Join Issue");\r
-                joinSent = false;\r
-            }\r
-        } while (!joinSent);\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyProtocol.java b/contrib/psg/src/example/symphony/SymphonyProtocol.java
deleted file mode 100644 (file)
index 478f81e..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-package example.symphony;\r
-\r
-import java.lang.ref.SoftReference;\r
-import java.util.*;\r
-import java.util.logging.Level;\r
-import java.util.logging.Logger;\r
-\r
-import example.symphony.Message.MessageType;\r
-import peersim.config.Configuration;\r
-import peersim.core.CommonState;\r
-import peersim.core.Node;\r
-import peersim.edsim.EDProtocol;\r
-import peersim.transport.Transport;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyProtocol implements EDProtocol {\r
-\r
-    private static final String PAR_SHORT_LINK = "shortlink";\r
-    private static final String PAR_LONG_LINK = "longlink";\r
-    private static final String PAR_TRANSP = "transport";\r
-    private static final String PAR_ROUTING = "routing";\r
-    private static final String PAR_LOOKAHEAD = "lookahead";\r
-    private static Set<Double> allIdentifier = new HashSet<Double>();\r
-    private final String prefix;\r
-    private static int pid;\r
-    private final int transportID;\r
-    private final double identifier;\r
-    public final int sequentialIdentifier;\r
-    private static int sequentialCounter = 0;\r
-    public final int numberShortRangeLinksPerSide;\r
-    public final boolean bidirectionalRouting;\r
-    public final boolean lookAhead;\r
-    public final boolean fixedLongRangeLinks;\r
-    public final int numberFixedLongRangeLinks;\r
-    public LinkedHashSet<Node> longRangeLinksOutgoing;\r
-    public LinkedHashSet<Node> longRangeLinksIncoming;\r
-    public LinkedHashSet<Tuple<Node, BootstrapStatus>> rightShortRangeLinks;\r
-    public LinkedHashSet<Tuple<Node, BootstrapStatus>> leftShortRangeLinks;\r
-    /**\r
-     * Array Contract: at position 0 -> OutgoingLongRangeLinks, 1 -> IncomingLongRangeLinks\r
-     */\r
-    public final LinkedHashMap<Node, Set<Double>[]> lookAheadMap;\r
-    private HashMap<Double, Handler> mapHandler;\r
-    /**\r
-     * IDs Set to verify if there are cycles\r
-     */\r
-    private Set<Long> messageHistoryID;\r
-    /**\r
-     *\r
-     * Tuple chronology that contains: <received message, the possible answer message>\r
-     *\r
-     * I use SoftReference as a trade off between memory usage and accurancy\r
-     */\r
-    private Set<SoftReference<Tuple<Message, Message>>> messageHistory;\r
-    private static boolean firstPrintConfig = true;\r
-\r
-    public enum BootstrapStatus {\r
-\r
-        NEW, OFFLINE, ONLINE_AND_ALL_NEIGHBOURS_OFFLINE, ONLINE\r
-    }\r
-    public BootstrapStatus loggedIntoNetwork;\r
-\r
-    public SymphonyProtocol(String prefix) {\r
-\r
-        this.prefix = prefix;\r
-        pid = Configuration.lookupPid(prefix.replaceAll("protocol.", ""));\r
-        transportID = Configuration.getPid(prefix + "." + PAR_TRANSP);\r
-        numberShortRangeLinksPerSide = Configuration.getInt(prefix + "." + PAR_SHORT_LINK, 2) / 2;\r
-        bidirectionalRouting = !Configuration.getString(prefix + "." + PAR_ROUTING, "bidirectional").toLowerCase().equals("unidirectional");\r
-        lookAhead = !Configuration.getString(prefix + "." + PAR_LOOKAHEAD, "on").toLowerCase().equals("off");\r
-        numberFixedLongRangeLinks = Configuration.getInt(prefix + "." + PAR_LONG_LINK, -1);\r
-        fixedLongRangeLinks = numberFixedLongRangeLinks >= 0;\r
-\r
-        longRangeLinksOutgoing = new LinkedHashSet<Node>();\r
-        longRangeLinksIncoming = new LinkedHashSet<Node>();\r
-        rightShortRangeLinks = new LinkedHashSet<Tuple<Node, BootstrapStatus>>();\r
-        leftShortRangeLinks = new LinkedHashSet<Tuple<Node, BootstrapStatus>>();\r
-        lookAheadMap = new LinkedHashMap<Node, Set<Double>[]>();\r
-\r
-        identifier = generateUniqueIdentifier();\r
-        sequentialIdentifier = sequentialCounter++;\r
-\r
-        mapHandler = new HashMap<Double, Handler>();\r
-\r
-        messageHistoryID = new HashSet<Long>();\r
-        messageHistory = new LinkedHashSet<SoftReference<Tuple<Message, Message>>>();\r
-        loggedIntoNetwork = BootstrapStatus.NEW;\r
-\r
-        printConfig();\r
-    }\r
-\r
-    private void printConfig() {\r
-\r
-        if (firstPrintConfig) {\r
-            firstPrintConfig = false;\r
-            System.out.println(SymphonyProtocol.class.getSimpleName() + " Configuration:");\r
-            System.out.println("- Number of short range links per side: " + numberShortRangeLinksPerSide);\r
-            System.out.println("- Number of long range links: " + (fixedLongRangeLinks ? numberFixedLongRangeLinks : "log(n)"));\r
-            System.out.println("- Routing mode: " + (bidirectionalRouting ? "Bidirectional" : "Unidirectional"));\r
-            System.out.println("- LookAhead status: " + (lookAhead ? "ON" : "OFF"));\r
-            System.out.println("-------------------------------\n");\r
-        }\r
-    }\r
-\r
-    /**\r
-     *\r
-     * Method to identify the next node that has to be contacted. It's going to be used the mode\r
-     * that is described into the configuration file\r
-     */\r
-    public Node getCandidateForRouting(double identifierToRoute) throws RoutingException {\r
-        if (bidirectionalRouting) {\r
-            return getCandidateForBidirectionalRoute(identifierToRoute);\r
-        } else {\r
-            return getCandidateForUnidirectionalRoute(identifierToRoute);\r
-        }\r
-    }\r
-\r
-    /**\r
-     *\r
-     * Method to individuate the next node that as to be contacted through Unidirectional Routing\r
-     * mode\r
-     */\r
-    public Node getCandidateForUnidirectionalRoute(double identifierToRoute) throws RoutingException {\r
-\r
-        LinkedHashSet<Node> allLinks = new LinkedHashSet<Node>();\r
-        Node manager = putShortRangeLinksIntoContainerForRouting(allLinks, identifierToRoute);\r
-\r
-        if (manager != null) {\r
-            return manager;\r
-        }\r
-\r
-        allLinks.addAll(longRangeLinksOutgoing);\r
-\r
-        return findClosestNode(identifierToRoute, allLinks, true);\r
-    }\r
-\r
-    /**\r
-     * Method to individuate the next node that as to be contacted through Bidirectional Routing\r
-     * mode\r
-     */\r
-    public Node getCandidateForBidirectionalRoute(double identifierToRoute) throws RoutingException {\r
-\r
-        LinkedHashSet<Node> allLinks = new LinkedHashSet<Node>();\r
-        Node manager = putShortRangeLinksIntoContainerForRouting(allLinks, identifierToRoute);\r
-\r
-        if (manager != null) {\r
-            return manager;\r
-        }\r
-\r
-        allLinks.addAll(longRangeLinksOutgoing);\r
-        allLinks.addAll(longRangeLinksIncoming);\r
-\r
-        return findClosestNode(identifierToRoute, allLinks, false);\r
-    }\r
-\r
-    /**\r
-     * @return Null if it is NOT found the manager. Node if it is found.\r
-     */\r
-    private Node putShortRangeLinksIntoContainerForRouting(Set<Node> container, double identifierToRoute) {\r
-        for (Tuple<Node, BootstrapStatus> rightTuple : rightShortRangeLinks) {\r
-            if (rightTuple.y == BootstrapStatus.ONLINE) {\r
-                container.add(rightTuple.x);\r
-            }\r
-        }\r
-\r
-        if (!container.isEmpty()) {\r
-\r
-            // Special case: i verify if the neighbour at my right (ONLINE) is the manager\r
-            SymphonyNodeComparator comparator = new SymphonyNodeComparator(pid, identifier);\r
-            Node nearRightNeighbour = Collections.min(container, comparator);\r
-            if (nearRightNeighbour != null) {\r
-                SymphonyProtocol symphony = (SymphonyProtocol) nearRightNeighbour.getProtocol(pid);\r
-                if (!isLeftNeighbour(identifier, identifierToRoute) && isLeftNeighbour(symphony.getIdentifier(), identifierToRoute)) {\r
-                    return nearRightNeighbour;\r
-                }\r
-            }\r
-        }\r
-\r
-        for (Tuple<Node, BootstrapStatus> leftTuple : leftShortRangeLinks) {\r
-            if (leftTuple.y == BootstrapStatus.ONLINE) {\r
-                container.add(leftTuple.x);\r
-            }\r
-        }\r
-\r
-        return null;\r
-    }\r
-\r
-    /**\r
-     *\r
-     * Individuates effectively the next candidate for the routing. Checks if the lookahead is\r
-     * activated and in case of affirmative answer it's going to use that information.\r
-     *\r
-     * @param identifierToRoute Identifier to reach\r
-     * @param container Candidate Nodes Container\r
-     * @param clockwise true, does unidirectional routing. false, does bidirectional routing.\r
-     * @return The nearest node to reach identifierToRoute\r
-     * @throws RoutingException Throw in case no candidate is found\r
-     */\r
-    public Node findClosestNode(final double identifierToRoute, final Iterable<Node> container, final boolean clockwise) throws RoutingException {\r
-        Node ret = null;\r
-        double min = Double.MAX_VALUE;\r
-\r
-        for (Node node : container) {\r
-            SymphonyProtocol symphonyNodeContainer = (SymphonyProtocol) node.getProtocol(pid);\r
-            double realCandidateIdentifier = symphonyNodeContainer.getIdentifier();\r
-\r
-            Set<Double> candidateIdentifierSet = new LinkedHashSet<Double>();\r
-            candidateIdentifierSet.add(realCandidateIdentifier);\r
-\r
-            boolean lookAheadClockwise = true;\r
-\r
-            /*\r
-             *\r
-             * If lookahead is activated add all the reachable identifiers. No checks are performed\r
-             * on the node type (short/long) because at maximum the map return null.\r
-             */\r
-            if (lookAhead) {\r
-                Set<Double>[] lookAheadIdentifierSetArray = lookAheadMap.get(node);\r
-\r
-                if (lookAheadIdentifierSetArray != null) {\r
-                    Set<Double> lookAheadIdentifierSet = lookAheadIdentifierSetArray[0];\r
-\r
-                    if (lookAheadIdentifierSet == null) {\r
-                        lookAheadIdentifierSet = new LinkedHashSet<Double>();\r
-                    }\r
-\r
-                    /*\r
-                     *\r
-                     * If bidirectional routing is going to be performed so i put into account also\r
-                     * the Incoming Long Range Links of the current neighbour\r
-                     */\r
-                    if (bidirectionalRouting && lookAheadIdentifierSetArray[1] != null) {\r
-                        lookAheadIdentifierSet.addAll(lookAheadIdentifierSetArray[1]);\r
-                        lookAheadClockwise = false;\r
-                    }\r
-\r
-                    if (!lookAheadIdentifierSet.isEmpty()) {\r
-                        candidateIdentifierSet.addAll(lookAheadIdentifierSet);\r
-                    }\r
-                }\r
-            }\r
-\r
-            for (Double candidateIdentifier : candidateIdentifierSet) {\r
-                // if it is a my neighbour i use my routing mode instead if it is a looAhead one i use its routing mode\r
-                boolean currentClockwise = candidateIdentifier.equals(realCandidateIdentifier) ? clockwise : lookAheadClockwise;\r
-\r
-                double distance = Math.abs(candidateIdentifier - identifierToRoute);\r
-                distance = Math.min(distance, 1.0 - distance);\r
-\r
-                // if clockwise i have to exclude the case: candidateIdentifier - indentifierToRoute - identifier\r
-                if (currentClockwise) {\r
-                    if (isLeftNeighbour(candidateIdentifier, identifierToRoute)) {\r
-\r
-                        // Special case (0.9 - 0.1) the normal order is not more meanful to decide the side\r
-                        if (identifierToRoute >= candidateIdentifier) {\r
-                            distance = identifierToRoute - candidateIdentifier;\r
-                        } else {\r
-                            distance = (1.0 - candidateIdentifier) + identifierToRoute;\r
-                        }\r
-                    } else {\r
-                        distance = (1.0 - (candidateIdentifier - identifierToRoute)) % 1;\r
-                    }\r
-                }\r
-\r
-                /*\r
-                 *\r
-                 * Priority to the node that i'm directly connected and only after i use the\r
-                 * lookAhead information\r
-                 */\r
-                if (min >= Math.abs(distance)\r
-                        && (candidateIdentifier.equals(realCandidateIdentifier)\r
-                        || ret == null\r
-                        || min > Math.abs(distance))) {\r
-                    ret = node;\r
-                    min = Math.abs(distance);\r
-                }\r
-            }\r
-        }\r
-\r
-        if (ret == null) {\r
-            throw new RoutingException("Impossible do routing. [Hit: Neighbour links (maybe) not yet online.");\r
-        }\r
-\r
-        return ret;\r
-    }\r
-\r
-    /**\r
-     *\r
-     * @param neighbourNode Neighbour Node\r
-     * @return true if the node is a left neighbour (or itself), false if it is a right one\r
-     */\r
-    public static boolean isLeftNeighbour(Node rootNode, Node neighbourNode) {\r
-        SymphonyProtocol rootSymphony = (SymphonyProtocol) rootNode.getProtocol(pid);\r
-        SymphonyProtocol neighbourSymphony = (SymphonyProtocol) neighbourNode.getProtocol(pid);\r
-\r
-        return isLeftNeighbour(rootSymphony.getIdentifier(), neighbourSymphony.getIdentifier());\r
-    }\r
-\r
-    public static boolean isLeftNeighbour(double rootIdentifier, double neighbourIdentifier) {\r
-\r
-        // I calculate putting the hypotesis that i have to translate/"normalize", after i'll check if it was useless\r
-        double traslateRootIdentifier = (rootIdentifier + 0.5) % 1;\r
-        double traslateNeighbourIdentifier = (neighbourIdentifier + 0.5) % 1;\r
-        double distance = traslateNeighbourIdentifier - traslateRootIdentifier;\r
-\r
-        // I verify if the neighbourIdentifier is over half ring, if yes i don't need to do the translation/"normalization"\r
-        if ((neighbourIdentifier + 0.5) != traslateNeighbourIdentifier) {\r
-            distance = neighbourIdentifier - rootIdentifier;\r
-        }\r
-\r
-        return distance >= 0 && distance <= 0.5;\r
-    }\r
-\r
-    public void route(Node src, double key, Handler handler) throws RoutingException {\r
-\r
-        mapHandler.put(key, handler);\r
-\r
-        Message msg = new Message(key, src, MessageType.ROUTE);\r
-\r
-        Node targetNode = src;\r
-\r
-        if (!isManagerOf(key)) {\r
-            targetNode = getCandidateForRouting(key);\r
-            Transport transport = (Transport) src.getProtocol(transportID);\r
-            transport.send(src, targetNode, msg, pid);\r
-        }\r
-\r
-        // Insert the message into the chronology\r
-        Tuple<Message, Message> historyTuple = new Tuple<Message, Message>();\r
-        try {\r
-            historyTuple.x = msg;\r
-            historyTuple.y = (Message) msg.clone();\r
-            historyTuple.y.setCurrentHop(targetNode);\r
-        } catch (CloneNotSupportedException ex) {\r
-            Logger.getLogger(SymphonyProtocol.class.getName()).log(Level.SEVERE, "Impossible to clonate the message!");\r
-            historyTuple.x = null;\r
-            historyTuple.y = msg;\r
-            msg.setCurrentHop(targetNode);\r
-        }\r
-        messageHistory.add(new SoftReference<Tuple<Message, Message>>(historyTuple));\r
-        messageHistoryID.add(msg.getID());\r
-\r
-        /*\r
-         *\r
-         * If i am the manager (brutally through the reference), i don't do the loopback routing but\r
-         * i soddisfy immediately the request\r
-         */\r
-        if (targetNode == src) {\r
-\r
-            // Uppdate the chronology\r
-            historyTuple.y = new Message(key, targetNode, MessageType.ROUTE_RESPONSE);\r
-\r
-            Tuple<Node, Double> tuple = new Tuple<Node, Double>(src, key);\r
-            mapHandler.remove(key);\r
-            handler.handle(this, tuple);\r
-        }\r
-    }\r
-\r
-    public void processEvent(Node node, int pid, Object event) {\r
-        Message msg = (Message) event;\r
-        msg.incrementHop(); // I increment the message Hop\r
-\r
-        Tuple<Message, Message> historyTuple = new Tuple<Message, Message>();\r
-        try {\r
-            // I clone the message such a way to store into the chronology the hop sender's information\r
-            historyTuple.x = (Message) msg.clone();\r
-        } catch (CloneNotSupportedException ex) {\r
-            Logger.getLogger(SymphonyProtocol.class.getName()).log(Level.SEVERE, "Impossible to clonate the message!");\r
-            historyTuple.x = msg;\r
-        }\r
-\r
-        messageHistory.add(new SoftReference<Tuple<Message, Message>>(historyTuple));\r
-\r
-        Double key;\r
-        Transport transport;\r
-        Handler handler;\r
-\r
-        // Individuate cycles\r
-        if (messageHistoryID.contains(msg.getID())) {\r
-            Message responseMsg = new Message(msg, node, MessageType.ROUTE_FAIL);\r
-\r
-            historyTuple.y = responseMsg;\r
-\r
-            transport = (Transport) node.getProtocol(transportID);\r
-            transport.send(node, msg.getSourceNode(), responseMsg, pid);\r
-            return;\r
-        }\r
-\r
-        /*\r
-         * If i'm arrived till here means that i'm not into a cycle --> i insert the message ID into\r
-         * the chronology\r
-         */\r
-        messageHistoryID.add(msg.getID());\r
-\r
-        switch (msg.getType()) {\r
-            case ROUTE:\r
-                key = (Double) msg.getBody();\r
-                Logger.getLogger(SymphonyProtocol.class.getName()).log(Level.FINEST, key + " " + identifier);\r
-                if (isManagerOf(key)) {\r
-                    transport = (Transport) msg.getSourceNode().getProtocol(transportID);\r
-                    Message responseMsg = new Message(new Tuple<Node, Double>(node, key), node, MessageType.ROUTE_RESPONSE);\r
-                    historyTuple.y = responseMsg;\r
-                    transport.send(node, msg.getSourceNode(), responseMsg, pid);\r
-                } else {\r
-                    try {\r
-                        Node targetNode = getCandidateForRouting(key);\r
-\r
-                        try {\r
-                            // I clone the message such a way to store the info (into the chronology) of the hop receiver\r
-                            historyTuple.y = (Message) msg.clone();\r
-                            historyTuple.y.setCurrentHop(targetNode);\r
-                        } catch (CloneNotSupportedException ex) {\r
-                            Logger.getLogger(SymphonyProtocol.class.getName()).log(Level.SEVERE, "Impossible to clonate the message!");\r
-                            historyTuple.y = msg;\r
-                            msg.setCurrentHop(targetNode);\r
-                        }\r
-\r
-                        transport = (Transport) node.getProtocol(transportID);\r
-                        transport.send(node, targetNode, msg, pid);\r
-                    } catch (RoutingException ex) {\r
-                        /*\r
-                         *\r
-                         * I send the same message to myself (it is going to queue into the event\r
-                         * queue and in this way i "earn" time (postpone) and i hope that the\r
-                         * network will be ok in the meanwhile)\r
-                         */\r
-                        historyTuple.y = msg;\r
-                        msg.setCurrentHop(node);\r
-                        transport = (Transport) node.getProtocol(transportID);\r
-                        transport.send(node, node, msg, pid);\r
-                    }\r
-                }\r
-                break;\r
-            case ROUTE_RESPONSE:\r
-                Tuple<Node, Double> tuple = (Tuple<Node, Double>) msg.getBody();\r
-                key = tuple.y;\r
-                handler = mapHandler.get(key);\r
-                mapHandler.remove(key);\r
-                handler.handle(this, tuple);\r
-                break;\r
-            case ROUTE_FAIL:\r
-                Message requestMsg = (Message) msg.getBody();\r
-                key = (Double) requestMsg.getBody();\r
-                handler = mapHandler.get(key);\r
-                mapHandler.remove(key);\r
-                handler.handle(this, null);\r
-                break;\r
-        }\r
-    }\r
-\r
-    public boolean isManagerOf(double key) {\r
-\r
-        if (key == identifier) {\r
-            return true;\r
-        }\r
-\r
-        SymphonyNodeComparator comparator = new SymphonyNodeComparator(pid, identifier);\r
-        AdapterSymphonyNodeComparator adapterComparator = new AdapterSymphonyNodeComparator(comparator);\r
-\r
-        Collection<Tuple<Node, BootstrapStatus>> leftShortRangeLinksCloned = (Collection<Tuple<Node, BootstrapStatus>>) leftShortRangeLinks.clone();\r
-        Node targetNode = null;\r
-\r
-        while (targetNode == null && !leftShortRangeLinksCloned.isEmpty()) {\r
-            Tuple<Node, BootstrapStatus> nearTuple = Collections.min(leftShortRangeLinksCloned, adapterComparator);\r
-            if (nearTuple.y == BootstrapStatus.ONLINE) {\r
-                targetNode = nearTuple.x;\r
-            } else {\r
-                leftShortRangeLinksCloned.remove(nearTuple);\r
-            }\r
-        }\r
-\r
-        // SPECIAL CASE: NO LEFT NEIGHBOURS. I became the Manager.\r
-        if (targetNode == null) {\r
-            return true;\r
-        }\r
-\r
-        SymphonyProtocol symphony = (SymphonyProtocol) targetNode.getProtocol(pid);\r
-        // Check if it's the situation: right neighbour - key - me. So if i'm the manager or not.\r
-        boolean ret = isLeftNeighbour(identifier, key) && (!isLeftNeighbour(symphony.getIdentifier(), key) && symphony.getIdentifier() != key);\r
-\r
-        return ret;\r
-    }\r
-\r
-    public double getIdentifier() {\r
-        return identifier;\r
-    }\r
-\r
-    public Tuple<Message, Message>[] getHistoryMessage() {\r
-        SoftReference<Tuple<Message, Message>>[] array = messageHistory.toArray(new SoftReference[0]);\r
-        LinkedList<Tuple<Message, Message>> list = new LinkedList<Tuple<Message, Message>>();\r
-        for (SoftReference<Tuple<Message, Message>> reference : array) {\r
-            Tuple<Message, Message> tuple = reference.get();\r
-            if (tuple != null) {\r
-                list.add(tuple);\r
-            }\r
-        }\r
-        return list.toArray(new Tuple[0]);\r
-    }\r
-\r
-    public void clearHistoryMessage() {\r
-        messageHistory.clear();\r
-    }\r
-\r
-    private double generateUniqueIdentifier() {\r
-        boolean duplicated = true;\r
-        Double id = null;\r
-\r
-        while (duplicated) {\r
-            id = CommonState.r.nextDouble();\r
-            duplicated = allIdentifier.contains(id);\r
-        }\r
-\r
-        allIdentifier.add(id);\r
-\r
-        return id;\r
-    }\r
-\r
-    @Override\r
-    public Object clone() {\r
-        SymphonyProtocol dolly = new SymphonyProtocol(prefix);\r
-        return dolly;\r
-    }\r
-\r
-    public boolean isBootstrapped() {\r
-        return loggedIntoNetwork == BootstrapStatus.ONLINE;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/SymphonyStatistics.java b/contrib/psg/src/example/symphony/SymphonyStatistics.java
deleted file mode 100644 (file)
index 4e97219..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-package example.symphony;\r
-\r
-import peersim.config.Configuration;\r
-import peersim.core.Control;\r
-import peersim.core.Network;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class SymphonyStatistics implements Control {\r
-\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private final int symphonyID;\r
-    private long totalMsg = 0;\r
-    private long numRouteResposeMsg = 0;\r
-    private long numRouteMsg = 0;\r
-    private long numRouteFailMsg = 0;\r
-    private long numRouteFoundManagerMsg = 0;\r
-    private double mediaHopRouteResponseMsg = 0.0;\r
-\r
-    public SymphonyStatistics(String prefix) {\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        AdapterIterableNetwork itNetwork = new AdapterIterableNetwork();\r
-        for (Node node : itNetwork) {\r
-            SymphonyProtocol symphony = (SymphonyProtocol) node.getProtocol(symphonyID);\r
-            Tuple<Message, Message>[] tupleMessages = symphony.getHistoryMessage();\r
-            totalMsg += tupleMessages.length;\r
-\r
-            for (Tuple<Message, Message> tupleMessage : tupleMessages) {\r
-\r
-                Message message = tupleMessage.x;\r
-\r
-                if (message != null) {\r
-                    switch (message.getType()) {\r
-                        case ROUTE:\r
-                            numRouteMsg++;\r
-                            if (tupleMessage.y != null && tupleMessage.y.getType() == Message.MessageType.ROUTE_RESPONSE) {\r
-                                numRouteFoundManagerMsg++;\r
-                                mediaHopRouteResponseMsg = ((mediaHopRouteResponseMsg * (numRouteFoundManagerMsg - 1)) + message.getHop()) / (double) numRouteFoundManagerMsg;\r
-                            }\r
-                            break;\r
-                        case ROUTE_FAIL:\r
-                            numRouteFailMsg++;\r
-                            break;\r
-                        case ROUTE_RESPONSE:\r
-                            numRouteResposeMsg++;\r
-                            break;\r
-                    }\r
-                }\r
-            }\r
-\r
-            symphony.clearHistoryMessage();\r
-        }\r
-\r
-        printStatistics();\r
-\r
-        return false;\r
-    }\r
-\r
-    private void printStatistics() {\r
-        System.out.println("### Statistics ###");\r
-        System.out.println("- Total Messages: " + totalMsg);\r
-        System.out.println("- Total Route Messages: " + numRouteMsg);\r
-        System.out.println("- Found Manager Route Message: " + numRouteFoundManagerMsg);\r
-        System.out.println("- Response Message: " + numRouteResposeMsg);\r
-        System.out.println("- Fail Message: " + numRouteFailMsg);\r
-        System.out.println();\r
-        System.out.println("Average Hop:" + mediaHopRouteResponseMsg + " Expected value (k = log n): " + (Math.log(Network.size()) / Math.log(2)));\r
-        System.out.println("### END ###\n");\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/Tuple.java b/contrib/psg/src/example/symphony/Tuple.java
deleted file mode 100644 (file)
index ed82b64..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-package example.symphony;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class Tuple<X, Y> {\r
-\r
-    public X x;\r
-    public Y y;\r
-\r
-    public Tuple() {\r
-    }\r
-\r
-    public Tuple(X x, Y y) {\r
-        this.x = x;\r
-        this.y = y;\r
-    }\r
-\r
-    @Override\r
-    public boolean equals(Object obj) {\r
-\r
-        if (obj instanceof Tuple) {\r
-            Tuple tuple = (Tuple) obj;\r
-\r
-            // (x != null && tuple.x != null) ==> (x==tuple.x || x.equals(tuple.x))\r
-            // x == null <==> tuple.x == null\r
-\r
-            boolean equalsX = (x == null && tuple.x == null) || ((x != null && tuple.x != null) && (x == tuple.x || x.equals(tuple.x)));\r
-            boolean equalsY = (y == null && tuple.y == null) || ((y != null && tuple.y != null) && (y == tuple.y || y.equals(tuple.y)));\r
-\r
-            return equalsX && equalsY;\r
-        }\r
-\r
-        return false;\r
-    }\r
-\r
-    @Override\r
-    public int hashCode() {\r
-        int hash = 5;\r
-        hash = 89 * hash + (this.x != null ? this.x.hashCode() : 0);\r
-        hash = 89 * hash + (this.y != null ? this.y.hashCode() : 0);\r
-        return hash;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/example/symphony/test/NetworkEstimationTest.java b/contrib/psg/src/example/symphony/test/NetworkEstimationTest.java
deleted file mode 100644 (file)
index 1d0d945..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-package example.symphony.test;\r
-\r
-import example.symphony.AdapterIterableNetwork;\r
-import example.symphony.SymphonyNetworkManager;\r
-import example.symphony.SymphonyProtocol;\r
-import peersim.config.Configuration;\r
-import peersim.core.Control;\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class NetworkEstimationTest implements Control {\r
-\r
-    private static final String PAR_NETMANAGER = "symphonynetworkmanager";\r
-    private static final String PAR_SYMPHONY = "symphony";\r
-    private final int symphonyID;\r
-    private final int networkManagerID;\r
-\r
-    public NetworkEstimationTest(String prefix) {\r
-\r
-        networkManagerID = Configuration.getPid(prefix + "." + PAR_NETMANAGER);\r
-        symphonyID = Configuration.getPid(prefix + "." + PAR_SYMPHONY);\r
-    }\r
-\r
-    public boolean execute() {\r
-\r
-        AdapterIterableNetwork it = new AdapterIterableNetwork();\r
-        int max = Integer.MIN_VALUE;\r
-        int min = Integer.MAX_VALUE;\r
-        int sum = 0;\r
-        int total = 0;\r
-        for (Node node : it) {\r
-            if (node.isUp() && ((SymphonyProtocol) node.getProtocol(symphonyID)).isBootstrapped()) {\r
-                SymphonyNetworkManager networkManager = (SymphonyNetworkManager) node.getProtocol(networkManagerID);\r
-                int n = networkManager.getN();\r
-                min = n < min ? n : min;\r
-                max = n > max ? n : max;\r
-                sum += n;\r
-                total++;\r
-            }\r
-        }\r
-\r
-        System.out.println("Real Dimension: " + (Math.log(total) / Math.log(2)));\r
-        System.out.println("Average Estimated Dimension: " + (total == 0 ? "No Node online" : (Math.log((sum / total)) / Math.log(2))));\r
-        System.out.println("MAX: " + Math.log(max) / Math.log(2));\r
-        System.out.println("MIN: " + Math.log(min) / Math.log(2));\r
-\r
-        return false;\r
-    }\r
-}\r
diff --git a/contrib/psg/src/peersim/Simulator.java b/contrib/psg/src/peersim/Simulator.java
deleted file mode 100644 (file)
index 97c7965..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim;
-
-import psgsim.PSGSimulator;
-
-import java.io.*;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.NativeException;
-
-import peersim.cdsim.*;
-import peersim.config.*;
-import peersim.core.*;
-import peersim.edsim.*;
-
-/**
- * This is the main entry point to peersim. This class loads configuration and
- * detects the simulation type. According to this, it invokes the appropriate
- * simulator. The known simulators at this moment, along with the way to detect
- * them are the following:
- * <ul>
- * <li>{@link CDSimulator}: if {@link CDSimulator#isConfigurationCycleDriven}
- * returns true</li>
- * <li>{@link EDSimulator}: if {@link EDSimulator#isConfigurationEventDriven}
- * returns true</li>
- * </ul>
- * This list represents the order in which these alternatives are checked. That
- * is, if more than one return true, then the first will be taken. Note that
- * this class checks only for these clues and does not check if the
- * configuration is consistent or valid.
- * 
- * @see #main
- */
-public class Simulator {
-
-       // ========================== static constants ==========================
-       // ======================================================================
-       public static int nbreR = 0;
-       /** {@link CDSimulator} */
-       public static final int CDSIM = 0;
-
-       /** {@link EDSimulator} */
-       public static final int EDSIM = 1;
-
-       /** {@link psgsim.PSGSimulator} */
-       public static final int PSGSIM = 2;
-
-       /** Unknown simulator */
-       public static final int UNKNOWN = -1;
-
-       /** the class names of simulators used */
-       protected static final String[] simName = { "peersim.cdsim.CDSimulator",
-                       "peersim.edsim.EDSimulator", "psgsim.PSGSimulator" };
-
-       /**
-        * Parameter representing the number of times the experiment is run.
-        * Defaults to 1.
-        * 
-        * @config
-        */
-       public static final String PAR_EXPS = "simulation.experiments";
-
-       /**
-        * If present, this parameter activates the redirection of the standard
-        * output to a given PrintStream. This comes useful for processing the
-        * output of the simulation from within the simulator.
-        * 
-        * @config
-        */
-       public static final String PAR_REDIRECT = "simulation.stdout";
-
-       // ==================== static fields ===================================
-       // ======================================================================
-
-       /** */
-       private static int simID = UNKNOWN;
-
-       // ========================== methods ===================================
-       // ======================================================================
-
-       /**
-        * Returns the numeric id of the simulator to invoke. At the moment this can
-        * be {@link #CDSIM}, {@link #EDSIM} or {@link #UNKNOWN}.
-        */
-       public static int getSimID() {
-
-               if (simID == UNKNOWN) {
-                       if (CDSimulator.isConfigurationCycleDriven()) {
-                               simID = CDSIM;
-                       } else if (EDSimulator.isConfigurationEventDriven()) {
-                               simID = EDSIM;
-                       } else
-                               simID = PSGSIM;
-
-               }
-               return simID;
-       }
-
-       // ----------------------------------------------------------------------
-
-       /**
-        * Loads the configuration and executes the experiments. The number of
-        * independent experiments is given by config parameter {@value #PAR_EXPS}.
-        * In all experiments the configuration is the same, only the random seed is
-        * not re-initialized between experiments.
-        * <p>
-        * Loading the configuration is currently done with the help of constructing
-        * an instance of {@link ParsedProperties} using the constructor
-        * {@link ParsedProperties#ParsedProperties(String[])}. The parameter
-        * <code>args</code> is simply passed to this class. This class is then used
-        * to initialize the configuration.
-        * <p>
-        * After loading the configuration, the experiments are run by invoking the
-        * appropriate engine, which is identified as follows:
-        * <ul>
-        * <li>{@link CDSimulator}: if
-        * {@link CDSimulator#isConfigurationCycleDriven} returns true</li>
-        * <li>{@link EDSimulator}: if
-        * {@link EDSimulator#isConfigurationEventDriven} returns true</li>
-        * </ul>
-        * <p>
-        * This list represents the order in which these alternatives are checked.
-        * That is, if more than one return true, then the first will be taken. Note
-        * that this class checks only for these clues and does not check if the
-        * configuration is consistent or valid.
-        * 
-        * @param args
-        *            passed on to
-        *            {@link ParsedProperties#ParsedProperties(String[])}
-        * @throws InterruptedException
-        * @throws HostNotFoundException
-        * @see ParsedProperties
-        * @see Configuration
-        * @see CDSimulator
-        * @see EDSimulator
-        */
-       public static void main(String[] args) throws InterruptedException,
-                       HostNotFoundException {
-               long time = System.currentTimeMillis();
-               long start;
-               System.err.println("Simulator: loading configuration");
-               Configuration.setConfig(new ParsedProperties(args));
-               PrintStream newout = (PrintStream) Configuration.getInstance(
-                               PAR_REDIRECT, System.out);
-               if (newout != System.out)
-                       System.setOut(newout);
-
-               int exps = Configuration.getInt(PAR_EXPS, 1);
-               final int SIMID = getSimID();
-               if (SIMID == UNKNOWN) {
-                       System.err
-                                       .println("Simulator: unable to determine simulation engine type");
-                       return;
-               }
-
-               try {
-
-                       for (int k = 0; k < exps; ++k) {
-                               if (k > 0) {
-                                       long seed = CommonState.r.nextLong();
-                                       CommonState.initializeRandom(seed);
-                               }
-                               System.err.print("Simulator: starting experiment " + k);
-                               System.err.println(" invoking " + simName[SIMID]);
-                               System.err.println("Random seed: "
-                                               + CommonState.r.getLastSeed());
-                               // XXX could be done through reflection, but
-                               // this is easier to read.
-
-                               switch (SIMID) {
-                               case CDSIM:
-                                       CDSimulator.nextExperiment();
-                                       break;
-                               case EDSIM:
-                                       log("ps");
-                                       start = System.currentTimeMillis();
-                                       EDSimulator.nextExperiment();
-                                       System.err.print("Duration of Simulation in ps:"
-                                                       + (System.currentTimeMillis() - start) + " ms\n");
-                                       break;
-                               case PSGSIM:
-                                       try {
-                                               log("psg");
-                                               start = System.currentTimeMillis();
-                                               PSGSimulator.main();
-                                               System.err.print("Duration of Simulation in psg:"
-                                                               + (System.currentTimeMillis() - start)
-                                                               + " ms\n");
-                                       } catch (NativeException e) {
-                                               System.err
-                                                               .println("***********Native exception***************");
-                                               e.printStackTrace();
-                                       }
-                                       break;
-                               }
-                       }
-
-               } catch (MissingParameterException e) {
-                       System.err.println(e + "");
-                       System.exit(1);
-               } catch (IllegalParameterException e) {
-                       System.err.println(e + "");
-                       System.exit(1);
-               }
-
-               // undocumented testing capabilities
-               if (Configuration.contains("__t"))
-                       System.out.println(System.currentTimeMillis() - time);
-               if (Configuration.contains("__x"))
-                       Network.test();
-
-       }
-
-       /**
-        * 
-        * @param sim
-        */
-       public static void log(String sim) {
-               String propName = "OutputName";
-
-               /** le nom de l'OS */
-               final String OS_NAME = System.getProperty("os.name");
-               File file = null;
-               String prot = Configuration.getString(propName, "null");
-               if (prot.contentEquals("null")) {
-                       System.err.println("OutputName parameter not defined");
-               } else {
-                       if ("Linux".equals(OS_NAME) || "Mac".equals(OS_NAME)) {
-                               if (!new File("outputs" + prot).exists()) {
-                                       new File("outputs/" + prot).mkdirs();
-                               }
-                               String path = "outputs/" + prot + "/";
-                               file = new File(path + sim + ".txt");
-                       } else {
-                               if (!new File("outputs" + prot).exists())
-                                       new File("outputs\\" + prot).mkdirs();
-                               String path = "outputs\\" + prot + "\\";
-                               file = new File(path + sim + ".txt");
-                       }
-                       try {
-                               PrintStream printStream = new PrintStream(file);
-                               System.setOut(printStream);
-                               // System.setErr(printStream);
-                       } catch (FileNotFoundException e) {
-                               e.printStackTrace();
-                       }
-               }
-
-       }
-
-}
diff --git a/contrib/psg/src/peersim/cdsim/CDProtocol.java b/contrib/psg/src/peersim/cdsim/CDProtocol.java
deleted file mode 100644 (file)
index c0d2f0d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.cdsim;
-
-import peersim.core.Protocol;
-import peersim.core.Node;
-
-/**
-* Defines cycle driven protocols, that is, protocols that have a periodic
-* activity in regular time intervals.
-*/
-public interface CDProtocol extends Protocol
-{
-
-/**
- * A protocol which is defined by performing an algorithm in more or less
- * regular periodic intervals.
- * This method is called by the simulator engine once in each cycle with
- * the appropriate parameters.
- * 
- * @param node
- *          the node on which this component is run
- * @param protocolID
- *          the id of this protocol in the protocol array
- */
-public void nextCycle(Node node, int protocolID);
-
-}
diff --git a/contrib/psg/src/peersim/cdsim/CDSimulator.java b/contrib/psg/src/peersim/cdsim/CDSimulator.java
deleted file mode 100644 (file)
index f487594..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.cdsim;
-
-import java.util.*;
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * This is the cycle driven simulation engine. It is a fully static
- * singleton class. For a cycle driven simulation the configuration can
- * describe a set of {@link Protocol}s, and their ordering, a set of
- * {@link Control}s and their ordering and a set of initializers and their
- * ordering. See parameters {@value #PAR_INIT}, {@value #PAR_CTRL}. Out
- * of the set of protocols, this engine only executes the ones that
- * implement the {@link CDProtocol} interface.
- * <p>
- * One experiment run by {@link #nextExperiment} works as follows. First
- * the initializers are run in the specified order, then the following is
- * iterated {@value #PAR_CYCLES} times: If {@value #PAR_NOMAIN} is
- * specified, then simply the controls specified in the configuration are
- * run in the specified order. If {@value #PAR_NOMAIN} is not specified,
- * then the controls in the configuration are run in the specified order,
- * followed by the execution of {@link FullNextCycle}.
- * <p>
- * All components (controls and protocols) can have configuration
- * parameters that control their scheduling (see {@link Scheduler}). This
- * way they can skip cycles, start from a specified cycle, etc. As a
- * special case, components can be scheduled to run after the last cycle.
- * That is, each experiment is finished by running the controls that are
- * scheduled after the last cycle.
- * <p>
- * Finally, any control can interrupt an experiment at any time it is
- * executed by returning true in method {@link Control#execute}. However,
- * the controls scheduled to run after the last cycle are still executed
- * completely, irrespective of their return value and even if the
- * experiment was interrupted.
- * @see Configuration
- */
-public class CDSimulator
-{
-
-// ============== fields ===============================================
-// =====================================================================
-
-/**
- * Parameter representing the maximum number of cycles to be performed
- * @config
- */
-public static final String PAR_CYCLES = "simulation.cycles";
-
-/**
- * This option is only for experts. It switches off the main cycle that
- * calls the cycle driven protocols. When you switch this off, you need to
- * control the execution of the protocols by configuring controls that do
- * the job (e.g., {@link FullNextCycle}, {@link NextCycle}). It's there for
- * people who want maximal flexibility for their hacks.
- * @config
- */
-private static final String PAR_NOMAIN = "simulation.nodefaultcycle";
-
-/**
- * This is the prefix for initializers. These have to be of type
- * {@link Control}. They are run at the beginning of each experiment, in
- * the order specified by the configuration.
- * @see Configuration
- * @config
- */
-private static final String PAR_INIT = "init";
-
-/**
- * This is the prefix for controls. These have to be of type
- * {@link Control}. They are run before each cycle, in the order specified
- * by the configuration.
- * @see Configuration
- * @config
- */
-private static final String PAR_CTRL = "control";
-
-// --------------------------------------------------------------------
-
-/** The maximum number of cycles to be performed */
-private static int cycles;
-
-/** holds the modifiers of this simulation */
-private static Control[] controls = null;
-
-/** Holds the control schedulers of this simulation */
-private static Scheduler[] ctrlSchedules = null;
-
-// =============== initialization ======================================
-// =====================================================================
-
-/** to prevent construction */
-private CDSimulator()
-{
-}
-
-// =============== private methods =====================================
-// =====================================================================
-
-/**
- * Load and run initializers.
- */
-private static void runInitializers()
-{
-
-       Object[] inits = Configuration.getInstanceArray(PAR_INIT);
-       String names[] = Configuration.getNames(PAR_INIT);
-
-       for (int i = 0; i < inits.length; ++i) {
-               System.err.println("- Running initializer " + names[i] + ": "
-                               + inits[i].getClass());
-               ((Control) inits[i]).execute();
-       }
-}
-
-// --------------------------------------------------------------------
-
-private static String[] loadControls()
-{
-
-       boolean nomaincycle = Configuration.contains(PAR_NOMAIN);
-       String[] names = Configuration.getNames(PAR_CTRL);
-       if (nomaincycle) {
-               controls = new Control[names.length];
-               ctrlSchedules = new Scheduler[names.length];
-       } else {
-               // provide for an extra control that handles the main cycle
-               controls = new Control[names.length + 1];
-               ctrlSchedules = new Scheduler[names.length + 1];
-               // calling with a prefix that cannot exist
-               controls[names.length] = new FullNextCycle(" ");
-               ctrlSchedules[names.length] = new Scheduler(" ");
-       }
-       for (int i = 0; i < names.length; ++i) {
-               controls[i] = (Control) Configuration.getInstance(names[i]);
-               ctrlSchedules[i] = new Scheduler(names[i]);
-       }
-       System.err.println("CDSimulator: loaded controls " + Arrays.asList(names));
-       return names;
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * This method is used to check whether the current configuration can be
- * used for cycle-driven simulations. It checks for the existence of
- * configuration parameter {@value #PAR_CYCLES}.
- */
-public static final boolean isConfigurationCycleDriven()
-{
-       return Configuration.contains(PAR_CYCLES);
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Runs an experiment, resetting everything except the random seed. 
- */
-public static final void nextExperiment()
-{
-
-       // Reading parameter
-       cycles = Configuration.getInt(PAR_CYCLES);
-       if (CommonState.getEndTime() < 0) // not initialized yet
-               CDState.setEndTime(cycles);
-
-       // initialization
-       CDState.setCycle(0);
-       CDState.setPhase(CDState.PHASE_UNKNOWN);
-       System.err.println("CDSimulator: resetting");
-       controls = null;
-       ctrlSchedules = null;
-       Network.reset();
-       System.err.println("CDSimulator: running initializers");
-       runInitializers();
-
-       // main cycle
-       loadControls();
-
-       System.err.println("CDSimulator: starting simulation");
-       for (int i = 0; i < cycles; ++i) {
-               CDState.setCycle(i);
-
-               boolean stop = false;
-               for (int j = 0; j < controls.length; ++j) {
-                       if (ctrlSchedules[j].active(i))
-                               stop = stop || controls[j].execute();
-               }
-               if (stop)
-                       break;
-               //System.err.println("CDSimulator: cycle " + i + " DONE");
-       }
-
-       CDState.setPhase(CDState.POST_SIMULATION);
-
-       // analysis after the simulation
-       for (int j = 0; j < controls.length; ++j) {
-               if (ctrlSchedules[j].fin)
-                       controls[j].execute();
-       }
-}
-
-}
diff --git a/contrib/psg/src/peersim/cdsim/CDState.java b/contrib/psg/src/peersim/cdsim/CDState.java
deleted file mode 100644 (file)
index ef52f78..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.cdsim;
-
-import peersim.core.CommonState;
-
-
-/**
- * This is the common state of a cycle driven simulation that all objects see.
- * It contains additional information, specific to the cycle driven model,
- * in addition to the info in {@link peersim.core.CommonState}.
- */
-public class CDState extends CommonState {
-
-
-// ======================= fields ==================================
-// =================================================================
-
-/**
- * Current time within the current cycle.
- * Note that {@link #cycle} gives the cycle id to which this value is relative.
- */
-private static int ctime = -1;
-
-/**
- * Current cycle in the simulation. It makes sense only in the case of a
- * cycle based simulator, that is, cycle based simulators will maintain this
- * value, others will not. It still makes sense to keep it separate from
- * {@link #time} because it is an int, while time is a long.
- */
-private static int cycle = -1;
-
-
-// ======================== initialization =========================
-// =================================================================
-
-
-static {}
-
-/** to avoid construction */
-private CDState() {}
-
-// ======================= methods =================================
-// =================================================================
-
-
-/**
-* Returns true if and only if there is a cycle driven simulation going on.
-*/
-public static boolean isCD() { return cycle >= 0; }
-
-//-----------------------------------------------------------------
-
-/**
- * Returns the current cycle.
- * Note that {@link #getTime()} returns the same value.
- * @throws UnsupportedOperationException if no cycle-driven state is available
- */
-public static int getCycle()
-{
-       if( cycle >= 0 ) return cycle;
-       else throw new UnsupportedOperationException(
-               "Cycle driven state accessed when "+
-               "no cycle state information is available.");
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Sets current cycle. Resets also cycle time to 0. It also calls
- * {@link #setTime(long)} with the given parameter, to make sure 
- * {@link #getTime()} is indeed independent of the simulation model.
- */
-public static void setCycle(int t)
-{
-       cycle = t;
-       ctime = 0;
-       setTime(t);
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns current cycle as an Integer object.
- * @throws UnsupportedOperationException if no cycle-driven state is available
- */
-public static Integer getCycleObj()
-{
-       if( cycle >= 0 ) return Integer.valueOf(cycle);
-       else throw new UnsupportedOperationException(
-               "Cycle driven state accessed when "+
-               "no cycle state information is available.");
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns the current time within the current cycle.
- * Note that the time returned by {@link #getCycle} is the cycle id
- * in this case. In other words, it returns the number of nodes that have
- * already been visited in a given cycle.
- * @throws UnsupportedOperationException if no cycle-driven state is available
- */
-public static int getCycleT()
-{
-       if( ctime >= 0 ) return ctime;
-       else throw new UnsupportedOperationException(
-               "Cycle driven state accessed when "+
-               "no cycle state information is available.");
-}
-
-// -----------------------------------------------------------------
-
-public static void setCycleT(int t)
-{
-       ctime = t;
-}
-}
-
-
diff --git a/contrib/psg/src/peersim/cdsim/DaemonProtocol.java b/contrib/psg/src/peersim/cdsim/DaemonProtocol.java
deleted file mode 100644 (file)
index 73f9a4e..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-package peersim.cdsim;
-
-import java.util.Arrays;
-import peersim.config.Configuration;
-import peersim.core.Node;
-import peersim.core.Control;
-
-/**
-* A protocol that is not really a protocol, but a trick to carry out all
-* kinds of tasks during the simulation. Many users will probably not need it,
-* but it is a nice way to e.g. run controls at any time, not only between cycles.
-*/
-public class DaemonProtocol implements CDProtocol {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-
-/**
-* This is the prefix for network dynamism managers.
-* @config
-*/
-private static final String PAR_CTRL = "control";
-
-/**
-* The controls will be run according to this frequency.
-* It is interpreted within a cycle, in terms of cycle time
-* ({@link CDState#getCycleT}). The first cycletime is 0.
-* Defaults to 1.
-* @config
-*/
-private static final String PAR_STEP = "cstep";
-
-// --------------------------------------------------------------------
-
-private static Control[] controls=null;
-
-private static int step;
-
-// ========================= initialization =========================
-// ==================================================================
-
-
-public DaemonProtocol(String s)
-{  
-       step = Configuration.getInt(s+"."+PAR_STEP,1);
-       
-       String[] names = Configuration.getNames(s+"."+PAR_CTRL);
-       controls = new Control[names.length];
-       for(int i=0; i<names.length; ++i)
-       {
-               controls[i]=(Control)Configuration.getInstance(names[i]);
-       }
-       System.err.println(s+": loaded controls "+Arrays.asList(names));
-}
-
-// ------------------------------------------------------------------
-
-public Object clone() {
-
-       DaemonProtocol ip = null;
-       try { ip=(DaemonProtocol)super.clone(); }
-       catch( CloneNotSupportedException e ) {} // never happens
-       return ip;
-}
-
-
-// ========================= methods =================================
-// ===================================================================
-
-       
-/**
-* Runs the configured controls if {@link CDState#getCycleT} %
-* {@value #PAR_STEP}=0.
-*/
-public void nextCycle( Node node, int protocolID ) {
-
-       if( CDState.getCycleT() % step != 0 ) return;
-       for(int j=0; j<controls.length; ++j) controls[j].execute();
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/cdsim/FullNextCycle.java b/contrib/psg/src/peersim/cdsim/FullNextCycle.java
deleted file mode 100644 (file)
index 0bc97f4..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.cdsim;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.RandPermutation;
-
-/**
-* Control to run a cycle of the cycle driven simulation.
-* This does not need to be explicitly configured (although you can do it for
-* hacking purposes).
-*/
-public class FullNextCycle implements Control {
-
-
-// ============== fields ===============================================
-// =====================================================================
-
-
-/**
-* The type of the getPair function. This parameter is of historic interest and
-* was needed in a publication we wrote. You don't need to care about this.
-* But if you wanna know: if set to "rand", then in a cycle the simulator
-* does not simply iterate through the nodes, but instead picks a random one
-* N times, where N is the network size.
-* @config
-*/
-private static final String PAR_GETPAIR = "getpair";
-
-/**
-* Shuffle iteration order if set. Not set by default. If set, then nodes are
-* iterated in a random order. However, in the network the nodes actually
-* stay in the order they originally were. The price for leaving the
-* network untouched is memory: we need to store the permutation we use
-* to iterate the network.
-* @config
-*/
-private static final String PAR_SHUFFLE = "shuffle";
-
-// --------------------------------------------------------------------
-
-protected final boolean getpair_rand;
-
-protected final boolean shuffle;
-
-/** Holds the protocol schedulers of this simulation */
-protected Scheduler[] protSchedules = null;
-
-/** The random permutation to use if config par {@value #PAR_SHUFFLE} is set. */
-protected RandPermutation rperm = new RandPermutation( CDState.r );
-
-// =============== initialization ======================================
-// =====================================================================
-
-/**
-* Reads config parameters and {@link Scheduler}s.
-*/
-public FullNextCycle(String prefix) {
-       
-       getpair_rand = Configuration.contains(prefix+"."+PAR_GETPAIR);
-       shuffle = Configuration.contains(prefix+"."+PAR_SHUFFLE);
-
-       // load protocol schedulers
-       String[] names = Configuration.getNames(Node.PAR_PROT);
-       protSchedules = new Scheduler[names.length];
-       for(int i=0; i<names.length; ++i)
-       {
-               protSchedules[i] = new Scheduler(names[i]);
-       }
-}
-
-// =============== methods =============================================
-// =====================================================================
-
-/** 
- * Execute all the {@link CDProtocol}s on all nodes that are up.
- * If the node goes down as a result of the execution of a protocol, then
- * the rest of the protocols on that node are not executed and we move on
- * to the next node.
- * It sets the {@link CDState} appropriately.
- * @return always false
- */
-public boolean execute() {
-
-       final int cycle=CDState.getCycle();
-       if( shuffle ) rperm.reset( Network.size() );
-       for(int j=0; j<Network.size(); ++j)
-       {
-               Node node = null;
-               if( getpair_rand )
-                       node = Network.get(CDState.r.nextInt(Network.size()));
-               else if( shuffle )
-                       node = Network.get(rperm.next());
-               else
-                       node = Network.get(j);
-               if( !node.isUp() ) continue; 
-               CDState.setNode(node);
-               CDState.setCycleT(j);
-               final int len = node.protocolSize();
-               for(int k=0; k<len; ++k)
-               {
-                       // Check if the protocol should be executed, given the
-                       // associated scheduler.
-                       if (!protSchedules[k].active(cycle))
-                               continue;
-                               
-                       CDState.setPid(k);
-                       Protocol protocol = node.getProtocol(k);
-                       if( protocol instanceof CDProtocol )
-                       {
-                               ((CDProtocol)protocol).nextCycle(node, k);
-                               if( !node.isUp() ) break;
-                       }
-               }
-       }
-
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/cdsim/NextCycle.java b/contrib/psg/src/peersim/cdsim/NextCycle.java
deleted file mode 100644 (file)
index 464f398..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.cdsim;
-
-import peersim.config.*;
-import peersim.core.*;
-
-/**
-* It generalizes its superclass so that the list of protocols to run can
-* be specified. The superclass ({@link FullNextCycle}) always runs all the
-* {@link CDProtocol}s.
-*/
-public class NextCycle extends FullNextCycle {
-
-
-// ============== fields ===============================================
-// =====================================================================
-
-
-/**
-* Gives the list of protocols (whitespace separated) that need to be
-* iterated over.
-* @config
-*/
-private static final String PAR_PROTS = "protocol";
-
-private final int[] pids;
-
-
-// =============== initialization ======================================
-// =====================================================================
-
-/**
-* reads configuration parameters and the {@link Scheduler}s.
-*/
-public NextCycle(String prefix) {
-       
-       super(prefix);
-       
-       String prots = Configuration.getString(prefix+"."+PAR_PROTS);
-       String[] protnames = prots.split("\\s");
-       pids = new int[protnames.length];
-       for(int i=0; i<protnames.length; ++i)
-       {
-               pids[i] = Configuration.lookupPid(protnames[i]);
-       }
-}
-
-// =============== methods =============================================
-// =====================================================================
-
-/** 
- * Execute the configured protocols on all nodes.
- * It works exactly as {@link FullNextCycle#execute}, only just the configured
- * protocols are iterated over.
- */
-public boolean execute() {
-
-       final int cycle=CDState.getCycle();
-       if( shuffle ) rperm.reset( Network.size() );
-       for(int j=0; j<Network.size(); ++j)
-       {
-               Node node = null;
-               if( getpair_rand )
-                       node = Network.get(CDState.r.nextInt(Network.size()));
-               else if( shuffle )
-                       node = Network.get(rperm.next());
-               else
-                       node = Network.get(j);
-               if( !node.isUp() ) continue; 
-               CDState.setNode(node);
-               CDState.setCycleT(j);
-               for(int pid: pids)
-               {
-                       // Check if the protocol should be executed, given the
-                       // associated scheduler.
-                       if (!protSchedules[pid].active(cycle))
-                               continue;
-                               
-                       CDState.setPid(pid);
-                       Protocol protocol = node.getProtocol(pid);
-                       if( protocol instanceof CDProtocol )
-                       {
-                               ((CDProtocol)protocol).nextCycle(node, pid);
-                               if( !node.isUp() ) break;
-                       }
-               }
-       }
-
-       return false;
-}
-
-}
-
-
diff --git a/contrib/psg/src/peersim/cdsim/Shuffle.java b/contrib/psg/src/peersim/cdsim/Shuffle.java
deleted file mode 100644 (file)
index 6373940..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.cdsim;
-
-import peersim.core.*;
-
-/**
-* Shuffles the network. After shuffling, the order in which the nodes
-* are iterated over during a cycle of a cycle driven simulation
-* will be random. It has an effect only in cycle driven simulations.
-*/
-public class Shuffle implements Control {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-// ==================== initialization ==============================
-// ==================================================================
-
-/** Does nothing. */
-public Shuffle(String prefix) {}
-
-
-// ===================== public methods ==============================
-// ===================================================================
-
-
-/**
-* Calls {@link Network#shuffle()}. 
-* As a result, the order in which the nodes
-* are iterated over during a cycle of a cycle driven simulation
-* will be random. It has an effect only in cycle driven simulations.
-*/
-public final boolean execute() {
-       Network.shuffle();
-       return false;
-}
-
-
-}
-
-
diff --git a/contrib/psg/src/peersim/config/CheckConfig.java b/contrib/psg/src/peersim/config/CheckConfig.java
deleted file mode 100644 (file)
index 117dcc0..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-import java.util.*;
-
-import peersim.cdsim.*;
-import peersim.edsim.*;
-import peersim.util.*;
-
-
-/**
- * This is utility tool that checks whether a config file can be loaded
- * or not, without actually performing the simulation. All the error
- * messages generated by controls and protocols when initialized are
- * reported.  This is useful to check all the configuration files in a 
- * directory.
- */
-public class CheckConfig {
-
-//========================== parameters ================================
-//======================================================================
-
-/**
- * This is the prefix of the config properties whose value vary during
- * a set of experiments.
- * @config
- */
-private static final String PAR_RANGE = "range";
-
-
-// ========================== static constants ==========================
-// ======================================================================
-
-/** {@link CDSimulator} */
-protected static final int CDSIM = 0;
-
-/** {@link EDSimulator} */
-protected static final int EDSIM = 1;
-
-protected static final int UNKNOWN = -1;
-
-/** the class names of simulators used */
-protected static final String[] simName = {
-       CDSimulator.class.getCanonicalName(),
-       EDSimulator.class.getCanonicalName(),
-};
-
-
-
-       
-// ========================== methods ===================================
-// ======================================================================
-
-/**
-* Returns the numeric id of the simulator to invoke. At the moment this can
-* be {@link #CDSIM}, {@link #EDSIM} or {@link #UNKNOWN}.
-*/
-protected static int getSimID() {
-       
-       if( CDSimulator.isConfigurationCycleDriven())
-       {
-               return CDSIM;
-       }
-       else if( EDSimulator.isConfigurationEventDriven() )
-       {       
-               return EDSIM;
-       }
-       else    return UNKNOWN;
-}
-
-// ----------------------------------------------------------------------
-
-/**
-* Loads the configuration and checks the configuration files against
-* simple configuration errors, such as missing classes, missing 
-* parameters or syntax errors.
-* <p>
-* The goal is to provide a mechanism to test a configuration file,
-* without having to perform the actual simulations (that could be
-* time-consuming) and without necessarily blocking after the first
-* error encountered. It may be useful, for example, when a major 
-* refactoring of your code requires a thorough check on all your 
-* configuration files.
-* <p>
-* Loading the configuration is currently done with the help of 
-* constructing an instance of {@link ParsedProperties} using the 
-* constructor {@link ParsedProperties#ParsedProperties(String[])},
-* in the same way as the normal simulator.
-* <p>
-* After loading the configuration, the collection of nodes forming a 
-* Network is instantiated, together with all protocols forming a
-* node. Initialization controls are executed, and then the simulation
-* stops. 
-* <p>
-* For each error encountered, a message is printed ons standard error,
-* and the initialization keeps going without interruption. If multiple 
-* errors are present, an error message for each of them is printed.
-* Apart from errors, default choices are also printed as warnings, to 
-* allow developers to spot subtle configuration errors such as missing
-* parameters that defaults to standard values.
-* 
-* @param args passed on to
-* {@link ParsedProperties#ParsedProperties(String[])}
-*/
-public static void main(String[] args)
-  throws Exception
-{
-       System.setErr(new NullPrintStream());
-       Properties prop = new ParsedProperties(args);
-       Configuration.setConfig( prop, true );
-       parseRanges(prop);
-       
-       final int SIMID = getSimID();
-       if( SIMID == UNKNOWN )
-       {
-               System.err.println(
-                   "Simulator: unable to identify configuration, exiting.");
-               return;
-       }
-       
-       try {
-       
-               // XXX could be done through reflection, but
-               // this is easier to read.
-               switch(SIMID)
-               {
-               case CDSIM:
-                       // Set cycles to 0, so no simulation is ever performed.
-                       prop.setProperty(CDSimulator.PAR_CYCLES, "0");
-                       CDSimulator.nextExperiment();
-                       break;
-               case EDSIM:
-                       // Set endtime to 0, so no simulation is ever performed.
-                       prop.setProperty(EDSimulator.PAR_ENDTIME, "0");
-                       EDSimulator.nextExperiment();
-                       break;
-               }
-       
-       } catch (MissingParameterException e) {
-               System.out.println(e.getMessage());
-               System.exit(1);
-       } catch (IllegalParameterException e) {
-               System.out.println(e.getMessage());
-               System.exit(1);
-       }       
-}
-
-/**
- * Parses a collection of range specifications, identifies the set
- * of parameters that will change during the simulation and
- * instantiates them with the first value of their ranges.
- */
-private static void parseRanges(Properties prop)
-{
-       // Get ranges
-       String[] ranges = Configuration.getNames(PAR_RANGE);
-
-       for (int i = 0; i < ranges.length; i++) {
-               String[] array = Configuration.getString(ranges[i]).split(";");
-               if (array.length != 2) {
-                       throw new IllegalParameterException(ranges[i],
-                                       " should be formatted as <parameter>;<value list>");
-               }
-               String[] values = StringListParser.parseList(array[1]);
-               prop.setProperty(array[0], values[0]);
-       }
-}
-
-}
diff --git a/contrib/psg/src/peersim/config/ClassFinder.java b/contrib/psg/src/peersim/config/ClassFinder.java
deleted file mode 100644 (file)
index b7cab6b..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-
-/**
- * Provides static methods to obtain the package-qualified class name
- * of a class, given just the non-qualified name, and to obtain
- * the non-qualified name, given the package-qualified class name.
- * 
- * Inspired from some code written by David Postill (david@postill.org.uk)
- * (found in http://groups.google.com).
- *
- *
- * @author Alberto Montresor
- * @version $Revision: 1.9 $
- */
-class ClassFinder 
-{
-
-//--------------------------------------------------------------------------
-//Fields and initialization
-//--------------------------------------------------------------------------
-       
-       
-/** Local map containing the associations */
-private static Map<String,String> map = new TreeMap<String,String>();  
-
-/** The number of directories that have been touched by the search.
-This does not include directories in jar files. */
-private static int visitedDirs = 0;
-
-private static final int maxDirs;
-
-static {
-
-       maxDirs = 10000;
-
-       try {
-               findClasses(map);
-       } catch (IOException e) {
-               e.printStackTrace();
-       }
-
-       if(visitedDirs >= maxDirs )
-       {
-               System.err.println("Configuration: some directories in your "+
-               "classpath probably contain filesystem\nConfiguration: "+
-               "loops because the number of visited directories "+
-               "reached "+maxDirs+".\nConfiguration: This means automatic "+
-               "class lookup might fail and you might have\nConfiguration: "+
-               "to fully qualify class names in the configuration.");
-       }
-}
-       
-       
-//--------------------------------------------------------------------------
-//Public static methods
-//--------------------------------------------------------------------------
-       
-/**
- * Returns the non-qualified name of a class, removing all the package
- * information.
- */
-public static String getShortName(String className) {
-
-       int index = className.lastIndexOf('.');
-       if (index < 0) {
-               return className;
-       } else {
-               return className.substring(index+1);
-       }
-}
-
-/**
- * Returns the package-qualified name associated to the specified
- * non-qualified name, if exists. Otherwise it returns null.
- * 
- * Only classes reachable from the classpath defined by the 
- * "java.class.path" property are considered. 
- * Jar files and directories are both parsed.
- * If multiple classes with the same name but different 
- * fully-qualified names are present, a comma-separated list
- * of fully-qualified class names is returned.
- * 
- * @param name the non-qualified name of the class to be searched
- * @return the qualified name, if exists.
- */
-public static String getQualifiedName(String name)
-{
-       return map.get(name);
-}
-
-//--------------------------------------------------------------------------
-//Private static methods
-//--------------------------------------------------------------------------
-       
-/**
- * Finds all the classes reachable from the current classpath;
- * for each of them, inserts an association (name, fully-qualified 
- * name) in the specified map. Both names are String objects.
- * 
- * Only classes reachable from the classpath defined by the 
- * "java.class.path" property are considered. 
- * Jar files and directories are both parsed.
- * If multiple classes with the same name but different 
- * fully-qualified names are present, they are inserted
- * in the map as associations (name, comma-separated list of
- * fully-qualified names).
- * 
- * @param map
- * @throws IOException
- */
-private static void findClasses(Map<String,String> map)
-throws IOException
-{
-       String classPath = System.getProperty( "java.class.path" );
-       String separator = System.getProperty( "path.separator"  );
-       String filesep = System.getProperty( "file.separator");
-       StringTokenizer path = new StringTokenizer( classPath, separator );
-
-       while( path.hasMoreTokens() ) {
-               
-               String pathElement = path.nextToken();
-               File pathFile = new File( pathElement );
-               
-               if( pathFile.isDirectory() ) {
-                       if (!pathElement.endsWith(filesep)) {
-                               pathElement = pathElement + filesep;
-                               pathFile = new File( pathElement);
-                       }
-                       findClassInPathDir( map, pathElement, pathFile );
-                       // Search directories
-               } else if ( pathFile.exists() ) {
-                       findClassInJar( map, pathFile);
-               }
-       }
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Parses jar file.
- * 
- * @param map the map where to insert associations
- * @param pathFile the file name of the associated jar file
- * @throws IOException
- */
-private static void findClassInJar(Map<String,String> map, File pathFile)
-throws IOException
-{
-       ZipFile zipFile = new ZipFile( pathFile );
-       Enumeration entries = zipFile.entries();
-       while( entries.hasMoreElements() ) {
-               
-               String entry = entries.nextElement().toString();
-               if( entry.endsWith( ".class" ) ) {
-                       // File names in ZIP archives (so, also in JARs)
-                       // are separated by forward slashes '/', independently
-                       // of the architecture.
-                       String className = classname( entry, "/" ); 
-                       String shortName = getShortName( className );
-                       if (map.containsKey(shortName)) {
-                               map.put(shortName,
-                                       map.get(shortName)+","+className);
-                       } else {
-                               map.put(shortName, className);
-                       }
-               }
-       }
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Recursively parses directories.
- * 
- * @param map the map where to insert associations
- * @param pathElement the path string used for recursion
- * @param pathFile the file (directory) to be analyzed
- * @throws IOException
- */
-private static void findClassInPathDir( Map<String,String> map,
-       String pathElement, File pathFile )
-throws IOException
-{
-       visitedDirs++;
-       if(visitedDirs>=maxDirs) return;
-
-       String[] list = pathFile.list();
-       String filesep = System.getProperty( "file.separator");
-       
-       for( int i = 0; i < list.length; i++ ) {
-               File file = new File( pathFile, list[i] );
-               if( file.isDirectory() ) {
-                       findClassInPathDir( map, pathElement, file );
-               }
-               else if ( file.exists() && (file.length() != 0) && list[i].endsWith( ".class" ) ) {
-                       String classFile = file.toString().substring( pathElement.length());
-                       String className = classname( classFile, filesep );
-                       String shortName = getShortName( className );
-                       if (map.containsKey(shortName)) {
-                               map.put(shortName, map.get(shortName)+","+className);
-                       } else {
-                               map.put(shortName, className);
-                       }
-               }
-       }
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Translates a class file name in a class name using
- * the specified file separator.
- */
-private static String classname(String classFile, String filesep)
-{ 
-       return classFile.replace( filesep, "." ).substring(
-               0, classFile.length() - ".class".length() ); 
-}
-
-//--------------------------------------------------------------------------
-
-/** 
- * Testing.
- * 
- * @param argv
- */
-public static void main( String[] argv )
-{
-       Iterator i = map.keySet().iterator();
-       while (i.hasNext()) {
-               String key = (String) i.next();
-               String name = map.get(key);
-               System.out.println(key + " --> " + name);
-       }
-}
-}
diff --git a/contrib/psg/src/peersim/config/ConfigContainer.java b/contrib/psg/src/peersim/config/ConfigContainer.java
deleted file mode 100644 (file)
index 75f3cb6..0000000
+++ /dev/null
@@ -1,1011 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-import java.lang.reflect.*;
-import java.util.*;
-import org.lsmp.djep.groupJep.*;
-
-/**
- * This class is the container for the configuration data used in
- * {@link Configuration}; see that class for more information.
- */
-public class ConfigContainer
-{
-
-// =================== static fields =================================
-// ===================================================================
-
-/** Symbolic constant for no debug */
-private static final int DEBUG_NO = 0;
-
-/** Symbolic constant for regular debug */
-private static final int DEBUG_REG = 1;
-
-/** Symbolic constant for extended debug */
-private static final int DEBUG_CONTEXT = 2;
-
-//========================== fields =================================
-//===================================================================
-
-/**
- * The properties object that stores all configuration information.
- */
-private Properties config;
-
-/**
- * Map associating string protocol names to the numeric protocol
- * identifiers. The protocol names are understood without prefix.
- */
-private Map<String, Integer> protocols;
-
-/**
- * The maximum depth that can be reached when analyzing expressions. This
- * value can be substituted by setting the configuration parameter
- * PAR_MAXDEPTH.
- */
-private int maxdepth;
-
-/** Debug level */
-private int debugLevel;
-
-/**
- * If true, no exception is thrown. Instead, an error is printed and the
- * Configuration tries to return a reasonable return value
- */
-private boolean check = false;
-
-// =================== initialization ================================
-// ===================================================================
-
-public ConfigContainer(Properties config, boolean check)
-{
-       this.config = config;
-       this.check = check;
-       maxdepth = getInt(Configuration.PAR_MAXDEPTH, Configuration.DEFAULT_MAXDEPTH);
-
-       // initialize protocol id-s
-       protocols = new HashMap<String, Integer>();
-       String[] prots = getNames(Configuration.PAR_PROT);// they're returned in correct order
-       for (int i = 0; i < prots.length; ++i) {
-               protocols.put(prots[i].substring(Configuration.PAR_PROT.length() + 1), Integer.valueOf(i));
-       }
-       String debug = config.getProperty(Configuration.PAR_DEBUG);
-       if (Configuration.DEBUG_EXTENDED.equals(debug))
-               debugLevel = DEBUG_CONTEXT;
-       else if (Configuration.DEBUG_FULL.equals(debug)) {
-               Map<String, String> map = new TreeMap<String, String>();
-               Enumeration e = config.propertyNames();
-               while (e.hasMoreElements()) {
-                       String name = (String) e.nextElement();
-                       String value = config.getProperty(name);
-                       map.put(name, value);
-               }
-               Iterator i = map.keySet().iterator();
-               while (i.hasNext()) {
-                       String name = (String) i.next();
-                       System.err.println("DEBUG " + name
-                                       + ("".equals(map.get(name)) ? "" : " = " + map.get(name)));
-               }
-       } else if (debug != null) {
-               debugLevel = DEBUG_REG;
-       } else {
-               debugLevel = DEBUG_NO;
-       }
-}
-
-// =================== static public methods =========================
-// ===================================================================
-
-/**
- * @return true if and only if name is a specified (existing) property.
- */
-public boolean contains(String name)
-{
-       boolean ret = config.containsKey(name);
-       debug(name, "" + ret);
-       return ret;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public boolean getBoolean(String name, boolean def)
-{
-       try {
-               return getBool(name);
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-
-/**
- * Reads given property. If not found, or the value is empty string then
- * throws a {@link MissingParameterException}. Empty string is not
- * accepted as false due to the similar function of {@link #contains} which
- * returns true in that case. True is returned if the lowercase value of
- * the property is "true", otherwise false is returned.
- * @param name
- *          Name of configuration property
- */
-public boolean getBoolean(String name)
-{
-       try {
-               return getBool(name);
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return false;
-       }
-}
-
-//-------------------------------------------------------------------
-
-/**
- * The actual methods that implements getBoolean.
- */
-private boolean getBool(String name)
-{
-       if (config.getProperty(name) == null) {
-               throw new MissingParameterException(name);
-//                             "\nPossibly incorrect property: " + getSimilarProperty(name));
-       }
-       if (config.getProperty(name).matches("\\p{Blank}*")) {
-               throw new MissingParameterException(name,
-                               "Blank value is not accepted when parsing Boolean.");
-       }
-       boolean ret = Boolean.valueOf(config.getProperty(name));
-       debug(name, "" + ret);
-       return ret;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public int getInt(String name, int def)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.intValue();
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- */
-public int getInt(String name)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.intValue();
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return 0;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public long getLong(String name, long def)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.longValue();
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- */
-public long getLong(String name)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.longValue();
-       } catch (RuntimeException e) {
-               manageException(name, e);
-                       return 0;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public double getDouble(String name, double def)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.doubleValue();
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * MissingParameterException.
- * @param name
- *          Name of configuration property
- */
-public double getDouble(String name)
-{
-       try {
-               Number ret = getVal(name, name, 0);
-               debug(name, "" + ret);
-               return ret.doubleValue();
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return 0;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Read numeric property values, parsing expression if necessary.
- * 
- * @param initial
- *          the property name that started this expression evaluation
- * @param property
- *          the current property name to be evaluated
- * @param depth
- *          the depth reached so far
- * @return the evaluation of the expression associated to property
- */
-private Number getVal(String initial, String property, int depth)
-{
-       if (depth > maxdepth) {
-               throw new IllegalParameterException(initial,
-                               "Probable recursive definition - exceeded maximum depth " + 
-                               maxdepth);
-       }
-
-       String s = config.getProperty(property);
-       if (s == null || s.equals("")) {
-               throw new MissingParameterException(property,
-                               " when evaluating property " + initial);
-//                                             + "\nPossibly incorrect property: " + getSimilarProperty(property));
-       }
-
-       GroupJep jep = new GroupJep(new Operators());
-       jep.setAllowUndeclared(true);
-
-       jep.parseExpression(s);
-       String[] symbols = getSymbols(jep);
-       for (int i = 0; i < symbols.length; i++) {
-               Object d = getVal(initial, symbols[i], depth + 1);
-               jep.addVariable(symbols[i], d);
-       }
-       Object ret = jep.getValueAsObject();
-       if (jep.hasError())
-               System.err.println(jep.getErrorInfo());
-       return (Number) ret;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns an array of string, containing the symbols contained in the
- * expression parsed by the specified JEP parser.
- * @param jep
- *          the java expression parser containing the list of variables
- * @return an array of strings.
- */
-private String[] getSymbols(org.nfunk.jep.JEP jep)
-{
-       Hashtable h = jep.getSymbolTable();
-       String[] ret = new String[h.size()];
-       Enumeration e = h.keys();
-       int i = 0;
-       while (e.hasMoreElements()) {
-               ret[i++] = (String) e.nextElement();
-       }
-       return ret;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public String getString(String name, String def)
-{
-       try {
-               return getStr(name);
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       } 
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * MissingParameterException. Removes trailing whitespace characters.
- * @param name
- *          Name of configuration property
- */
-public String getString(String name)
-{
-       try {
-               return getStr(name);
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return "";
-       }
-}
-
-/**
- * The actual method implementing getString().
- */
-private String getStr(String name)
-{
-       String result = config.getProperty(name);
-       if (result == null) {
-               throw new MissingParameterException(name);
-//                             "\nPossibly incorrect property: " + getSimilarProperty(name));
-       }
-       debug(name, "" + result);
-
-       return result.trim();
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads the given property from the configuration interpreting it as a
- * protocol name. Returns the numeric protocol identifier of this protocol
- * name. See the discussion of protocol name at {@link Configuration} for
- * details on how this numeric id is calculated
- * 
- * @param name
- *          Name of configuration property
- * @return the numeric protocol identifier associated to the value of the
- *         property
- */
-public int getPid(String name)
-{
-       try {
-               String protname = getStr(name);
-               return lookupPid(protname);
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return 0;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Calls {@link #getPid(String)}, and returns the default if no property
- * is defined with the given name.
- * 
- * @param name
- *          Name of configuration property
- * @param pid
- *          the default protocol identifier
- * @return the numeric protocol identifier associated to the value of the
- *         property, or the default if not defined
- */
-public int getPid(String name, int pid)
-{
-       try {
-               String protname = getStr(name);
-               return lookupPid(protname);
-       } catch (RuntimeException e) {
-               manageDefault(name, pid, e);
-               return pid;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns the numeric protocol identifier of the given protocol name.
- * 
- * @param protname
- *          the protocol name.
- * @return the numeric protocol identifier associated to the protocol name
- */
-public int lookupPid(String protname)
-{
-       Integer ret = protocols.get(protname);
-       if (ret == null) {
-               throw new MissingParameterException(Configuration.PAR_PROT + "." + protname);
-//                             "\nPossibly incorrect property: "
-//                             + getSimilarProperty(PAR_PROT + "." + protname));
-       }
-       return ret.intValue();
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns the name of a protocol that has the given identifier.
- * <p>
- * Note that this is not a constant time operation in the number of
- * protocols, although typically there are very few protocols defined.
- * 
- * @param pid
- *          numeric protocol identifier.
- * @return name of the protocol that has the given id. null if no protocols
- *         have the given id.
- */
-public String lookupPid(int pid)
-{
-
-       if (!protocols.containsValue(pid))
-               return null;
-       for (Map.Entry<String, Integer> i : protocols.entrySet()) {
-               if (i.getValue().intValue() == pid)
-                       return i.getKey();
-       }
-
-       // never reached but java needs it...
-       return null;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}. When creating the Class object, a
- * few attempts are done to resolve the classname. See
- * {@link Configuration} for details.
- * @param name
- *          Name of configuration property
- */
-public Class getClass(String name)
-{
-       try {
-               return getClazz(name);
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return null;
-       }
-}
-
-private Class getClazz(String name)
-{
-       String classname = config.getProperty(name);
-       if (classname == null) {
-               throw new MissingParameterException(name);
-//                             "\nPossibly incorrect property: " + getSimilarProperty(name));
-       }
-       debug(name, classname);
-
-       Class c = null;
-
-       try {
-               // Maybe classname is just a fully-qualified name
-               c = Class.forName(classname);
-       } catch (ClassNotFoundException e) {
-       }
-       if (c == null) {
-               // Maybe classname is a non-qualified name?
-               String fullname = ClassFinder.getQualifiedName(classname);
-               if (fullname != null) {
-                       try {
-                               c = Class.forName(fullname);
-                       } catch (ClassNotFoundException e) {
-                       }
-               }
-       }
-       if (c == null) {
-               // Maybe there are multiple classes with the same
-               // non-qualified name.
-               String fullname = ClassFinder.getQualifiedName(classname);
-               if (fullname != null) {
-                       String[] names = fullname.split(",");
-                       if (names.length > 1) {
-                               for (int i = 0; i < names.length; i++) {
-                                       for (int j = i + 1; j < names.length; j++) {
-                                               if (names[i].equals(names[j])) {
-                                                       throw new IllegalParameterException(name,
-                                                                       "The class " + names[i]
-                                                               + " appears more than once in the classpath; please check"
-                                                               + " your classpath to avoid duplications.");
-                                               }
-                                       }
-                               }
-                               throw new IllegalParameterException(name,
-                                               "The non-qualified class name " + classname
-                                                               + "corresponds to multiple fully-qualified classes:" + fullname);
-                       }
-               }
-       }
-       if (c == null) {
-               // Last attempt: maybe the fully classified name is wrong,
-               // but the classname is correct.
-               String shortname = ClassFinder.getShortName(classname);
-               String fullname = ClassFinder.getQualifiedName(shortname);
-               if (fullname != null) {
-                       throw new IllegalParameterException(name, "Class "
-                                       + classname + " does not exist. Possible candidate(s): " + fullname);
-               }
-       }
-       if (c == null) {
-               throw new IllegalParameterException(name, "Class "
-                               + classname + " not found");
-       }
-       return c;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- * @see #getClass(String)
- */
-public Class getClass(String name, Class def)
-{
-
-       try {
-               return Configuration.getClass(name);
-       } catch (RuntimeException e) {
-               manageDefault(name, def, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property for a class name. It returns an
- * instance of the class. The class must implement a constructor that takes
- * a String as an argument. The value of this string will be <tt>name</tt>.
- * The constructor of the class can see the configuration so it can make
- * use of this name to read its own parameters from it.
- * @param name
- *          Name of configuration property
- * @throws MissingParameterException
- *           if the given property is not defined
- * @throws IllegalParameterException
- *           if there is any problem creating the instance
- */
-public Object getInstance(String name)
-{
-  try {
-       return getInst(name);
-  } catch (RuntimeException e) {
-               manageException(name, e);
-               return null;
-  }
-}
-
-/**
- * The actual method implementing getInstance().
- */
-private Object getInst(String name)
-{
-       Class c = getClass(name);
-       if (c == null)
-               return null;
-       final String classname = c.getSimpleName();
-
-       try {
-               Class pars[] = {String.class};
-               Constructor cons = c.getConstructor(pars);
-               Object objpars[] = {name};
-               return cons.newInstance(objpars);
-       } catch (NoSuchMethodException e) {
-               throw new IllegalParameterException(name, "Class "
-                               + classname + " has no " + classname + "(String) constructor");
-       } catch (InvocationTargetException e) {
-               if (e.getTargetException() instanceof RuntimeException) {
-                       throw (RuntimeException) e.getTargetException();
-               } else {
-                       e.getTargetException().printStackTrace();
-                       throw new RuntimeException("" + e.getTargetException());
-               }
-       } catch (Exception e) {
-               throw new IllegalParameterException(name, e + "");
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property for a class name. It returns an
- * instance of the class. The class must implement a constructor that takes
- * a String as an argument. The value of this string will be <tt>name</tt>.
- * The constructor of the class can see the configuration so it can make
- * use of this name to read its own parameters from it.
- * @param name
- *          Name of configuration property
- * @param def
- *          The default object that is returned if there is no property
- *          defined with the given name
- * @throws IllegalParameterException
- *           if the given name is defined but there is a problem creating
- *           the instance.
- */
-public Object getInstance(String name, Object def)
-{
-  if (!contains(name)) 
-       return def;
-       try {
-               return getInst(name);
-       } catch (RuntimeException e) {
-               manageException(name, e);
-               return def;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
- * It returns an array of class instances. The instances are constructed by
- * calling {@link #getInstance(String)} on the names returned by
- * {@link #getNames(String)}.
- * @param name
- *          The component type (i.e. prefix of the list of configuration
- *          properties) which will be passed to {@link #getNames(String)}.
- */
-public Object[] getInstanceArray(String name)
-{
-
-       String names[] = getNames(name);
-       Object[] result = new Object[names.length];
-
-       for (int i = 0; i < names.length; ++i) {
-               result[i] = getInstance(names[i]);
-       }
-
-       return result;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns an array of names prefixed by the specified name. The array is
- * sorted as follows. If there is no config entry
- * <code>{@value peersim.config.Configuration#PAR_INCLUDE}+"."+name</code> or
- * <code>{@value peersim.config.Configuration#PAR_ORDER}+"."+name</code> then the order is
- * alphabetical. Otherwise this entry defines the order. For more
- * information see {@link Configuration}.
- * @param name
- *          the component type (i.e., the prefix)
- * @return the full property names in the order specified by the
- *         configuration
- */
-public String[] getNames(String name)
-{
-       ArrayList<String> ll = new ArrayList<String>();
-       final String pref = name + ".";
-
-       Enumeration e = config.propertyNames();
-       while (e.hasMoreElements()) {
-               String key = (String) e.nextElement();
-               if (key.startsWith(pref) && key.indexOf(".", pref.length()) < 0)
-                       ll.add(key);
-       }
-       String[] ret = ll.toArray(new String[ll.size()]);
-       return order(ret, name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * The input of this method is a set of property <code>names</code> (e.g.
- * initializers, controls and protocols) and a string specifying the type
- * (prefix) of these. The output is in <code>names</code>, which will
- * contain a permutation of the original array. Parameter
- * PAR_INCLUDE+"."+type, or if not present, PAR_ORDER+"."+type is read from
- * the configuration. If none of them are defined then the order is
- * identical to that of <code>names</code>. Otherwise the configuration
- * entry must contain entries from <code>names</code>. It is assumed
- * that the entries in <code>names</code> contain only word characters
- * (alphanumeric and underscore '_'. The order configuration entry thus
- * contains a list of entries from <code>names</code> separated by any
- * non-word characters.
- * <p>
- * It is not required that all entries are listed. If PAR_INCLUDE is used,
- * then only those entries are returned that are listed. If PAR_ORDER is
- * used, then all names are returned, but the array will start with those
- * that are listed. The rest of the names follow in alphabetical order.
- * 
- * 
- * @param names
- *          the set of property names to be searched
- * @param type
- *          the string identifying the particular set of properties to be
- *          inspected
- */
-private String[] order(String[] names, String type)
-{
-       String order = getString(Configuration.PAR_INCLUDE + "." + type, null);
-       boolean include = order != null;
-       if (!include)
-               order = getString(Configuration.PAR_ORDER + "." + type, null);
-
-       int i = 0;
-       if (order != null && !order.equals("")) {
-               // split around non-word characters
-               String[] sret = order.split("\\W+");
-               for (; i < sret.length; i++) {
-                       int j = i;
-                       for (; j < names.length; ++j)
-                               if (names[j].equals(type + "." + sret[i]))
-                                       break;
-                       if (j == names.length) {
-                               throw new IllegalParameterException(
-                                               (include ? Configuration.PAR_INCLUDE : Configuration.PAR_ORDER)
-                                               + "." + type, type + "." + sret[i] + " is not defined.");
-                       } else // swap the element to current position
-                       {
-                               String tmps = names[j];
-                               names[j] = names[i];
-                               names[i] = tmps;
-                       }
-               }
-       }
-
-       Arrays.sort(names, i, names.length);
-       int retsize = (include ? i : names.length);
-       String[] ret = new String[retsize];
-       for (int j = 0; j < retsize; ++j)
-               ret[j] = names[j];
-       return ret;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Print debug information for configuration. The amount of information
- * depends on the debug level DEBUG. 0 = nothing 1 = just the config name 2 =
- * config name plus method calling
- * 
- * @param name
- */
-private void debug(String name, String result)
-{
-       if (debugLevel == DEBUG_NO)
-               return;
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("DEBUG ");
-       buffer.append(name);
-       buffer.append(" = ");
-       buffer.append(result);
-
-       // Additional info
-       if (debugLevel == DEBUG_CONTEXT) {
-
-               buffer.append("\n  at ");
-               // Obtain the stack trace
-               StackTraceElement[] stack = null;
-               try {
-                       throw new Exception();
-               } catch (Exception e) {
-                       stack = e.getStackTrace();
-               }
-
-               // Search the element that invoked Configuration
-               // It's the first whose class is different from Configuration
-               int pos;
-               for (pos = 0; pos < stack.length; pos++) {
-                       if (!stack[pos].getClassName().equals(Configuration.class.getName()))
-                               break;
-               }
-
-               buffer.append(stack[pos].getClassName());
-               buffer.append(":");
-               buffer.append(stack[pos].getLineNumber());
-               buffer.append(", method ");
-               buffer.append(stack[pos - 1].getMethodName());
-               buffer.append("()");
-       }
-
-       System.err.println(buffer);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * @return an array of adjacent letter pairs contained in the input string
- *         http://www.catalysoft.com/articles/StrikeAMatch.html
- */
-private String[] letterPairs(String str)
-{
-       int numPairs = str.length() - 1;
-       String[] pairs = new String[numPairs];
-       for (int i = 0; i < numPairs; i++) {
-               pairs[i] = str.substring(i, i + 2);
-       }
-       return pairs;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * @return an ArrayList of 2-character Strings.
- *         http://www.catalysoft.com/articles/StrikeAMatch.html
- */
-private ArrayList<String> wordLetterPairs(String str)
-{
-       ArrayList<String> allPairs = new ArrayList<String>();
-       // Tokenize the string and put the tokens/words into an array
-       String[] words = str.split("\\s");
-       // For each word
-       for (int w = 0; w < words.length; w++) {
-               // Find the pairs of characters
-               String[] pairsInWord = letterPairs(words[w]);
-               for (int p = 0; p < pairsInWord.length; p++) {
-                       allPairs.add(pairsInWord[p]);
-               }
-       }
-       return allPairs;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * @return lexical similarity value in the range [0,1]
- *         http://www.catalysoft.com/articles/StrikeAMatch.html
- */
-private double compareStrings(String str1, String str2)
-{
-       ArrayList pairs1 = wordLetterPairs(str1.toUpperCase());
-       ArrayList pairs2 = wordLetterPairs(str2.toUpperCase());
-       int intersection = 0;
-       int union_ = pairs1.size() + pairs2.size();
-       for (int i = 0; i < pairs1.size(); i++) {
-               Object pair1 = pairs1.get(i);
-               for (int j = 0; j < pairs2.size(); j++) {
-                       Object pair2 = pairs2.get(j);
-                       if (pair1.equals(pair2)) {
-                               intersection++;
-                               pairs2.remove(j);
-                               break;
-                       }
-               }
-       }
-       return (2.0 * intersection) / union_;
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Among the defined properties, returns the one more similar to String
- * property
- */
-private String getSimilarProperty(String property)
-{
-       String bestProperty = null;
-       double bestValue = 0.0;
-       Enumeration e = config.keys();
-       while (e.hasMoreElements()) {
-               String key = (String) e.nextElement();
-               double compare = compareStrings(key, property);
-               if (compare > bestValue) {
-                       bestValue = compare;
-                       bestProperty = key;
-               }
-       }
-       return bestProperty;
-}
-
-//-------------------------------------------------------------------
-
-private void manageDefault(String name, Object def, 
-               RuntimeException e)
-{
-       debug(name, "" + def + " (DEFAULT)");
-       if (check) {
-               System.out.println("Warning: Property " + name + " = " + 
-                               def + " (DEFAULT)");
-       }
-       if (e instanceof MissingParameterException) {
-               // Do nothing
-       } else {
-               manageException(name, e);
-       }
-}
-
-//-------------------------------------------------------------------
-
-private void manageException(String name, RuntimeException e)
-{
-       if (check) {
-               if (e instanceof MissingParameterException) {
-                       // Print just the short message in this case
-                       System.out.println("Error: " + 
-                                       ((MissingParameterException) e).getShortMessage());
-               } else if (e instanceof IllegalParameterException) {
-                       // Print just the short message in this case
-                       System.out.println("Error: " + 
-                                       ((IllegalParameterException) e).getShortMessage());
-               } else {
-                       System.out.println("Error: " + e.getMessage());
-               }
-       } else {
-               throw e;
-       }
-}
-
-//-------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/config/ConfigProperties.java b/contrib/psg/src/peersim/config/ConfigProperties.java
deleted file mode 100644 (file)
index 4f36892..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.config;
-
-import java.util.Properties;
-import java.io.*;
-
-/**
-* Class for handling configuration files. Extends the functionality
-* of Properties by handling files, system resources and command lines.
-*/
-public class ConfigProperties extends Properties {
-
-
-// =========== Public Constructors ===================================
-// ===================================================================
-
-
-/**
-* Calls super constructor.
-*/
-public ConfigProperties() { super(); }
-
-// -------------------------------------------------------------------
-
-/**
-* Constructs a ConfigProperty object from a parameter list.
-* The algorithm is as follows: first <code>resource</code> is used to attempt
-* loading default values from the given system resource.
-* Then all Strings in <code>pars</code> are processed in the order they
-* appear in the array. For <code>pars[i]</code>, first a property file
-* with the name <code>pars[i]</code> is attempted to be loaded. If the file
-* does not exist or loading produces any other IOException, <code>pars[i]</code>
-* is interpreted as a property definition, and it is set.
-* <p>
-* A little inconvenience is that if <code>pars[i]</code> is supposed to be 
-* a command line argument, but it is a valid filename at the same time by
-* accident, the algorithm will process it as a file instead of a command line
-* argument. The caller must take care of that.
-* <p>
-* No exceptions are thrown, instead error messages are written to the
-* standard error. Users who want a finer control should use
-* the public methods of this class.
-*
-* @param pars The (probably command line) parameter list.
-* @param resource The name of the system resource that contains the
-* defaults. null if there isn't any.
-* 
-*/
-public ConfigProperties( String[] pars, String resource ) {
-       
-       try
-       {
-               if( resource != null )
-               {
-                       loadSystemResource(resource);
-                       System.err.println("ConfigProperties: System resource "
-                       +resource+" loaded.");
-               }
-       }
-       catch( Exception e )
-       {
-               System.err.println("ConfigProperties: " + e );
-       }
-       
-       if( pars == null || pars.length == 0 ) return;
-       
-       for (int i=0; i < pars.length; i++)
-       {
-               try
-               {
-                       load( pars[i] );
-                       System.err.println(
-                               "ConfigProperties: File "+pars[i]+" loaded.");
-                       pars[i] = "";
-               }
-               catch( IOException e )
-               {
-                       try
-                       {
-                               loadPropertyString( pars[i] );
-                               System.err.println("ConfigProperties: Property '" +
-                                       pars[i] + "' set.");
-                       }
-                       catch( Exception e2 )
-                       {
-                               System.err.println("ConfigProperties: " + e2 );
-                       }
-               }
-               catch( Exception e )
-               {
-                       System.err.println("ConfigProperties: " + e );
-               }
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Constructs a ConfigProperty object by loading a file by calling
-* {@link #load}.
-* @param fileName The name of the configuration file.
-*/
-public ConfigProperties( String fileName ) throws IOException {
-
-       load( fileName );
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Calls super constructor.
-*/
-public ConfigProperties( Properties props ) {
-
-       super( props );
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Calls {@link #ConfigProperties(String[],String)} with resource set to null.
-*/
-public ConfigProperties( String[] pars ) {
-
-       this( pars, null );
-}
-
-
-// =========== Public methods ========================================
-// ===================================================================
-
-
-/**
-* Loads given file. Calls <code>Properties.load</code> with a file
-* input stream to the given file.
-*/
-public void load( String fileName ) throws IOException {
-
-       FileInputStream fis = new FileInputStream( fileName );
-       load( fis );
-       fis.close();
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Adds the properties from the given property file. Searches in the class path
-* for the file with the given name.
-*/
-public void loadSystemResource( String n ) throws IOException {
-       
-       ClassLoader cl = getClass().getClassLoader();
-       load( cl.getResourceAsStream( n ) );
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Appends a property defined in the given string.
-* The string is considered as a property file line.
-* It is converted to a byte array according to the
-* default character encoding and then loaded by the
-* <code>Properties.load</code> method. This means that the ISO-8859-1
-* (or compatible) encoding is assumed.
-*/
-public void loadPropertyString( String prop ) throws IOException {
-
-       StringBuffer sb = new StringBuffer();
-       sb.append( prop ).append( "\n" );
-       load( new ByteArrayInputStream(sb.toString().getBytes()) );
-}
-}
-
diff --git a/contrib/psg/src/peersim/config/Configuration.java b/contrib/psg/src/peersim/config/Configuration.java
deleted file mode 100644 (file)
index 4188111..0000000
+++ /dev/null
@@ -1,668 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-import java.util.*;
-
-/**
- * Fully static class to store configuration information. It defines a
- * method, {@link #setConfig(Properties)}, to set configuration data. This
- * method is called by the simulator engines as the very first thing they
- * do. It can be called only once, after that the class becomes read only.
- * All components can then access this configuration and utility methods to
- * read property values based on their names.
- * <p>
- * The design of this class also hides the actual implementation of the
- * configuration which can be Properties, XML, whatever. Currently only
- * Properties is supported.
- * <p>
- * Apart from storing (name,value) pairs, this class also does some
- * processing, and offers some utility functions. This extended
- * functionality consists of the following: reading values with type
- * checking, ordering of entries, pre-processing protocol names, parsing
- * expressions, resolving underspecified classnames, and finally some basic
- * debugging possibilities. We discuss these in the following.
- * <p>
- * Note that the configuration is initialized using a Properties object.
- * The class of this object might implement some additional pre-processing
- * on the file or provide an extended syntax for defining property files.
- * See {@link ParsedProperties} for more details. This is the class that is
- * currently used by simulation engines.
- * <h3>Typed reading of values</h3>
- * Properties can have arbitrary values of type String. This class offers a
- * set of read methods that perform the appropriate conversion of the
- * string value to the given type, eg long. They also allow for specifying
- * default values in case the given property is not specified.
- * <h3>Resolving class names</h3>
- * 
- * The possibilities for the typed reading of a value includes interpreting
- * the value as a class name. In this case an object will be constructed.
- * It is described at method {@link #getInstance(String)} how this is
- * achieved exactly. What needs to be noted here is that the property value
- * need not be a fully specified classname. It might contain only the short
- * class name without the package specification. In this case, it is
- * attempted to locate a class with that name in the classpath, and if a
- * unique class is found, it will be used. This simplifies the
- * configuration files and also allows to remove their dependence on the
- * exact location of the class.
- * 
- * <h3>Components and their ordering</h3>
- * The idea of the configuration is that it mostly contains components and
- * their descriptions (parameters). Although this class is blind to the
- * semantics of these components, it offers some low level functionality
- * that helps dealing with them. This functionality is based on the
- * assumption that components have a type and a name. Both types and names
- * are strings of alphanumeric and underscore characters. For example,
- * {@value #PAR_PROT} is a type, "foo" can be a name. Method
- * {@link #getNames} allow the caller to get the list of names for a given
- * type. Some other methods, like {@link #getInstanceArray} use this list
- * to return a list of components.
- * 
- * <p>
- * Assuming the configuration is in Properties format (which is currently
- * the only format available) component types and names are defined as
- * follows. Property names containing two non-empty words separated by one
- * dot (".") character are treated specially (the words contain word
- * characters: alphanumeric and underscore ("_")). The first word will be
- * the type, and the second is the name of a component. For example,
- * 
- * <pre>
- *   control.conn ConnectivityObserver
- *   control.1 WireKOut
- *   control.2 PrintGraph
- * </pre>
- * 
- * defines control components of names "conn","1" an "2" (arguments of the
- * components not shown). When {@link #getNames} or
- * {@link #getInstanceArray} are called, eg
- * <code>getNames("control")</code>, then the order in which these are
- * returned is alphabetical:
- * <code>["control.1","control.2","control.conn"]</code>. If you are not
- * satisfied with lexicographic order, you can specify the order in this
- * way.
- * 
- * <pre>
- *   order.control 1,conn,2
- * </pre>
- * 
- * where the names are separated by any non-word character (non
- * alphanumeric or underscore). If not all names are listed then the given
- * order is followed by alphabetical order of the rest of the items, e.g.
- * 
- * <pre>
- *   order.control 2
- * </pre>
- * 
- * results in <code>["control.2","control.1","control.conn"]</code>.
- * <p>
- * It is also possible to exclude elements from the list, while ordering
- * them. The syntax is identical to that of the above, only the parameter
- * name begins with <code>include</code>. For example
- * 
- * <pre>
- *   include.control conn 2
- * </pre>
- * 
- * will result in returning <em>only</em> <code>control.conn</code> and
- * <code>control.2</code>, in this order. Note that for example the
- * empty list results in a zero length array in this case.
- * <em>Important!</em> If include is defined then ordering is ignored.
- * That is, include is stronger than order.
- * <h3>Protocol names</h3>
- * As mentioned, the configuration is generally blind to the actual names
- * of the components. There is an exception: the components of type
- * {@value #PAR_PROT}. These are pre-processed a bit to enhance
- * performance: protocol names are mapped to numeric protocol identifiers.
- * The numeric identifier of a protocol is its index in the array returned
- * by {@link #getNames}. See above how to control this order. The numeric
- * identifiers then can be looked up based on the name and vice versa.
- * Besides, the identifier can be directly requested based on a property
- * name when the protocol name is the value of a property which is
- * frequently the case.
- * <p>
- * <h3>Expressions</h3>
- * Numeric property values can be complex expressions, that are parsed
- * using <a href="http://www.singularsys.com/jep/">JEP</a>. You can write
- * expression using the syntax that you can find <a
- * href="http://www.singularsys.com/jep/doc/html/op_and_func.html"> here</a>.
- * For example,
- * 
- * <pre>
- *   MAG 2
- *   SIZE 2&circ;MAG
- * </pre>
- * 
- * SIZE=4. You can also have complex expression trees like this:
- * 
- * <pre>
- *   A B+C
- *   B D+E
- *   C E+F
- *   D 1
- *   E F
- *   F 2
- * </pre>
- * 
- * that results in A=7, B=3, C=4, D=1, E=2, F=2
- * 
- * <p>
- * Expressions like "sub-expression op sub-expression" are computed based
- * on the type of the sub-expressions. If both sub-expressions are integer,
- * the computation is done using integer arithmetics and the result is an
- * integer. So, for example, 5/2 returns 2. If one of the sub-expression is
- * floating point, the computation is based on floating-point arithmetics
- * (double precision) and the result is a floating point value. So, for
- * example, 5.0/2 returns 2.5.
- * 
- * <p>
- * Expressions are parsed recursively. Note that no optimization is done,
- * so expression F is evaluated three times here (due to the fact that
- * appears twice in C and once in B). But since properties are read just
- * once at initialization, this is not a performance problem.
- * 
- * <p>
- * Finally, recursive definitions are not allowed (and without function
- * definitions, they make no sense). Since it is difficult to discover
- * complex recursive chains, a simple trick is used: if the depth of
- * recursion is greater than a given threshold (configurable, currently
- * {@value #DEFAULT_MAXDEPTH}, an error message is printed. This avoids to
- * fill the stack, that results in an anonymous OutOfMemoryError. So, if
- * you write
- * 
- * <pre>
- *   overlay.size SIZE
- *   SIZE SIZE-1
- * </pre>
- * 
- * you get an error message: Parameter "overlay.size": Probable recursive
- * definition - exceeded maximum depth {@value #DEFAULT_MAXDEPTH}
- * 
- * <h3>Debug</h3>
- * 
- * It is possible to obtain debug information about the configuration
- * properties by activating special configuration properties.
- * <p>
- * If property {@value #PAR_DEBUG} is defined, each config property and the
- * associated value are printed. Properties that are not present in the
- * config file but have default values are postfixed with the string
- * "(DEFAULT)".
- * <p>
- * If property {@value #PAR_DEBUG} is defined and it is equal to
- * {@value #DEBUG_EXTENDED}, information about the configuration method
- * invoked, and where this method is invoked, is also printed. If it is
- * equal to {@value #DEBUG_FULL}, all the properties are printed, even if
- * they are not read.
- * <p>
- * Each line printed by this debug feature is prefixed by the string
- * "DEBUG".
- * 
- * <h3>Use of brackets</h3>
- * 
- * For the sake of completeness, we mention it here that if this class is
- * initialized using {@link ParsedProperties}, then it is possible to use
- * some more compressed format to specify the components. See
- * {@link ParsedProperties#load}.
- * 
- */
-public class Configuration
-{
-
-// =================== static fields =================================
-// ===================================================================
-
-/** Default max depth limit to avoid recursive definitions */
-public static final int DEFAULT_MAXDEPTH = 100;
-
-/**
- * The debug level for the configuration. If defined, a line is printed for
- * each configuration parameter read. If defined and equal to
- * {@value #DEBUG_EXTENDED}, additional context information for debug is
- * printed. If defined and equal to {@value #DEBUG_FULL}, all the
- * configuration properties are printed at the beginning, not just when
- * they are called.
- * @config
- */
-static final String PAR_DEBUG = "debug.config";
-
-/**
- * If parameter {@value #PAR_DEBUG} is equal to this string, additional
- * context information for debug is printed.
- */
-static final String DEBUG_EXTENDED = "context";
-
-/**
- * If parameter {value #PAR_DEBUG} is equal to this string, all the
- * configuration properties are printed at the beginning, not just when
- * they are called.
- */
-static final String DEBUG_FULL = "full";
-
-/**
- * The maximum depth for expressions. This is a simple mechanism to avoid
- * unbounded recursion. The default is {@value #DEFAULT_MAXDEPTH}, and you
- * probably don't want to change it.
- * @config
- */
-static final String PAR_MAXDEPTH = "expressions.maxdepth";
-
-/**
- * Used to configure ordering of the components. Determines the ordering in
- * the array as returned by {@link #getNames}. See the general description
- * of {@link Configuration} for details.
- * @config
- */
-static final String PAR_ORDER = "order";
-
-/**
- * Used to configure ordering of the components. Determines the ordering in
- * the array as returned by {@link #getNames}, and can bu used to also
- * exclude elements. See the general description of {@link Configuration}
- * for details.
- * @config
- */
-static final String PAR_INCLUDE = "include";
-
-// XXX it's ugly because it replicates the definition of Node.PAR_PROT, but
-// this would be the only dependence on the rest of the core...
-/**
- * The type name of components describing protocols. This is the only point
- * at which the class is not blind to the actual semantics of the
- * configuration.
- */
-static final String PAR_PROT = "protocol";
-
-/**
- * The properties object that stores all configuration information.
- */
-private static ConfigContainer config = null;
-
-// =================== initialization ================================
-// ===================================================================
-
-/** to prevent construction */
-private Configuration()
-{
-}
-
-// =================== static public methods =========================
-// ===================================================================
-
-/**
- * Sets the system-wide configuration in Properties format. It can be
- * called only once. After that the configuration becomes unmodifiable
- * (read only). If modification is attempted, a RuntimeException is thrown
- * and no change is made.
- * @param p
- *          The Properties object containing configuration info
- */
-public static void setConfig(Properties p)
-{
-       if (config != null) {
-               throw new RuntimeException("Setting configuration was attempted twice.");
-       }
-       config = new ConfigContainer(p, false);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Sets the system-wide configuration in Properties format. It can be
- * called only once. After that the configuration becomes unmodifiable
- * (read only). If modification is attempted, a RuntimeException is thrown
- * and no change is made.
- * @param p
- *          The Properties object containing configuration info
- */
-public static void setConfig(Properties p, boolean check)
-{
-       if (config != null) {
-               throw new RuntimeException("Setting configuration was attempted twice.");
-       }
-       config = new ConfigContainer(p, check);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * @return true if and only if name is a specified (existing) property.
- */
-public static boolean contains(String name)
-{
-       return config.contains(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public static boolean getBoolean(String name, boolean def)
-{
-       return config.getBoolean(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given property. If not found, or the value is empty string then
- * throws a {@link MissingParameterException}. Empty string is not
- * accepted as false due to the similar function of {@link #contains} which
- * returns true in that case. True is returned if the lowercase value of
- * the property is "true", otherwise false is returned.
- * @param name
- *          Name of configuration property
- */
-public static boolean getBoolean(String name)
-{
-       return config.getBoolean(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public static int getInt(String name, int def)
-{
-       return config.getInt(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- */
-public static int getInt(String name)
-{
-       return config.getInt(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public static long getLong(String name, long def)
-{
-       return config.getLong(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}.
- * @param name
- *          Name of configuration property
- */
-public static long getLong(String name)
-{
-       return config.getLong(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public static double getDouble(String name, double def)
-{
-       return config.getDouble(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * MissingParameterException.
- * @param name
- *          Name of configuration property
- */
-public static double getDouble(String name)
-{
-       return config.getDouble(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- */
-public static String getString(String name, String def)
-{
-       return config.getString(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * MissingParameterException. Removes trailing whitespace characters.
- * @param name
- *          Name of configuration property
- */
-public static String getString(String name)
-{
-       return config.getString(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads the given property from the configuration interpreting it as a
- * protocol name. Returns the numeric protocol identifier of this protocol
- * name. See the discussion of protocol name at {@link Configuration} for
- * details on how this numeric id is calculated
- * 
- * @param name
- *          Name of configuration property
- * @return the numeric protocol identifier associated to the value of the
- *         property
- */
-public static int getPid(String name)
-{
-       return config.getPid(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Calls {@link #getPid(String)}, and returns the default if no property
- * is defined with the given name.
- * 
- * @param name
- *          Name of configuration property
- * @param pid
- *          the default protocol identifier
- * @return the numeric protocol identifier associated to the value of the
- *         property, or the default if not defined
- */
-public static int getPid(String name, int pid)
-{      
-       return config.getPid(name, pid);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns the numeric protocol identifier of the given protocol name.
- * 
- * @param protname
- *          the protocol name.
- * @return the numeric protocol identifier associated to the protocol name
- */
-public static int lookupPid(String protname)
-{
-       return config.lookupPid(protname);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns the name of a protocol that has the given identifier.
- * <p>
- * Note that this is not a constant time operation in the number of
- * protocols, although typically there are very few protocols defined.
- * 
- * @param pid
- *          numeric protocol identifier.
- * @return name of the protocol that has the given id. null if no protocols
- *         have the given id.
- */
-public static String lookupPid(int pid)
-{
-       return config.lookupPid(pid);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, throws a
- * {@link MissingParameterException}. When creating the Class object, a
- * few attempts are done to resolve the classname. See
- * {@link Configuration} for details.
- * @param name
- *          Name of configuration property
- */
-public static Class getClass(String name)
-{
-       return config.getClass(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property. If not found, returns the default
- * value.
- * @param name
- *          Name of configuration property
- * @param def
- *          default value
- * @see #getClass(String)
- */
-public static Class getClass(String name, Class def)
-{
-       return config.getClass(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property for a class name. It returns an
- * instance of the class. The class must implement a constructor that takes
- * a String as an argument. The value of this string will be <tt>name</tt>.
- * The constructor of the class can see the configuration so it can make
- * use of this name to read its own parameters from it.
- * @param name
- *          Name of configuration property
- * @throws MissingParameterException
- *           if the given property is not defined
- * @throws IllegalParameterException
- *           if there is any problem creating the instance
- */
-public static Object getInstance(String name)
-{
-       return config.getInstance(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Reads given configuration property for a class name. It returns an
- * instance of the class. The class must implement a constructor that takes
- * a String as an argument. The value of this string will be <tt>name</tt>.
- * The constructor of the class can see the configuration so it can make
- * use of this name to read its own parameters from it.
- * @param name
- *          Name of configuration property
- * @param def
- *          The default object that is returned if there is no property
- *          defined with the given name
- * @throws IllegalParameterException
- *           if the given name is defined but there is a problem creating
- *           the instance.
- */
-public static Object getInstance(String name, Object def)
-{
-       return config.getInstance(name, def);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * It returns an array of class instances. The instances are constructed by
- * calling {@link #getInstance(String)} on the names returned by
- * {@link #getNames(String)}.
- * @param name
- *          The component type (i.e. prefix of the list of configuration
- *          properties) which will be passed to {@link #getNames(String)}.
- */
-public static Object[] getInstanceArray(String name)
-{
-       return config.getInstanceArray(name);
-}
-
-// -------------------------------------------------------------------
-
-/**
- * Returns an array of names prefixed by the specified name. The array is
- * sorted as follows. If there is no config entry
- * <code>{@value #PAR_INCLUDE}+"."+name</code> or
- * <code>{@value #PAR_ORDER}+"."+name</code> then the order is
- * alphabetical. Otherwise this entry defines the order. For more
- * information see {@link Configuration}.
- * @param name
- *          the component type (i.e., the prefix)
- * @return the full property names in the order specified by the
- *         configuration
- */
-public static String[] getNames(String name)
-{
-       return config.getNames(name);
-}
-
-}
diff --git a/contrib/psg/src/peersim/config/FastConfig.java b/contrib/psg/src/peersim/config/FastConfig.java
deleted file mode 100644 (file)
index d2eba1b..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-/**
- * Reads configuration regarding relations between protocols.
- * 
- * Technically, this class is not necessary because protocols could
- * access the configuration directly. However, it provides much faster
- * access to "linkable" and "transport" information, enhancing runtime speed.
- *
- * This class is a static singleton and is initialized only when first accessed.
- * During initialization it reads and caches the configuration info it handles.
- */
-public class FastConfig
-{
-
-// ======================= fields ===========================================
-// ===========================================================================
-
-/**
- * Parameter name in configuration that attaches a linkable protocol to a
- * protocol. The property can contain multiple protocol names, in one line,
- * separated by non-word characters (e.g. whitespace or ",").
- * @config
- */
-private static final String PAR_LINKABLE = "linkable";
-
-/**
- * Parameter name in configuration that attaches a transport layer protocol to a
- * protocol.
- * @config
- */
-private static final String PAR_TRANSPORT = "transport";
-
-/**
- * This array stores the protocol ids of the {@link peersim.core.Linkable}
- * protocols that are linked to the protocol given by the array index.
- */
-protected static final int[][] links;
-
-/**
- * This array stores the protocol id of the {@link peersim.transport.Transport}
- * protocol that is linked to the protocol given by the array index.
- */
-protected static final int[] transports;
-
-
-// ======================= initialization ===================================
-// ==========================================================================
-
-
-/**
- * This static initialization block reads the configuration for information that
- * it understands. Currently it understands property {@value #PAR_LINKABLE}
- * and {@value #PAR_TRANSPORT}.
- * 
- * Protocols' linkable and transport definitions are prefetched
- * and stored in arrays, to enable fast access during simulation.
- *
- * Note that this class does not perform any type checks. The purpose of the
- * class is purely to speed up access to linkable and transport information,
- * by providing a fast alternative to reading directly from the
- * <code>Configuration</code> class.
- */
-static {
-       String[] names = Configuration.getNames(Configuration.PAR_PROT);
-       links = new int[names.length][];
-       transports = new int[names.length];
-       for (int i = 0; i < names.length; ++i)
-       {
-               if (Configuration.contains(names[i] + "." + PAR_LINKABLE))
-               {
-                       // get string of linkables
-                       String str = Configuration.getString(names[i] + "." + PAR_LINKABLE);
-                       // split around non-word characters
-                       String[] linkNames = str.split("\\W+");
-                       links[i] = new int[linkNames.length];
-                       for (int j=0; j<linkNames.length; ++j)
-                               links[i][j] = Configuration.lookupPid(linkNames[j]);
-               }               
-               else
-                       links[i] = new int[0]; // empty set
-
-               if (Configuration.contains(names[i] + "." + PAR_TRANSPORT))
-                       transports[i] = 
-                       Configuration.getPid(names[i] + "." + PAR_TRANSPORT);
-               else
-                       transports[i] = -1;
-       }
-}
-
-// ---------------------------------------------------------------------
-
-/** to prevent construction */
-private FastConfig() {}
-
-// ======================= methods ==========================================
-// ==========================================================================
-
-
-/**
- * Returns true if the given protocol has at least one linkable protocol
- * associated with it, otherwise false.
- */
-public static boolean hasLinkable(int pid) { return numLinkables(pid) > 0; }
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns the number of linkable protocols associated with a given protocol.
- */
-public static int numLinkables(int pid) { return links[pid].length; }
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns the protocol id of the <code>linkIndex</code>-th linkable used by
- * the protocol identified by pid. Throws an
- * IllegalParameterException if there is no linkable associated with the given
- * protocol: we assume here that this happens when the configuration is
- * incorrect.
- */
-public static int getLinkable(int pid, int linkIndex)
-{
-       if (linkIndex >= numLinkables(pid)) {
-               String[] names = Configuration.getNames(Configuration.PAR_PROT);
-               throw new IllegalParameterException(names[pid],
-                       "Protocol " + pid + " has no "+PAR_LINKABLE+
-                       " parameter with index" + linkIndex);
-       }
-       return links[pid][linkIndex];
-}
-
-//---------------------------------------------------------------------
-
-/**
- * Invokes <code>getLinkable(pid, 0)</code>.
- */
-public static int getLinkable(int pid)
-{
-       return getLinkable(pid, 0);
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns true if the given protocol has a transport protocol associated with
- * it, otherwise false.
- */
-public static boolean hasTransport(int pid)
-{
-       return transports[pid] >= 0;
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns the id of the transport protocol used by the protocol identified
- * by pid.
- * Throws an IllegalParameterException if there is no transport associated
- * with the given protocol: we assume here that his happens when the
- * configuration is incorrect.
- */
-public static int getTransport(int pid)
-{
-       if (transports[pid] < 0) {
-               String[] names = Configuration.getNames(Configuration.PAR_PROT);
-               throw new IllegalParameterException(names[pid],
-               "Protocol " + pid + " has no "+PAR_TRANSPORT + " parameter");
-       }
-       return transports[pid];
-}
-
-}
diff --git a/contrib/psg/src/peersim/config/IllegalParameterException.java b/contrib/psg/src/peersim/config/IllegalParameterException.java
deleted file mode 100644 (file)
index 1285350..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-/**
-* Exception thrown to indicate that a
-* configuration property has an invalid value. It is thrown by
-* several methods in {@link Configuration} and can be thrown by any
-* component that reads the configuration.
-*/
-public class IllegalParameterException extends RuntimeException {
-
-// ================== initialization =====================================
-// =======================================================================
-
-/**
-* Calls super constructor. It passes a string message which is the given
-* message, prefixed with the given property name.
-* @param name Name of configuration property that is invalid
-* @param message Additional info about why the value is invalid
-*/
-public IllegalParameterException(String name, String message) {
-
-       super("Parameter \"" + name + "\": " + message); 
-}
-
-// ================== methods ============================================
-// =======================================================================
-
-/**
-* Extends message with info from stack trace.
-* It tries to guess what class called {@link Configuration} and
-* adds relevant info from the stack trace about it to the message.
-*/
-public String getMessage() {
-
-       StackTraceElement[] stack = getStackTrace();
-
-       // Search the element that invoked Configuration
-       // It's the first whose class is different from Configuration
-       int pos;
-       for (pos=0; pos < stack.length; pos++)
-       {
-               if (!stack[pos].getClassName().equals(
-                       Configuration.class.getName()))
-                       break;
-       }
-
-       return super.getMessage()+"\nAt "+
-               getStackTrace()[pos].getClassName()+"."+
-               getStackTrace()[pos].getMethodName()+":"+
-               getStackTrace()[pos].getLineNumber();
-}
-
-/**
- * Returns the exception message without stack trace information
- */
-public String getShortMessage()
-{
-       return super.getMessage();
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/config/MissingParameterException.java b/contrib/psg/src/peersim/config/MissingParameterException.java
deleted file mode 100644 (file)
index 58b85cd..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-/**
-* Exception thrown to indicate that a
-* configuration property is not defined. It is thrown exclusively by
-* {@link Configuration}, since it is the only class that has access to the
-* set of defined properties. 
- */
-public class MissingParameterException extends RuntimeException {
-
-// ================== initialization =====================================
-// =======================================================================
-
-MissingParameterException(String name) {
-
-       super("Parameter \"" + name + "\" not found.");
-}
-
-MissingParameterException(String name, String motivation) {
-
-       super("Parameter \"" + name + "\" not found " + motivation);
-}
-
-// ================== methods ============================================
-// =======================================================================
-
-/**
-* Extends message with info from stack trace.
-* It tries to guess what class called {@link Configuration} and
-* adds relevant info from the stack trace about it to the message.
-*/
-public String getMessage() {
-       
-       StackTraceElement[] stack = getStackTrace();
-
-       // Search the element that invoked Configuration
-       // It's the first whose class is different from Configuration
-       int pos;
-       for (pos=0; pos < stack.length; pos++) {
-               if (!stack[pos].getClassName().equals(
-                       Configuration.class.getName()))
-                       break;
-       }
-
-       return super.getMessage()+"\nAt "+
-               getStackTrace()[pos].getClassName()+"."+
-               getStackTrace()[pos].getMethodName()+":"+
-               getStackTrace()[pos].getLineNumber();
-}
-
-/**
- * Returns the exception message without stack trace information
- */
-public String getShortMessage()
-{
-       return super.getMessage();
-}
-
-}
diff --git a/contrib/psg/src/peersim/config/NullPrintStream.java b/contrib/psg/src/peersim/config/NullPrintStream.java
deleted file mode 100644 (file)
index 6124922..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.config;
-
-import java.io.*;
-
-/**
- * A subclass of PrintStream whose methods ignore the content 
- * being written. 
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.1 $
- */
-public class NullPrintStream extends PrintStream
-{
-
-/**
- * Creates a null print stream that does not print anything.
- */
-public NullPrintStream()
-{
-       super(System.out);
-}
-
-/**
- * This methods does not print anything.
- */
-public synchronized void write(byte[] b, int off, int len)
-{
-}
-
-/**
- * This methods does not print anything.
- */
-public synchronized void write(int b)
-{
-}
-
-/**
- * This methods does not print anything.
- */
-private void printLine()
-{
-}
-
-}
diff --git a/contrib/psg/src/peersim/config/Operators.java b/contrib/psg/src/peersim/config/Operators.java
deleted file mode 100644 (file)
index 1d5d523..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*\r
- * Copyright (c) 2003-2005 The BISON Project\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License version 2 as\r
- * published by the Free Software Foundation.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
- *\r
- */\r
-package peersim.config;\r
-import java.math.*;\r
-import org.lsmp.djep.groupJep.groups.*;\r
-import org.lsmp.djep.groupJep.interfaces.*;\r
-\r
-/**\r
- * This class implements the <code>Group</code> interface of JEP,\r
- * enabling the configuration system to read integers with arbitrary \r
- * length. \r
- */\r
-public class Operators extends Group implements IntegralDomainI,HasDivI,\r
-       OrderedSetI,HasModI,HasPowerI {\r
-       \r
-\r
-       /**\r
-        * Operations on the reals (Implemented as BigInteger).\r
-        */\r
-       public Operators() {\r
-       }\r
-\r
-       public Number getZERO() {\r
-               return BigInteger.ZERO;\r
-       }\r
-\r
-       public Number getONE() {\r
-               return BigInteger.ONE;\r
-       }\r
-\r
-       public Number getInverse(Number num) {\r
-               if (num instanceof BigInteger) {\r
-                       BigInteger a = (BigInteger) num;\r
-                       return a.negate();\r
-               } else {\r
-                       return -num.doubleValue();\r
-               }\r
-       }\r
-\r
-       public Number add(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() + num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.add(b);\r
-               }\r
-       }\r
-\r
-       public Number sub(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() - num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.subtract(b);\r
-               }\r
-       }\r
-\r
-       public Number mul(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() * num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.multiply(b);\r
-               }\r
-       }\r
-\r
-       public Number div(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() / num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.divide(b);\r
-               }\r
-       }\r
-\r
-        \r
-       public Number mod(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() % num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.remainder(b);\r
-               }\r
-       }\r
-       \r
-       public Number pow(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return Math.pow(num1.doubleValue(), num2.doubleValue());\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.pow(b.intValue());\r
-               }\r
-       }\r
-       \r
-       public boolean equals(Number num1, Number num2) {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       return num1.doubleValue() == num2.doubleValue();\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.equals(b);\r
-               }\r
-       }\r
-       \r
-       public int compare(Number num1,Number num2)     {\r
-               if (num1 instanceof Double || num2 instanceof Double) {\r
-                       // One is double\r
-                       double n1 = num1.doubleValue();\r
-                       double n2 = num2.doubleValue();\r
-                       return (n1 < n2 ? -1 : (n1 == n2 ? 0 : 1));\r
-               } else {\r
-                       // Both integer\r
-                       BigInteger a = (BigInteger) num1;\r
-                       BigInteger b = (BigInteger) num2;\r
-                       return a.compareTo(b);\r
-               }\r
-       }\r
-\r
-       public Number valueOf(String str) {\r
-               try {\r
-                       return new BigInteger(str);\r
-               } catch (NumberFormatException e) {\r
-                       return new Double(str);\r
-               }\r
-       }\r
-       \r
-       public String toString() { return ""; }\r
-}\r
diff --git a/contrib/psg/src/peersim/config/ParsedProperties.java b/contrib/psg/src/peersim/config/ParsedProperties.java
deleted file mode 100644 (file)
index 9a58e41..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.config;
-
-import java.io.*;
-import java.util.*;
-
-/**
-* Extends the class {@link ConfigProperties} with basic parsing capabilities.
-* @see #load
-*/
-public class ParsedProperties extends ConfigProperties {
-
-//================= variables ======================================
-//==================================================================
-
-// ================= initialization =================================
-// ==================================================================
-
-/**
-* Calls super constructor.
-* @see ConfigProperties#ConfigProperties(String[])
-*/
-public ParsedProperties( String[] pars ) {
-
-       super( pars );
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Calls super constructor.
-* @see ConfigProperties#ConfigProperties(String)
-*/
-public ParsedProperties( String filename ) throws IOException {
-
-       super( filename );
-}
-
-
-// =========== Public methods ========================================
-// ===================================================================
-
-
-/**
-* Loads given file. It works exactly as <code>Properties.load</code>
-* with a file input stream to the given file, except that the file is parsed
-* the following way allowing to compress some property names
-* using <code>{</code> and <code>}</code>.
-  
-  When a bracket is present, it must
-  be the only non-space element of a line. The last property defined 
-  before the opening bracket define the prefix that is added to all the 
-  properties defined included between brackets.
-  In other words, a construct like this:
-  <pre>
-  control.degree GraphObserver 
-  {
-    protocol newscast
-    undir
-  }
-  </pre>
-  is equivalent to the definition of these three properties:
-  <pre>
-  control.degree GraphObserver 
-  control.degree.protocol newscast
-  control.degree.undir
-  </pre>
-  
-  Nested brackets are possible. The rule of the last property before 
-  the opening bracket applies also to the inside brackets, with
-  the prefix being the complete property definition (so, including
-  the prefix observed before). Example:
-  <pre>
-       control.1 DynamicNetwork
-       {
-         add CRASH
-         substitute
-         init.0 WireKOut 
-         {
-           degree DEGREE
-           protocol 0
-         }
-       }
-  </pre>
-  defines the following properties:
-  <pre>
-       control.1 DynamicNetwork
-       control.1.add CRASH
-       control.1.substitute
-       control.1.init.0 WireKOut 
-       control.1.init.0.degree DEGREE
-       control.1.init.0.protocol 0
-  </pre>
-  
-  <p>
-  Know limitations: 
-  The parsing mechanism is very simple; no complex error messages
-  are provided. In case of missing closing brackets, the method
-  will stop reporting the number of missing brackets. Additional
-  closing brackets (i.e., missing opening brackets) produce an
-  error messages reporting the line where the closing bracket
-  is present. Misplaced brackets (included in lines that
-  contains other characters) are ignored, thus may indirectly produce
-  the previous error messages.
-*/
-public void load( String fileName ) throws IOException {
-
-       /* This set is used to store prefixes that have been associated
-        * to brackets blocks. If a prefix is inserted twice, this means
-        * that there are two blocks referring to the same prefix - 
-        * which may be caused by a commented prefix in the config
-        * file, something like this:
-        * 
-        *  prefix1
-        *  {
-        *    property 1
-        *  }
-        *  #prefix2
-        *  {
-        *    property 2
-        *  }
-        *
-        */
-       Set<String> prefixes = new HashSet<String>();
-       
-       BufferedReader f = 
-               new BufferedReader(new FileReader( fileName ));
-       int lines = 0;
-       parseStream(f, "", 0, lines, prefixes);
-
-       f.close();
-}
-
-// --------------------------------------------------------------------
-
-private int parseStream(BufferedReader f, String prefix, int pars, 
-               int lines, Set prefixes)
-throws IOException {
-
-       if (prefix.equals(".")) {
-               System.err.println("Error at line " + lines + ": bracket block not " +
-                               "associated with any configuration entry");
-               System.exit(1);
-       }
-       if (prefixes.contains(prefix)) {
-               System.err.println("Error at line " + lines + ": multiple bracket " +
-                               "blocks referring to the same configuration entry " + prefix);
-               System.exit(1);
-       } else {
-               prefixes.add(prefix);
-       }
-       
-       boolean complete = true;
-       String part;
-       String line = "";
-       String last = "";
-       while ((part = f.readLine()) != null)
-       {
-               lines++;
-               
-               // Reset line
-               if (complete) line = "";
-               
-               // Check if the line is a comment line
-               // If so, remove the comment
-               int index = part.indexOf('#');
-               if (index >= 0)
-               {
-                       part = part.substring(0, index);
-               } 
-
-               // Check if the line is empty
-               part = part.trim();
-               if ("".equals(part)) continue;
-
-               complete = (part.charAt(part.length()-1) != '\\'); 
-               if (!complete)
-               {  
-                       line = line + part.substring(0, part.length()-2) + " ";
-                       continue;
-               }
-               
-               // Complete the line
-               line = line + part;
-               if (line.equals("{"))
-               {
-                       lines = parseStream(f, last+".", pars+1, lines, prefixes);
-               } 
-               else if (line.equals("}"))
-               {
-                       if (pars == 0)
-                       {
-                               System.err.println(
-                                       "Error: Additional } at line " + lines + 
-                                       " when parsing the configuration file");
-                               System.exit(1);
-                       }
-                       return lines;
-               }
-               else
-               {
-                       // Search the first token
-                       String[] tokens = line.split("[\\s:=]+", 2);
-                       if (tokens.length == 1)
-                       {
-                               setProperty(prefix+tokens[0], "");
-                       }
-                       else
-                       {
-                               setProperty(prefix+tokens[0], tokens[1]);
-                       }
-                       last = prefix + tokens[0];
-               }
-       }
-       if (pars == 1)
-       {
-               System.err.println("Error: One closing bracket ('}') is missing");
-               System.exit(1);
-       } 
-       else if (pars > 1)
-       {
-               System.err.println("Error: " + pars+" closing brackets ('}') are missing");
-               System.exit(1);
-       }
-       return lines;
-}
-
-// --------------------------------------------------------------------
-
-/*
-public static void main(String[] args)
-{
-       java.util.Properties prop = new ParsedProperties(args);
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/core/Cleanable.java b/contrib/psg/src/peersim/core/Cleanable.java
deleted file mode 100644 (file)
index ac14f21..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-/**
- * This interface must be implemented by protocols that need to release
- * some references when the fail state of their host node is set to
- * {@link Fallible#DEAD}. Recall that this fail state means that the node
- * will never get back online. However, other nodes and protocols might
- * still have references to these dead nodes and protocols, and this fact
- * is not always a bug. So implementing this interface allows for removing
- * stuff that we know is no longer necessary. Especially for linkable
- * protocols in the presence of churn, this is essential: they typically
- * have to release their links to other nodes to prevent the formation of
- * trees of removed nodes with a live reference to the root.
- */
-public interface Cleanable
-{
-
-/**
- * Performs cleanup when removed from the network. This is called by the
- * host node when its fail state is set to {@link Fallible#DEAD}.
- * It is very important that after calling this method, NONE of the methods
- * of the implementing object are guaranteed to work any longer.
- * They might throw arbitrary exceptions, etc. The idea is that after
- * calling this, typically no one should access this object.
- * However, as a recommendation, at least toString should be guaranteed to
- * execute normally, to aid debugging.
- */
-public void onKill();
-
-}
diff --git a/contrib/psg/src/peersim/core/CommonState.java b/contrib/psg/src/peersim/core/CommonState.java
deleted file mode 100644 (file)
index 93b6e21..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-import org.simgrid.msg.Msg;
-
-import peersim.Simulator;
-import peersim.config.*;
-import peersim.util.*;
-import psgsim.PSGPlatform;
-
-/**
- * This is the common state of the simulation all objects see.
- * Static singleton. One of its purposes is
- * simplification of parameter structures and increasing efficiency by putting
- * state information here instead of passing parameters.
- *<p>
- * <em>The set methods should not be used by applications</em>,
- * they are for system
- * components. Use them only if you know exactly what you are doing, e.g.
- * if you are so advanced that you can write your own simulation engine.
- * Ideally, they should not be visible, but due to the lack of more
- * flexibility in java access rights, we are forced to make them public.
- */
-public class CommonState
-{
-
-//======================= constants ===============================
-//=================================================================
-
-/**
-* Constant that can be used as a value of simulation phase.
-* It means that the simulation has finished.
-* @see #getPhase
-*/
-public static final int POST_SIMULATION = 1;
-
-/**
-* Constant that can be used as a value of simulation phase.
-* It means that the simulation phase information has not been set (unknown).
-* @see #getPhase
-*/
-public static final int PHASE_UNKNOWN = 0;
-
-// ======================= fields ==================================
-// =================================================================
-
-/**
- * Current time. Note that this value is simulator independent, all simulation
- * models have a notion related to time. For example, in the cycle based model,
- * the cycle id gives time, while in even driven simulations there is a more
- * realistic notion of time.
- */
-private static long time = 0;
-
-/**
- * The maximal value {@link #time} can ever take.
- */
-private static long endtime = -1;
-
-/**
- * Number of used bits in the long representation of time, calculated
- * based on the endtime.
- */
-private static int toshift = -1;
-
-/**
- * Information about where exactly the simulation is.
- */
-private static int phase = PHASE_UNKNOWN;
-
-/**
- * The current pid.
- */
-private static int pid;
-
-/**
- * The current node.
- */
-private static Node node;
-
-/**
-* This source of randomness should be used by all components.
-* This field is public because it doesn't matter if it changes
-* during an experiment (although it shouldn't) until no other sources of
-* randomness are used within the system. Besides, we can save the cost
-* of calling a wrapper method, which is important because this is needed
-* very often.
-*/
-public static ExtendedRandom r = null;
-
-
-// ======================== initialization =========================
-// =================================================================
-
-/**
-* Configuration parameter used to define which random generator
-* class should be used. If not specified, the default implementation
-* {@link ExtendedRandom} is used. User-specified random generators 
-* must extend class {@link ExtendedRandom}. 
-* @config
-*/
-public static final String PAR_RANDOM = "random";
-
-/**
-* Configuration parameter used to initialize the random seed.
-* If it is not specified the current time is used.
-* @config
-*/
-public static final String PAR_SEED = "random.seed";
-
-
-/**
-* Initializes the field {@link r} according to the configuration.
-* Assumes that the configuration is already
-* loaded.
-*/
-static {
-       
-       long seed =
-               Configuration.getLong(PAR_SEED,System.currentTimeMillis());
-       initializeRandom(seed);
-}
-
-
-/** Does nothing. To avoid construction but allow extension. */
-protected CommonState() {}
-
-// ======================= methods =================================
-// =================================================================
-
-
-/**
- * Returns current time. In event-driven simulations, returns the current
- * time (a long-value).
- * In cycle-driven simulations, returns the current cycle (a long that
- * can safely be cast into an integer).
- */
-public static long getTime()
-{
-       /* if the engine simulator used is PSG (simId=2 */
-       if(Simulator.getSimID()==2)
-               return (long) PSGPlatform.getTime();
-       else
-       return time;
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns current time in integer format. The purpose is to enhance the
- * performance of protocols (ints are smaller and faster) when absolute
- * precision is not required. It assumes that endtime has been set via
- * {@link #setEndTime} by the simulation engine. It uses the endtime for
- * the optimal mapping to get the maximal precision.
- * In particular, in the cycle
- * based model, time is the same as cycle which can be safely cast into
- * integer, so no precision is lost.
- */
-public static int getIntTime()
-{
-       return (int)(time>>toshift);
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Sets the current time. 
- */
-public static void setTime(long t)
-{
-       time = t;
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns endtime.
- * It is the maximal value {@link #getTime} ever returns. If it's negative, it
- * means the endtime is not known.
- */
-public static long getEndTime()
-{
-       return endtime;
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Sets the endtime. 
- */
-public static void setEndTime(long t)
-{
-       if( endtime >= 0 )
-               throw new RuntimeException("You can set endtime only once");
-       if( t < 0 )
-               throw new RuntimeException("No negative values are allowed");
-               
-       endtime = t;
-       toshift = 32-Long.numberOfLeadingZeros(t);
-       if( toshift<0 ) toshift = 0;
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns the simulation phase. Currently the following phases are
- * understood.
- * <ul>
- * <li>{@link #PHASE_UNKNOWN} phase is unknown</li>
- * <li>{@link #POST_SIMULATION} the simulation is completed</li>
- * </ul>
- */
-public static int getPhase()
-{
-       return phase;
-}
-
-// -----------------------------------------------------------------
-
-public static void setPhase(int p)
-{
-       phase = p;
-}
-
-// -----------------------------------------------------------------
-
-/**
-* Returns the current protocol identifier. In other words, control is
-* held by the indicated protocol on node {@link #getNode}.
-*/
-public static int getPid()
-{
-       return pid;
-}
-
-//-----------------------------------------------------------------
-
-/** Sets the current protocol identifier.*/
-public static void setPid(int p)
-{
-       pid = p;
-}
-
-//-----------------------------------------------------------------
-
-/**
- * Returns the current node. When a protocol is executing, it is the node
- * hosting the protocol.
- */
-public static Node getNode()
-{
-       return node;
-}
-
-//-----------------------------------------------------------------
-
-/** Sets the current node */
-public static void setNode(Node n)
-{
-       node = n;
-}
-
-//-----------------------------------------------------------------
-
-public static void initializeRandom(long seed)
-{
-       if (r == null) {
-               r = (ExtendedRandom) Configuration.getInstance(PAR_RANDOM, new ExtendedRandom(seed));
-       }
-       r.setSeed(seed);
-}
-
-//-----------------------------------------------------------------
-
-/*
-public static void main(String pars[]) {
-       
-       setEndTime(Long.parseLong(pars[0]));
-       setTime(Long.parseLong(pars[1]));
-       System.err.println(getTime()+" "+getIntTime());
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/core/Control.java b/contrib/psg/src/peersim/core/Control.java
deleted file mode 100644 (file)
index 7644aa9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-/**
- * Generic interface for classes that are responsible for observing or modifying
- * the ongoing simulation. It is designed to allow maximal flexibility therefore
- * poses virtually no restrictions on the implementation.
- */
-public interface Control
-{
-
-/**
- * Performs arbitrary modifications or reports arbitrary information over the
- * components.
- * @return true if the simulation has to be stopped, false otherwise.
- */
-public boolean execute();
-
-}
diff --git a/contrib/psg/src/peersim/core/Fallible.java b/contrib/psg/src/peersim/core/Fallible.java
deleted file mode 100644 (file)
index 089cffe..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-
-/**
-* Instances of classes implementing this interface
-* maintain a fail state, i.e. information about the availability
-* of the object.
-*/
-public interface Fallible {
-
-       /**
-       * Fail state which indicates that the object is operating normally.
-       */
-       public int OK = 0;
-
-       /**
-       * Fail state indicating that the object is dead and recovery is
-       * not possible. When this state is set, it is a good idea to make sure
-       * that the state of the object becomes such that any attempt to
-       * operate on it causes a visible error of some kind.
-       */
-       public int DEAD = 1;
-
-       /**
-       * Fail state indicating that the object is not dead, but is temporarily
-       * not accessible.
-       */
-       public int DOWN = 2;
-
-       /**
-       * Returns the state of this object. Must be one of the constants
-       * defined in interface {@link Fallible}.
-       */
-       public int getFailState();
-       
-       /**
-       * Sets the fails state of this object. Parameter must be one of the
-       * constants defined in interface {@link Fallible}.
-       */
-       public void setFailState(int failState);
-
-       /**
-       * Convenience method to check if the node is up and running
-       * @return must return true if and only if
-       * <code>getFailState()==OK</code>
-       */
-       public boolean isUp();
-}
-
-
diff --git a/contrib/psg/src/peersim/core/GeneralNode.java b/contrib/psg/src/peersim/core/GeneralNode.java
deleted file mode 100644 (file)
index 2f2c02e..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-import peersim.config.*;
-
-/**
-* This is the default {@link Node} class that is used to compose the
-* {@link Network}.
-*/
-public class GeneralNode implements Node {
-
-
-// ================= fields ========================================
-// =================================================================
-
-/** used to generate unique IDs */
-private static long counterID = -1;
-
-/**
-* The protocols on this node.
-*/
-protected Protocol[] protocol = null;
-
-/**
-* The current index of this node in the node
-* list of the {@link Network}. It can change any time.
-* This is necessary to allow
-* the implementation of efficient graph algorithms.
-*/
-private int index;
-
-/**
-* The fail state of the node.
-*/
-protected int failstate = Fallible.OK;
-
-/**
-* The ID of the node. It should be final, however it can't be final because
-* clone must be able to set it.
-*/
-private long ID;
-
-// ================ constructor and initialization =================
-// =================================================================
-
-/** Used to construct the prototype node. This class currently does not
-* have specific configuration parameters and so the parameter
-* <code>prefix</code> is not used. It reads the protocol components
-* (components that have type {@value peersim.core.Node#PAR_PROT}) from
-* the configuration.
-*/
-public GeneralNode(String prefix) {
-       
-       String[] names = Configuration.getNames(PAR_PROT);
-       CommonState.setNode(this);
-       ID=nextID();
-       protocol = new Protocol[names.length];
-       for (int i=0; i < names.length; i++) {
-               CommonState.setPid(i);
-               Protocol p = (Protocol) 
-                       Configuration.getInstance(names[i]);
-               protocol[i] = p; 
-       }
-}
-
-
-// -----------------------------------------------------------------
-
-public Object clone() {
-       
-       GeneralNode result = null;
-       try { result=(GeneralNode)super.clone(); }
-       catch( CloneNotSupportedException e ) {} // never happens
-       result.protocol = new Protocol[protocol.length];
-       CommonState.setNode(result);
-       result.ID=nextID();
-       for(int i=0; i<protocol.length; ++i) {
-               CommonState.setPid(i);
-               result.protocol[i] = (Protocol)protocol[i].clone();
-       }
-       return result;
-}
-
-// -----------------------------------------------------------------
-
-/** returns the next unique ID */
-private long nextID() {
-
-       return counterID++;
-}
-
-// =============== public methods ==================================
-// =================================================================
-
-
-public void setFailState(int failState) {
-       
-       // after a node is dead, all operations on it are errors by definition
-       if(failstate==DEAD && failState!=DEAD) throw new IllegalStateException(
-               "Cannot change fail state: node is already DEAD");
-       switch(failState)
-       {
-               case OK:
-                       failstate=OK;
-                       break;
-               case DEAD:
-                       //protocol = null;
-                       index = -1;
-                       failstate = DEAD;
-                       for(int i=0;i<protocol.length;++i)
-                               if(protocol[i] instanceof Cleanable)
-                                       ((Cleanable)protocol[i]).onKill();
-                       break;
-               case DOWN:
-                       failstate = DOWN;
-                       break;
-               default:
-                       throw new IllegalArgumentException(
-                               "failState="+failState);
-       }
-}
-
-// -----------------------------------------------------------------
-
-public int getFailState() { return failstate; }
-
-// ------------------------------------------------------------------
-
-public boolean isUp() { return failstate==OK; }
-
-// -----------------------------------------------------------------
-
-public Protocol getProtocol(int i) { return protocol[i]; }
-
-//------------------------------------------------------------------
-
-public int protocolSize() { return protocol.length; }
-
-//------------------------------------------------------------------
-
-public int getIndex() { return index; }
-
-//------------------------------------------------------------------
-
-public void setIndex(int index) { this.index = index; }
-       
-//------------------------------------------------------------------
-
-/**
-* Returns the ID of this node. The IDs are generated using a counter
-* (i.e. they are not random).
-*/
-public long getID() { return ID; }
-
-//------------------------------------------------------------------
-
-public String toString() 
-{
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("ID: "+ID+" index: "+index+"\n");
-       for(int i=0; i<protocol.length; ++i)
-       {
-               buffer.append("protocol["+i+"]="+protocol[i]+"\n");
-       }
-       return buffer.toString();
-}
-
-//------------------------------------------------------------------
-
-/** Implemented as <code>(int)getID()</code>. */
-public int hashCode() { return (int)getID(); }
-
-}
-
-
diff --git a/contrib/psg/src/peersim/core/IdleProtocol.java b/contrib/psg/src/peersim/core/IdleProtocol.java
deleted file mode 100644 (file)
index dd602d5..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-import peersim.config.Configuration;
-
-/**
- * A protocol that stores links. It does nothing apart from that.
- * It is useful to model a static link-structure
- * (topology). The only function of this protocol is to serve as a source of
- * neighborhood information for other protocols.
- */
-public class IdleProtocol implements Protocol, Linkable
-{
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/**
- * Default init capacity
- */
-private static final int DEFAULT_INITIAL_CAPACITY = 10;
-
-/**
- * Initial capacity. Defaults to {@value #DEFAULT_INITIAL_CAPACITY}.
- * @config
- */
-private static final String PAR_INITCAP = "capacity";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Neighbors */
-protected Node[] neighbors;
-
-/** Actual number of neighbors in the array */
-protected int len;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-public IdleProtocol(String s)
-{
-       neighbors = new Node[Configuration.getInt(s + "." + PAR_INITCAP,
-                       DEFAULT_INITIAL_CAPACITY)];
-       len = 0;
-}
-
-//--------------------------------------------------------------------------
-
-public Object clone()
-{
-       IdleProtocol ip = null;
-       try { ip = (IdleProtocol) super.clone(); }
-       catch( CloneNotSupportedException e ) {} // never happens
-       ip.neighbors = new Node[neighbors.length];
-       System.arraycopy(neighbors, 0, ip.neighbors, 0, len);
-       ip.len = len;
-       return ip;
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-public boolean contains(Node n)
-{
-       for (int i = 0; i < len; i++) {
-               if (neighbors[i] == n)
-                       return true;
-       }
-       return false;
-}
-
-// --------------------------------------------------------------------------
-
-/** Adds given node if it is not already in the network. There is no limit
-* to the number of nodes that can be added. */
-public boolean addNeighbor(Node n)
-{
-       for (int i = 0; i < len; i++) {
-               if (neighbors[i] == n)
-                       return false;
-       }
-       if (len == neighbors.length) {
-               Node[] temp = new Node[3 * neighbors.length / 2];
-               System.arraycopy(neighbors, 0, temp, 0, neighbors.length);
-               neighbors = temp;
-       }
-       neighbors[len] = n;
-       len++;
-       return true;
-}
-
-// --------------------------------------------------------------------------
-
-public Node getNeighbor(int i)
-{
-       return neighbors[i];
-}
-
-// --------------------------------------------------------------------------
-
-public int degree()
-{
-       return len;
-}
-
-// --------------------------------------------------------------------------
-
-public void pack()
-{
-       if (len == neighbors.length)
-               return;
-       Node[] temp = new Node[len];
-       System.arraycopy(neighbors, 0, temp, 0, len);
-       neighbors = temp;
-}
-
-// --------------------------------------------------------------------------
-
-public String toString()
-{
-       if( neighbors == null ) return "DEAD!";
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("len=" + len + " maxlen=" + neighbors.length + " [");
-       for (int i = 0; i < len; ++i) {
-               buffer.append(neighbors[i].getIndex() + " ");
-       }
-       return buffer.append("]").toString();
-}
-
-// --------------------------------------------------------------------------
-
-public void onKill()
-{
-       neighbors = null;
-       len = 0;
-}
-
-}
diff --git a/contrib/psg/src/peersim/core/Linkable.java b/contrib/psg/src/peersim/core/Linkable.java
deleted file mode 100644 (file)
index 962b427..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-
-/**
-* Instances of classes implementing this interface can form networks (graphs)
-* in the simulator framework.
-* The interface is similar to one of a container (containing neighbors),
-* only the types of the contained elements have to be {@link Node}.
-* The neighbor collection is defined in a random access list style, but
-* it must follow the contract of a set too (elements must be unique).
-* <p>
-* Also note that there is no possibility to remove elements from the
-* neighbor set. This is because removal is usually costly and it does not make
-* sense in the context of our applications,
-* where this interface is used for 1) initialization and 2)
-* providing an interface for other protocols for accessing the neighbor list.
-* Protocols that manage links remove, refresh, etc their link set internally
-* or through custom methods.
-* Therefore it would only put an unnecessary burden on implementors.
-*/
-public interface Linkable extends Cleanable {
-
-       /**
-       * Returns the size of the neighbor list.
-       */
-       public int degree();
-
-       /**
-       * Returns the neighbor with the given index. The contract is that
-       * listing the elements from index 0 to index degree()-1 should list
-       * each element exactly once if this object is not modified in the
-       * meantime. It throws an IndexOutOfBounds exception if i is negative
-       * or larger than or equal to {@link #degree}.
-       */
-       public Node getNeighbor(int i);
-
-       /**
-       * Add a neighbor to the current set of neighbors. If neighbor
-       * is not yet a neighbor but it cannot be added from other reasons,
-       * this method should not return normally, that is, it must throw
-       * a runtime exception.
-       * @return true if the neighbor has been inserted; false if the 
-       *    node is already a neighbor of this node
-       */
-       public boolean addNeighbor(Node neighbour);
-
-       /**
-       * Returns true if the given node is a member of the neighbor set.
-       */
-       public boolean contains(Node neighbor);
-       
-       /**
-       * A possibility for optimization. An implementation should try to
-       * compress its internal representation. Normally this is called
-       * by initializers or other components when
-       * no increase in the expected size of the neighborhood can be
-       * expected.
-       */
-       public void pack();
-}
-
diff --git a/contrib/psg/src/peersim/core/MaliciousProtocol.java b/contrib/psg/src/peersim/core/MaliciousProtocol.java
deleted file mode 100644 (file)
index 26ed74f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-/**
- * Tag interface to identify protocols that are malicious.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.2 $
- */
-public interface MaliciousProtocol 
-extends Protocol 
-{
-}
-
diff --git a/contrib/psg/src/peersim/core/ModifiableNode.java b/contrib/psg/src/peersim/core/ModifiableNode.java
deleted file mode 100644 (file)
index 7ce80a3..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-
-/**
- * This class extends GeneralNode by allowing to modify single
- * protocol instances at nodes.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.3 $
- */
-public class ModifiableNode extends GeneralNode
-{
-
-/**
- * Invokes the super constructor.
- */
-public ModifiableNode(String prefix)
-{
-       super(prefix);
-}
-
-/**
- * Substitutes the specified protocol at this node.
- * 
- * @param pid protocol identifier
- * @param prot the protocol object
- */
-public void setProtocol(int pid, Protocol prot)
-{
-       protocol[pid] = prot;
-}
-
-}
diff --git a/contrib/psg/src/peersim/core/Network.java b/contrib/psg/src/peersim/core/Network.java
deleted file mode 100644 (file)
index da9c545..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-import peersim.Simulator;
-import peersim.config.Configuration;
-import psgsim.PSGDynamicNetwork;
-
-import java.util.Comparator;
-import java.util.Arrays;
-
-import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.MsgException;
-
-/**
- * This class forms the basic framework of all simulations. This is a static
- * singleton which is based on the assumption that we will simulate only one
- * overlay network at a time. This allows us to reduce memory usage in many
- * cases by allowing all the components to directly reach the fields of this
- * class without having to store a reference.
- * <p>
- * The network is a set of nodes implemented via an array list for the sake of
- * efficiency. Each node has an array of protocols. The protocols within a node
- * can interact directly as defined by their implementation, and can be imagined
- * as processes running in a common local environment (i.e. the node). This
- * class is called a "network" because, although it is only a set of nodes, in
- * most simulations there is at least one {@link Linkable} protocol that defines
- * connections between nodes. In fact, such a {@link Linkable} protocol layer
- * can be accessed through a {@link peersim.graph.Graph} view using
- * {@link OverlayGraph}.
- */
-public class Network {
-
-       // ========================= fields =================================
-       // ==================================================================
-
-       /**
-        * This config property defines the node class to be used. If not set, then
-        * {@link GeneralNode} will be used.
-        * 
-        * @config
-        */
-       private static final String PAR_NODE = "network.node";
-
-       /**
-        * This config property defines the initial capacity of the overlay network.
-        * If not set then the value of {@value #PAR_SIZE} will be used. The main
-        * purpose of this parameter is that it allows for optimization. In the case
-        * of scenarios when the network needs to grow, setting this to the maximal
-        * expected size of the network avoids reallocation of memory during the
-        * growth of the network.
-        * 
-        * @see #getCapacity
-        * @config
-        */
-       private static final String PAR_MAXSIZE = "network.initialCapacity";
-
-       /**
-        * This config property defines the initial size of the overlay network.
-        * This property is required.
-        * 
-        * @config
-        */
-       private static final String PAR_SIZE = "network.size";
-
-       /**
-        * The node array. This is not a private array which is not nice but
-        * efficiency has the highest priority here. The main purpose is to allow
-        * the package quick reading of the contents in a maximally flexible way.
-        * Nevertheless, methods of this class should be used instead of the array
-        * when modifying the contents. Because this array is not private, it is
-        * necessary to know that the actual node set is only the first
-        * {@link #size()} items of the array.
-        */
-       static Node[] node = null;
-
-       /**
-        * Actual size of the network.
-        */
-       private static int len;
-
-       /**
-        * The prototype node which is used to populate the simulation via cloning.
-        * After all the nodes have been cloned, {@link Control} components can be
-        * applied to perform any further initialization.
-        */
-       public static Node prototype = null;
-
-       // ====================== initialization ===========================
-       // =================================================================
-
-       /**
-        * Reads configuration parameters, constructs the prototype node, and
-        * populates the network by cloning the prototype.
-        */
-       public static void reset() {
-
-               if (prototype != null) {
-                       // not first experiment
-                       while (len > 0)
-                               remove(); // this is to call onKill on all nodes
-                       prototype = null;
-                       node = null;
-               }
-
-               len = Configuration.getInt(PAR_SIZE);
-               int maxlen = Configuration.getInt(PAR_MAXSIZE, len);
-               if (maxlen < len)
-                       throw new IllegalArgumentException(PAR_MAXSIZE + " is less than "
-                                       + PAR_SIZE);
-
-               node = new Node[maxlen];
-
-               // creating prototype node
-               Node tmp = null;
-               if (!Configuration.contains(PAR_NODE)) {
-                       System.err.println("Network: no node defined, using GeneralNode");
-                       tmp = new GeneralNode("");
-               } else {
-                       tmp = (Node) Configuration.getInstance(PAR_NODE);
-               }
-               prototype = tmp;
-               prototype.setIndex(-1);
-
-               // cloning the nodes
-               if (len > 0) {
-                       for (int i = 0; i < len; ++i) {
-                               node[i] = (Node) prototype.clone();
-                               node[i].setIndex(i);
-                       }
-               }
-       }
-
-       /** Disable instance construction */
-       private Network() {
-       }
-
-       // =============== public methods ===================================
-       // ==================================================================
-
-       /** Number of nodes currently in the network */
-       public static int size() {
-               return len;
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Sets the capacity of the internal array storing the nodes. The nodes will
-        * remain the same in the same order. If the new capacity is less than the
-        * old size of the node list, than the end of the list is cut. The nodes
-        * that get removed via this cutting are removed through {@link #remove()}.
-        */
-       public static void setCapacity(int newSize) {
-
-               if (node == null || newSize != node.length) {
-                       for (int i = newSize; i < len; ++i)
-                               remove();
-                       Node[] newnodes = new Node[newSize];
-                       final int l = Math.min(node.length, newSize);
-                       System.arraycopy(node, 0, newnodes, 0, l);
-                       node = newnodes;
-                       if (len > newSize)
-                               len = newSize;
-               }
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Returns the maximal number of nodes that can be stored without
-        * reallocating the underlying array to increase capacity.
-        */
-       public static int getCapacity() {
-               return node.length;
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * The node will be appended to the end of the list. If necessary, the
-        * capacity of the internal array is increased.
-        */
-       public static void add(Node n) {
-               if (len == node.length)
-                       setCapacity(3 * node.length / 2 + 1);
-               node[len] = n;
-               n.setIndex(len);
-               len++;
-               if (Simulator.getSimID() == 2)
-                       try {
-                               PSGDynamicNetwork.add(n);
-                       } catch (HostNotFoundException e) {
-                               System.err.println("Host not found in platform file");
-                       }
-               System.err.println("node " + n.getID() + " with index " + n.getIndex()
-                               + " was added at time " + CommonState.getTime());
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Returns node with the given index. Note that the same node will normally
-        * have a different index in different times. This can be used as a random
-        * access iterator. This method does not perform range checks to increase
-        * efficiency. The maximal valid index is {@link #size()}.
-        */
-       public static Node get(int index) {
-               return node[index];
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * The node at the end of the list is removed. Returns the removed node. It
-        * also sets the fail state of the node to {@link Fallible#DEAD}.
-        */
-       public static Node remove() {
-               Node n = node[len - 1]; // if len was zero this throws and exception
-               node[len - 1] = null;
-               len--;
-               System.err.println("node " + n.getID() + " with index " + n.getIndex()
-                               + " was removed at time " + CommonState.getTime());
-               n.setFailState(Fallible.DEAD);
-               if (Simulator.getSimID() == 2)
-                       PSGDynamicNetwork.remove(n);
-               return n;
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * The node with the given index is removed. Returns the removed node. It
-        * also sets the fail state of the node to {@link Fallible#DEAD}.
-        * <p>
-        * Look out: the index of the other nodes will not change (the right hand
-        * side of the list is not shifted to the left) except that of the last
-        * node. Only the last node is moved to the given position and will get
-        * index i.
-        */
-       public static Node remove(int i) {
-
-               if (i < 0 || i >= len)
-                       throw new IndexOutOfBoundsException("" + i);
-               swap(i, len - 1);
-               return remove();
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Swaps the two nodes at the given indexes.
-        */
-       public static void swap(int i, int j) {
-
-               Node n = node[i];
-               node[i] = node[j];
-               node[j] = n;
-               node[j].setIndex(j);
-               node[i].setIndex(i);
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Shuffles the node array. The index of each node is updated accordingly.
-        */
-       public static void shuffle() {
-
-               for (int i = len; i > 1; i--)
-                       swap(i - 1, CommonState.r.nextInt(i));
-
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Sorts the node array. The index of each node is updated accordingly.
-        * 
-        * @param c
-        *            The comparator to be used for sorting the nodes. If null, the
-        *            natural order of the nodes is used.
-        */
-       public static void sort(Comparator<? super Node> c) {
-
-               Arrays.sort(node, 0, len, c);
-               for (int i = 0; i < len; i++)
-                       node[i].setIndex(i);
-       }
-
-       // ------------------------------------------------------------------
-
-       public static void test() {
-
-               System.err.println("number of nodes = " + len);
-               System.err.println("capacity (max number of nodes) = " + node.length);
-               for (int i = 0; i < len; ++i) {
-                       System.err.println("node[" + i + "]");
-                       System.err.println(node[i].toString());
-               }
-
-               if (prototype == null)
-                       return;
-               for (int i = 0; i < prototype.protocolSize(); ++i) {
-                       if (prototype.getProtocol(i) instanceof Linkable)
-                               peersim.graph.GraphIO.writeUCINET_DL(new OverlayGraph(i),
-                                               System.err);
-               }
-       }
-
-}
diff --git a/contrib/psg/src/peersim/core/Node.java b/contrib/psg/src/peersim/core/Node.java
deleted file mode 100644 (file)
index a64e3a2..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-/**
- * Class that represents one node with a network address. An {@link Network} is
- * made of a set of nodes. The functionality of this class is thin: it must be
- * able to represent failure states and store a list of protocols. It is the
- * protocols that do the interesting job.
- */
-public interface Node extends Fallible, Cloneable
-{
-
-/**
- * Prefix of the parameters that defines protocols.
- * @config
- */
-public static final String PAR_PROT = "protocol";
-
-/**
- * Returns the <code>i</code>-th protocol in this node. If <code>i</code> 
- * is not a valid protocol id
- * (negative or larger than or equal to the number of protocols), then it throws
- * IndexOutOfBoundsException.
- */
-public Protocol getProtocol(int i);
-
-/**
- * Returns the number of protocols included in this node.
- */
-public int protocolSize();
-
-/**
- * Sets the index of this node in the internal representation of the node list.
- * Applications should not use this method. It is defined as public simply
- * because it is not possible to define it otherwise.
- * Using this method will result in
- * undefined behavior. It is provided for the core system.
- */
-public void setIndex(int index);
-
-/**
- * Returns the index of this node. It is such that
- * <code>Network.get(n.getIndex())</code> returns n. This index can
- * change during a simulation, it is not a fixed id. If you need that, use
- * {@link #getID}.
- * @see Network#get
- */
-public int getIndex();
-
-/**
-* Returns the unique ID of the node. It is guaranteed that the ID is unique
-* during the entire simulation, that is, there will be no different Node
-* objects with the same ID in the system during one invocation of the JVM.
-* Preferably nodes
-* should implement <code>hashCode()</code> based on this ID. 
-*/
-public long getID();
-
-/**
- * Clones the node. It is defined as part of the interface
- * to change the access right to public and to get rid of the
- * <code>throws</code> clause. 
- */
-public Object clone();
-
-}
diff --git a/contrib/psg/src/peersim/core/OracleIdleProtocol.java b/contrib/psg/src/peersim/core/OracleIdleProtocol.java
deleted file mode 100644 (file)
index 4d1896f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-/**
-* A protocol that does nothing but knows everything.
-* It provides an interface which models a protocol that knows all nodes
-* in the network, i.e. the neighborhood set of this protocol is always the
-* whole node set. this protocol is also extremely cheap, in fact it
-* has no data fields.
-*/
-public final class OracleIdleProtocol implements Protocol, Linkable {
-
-// =================== initialization, creation ======================
-// ===================================================================
-
-
-/** Does nothing */
-public OracleIdleProtocol(String prefix) {}
-
-// --------------------------------------------------------------------
-
-/** Returns <tt>this</tt> to maximize memory saving. It contains no fields.*/
-public Object clone() { return this; }
-
-
-// ===================== public methods ===============================
-// ====================================================================
-
-
-/** This is an expensive operation, should not be used at all.
-* It returns false only if the given node is not in the current network.
-*/
-public boolean contains(Node n) {
-
-       final int len = Network.size();
-       for (int i=0; i < len; i++)
-       {
-               if (Network.node[i] == n)
-               return true;
-       }
-       return false;
-}
-
-// --------------------------------------------------------------------
-
-/** Unsupported operation */
-public boolean addNeighbor(Node n) {
-
-       throw new UnsupportedOperationException();
-}
-
-// --------------------------------------------------------------------
-  
-/**
-* The neighborhood contains the node itself, ie it contains the loop
-* edge.
-*/
-public Node getNeighbor(int i) {
-       
-       return Network.node[i];
-}
-
-// --------------------------------------------------------------------
-
-public int degree() {
-       
-       return Network.size();
-}
-
-// --------------------------------------------------------------------
-
-public void pack() {}  
-
-// --------------------------------------------------------------------
-
-public void onKill() {}
-
-// --------------------------------------------------------------------
-
-public String toString() {
-
-       return degree()+" [all the nodes of the overlay network]";
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/core/OverlayGraph.java b/contrib/psg/src/peersim/core/OverlayGraph.java
deleted file mode 100644 (file)
index 0009459..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-import peersim.graph.Graph;
-import java.util.Collection;
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
-* This class is an adaptor which makes a {@link Linkable} protocol layer
-* look like a graph. It is useful because it allows the application of many
-* graph algorithms and graph topology initialization methods.
-* If the overlay network changes after creating this object, the changes
-* will be reflected. However, if the nodes are reshuffled (see
-* {@link Network#shuffle}), or if the node list changes (addition/removal),
-* then the behaviour becomes unspecified.
-*
-* The indices of nodes are from 0 to Network.size()-1.
-*
-* The fail state of nodes has an effect on the graph: all nodes are included
-* but edges are included only if both ends are up. This expresses the fact
-* that this graph is in fact defined by the "can communicate with" relation.
-*/
-public class OverlayGraph implements Graph {
-
-
-// ====================== fields ================================
-// ==============================================================
-
-/**
-* The protocol ID that selects the Linkable protocol to convert to a graph.
-*/
-public final int protocolID;
-
-/**
-* Tells if the graph should be wired in an undirected way.
-* Method {@link #directed} returns true always, this affects only
-* method {@link #setEdge}: if false, then the opposite edge is set too.
-*/
-public final boolean wireDirected;
-
-// ====================== public constructors ===================
-// ==============================================================
-
-/**
-* @param protocolID The protocol on which this adaptor is supposed
-* to operate.
-*/
-public OverlayGraph( int protocolID ) {
-
-       this.protocolID = protocolID;
-       wireDirected = true;
-}
-
-// --------------------------------------------------------------
-
-/**
-* @param protocolID The protocol on which this adaptor is supposed
-* to operate.
-* @param wireDirected specifies if {@link #setEdge} would wire the
-* opposite edge too.
-*/
-public OverlayGraph( int protocolID, boolean wireDirected ) {
-
-       this.protocolID = protocolID;
-       this.wireDirected = wireDirected;
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       return
-               ((Linkable)Network.node[i].getProtocol(protocolID)
-               ).contains(Network.node[j]) &&
-               Network.node[j].isUp() &&
-               Network.node[i].isUp();
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Returns those neighbors that are up. If node i is not up, it returns
-* an empty list.
-*/
-public Collection<Integer> getNeighbours(int i) {
-       
-       Linkable lble=(Linkable)Network.node[i].getProtocol(protocolID);
-       ArrayList<Integer> al = new ArrayList<Integer>(lble.degree());
-       if( Network.node[i].isUp() )
-       {       
-               for(int j=0; j<lble.degree(); ++j)
-               {
-                       final Node n = lble.getNeighbor(j);
-                       // if accessible, we include it
-                       if(n.isUp()) al.add(Integer.valueOf(n.getIndex()));
-               }
-       }
-       return Collections.unmodifiableList(al);
-}
-
-// ---------------------------------------------------------------
-
-/** Returns <code>Network.node[i]</code> */
-public Object getNode(int i) { return Network.node[i]; }
-       
-// ---------------------------------------------------------------
-
-/**
-* Returns null always
-*/
-public Object getEdge(int i, int j) { return null; }
-
-// ---------------------------------------------------------------
-
-/** Returns <code>Network.size()</code> */
-public int size() { return Network.size(); }
-
-// --------------------------------------------------------------------
-       
-/** Returns always true */
-public boolean directed() { return true; }
-
-// --------------------------------------------------------------------
-
-/**
-* Sets given edge.
-* In some cases this behaves strangely. Namely, when node i or j is not up,
-* but is not dead (e.g. it can be down temporarily).
-* In such situations the relevant link is made, but afterwards
-* getEdge(i,j) will NOT return true, only when the fail state has changed back
-* to OK.
-*
-* <p>Conceptually one can think of it as a successful operation which is
-* immediately overruled by the dynamics of the underlying overlay network.
-* Let's not forget that this class is an adaptor only.
-*
-* <p>
-* The behaviour of this method is affected by parameter {@link #wireDirected}.
-* If it is false, then the opposite edge is set too.
-*/
-public boolean setEdge( int i, int j ) {
-// XXX slightly unintuitive behavior but makes sense when understood
-       
-       if( !wireDirected ) 
-               ((Linkable)Network.node[j].getProtocol(protocolID)
-               ).addNeighbor(Network.node[i]);
-
-
-       return
-               ((Linkable)Network.node[i].getProtocol(protocolID)
-               ).addNeighbor(Network.node[j]);
-}
-
-// ---------------------------------------------------------------
-
-/** Not supported */
-public boolean clearEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Returns number of neighbors that are up. If node i is down, returns 0.
-*/
-public int degree(int i) {
-
-       if( !Network.node[i].isUp() ) return 0;
-       Linkable lble=(Linkable)Network.node[i].getProtocol(protocolID);
-       int numNeighbours = 0;
-       for(int j=0; j<lble.degree(); ++j)
-       {
-               final Node n = lble.getNeighbor(j);
-               // if accessible, we count it
-               if(n.isUp()) numNeighbours++;
-       }
-       return numNeighbours;
-}
-
-
-// ========================= other methods =======================
-// ===============================================================
-
-
-/**
-* Returns number of neighbors that are either up or down.
-* If node i is down, returns 0.
-*/
-public int fullDegree(int i) {
-
-       if( !Network.node[i].isUp() ) return 0;
-       Linkable lble=(Linkable)Network.node[i].getProtocol(protocolID);
-       return lble.degree();
-}
-
-
-}
-
-
diff --git a/contrib/psg/src/peersim/core/Protocol.java b/contrib/psg/src/peersim/core/Protocol.java
deleted file mode 100644 (file)
index 04e8ecf..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.core;
-
-/**
- * Interface to identify protocols.
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.5 $
- */
-public interface Protocol extends Cloneable
-{
-
-/**
- * Returns a clone of the protocol. It is important to pay attention to
- * implement this carefully because in peersim all nodes are generated by
- * cloning except a prototype node. That is, the constructor of protocols is
- * used only to construct the prototype. Initialization can be done
- * via {@link Control}s.
- */
-public Object clone();
-
-}
diff --git a/contrib/psg/src/peersim/core/Scheduler.java b/contrib/psg/src/peersim/core/Scheduler.java
deleted file mode 100644 (file)
index 035f982..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.core;
-
-import peersim.config.*;
-
-// XXX a quite primitive scheduler, should be able to be configured
-// much more flexibly using a simple syntax for time ranges.
-/**
-* A binary function over the time points. That is,
-* for each time point returns a boolean value.
-* 
-* The concept of time depends on the simulation model. Current time
-* has to be set by the simulation engine, irrespective of the model,
-* and can be read using {@link CommonState#getTime()}. This scheduler
-* is interpreted over those time points.
-*
-* <p>In this simple implementation the valid times will be
-* <tt>from, from+step, from+2*step, etc,</tt>
-* where the last element is strictly less than <tt>until</tt>.
-* Alternatively, if <tt>at</tt> is defined, then the schedule will be a single
-* time point. If FINAL is
-* defined, it is also added to the set of active time points.
-* It refers to the time after the simulation has finished (see
-* {@link CommonState#getPhase}).
-*/
-public class Scheduler {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-
-/**
-* Defaults to 1.
-* @config
-*/
-private static final String PAR_STEP = "step";
-
-/** 
-* Defaults to -1. That is, defaults to be ineffective.
-* @config
-*/
-private static final String PAR_AT = "at";
-
-
-/** 
-* Defaults to 0.
-* @config
-*/
-private static final String PAR_FROM = "from";
-
-/** 
-* Defaults to <tt>Long.MAX_VALUE</tt>.
-* @config
-*/
-private static final String PAR_UNTIL = "until";
-
-/**
-* Defines if component is active after the simulation has finished.
-* Note that the exact time the simulation finishes is not know in advance
-* because other components can stop the simulation at any time.
-* By default not set.
-* @see CommonState#getPhase
-* @config
-*/
-private static final String PAR_FINAL = "FINAL";
-
-public final long step;
-
-public final long from;
-
-public final long until;
-
-public final boolean fin;
-
-/** The next scheduled time point.*/
-protected long next = -1;
-
-// ==================== initialization ==============================
-// ==================================================================
-
-
-/** Reads configuration parameters from the component defined by
-* <code>prefix</code>. {@value #PAR_STEP} defaults to 1.
-*/
-public Scheduler(String prefix) {
-       
-       this(prefix, true);
-}
-
-// ------------------------------------------------------------------
-
-/** Reads configuration parameters from the component defined by
-* <code>prefix</code>. If useDefault is false, then at least parameter
-* {@value #PAR_STEP} must be explicitly defined. Otherwise {@value #PAR_STEP}
-* defaults to 1.
-*/
-public Scheduler(String prefix, boolean useDefault)
-{
-       if (Configuration.contains(prefix+"."+PAR_AT)) {
-               // FROM, UNTIL, and STEP should *not* be defined
-               if (Configuration.contains(prefix+"."+PAR_FROM) ||
-                               Configuration.contains(prefix+"."+PAR_UNTIL) ||
-                               Configuration.contains(prefix+"."+PAR_STEP))
-                       throw new IllegalParameterException(prefix,
-                               "Cannot use \""+PAR_AT+"\" together with \""
-                               +PAR_FROM+"\", \""+PAR_UNTIL+"\", or \""+
-                               PAR_STEP+"\"");
-
-               from = Configuration.getLong(prefix+"."+PAR_AT);
-               until = from+1;
-               step = 1;
-       } else {
-               if (useDefault) 
-                       step = Configuration.getLong(prefix+"."+PAR_STEP,1);
-               else
-                       step = Configuration.getLong(prefix+"."+PAR_STEP);
-               if( step < 1 )
-                       throw new IllegalParameterException(prefix,
-                               "\""+PAR_STEP+"\" must be >= 1");
-               
-               from = Configuration.getLong(prefix+"."+PAR_FROM,0);
-               until = Configuration.getLong(prefix+"."+PAR_UNTIL,Long.MAX_VALUE);
-       }
-
-       if( from < until ) next = from;
-       else next = -1;
-       
-       fin = Configuration.contains(prefix+"."+PAR_FINAL);
-}
-
-
-// ===================== public methods ==============================
-// ===================================================================
-
-/** true if given time point is covered by this scheduler */
-public boolean active(long time) {
-       
-       if( time < from || time >= until ) return false;
-       return (time - from)%step == 0; 
-}
-
-// -------------------------------------------------------------------
-
-/** true if current time point is covered by this scheduler */
-public boolean active() {
-       
-       return active( CommonState.getTime() );
-}
-
-//-------------------------------------------------------------------
-
-/**
-* Returns the next time point. If the returned value is negative, there are
-* no more time points. As a side effect, it also updates the next time point,
-* so repeated calls to this method return the scheduled times.
-*/
-public long getNext()
-{
-       long ret = next;
-       // check like this to prevent integer overflow of "next"
-       if( until-next > step ) next += step;
-       else next = -1;
-       return ret;
-}
-
-}
-
-
diff --git a/contrib/psg/src/peersim/dynamics/DynamicNetwork.java b/contrib/psg/src/peersim/dynamics/DynamicNetwork.java
deleted file mode 100644 (file)
index a581a86..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import java.util.Map;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.MsgException;
-
-import peersim.Simulator;
-import peersim.config.Configuration;
-import peersim.core.*;
-import psgsim.NodeHost;
-import psgsim.PSGDynamicNetwork;
-
-/**
- * This {@link Control} can change the size of networks by adding and removing
- * nodes. Can be used to model churn. This class supports only permanent removal
- * of nodes and the addition of brand new nodes. That is, temporary downtime is
- * not supported by this class.
- */
-public class DynamicNetwork implements Control {
-
-       // --------------------------------------------------------------------------
-       // Parameters
-       // --------------------------------------------------------------------------
-
-       /**
-        * Config parameter which gives the prefix of node initializers. An
-        * arbitrary number of node initializers can be specified (Along with their
-        * parameters). These will be applied on the newly created nodes. The
-        * initializers are ordered according to alphabetical order if their ID.
-        * Example:
-        * 
-        * <pre>
-        * control.0 DynamicNetwork
-        * control.0.init.0 RandNI
-        * control.0.init.0.k 5
-        * control.0.init.0.protocol somelinkable
-        * ...
-        * </pre>
-        * 
-        * @config
-        */
-       private static final String PAR_INIT = "init";
-
-       /**
-        * If defined, nodes are substituted (an existing node is removed, a new one
-        * is added. That is, first the number of nodes to add (or remove if
-        * {@value #PAR_ADD} is negative) is calculated, and then exactly the same
-        * number of nodes are removed (or added) immediately so that the network
-        * size remains constant. Not set by default.
-        * 
-        * @config
-        */
-       private static final String PAR_SUBST = "substitute";
-
-       /**
-        * Specifies the number of nodes to add or remove. It can be negative in
-        * which case nodes are removed. If its absolute value is less than one,
-        * then it is interpreted as a proportion of current network size, that is,
-        * its value is substituted with <tt>add*networksize</tt>. Its value is
-        * rounded to an integer.
-        * 
-        * @config
-        */
-       private static final String PAR_ADD = "add";
-
-       /**
-        * Nodes are added until the size specified by this parameter is reached.
-        * The network will never exceed this size as a result of this class. If not
-        * set, there will be no limit on the size of the network.
-        * 
-        * @config
-        */
-       private static final String PAR_MAX = "maxsize";
-
-       /**
-        * Nodes are removed until the size specified by this parameter is reached.
-        * The network will never go below this size as a result of this class.
-        * Defaults to 0.
-        * 
-        * @config
-        */
-       private static final String PAR_MIN = "minsize";
-
-       // --------------------------------------------------------------------------
-       // Fields
-       // --------------------------------------------------------------------------
-
-       /** value of {@value #PAR_ADD} */
-       protected final double add;
-
-       /** value of {@value #PAR_SUBST} */
-       protected final boolean substitute;
-
-       /** value of {@value #PAR_MIN} */
-       protected final int minsize;
-
-       /** value of {@value #PAR_MAX} */
-       protected final int maxsize;
-
-       /** node initializers to apply on the newly added nodes */
-       protected final NodeInitializer[] inits;
-
-       // --------------------------------------------------------------------------
-       // Protected methods
-       // --------------------------------------------------------------------------
-
-       /**
-        * Adds n nodes to the network. Extending classes can implement any
-        * algorithm to do that. The default algorithm adds the given number of
-        * nodes after calling all the configured initializers on them.
-        * 
-        * @param n
-        *            the number of nodes to add, must be non-negative.
-        */
-       protected void add(int n) {
-               for (int i = 0; i < n; ++i) {
-                       Node newnode = (Node) Network.prototype.clone();
-                       for (int j = 0; j < inits.length; ++j) {
-                               inits[j].initialize(newnode);
-                       }
-                       Network.add(newnode);
-
-               }
-       }
-
-       // ------------------------------------------------------------------
-
-       /**
-        * Removes n nodes from the network. Extending classes can implement any
-        * algorithm to do that. The default algorithm removes <em>random</em> nodes
-        * <em>permanently</em> simply by calling {@link Network#remove(int)}.
-        * 
-        * @param n
-        *            the number of nodes to remove
-        */
-       protected void remove(int n) {
-               for (int i = 0; i < n; ++i) {
-                       int nr = CommonState.r.nextInt(Network.size());
-                       Network.remove(nr);
-
-               }
-       }
-
-       // --------------------------------------------------------------------------
-       // Initialization
-       // --------------------------------------------------------------------------
-
-       /**
-        * Standard constructor that reads the configuration parameters. Invoked by
-        * the simulation engine.
-        * 
-        * @param prefix
-        *            the configuration prefix for this class
-        */
-       public DynamicNetwork(String prefix) {
-               add = Configuration.getDouble(prefix + "." + PAR_ADD);
-               substitute = Configuration.contains(prefix + "." + PAR_SUBST);
-               Object[] tmp = Configuration.getInstanceArray(prefix + "." + PAR_INIT);
-               inits = new NodeInitializer[tmp.length];
-               for (int i = 0; i < tmp.length; ++i) {
-                       // System.out.println("Inits " + tmp[i]);
-                       inits[i] = (NodeInitializer) tmp[i];
-               }
-               maxsize = Configuration.getInt(prefix + "." + PAR_MAX,
-                               Integer.MAX_VALUE);
-               minsize = Configuration.getInt(prefix + "." + PAR_MIN, 0);
-       }
-
-       // --------------------------------------------------------------------------
-       // Public methods
-       // --------------------------------------------------------------------------
-
-       /**
-        * Calls {@link #add(int)} or {@link #remove} with the parameters defined by
-        * the configuration.
-        * 
-        * @return always false
-        */
-       public final boolean execute() {
-               if (add == 0)
-                       return false;
-               if (!substitute) {
-                       if ((maxsize <= Network.size() && add > 0)
-                                       || (minsize >= Network.size() && add < 0))
-                               return false;
-               }
-               int toadd = 0;
-               int toremove = 0;
-               if (add > 0) {
-                       toadd = (int) Math.round(add < 1 ? add * Network.size() : add);
-                       if (!substitute && toadd > maxsize - Network.size())
-                               toadd = maxsize - Network.size();
-                       if (substitute)
-                               toremove = toadd;
-               } else if (add < 0) {
-                       toremove = (int) Math
-                                       .round(add > -1 ? -add * Network.size() : -add);
-                       if (!substitute && toremove > Network.size() - minsize)
-                               toremove = Network.size() - minsize;
-                       if (substitute)
-                               toadd = toremove;
-               }
-               remove(toremove);
-               add(toadd);
-               return false;
-       }
-
-       // --------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/MethodInvoker.java b/contrib/psg/src/peersim/dynamics/MethodInvoker.java
deleted file mode 100644 (file)
index 5e9e5fc..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import java.lang.reflect.*;
-import peersim.config.*;
-import peersim.core.*;
-import java.util.ArrayList;
-
-/**
- * This {@link Control} invokes a specified method on a protocol.
- * The method is defined by config parameter {@value #PAR_METHOD} and
- * the protocol is by {@value #PAR_PROT}. The method must not have any
- * parameters and must return void. If no protocol is specified, then the
- * method will be invoked on all protocol in the protocol stack that define
- * it.
- * <p>
- * Although the method cannot have any parameters, it can of course read
- * {@link CommonState}. It is guaranteed that the state is up-to-date,
- * inlcuding eg method {@link CommonState#getNode}.
- */
-public class MethodInvoker implements Control, NodeInitializer {
-
-
-// --------------------------------------------------------------------------
-// Parameter names
-// --------------------------------------------------------------------------
-
-/**
- * The protocol to operate on.
- * If not defined, the given method will be invoked on all protocols that
- * define it. In all cases, at least one protocol has to define it.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-/**
- * The method to be invoked. It must return void and should not have any
- * parameters specified.
- * @config
- */
-private static final String PAR_METHOD = "method";
-
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Identifiers of the protocols to be initialized */
-private final int pid[];
-
-/** Method name */
-private final String methodName;
-
-/** Methods corresponding to the protocols in {@link #pid}. */
-private final Method method[];
-
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public MethodInvoker(String prefix) {
-
-       methodName = Configuration.getString(prefix+"."+PAR_METHOD);
-       if(!Configuration.contains(prefix+"."+PAR_PROT))
-       {
-               // find protocols that implement method
-               ArrayList<Integer> pids = new ArrayList<Integer>();
-               ArrayList<Method> methods = new ArrayList<Method>();
-               for(int i=0; i<Network.prototype.protocolSize(); ++i)
-               {
-                       Method m = null;
-                       try
-                       {
-                               m = MethodInvoker.getMethod(
-                                 Network.prototype.getProtocol(i).getClass(),
-                                 methodName );
-                       }
-                       catch(NoSuchMethodException e) {}
-                       
-                       if(m!=null)
-                       {
-                               pids.add(i);
-                               methods.add(m);
-                       }
-               }
-
-               if( pids.isEmpty() )
-               {
-                       throw new IllegalParameterException(prefix + "." +
-                       PAR_METHOD,
-                       "No protocols found that implement 'void "+
-                       methodName+"()'");
-               }
-
-               pid=new int[pids.size()];
-               int j=0;
-               for(int i: pids) pid[j++]=i;
-               method=methods.toArray(new Method[methods.size()]);
-       }
-       else
-       {
-               pid = new int[1];
-               pid[0] = Configuration.getPid(prefix+"."+PAR_PROT);
-               try
-               {
-                       method = new Method[1];
-                       method[0]=MethodInvoker.getMethod(
-                         Network.prototype.getProtocol(pid[0]).getClass(),
-                         methodName );
-               }
-               catch (NoSuchMethodException e)
-               {
-                       throw new IllegalParameterException(prefix + "." +
-                       PAR_METHOD, e+"");
-               }
-       }
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-private static Method getMethod(Class cl, String methodName)
-throws NoSuchMethodException {
-
-       Method[] methods = cl.getMethods();
-       ArrayList<Method> list = new ArrayList<Method>();
-       for(Method m: methods)
-       {
-               if(m.getName().equals(methodName))
-               {
-                       Class[] pars = m.getParameterTypes();
-                       Class ret = m.getReturnType();
-                       if( pars.length == 0 && ret==void.class )
-                               list.add(m);
-               }
-       }
-       
-       if(list.size() == 0)
-       {
-               throw new NoSuchMethodException("Method "
-               + methodName + " in class " + cl.getName());
-       }
-       
-       return list.get(0);
-}
-
-//--------------------------------------------------------------------------
-
-/** Invokes method on all the nodes. */
-public boolean execute() {
-
-       for(int i=0; i<Network.size(); ++i)
-       {
-               initialize(Network.get(i));
-       }
-
-       return false;
-}
-
-//--------------------------------------------------------------------------
-
-/** Invokes method on given node. */
-public void initialize(Node n) {
-       
-       try
-       {
-               for(int i=0; i<pid.length; ++i)
-               {
-                       CommonState.setNode(n);
-                       CommonState.setPid(pid[i]);
-                       method[i].invoke(n.getProtocol(pid[i]));
-               }
-       }
-       catch(Exception e)
-       {
-               e.printStackTrace();
-               System.exit(1);
-       }
-}
-}
diff --git a/contrib/psg/src/peersim/dynamics/NodeInitializer.java b/contrib/psg/src/peersim/dynamics/NodeInitializer.java
deleted file mode 100644 (file)
index 7049a11..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.core.Node;
-
-/**
- * Generic interface to initialize a node before inserting it into the
- * simulation. Other components like {@link DynamicNetwork} can use a
- * NodeInitializer. It is designed to allow maximal flexibility therefore poses
- * virtually no restrictions on the implementation. It can even be used to
- * implement initializations that require global knowledge of the system.
- */
-public interface NodeInitializer
-{
-
-/**
- * Performs arbitrary initializations on the given node. It is guaranteed that
- * this is called <em>before</em> inserting the node into the network.
- */
-public void initialize(Node n);
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/OscillatingNetwork.java b/contrib/psg/src/peersim/dynamics/OscillatingNetwork.java
deleted file mode 100644 (file)
index 4c10f2d..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-       
-package peersim.dynamics;
-
-import peersim.config.Configuration;
-import peersim.core.*;
-
-/**
- * Makes the network size oscillate.
- * The network size will be the function of time, parameterized by this
- * parameter. The size function is
- * <code>avg+sin(time*pi/{@value #PAR_PERIOD})*ampl</code> where
- * <code>avg=({@value #PAR_MAX}+{@value #PAR_MIN})/2</code> and 
- * <code>ampl=({@value #PAR_MAX}-{@value #PAR_MIN})/2</code>.
- * This function is independent of how many times this class is executed, that
- * is, whenever it is executed, it takes the current time and sets the network
- * size accordingly.
- */
-public class OscillatingNetwork implements Control
-{
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * Config parameter which gives the prefix of node initializers. An arbitrary
- * number of node initializers can be specified (Along with their parameters).
- * These will be applied
- * on the newly created nodes. The initializers are ordered according to
- * alphabetical order if their ID.
- * Example:
- * <pre>
-control.0 DynamicNetwork
-control.0.init.0 RandNI
-control.0.init.0.k 5
-control.0.init.0.protocol somelinkable
-...
- * </pre>
- * @config
- */
-private static final String PAR_INIT = "init";
-
-/**
- * Nodes are added until the size specified by this parameter is reached. The
- * network will never exceed this size as a result of this class.
- * If not set, there will be no limit on the size of the network.
- * @config
- */
-private static final String PAR_MAX = "maxsize";
-
-/**
- * Nodes are removed until the size specified by this parameter is reached. The
- * network will never go below this size as a result of this class.
- * Defaults to 0.
- * @config
- */
-private static final String PAR_MIN = "minsize";
-
-/**
- * Config parameter used to define the length of one period of the oscillation.
- * The network size will be the function of time, parameterized by this
- * parameter. The size function is
- * <code>avg+sin(time*pi/{@value #PAR_PERIOD})*ampl</code> where
- * <code>avg=({@value #PAR_MAX}+{@value #PAR_MIN})/2</code> and 
- * <code>ampl=({@value #PAR_MAX}-{@value #PAR_MIN})/2</code>.
- * @config
- */
-private static final String PAR_PERIOD = "period";
-
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/** Period */
-private final int period;
-
-/** Maximum size */
-private final int minsize;
-
-/** Minimum size */
-private final int maxsize;
-
-/** New nodes initializers */
-private final NodeInitializer[] inits;
-
-
-//--------------------------------------------------------------------------
-// Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters. Invoked by the
- * simulation engine.
- * @param prefix
- *          the configuration prefix for this class
- */
-public OscillatingNetwork(String prefix)
-{
-
-       period = Configuration.getInt(prefix + "." + PAR_PERIOD);
-       maxsize =
-               Configuration.getInt(
-                       prefix + "." + PAR_MAX,
-                       Integer.MAX_VALUE);
-       minsize = Configuration.getInt(prefix + "." + PAR_MIN, 0);
-
-       Object[] tmp = Configuration.getInstanceArray(prefix + "." + PAR_INIT);
-       inits = new NodeInitializer[tmp.length];
-       for (int i = 0; i < tmp.length; ++i)
-       {
-               inits[i] = (NodeInitializer) tmp[i];
-       }
-}
-
-//--------------------------------------------------------------------------
-// Methods
-//--------------------------------------------------------------------------
-
-/**
- * Adds n nodes to the network. Extending classes can implement any algorithm to
- * do that. The default algorithm adds the given number of nodes after calling
- * all the configured initializers on them.
- * 
- * @param n
- *          the number of nodes to add, must be non-negative.
- */
-protected void add(int n)
-{
-       for (int i = 0; i < n; ++i) {
-               Node newnode = (Node) Network.prototype.clone();
-               for (int j = 0; j < inits.length; ++j) {
-                       inits[j].initialize(newnode);
-               }
-               Network.add(newnode);
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
- * Removes n nodes from the network. Extending classes can implement any
- * algorithm to do that. The default algorithm removes <em>random</em>
- * nodes <em>permanently</em> simply by calling {@link Network#remove(int)}.
- * @param n the number of nodes to remove
- */
-protected void remove(int n)
-{
-       for (int i = 0; i < n; ++i) {
-               Network.remove(CommonState.r.nextInt(Network.size()));
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
- * Takes the current time and sets the network size according to a periodic
- * function of time.
- * The size function is
- * <code>avg+sin(time*pi/{@value #PAR_PERIOD})*ampl</code> where
- * <code>avg=({@value #PAR_MAX}+{@value #PAR_MIN})/2</code> and 
- * <code>ampl=({@value #PAR_MAX}-{@value #PAR_MIN})/2</code>.
- * Calls {@link #add(int)} or {@link #remove} depending on whether the size
- * needs to be increased or decreased to get the desired size.
- * @return always false 
- */
-public boolean execute()
-{
-       long time = CommonState.getTime();
-       int amplitude = (maxsize - minsize) / 2;
-       int newsize = (maxsize + minsize) / 2 + 
-         (int) (Math.sin(((double) time) / period * Math.PI) *
-         amplitude);
-       int diff = newsize - Network.size();
-       if (diff < 0)
-               remove(-diff);
-       else
-               add(diff);
-       
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/RandNI.java b/contrib/psg/src/peersim/dynamics/RandNI.java
deleted file mode 100644 (file)
index 7a4d5c7..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
- * Initializes the neighbor list of a node with random links.
- */
-public class RandNI implements NodeInitializer {
-
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The protocol to operate on.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-/**
- * The number of samples (with replacement) to draw to initialize the
- * neighbor list of the node.
- * @config
- */
-private static final String PAR_DEGREE = "k";
-
-/**
- * If this config property is defined, method {@link Linkable#pack()} is 
- * invoked on the specified protocol at the end of the wiring phase. 
- * Default to false.
- * @config
- */
-private static final String PAR_PACK = "pack";
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/**
- * The protocol we want to wire
- */
-private final int pid;
-
-/**
- * The degree of the regular graph
- */
-private final int k;
-
-/**
- * If true, method pack() is invoked on the initialized protocol
- */
-private final boolean pack;
-
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters. Invoked by the
- * simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public RandNI(String prefix)
-{
-       pid = Configuration.getPid(prefix + "." + PAR_PROT);
-       k = Configuration.getInt(prefix + "." + PAR_DEGREE);
-       pack = Configuration.contains(prefix + "." + PAR_PACK);
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/**
- * Takes {@value #PAR_DEGREE} random samples with replacement from the nodes of
- * the overlay network. No loop edges are added.
- */
-public void initialize(Node n)
-{
-       if (Network.size() == 0) return;
-
-       Linkable linkable = (Linkable) n.getProtocol(pid);
-       for (int j = 0; j < k; ++j)
-       {
-               int r = CommonState.r.nextInt(Network.size());
-               linkable.addNeighbor(Network.get(r));
-       }
-
-       if (pack) linkable.pack();
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/StarNI.java b/contrib/psg/src/peersim/dynamics/StarNI.java
deleted file mode 100644 (file)
index 4dbd866..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.dynamics;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
- * Initializes a node's neighbor list with a fixed center.
- */
-public class StarNI implements NodeInitializer {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-
-/**
- * The protocol to operate on.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-/**
- * If this config property is defined, method {@link Linkable#pack()} is 
- * invoked on the specified protocol at the end of the wiring phase. 
- * Default to false.
- * @config
- */
-private static final String PAR_PACK = "pack";
-
-/**
- * The protocol we want to wire
- */
-protected final int pid;
-
-/** If true, method pack() is invoked on the initialized protocol */
-protected final boolean pack;
-
-/**
- * Used as center: nodes will link to this node.
- */
-protected Node center = null;
-
-
-// ==================== initialization ==============================
-//===================================================================
-
-
-public StarNI(String prefix) {
-
-       pid = Configuration.getPid(prefix+"."+PAR_PROT);
-       pack = Configuration.contains(prefix+"."+PAR_PACK);
-}
-
-
-// ===================== public methods ==============================
-// ===================================================================
-
-
-/**
- * Adds a link to a fixed node, the center. This fixed node remains the same
- * throughout consecutive calls to this method. If the center fails in the
- * meantime, a new one is chosen so care should be taken. The center is the
- * first node that is not down (starting from node 0, 1, etc)
- * at the time of the first call to the function. When a new center needs to
- * be chosen (the current one is down), the new center is again the first
- * one which is up. If no nodes are up, the node with the last index is set
- * as center, and selection of a new center is always attempted when this
- * method is called again.
- */
-public void initialize(Node n) {
-       
-       if( Network.size() == 0 ) return;
-       
-       for(int i=0; (center==null || !center.isUp()) && i<Network.size(); ++i)
-               center=Network.get(i);
-       
-       ((Linkable)n.getProtocol(pid)).addNeighbor(center);
-       
-       if(pack)
-       {
-               ((Linkable)n.getProtocol(pid)).pack();
-       }
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/WireByMethod.java b/contrib/psg/src/peersim/dynamics/WireByMethod.java
deleted file mode 100644 (file)
index de32a69..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.*;
-import peersim.core.*;
-import peersim.config.*;
-import java.lang.reflect.*;
-import java.util.ArrayList;
-
-/**
- * Takes a {@link Linkable} protocol and adds connections using an arbitrary
- * method.
- * No connections are removed.
- * The connections are added by an arbitrary method that can be specified
- * in the configuration. 
- * The properties the method has to fulfill are the following
- <ul>
- <li>It MUST be static</li>
- <li>It MUST have a first argument that can be assigned from a class
- that implements {@link Graph}.</li>
- <li>It MAY contain zero or more arguments following the first one.</li>
- <li>All the arguments after the first one MUST be of primitive type int,
- long or double, except
- the last one, which MAY be of type that can be assigned from
- <code>java.util.Random</code></li>
- </ul>
- The arguments are initialized using the configuration as follows.
- <ul>
- <li>The first argument is the {@link Graph} that is passed to
- {@link #wire}.</li>
- <li>The arguments after the first one (indexed as 1,2,etc) are initialized
- from configuration parameters of the form {@value #PAR_ARG}i, where i is the
- index.
- <li>If the last argument can be assigned from 
- <code>java.util.Random</code> then it is initialized with
- {@link CommonState#r}, the central source of randomness for the
- simulator.</li>
- </ul>
- For example, the class {@link WireWS} can be emulated by configuring
- <pre>
- init.0 WireByMethod
- init.0.class GraphFactory
- init.0.method wireWS
- init.0.arg1 10
- init.0.arg2 0.1
- ...
- </pre>
- Note that the {@value #PAR_CLASS} parameter defaults to {@link GraphFactory},
- and {@value #PAR_METHOD} defaults to "wire".
- */
-public class WireByMethod extends WireGraph {
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The prefix for the configuration properties that describe parameters.
- * @config
- */
-private static final String PAR_ARG = "arg";
-
-/**
-* The class that has the method we want to use. Defaults to
-* {@link GraphFactory}.
-* @config
-*/
-private static final String PAR_CLASS = "class";
-
-/**
-* The name of the method for wiring the graph. Defaults to <code>wire</code>.
-* @config
-*/
-private static final String PAR_METHOD = "method";
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-private final Object[] args;
-
-private final Method method;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Loads configuration. It verifies the constraints defined
- * in {@link WireByMethod}.
- * @param prefix the configuration prefix for this class
- */
-public WireByMethod(String prefix)
-{
-       super(prefix);
-       
-       // get the method
-       try
-       {
-               final Class wire =
-                       Configuration.getClass(prefix + "." + PAR_CLASS,
-               Class.forName("peersim.graph.GraphFactory"));
-               method = WireByMethod.getMethod(
-                       wire,
-                       Configuration.getString(prefix+"."+PAR_METHOD,"wire"));
-       }
-       catch( Exception e )
-       {
-               throw new RuntimeException(e);
-       }
-       
-       // set the constant args (those other than 0th)
-       Class[] argt = method.getParameterTypes();
-       args = new Object[argt.length];
-       for(int i=1; i<args.length; ++i)
-       {
-               
-               if( argt[i]==int.class )
-                       args[i]=Configuration.getInt(prefix+"."+PAR_ARG+i);
-               else if( argt[i]==long.class )
-                       args[i]=Configuration.getLong(prefix+"."+PAR_ARG+i);
-               else if( argt[i]==double.class )
-                       args[i]=Configuration.getDouble(prefix+"."+PAR_ARG+i);
-               else if(i==args.length-1 && argt[i].isInstance(CommonState.r))
-                       args[i]=CommonState.r;
-               else
-               {
-                       // we should neve get here
-                       throw new RuntimeException("Unexpected error, please "+
-                       "report this problem to the peersim team");
-               }
-       }
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Search a wiring method in the specified class.
- * @param cl
- *          the class where to find the method
- * @param methodName
- *          the method to be searched
- * @return the requested method, if it fully conforms to the definition of
- * the wiring methods.
- */
-private static Method getMethod(Class cl, String methodName)
-               throws NoSuchMethodException, ClassNotFoundException {
-               
-       // Search methods
-       Method[] methods = cl.getMethods();
-       ArrayList<Method> list = new ArrayList<Method>();
-       for (Method m: methods) {
-               if (m.getName().equals(methodName)) {
-                       list.add(m);
-               }
-       }
-       
-       if (list.size() == 0) {
-               throw new NoSuchMethodException("No method "
-               + methodName + " in class " + cl.getSimpleName());
-       } else if (list.size() > 1) {
-               throw new NoSuchMethodException("Multiple methods called "
-               + methodName + " in class " + cl.getSimpleName());
-       }
-       
-       // Found a single method with the right name; check if
-       // it is a setter.
-       final Class graphClass = Class.forName("peersim.graph.Graph");
-       final Class randomClass = Class.forName("java.util.Random");
-       Method method = list.get(0);
-       Class[] pars = method.getParameterTypes();
-       if( pars.length < 1 || !pars[0].isAssignableFrom(graphClass) )
-               throw new NoSuchMethodException(method.getName() + " of class "
-               + cl.getSimpleName() + " is not a valid graph wiring method,"+
-               " it has to have peersim.graph.Graph as first argument type");
-       for(int i=1; i<pars.length; ++i)
-               if( !( pars[i]==int.class || pars[i]==long.class ||
-               pars[i]==double.class ||
-               (i==pars.length-1 && pars[i].isAssignableFrom(randomClass)) ) )
-                       throw new NoSuchMethodException(method.getName() +
-                       " of class "+ cl.getSimpleName()
-                       + " is not a valid graph wiring method");
-                       
-       if(method.toString().indexOf("static")<0)
-               throw new NoSuchMethodException(method.getName() +
-               " of class "+ cl.getSimpleName()
-               + " is not a valid graph wiring method; it is not static");
-       
-       return method;
-}
-
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/** Invokes the method passing g to it.*/
-public void wire(Graph g) {
-
-       args[0]=g;
-       try { method.invoke(null,args); }
-       catch( Exception e ) { throw new RuntimeException(e); }
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/WireFromFile.java b/contrib/psg/src/peersim/dynamics/WireFromFile.java
deleted file mode 100644 (file)
index 2b40636..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.dynamics;
-
-
-import java.io.IOException;
-import java.io.FileReader;
-import java.io.LineNumberReader;
-import java.util.StringTokenizer;
-import peersim.graph.Graph;
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
-* Takes a {@link Linkable} protocol and adds connections that are stored in a
-* file. Note that no
-* connections are removed, they are only added. So it can be used in
-* combination with other initializers.
-* The format of the file is as follows. Each line begins with a node ID
-* (IDs start from 0) followed by a list of neighbors, separated by whitespace.
-* All node IDs larger than the actual network size will be discarded, but
-* it does not trigger an error. Lines starting with a "#" character and
-* empty lines are ignored.
-*/
-public class WireFromFile extends WireGraph {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-
-/** 
-*  The filename to load links from.
-*  @config
-*/
-private static final String PAR_FILE = "file";
-
-/** 
-*  The number of neighbors to be read from the file. If unset, the default
-* behavior is to read all links in the file. If set, then the first k
-* neighbors will be read only.
-*  @config
-*/
-private static final String PAR_K = "k";
-
-private final String file;
-
-private final int k;
-
-// ==================== initialization ==============================
-// ==================================================================
-
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireFromFile(String prefix) {
-
-       super(prefix);
-       file = Configuration.getString(prefix+"."+PAR_FILE);
-       k = Configuration.getInt(prefix + "." + PAR_K, Integer.MAX_VALUE);
-}
-
-
-// ===================== public methods ==============================
-// ===================================================================
-
-
-/**
-* Wires the graph from a file.
-* The format of the file is as follows. Each line begins with a node ID
-* (IDs start from 0) followed by a list of neighbors, separated by whitespace.
-* All node IDs larger than the actual network size will be discarded, but
-* it does not trigger an error. Lines starting with a "#" character and
-* empty lines are ignored.
-*/
-public void wire(Graph g) {
-try
-{
-       FileReader fr = new FileReader(file);
-       LineNumberReader lnr = new LineNumberReader(fr);
-       String line;
-       boolean wasOutOfRange=false;
-       while((line=lnr.readLine()) != null)
-       {
-               if( line.startsWith("#") ) continue;
-               StringTokenizer st = new StringTokenizer(line);
-               if(!st.hasMoreTokens()) continue;
-               
-               final int from = Integer.parseInt(st.nextToken());
-               if( from < 0 || from >= Network.size() )
-               {
-                       wasOutOfRange = true;
-                       continue;
-               }
-               
-               for(int i=0; i<k && st.hasMoreTokens(); ++i)
-               {
-                       final int to = Integer.parseInt(st.nextToken());
-                       if( to < 0 || to >= Network.size() )
-                               wasOutOfRange = true;
-                       else
-                               g.setEdge(from,to);
-               }
-       }
-
-       if( wasOutOfRange )
-               System.err.println("WireFromFile warning: in "+file+" "+
-                       "some nodes were out of range and so ignored.");
-       lnr.close();
-}
-catch( IOException e )
-{
-       throw new RuntimeException(e);
-}
-}
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/WireGraph.java b/contrib/psg/src/peersim/dynamics/WireGraph.java
deleted file mode 100644 (file)
index 4c8af15..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.Graph;
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
- * This class is the superclass of classes that
- * takes a {@link Linkable} protocol or a graph and add edges that define a
- * certain topology.
- * Note that no connections are removed, they are only added. So it can be used
- * in combination with other initializers.
- */
-public abstract class WireGraph implements Control
-{
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/**
- * The {@link Linkable} protocol to operate on. If it is not specified,
- * then operates on {@link #g}. If {@link #g} is null, {@link #execute} throws
- * an Exception. Note that if {@link #g} is set, it will be used irrespective
- * of the setting of the protocol in this field.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-/**
- * If this config property is defined, method {@link Linkable#pack()} is 
- * invoked on the specified protocol at the end of the wiring phase. 
- * Default to false.
- * @config
- */
-private static final String PAR_PACK = "pack";
-
-/**
- * If set, the generated graph is undirected. In other words, for each link
- * (i,j) a link (j,i) will also be added. Defaults to false.
- * @config
- */
-private static final String PAR_UNDIR = "undir";
-
-/**
-* Alias for {@value #PAR_UNDIR}.
-* @config
-*/
-private static final String PAR_UNDIR_ALT = "undirected";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/**
- * The protocol we want to wire. It is negative if no protocol was set
- * (in that case, a graph must be specified, see {@link #g}).
- */
-protected final int pid;
-
-/** If true, method pack() is invoked on the initialized protocol */
-private final boolean pack;
-
-/** If true, edges are added in an undirected fashion.*/
-public final boolean undir;
-
-/**
-* If set (not null), this is the graph to wire. If null, the current overlay
-* is wired each time {@link #execute} is called, as specified by {@value
-* #PAR_PROT}.
-*/
-public Graph g=null;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters. Normally
- * invoked by the simulation engine.
- * @param prefix
- *          the configuration prefix for this class
- */
-protected WireGraph(String prefix) {
-
-       if( Configuration.contains(prefix + "." + PAR_PROT) )
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);
-       else
-               pid = -10;
-       pack = Configuration.contains(prefix + "." + PAR_PACK);
-       undir = (Configuration.contains(prefix + "." + PAR_UNDIR) |
-               Configuration.contains(prefix + "." + PAR_UNDIR_ALT));
-}
-
-
-//--------------------------------------------------------------------------
-//Public methods
-//--------------------------------------------------------------------------
-
-/**
-* Calls method {@link #wire} with the graph {@link #g},
-* or if null, on the overlay specified by the protocol given by config
-* parameter {@value #PAR_PROT}. If neither {@link #g}, nor {@value #PAR_PROT}
-* is set, throws a RuntimException.
-*/
-public final boolean execute() {
-
-       Graph gr;
-       if(g==null && pid==-10)
-       {
-               throw new RuntimeException(
-                       "Neither a protocol, nor a graph is specified.");
-       }
-       if(g==null) gr = new OverlayGraph(pid,!undir);
-       else gr=g;
-
-       if(gr.size()==0) return false;
-       wire(gr);
-       
-       if( g==null && pack)
-       {
-               int size = Network.size();
-               for (int i = 0; i < size; i++)
-               {
-                       Linkable link =
-                               (Linkable) Network.get(i).getProtocol(pid);
-                       link.pack();
-               }
-       }
-       return false;
-}
-
-//--------------------------------------------------------------------------
-
-/** The method that should wire (add edges to) the given graph. Has to
-* be implemented by extending classes */
-public abstract void wire(Graph g);
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/WireKOut.java b/contrib/psg/src/peersim/dynamics/WireKOut.java
deleted file mode 100644 (file)
index 927ddbd..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.*;
-import peersim.core.*;
-import peersim.config.*;
-
-/**
- * Takes a {@link Linkable} protocol and adds random connections. Note that no
- * connections are removed, they are only added. So it can be used in
- * combination with other initializers.
- * @see GraphFactory#wireKOut
- */
-public class WireKOut extends WireGraph {
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The number of outgoing edges to generate from each node.
- * Passed to {@link GraphFactory#wireKOut}.
- * No loop edges are generated.
- * In the undirected case, the degree
- * of nodes will be on average almost twice as much because the incoming links
- * also become links out of each node.
- * @config
- */
-private static final String PAR_DEGREE = "k";
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/**
- * The number of outgoing edges to generate from each node.
- */
-private final int k;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireKOut(String prefix)
-{
-       super(prefix);
-       k = Configuration.getInt(prefix + "." + PAR_DEGREE);
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/** Calls {@link GraphFactory#wireKOut}. */
-public void wire(Graph g) {
-
-       GraphFactory.wireKOut(g,k,CommonState.r);
-}
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/WireRegRootedTree.java b/contrib/psg/src/peersim/dynamics/WireRegRootedTree.java
deleted file mode 100644 (file)
index e8e0952..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.*;
-import peersim.config.*;
-
-/**
- * Takes a {@link peersim.core.Linkable} protocol and adds connections that
- * define a regular
- * rooted tree. Note that no
- * connections are removed, they are only added. So it can be used in
- * combination with other initializers.
- * @see #wire
- * @see GraphFactory#wireRegRootedTree
- */
-public class WireRegRootedTree extends WireGraph {
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The parameter of the tree wiring method.
- * It is passed to {@link GraphFactory#wireRegRootedTree}.
- * @config
- */
-private static final String PAR_DEGREE = "k";
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-private final int k;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireRegRootedTree(String prefix)
-{
-       super(prefix);
-       k = Configuration.getInt(prefix + "." + PAR_DEGREE);
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/** Calls {@link GraphFactory#wireRegRootedTree}. */
-public void wire(Graph g) {
-
-       GraphFactory.wireRegRootedTree(g,k);
-}
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/WireRingLattice.java b/contrib/psg/src/peersim/dynamics/WireRingLattice.java
deleted file mode 100644 (file)
index a23822e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.*;
-import peersim.config.Configuration;
-
-/**
- * Takes a {@link peersim.core.Linkable} protocol and adds edges that
- * define a ring lattice.
- * Note that no connections are removed, they are only added. So it can be used
- * in combination with other initializers.
- * @see  GraphFactory#wireRingLattice
- */
-public class WireRingLattice extends WireGraph {
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/**
- * The "lattice parameter" of the graph. The out-degree of the graph is equal to
- * 2k. See {@link GraphFactory#wireRingLattice} (to which this parameter is
- * passed) for further details.
- * @config
- */
-private static final String PAR_K = "k";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/**
- */
-private final int k;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireRingLattice(String prefix)
-{
-       super(prefix);
-       k = Configuration.getInt(prefix + "." + PAR_K);
-}
-
-//--------------------------------------------------------------------------
-//Public methods
-//--------------------------------------------------------------------------
-
-/** calls {@link GraphFactory#wireRingLattice}. */
-public void wire(Graph g)
-{
-       GraphFactory.wireRingLattice(g, k);
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/dynamics/WireScaleFreeBA.java b/contrib/psg/src/peersim/dynamics/WireScaleFreeBA.java
deleted file mode 100644 (file)
index 3b6ca30..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.graph.*;
-
-/**
-* This class contains the implementation of the Barabasi-Albert model
-* of growing scale free networks. The original model is described in
-* <a href="http://arxiv.org/abs/cond-mat/0106096">http://arxiv.org/abs/cond-mat/0106096</a>. It also contains the option of building
-* a directed network, in which case the model is a variation of the BA model
-* described in <a href="http://arxiv.org/pdf/cond-mat/0408391">
-http://arxiv.org/pdf/cond-mat/0408391</a>. In both cases, the number of the
-* initial set of nodes is the same as the degree parameter, and no links are
-* added. The first added node is connected to all of the initial nodes,
-* and after that the BA model is used normally.
-* @see GraphFactory#wireScaleFreeBA
-*/
-public class WireScaleFreeBA extends WireGraph {
-
-
-// ================ constants ============================================
-// =======================================================================
-
-/**
- * The number of edges added to each new node (apart from those forming the 
- * initial network).
- * Passed to {@link GraphFactory#wireScaleFreeBA}.
- * @config
- */
-private static final String PAR_DEGREE = "k";
-
-
-// =================== fields ============================================
-// =======================================================================
-
-/** Parameter of the BA model. */
-private int k;
-
-// ===================== initialization ==================================
-// =======================================================================
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
-*/
-public WireScaleFreeBA(String prefix)
-{
-       super(prefix);
-       k = Configuration.getInt(prefix + "." + PAR_DEGREE);
-}
-
-
-// ======================== methods =======================================
-// ========================================================================
-
-
-/** calls {@link GraphFactory#wireScaleFreeBA}.*/
-public void wire(Graph g) {
-       
-       GraphFactory.wireScaleFreeBA(g,k,CommonState.r );
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/WireScaleFreeDM.java b/contrib/psg/src/peersim/dynamics/WireScaleFreeDM.java
deleted file mode 100644 (file)
index 06ae973..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.dynamics;
-
-import peersim.graph.Graph;
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Wires a scale free graph using a method described in
- * <a href="http://xxx.lanl.gov/abs/cond-mat/0106144">this paper</a>.
- * It is an incremental technique, where the new nodes are connected to
- * the two ends of an edge that is already in the network.
- * This model always wires undirected links.
- */
-public class WireScaleFreeDM extends WireGraph {
-
-
-//--------------------------------------------------------------------------
-// Constants
-//--------------------------------------------------------------------------
-
-/** 
- * The number of edges added to each new
- * node (apart from those forming the initial network) is twice this
- * value.
- * @config
- */
-private static final String PAR_EDGES = "k";
-
-
-//--------------------------------------------------------------------------
-// Fields
-//--------------------------------------------------------------------------
-
-
-/** The number of edges created for a new node is 2*k. */      
-private final int k;
-
-
-//--------------------------------------------------------------------------
-// Constructor
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireScaleFreeDM(String prefix)
-{
-       super(prefix);
-       k = Configuration.getInt(prefix + "." + PAR_EDGES);
-}
-
-
-//--------------------------------------------------------------------------
-// Methods
-//--------------------------------------------------------------------------
-
-/**
- * Wires a scale free graph using a method described in
- * <a href="http://xxx.lanl.gov/abs/cond-mat/0106144">this paper</a>.
- * It is an incremental technique, where the new nodes are connected to
- * the two ends of an edge that is already in the network.
- * This model always wires undirected links.
-*/
-public void wire(Graph g) {
-
-       int nodes=g.size();
-       int[] links = new int[4*k*nodes];
-
-       // Initial number of nodes connected as a clique
-       int clique = (k > 3 ? k : 3);
-
-       // Add initial edges, to form a clique
-       int len=0;
-       for (int i=0; i < clique; i++)
-       for (int j=0; j < clique; j++)
-       {
-               if (i != j)
-               {
-                       g.setEdge(i,j);
-                       g.setEdge(j,i);
-                       links[len*2] = i;
-                       links[len*2+1] = j;
-                       len++;
-               }
-       }
-
-       for (int i=clique; i < nodes; i++)
-       for (int l=0; l < k; l++)
-       {
-               int edge = CommonState.r.nextInt(len);
-               int m = links[edge*2];
-               int j = links[edge*2+1];
-               g.setEdge(i, m);
-               g.setEdge(m, i);
-               g.setEdge(j, m);
-               g.setEdge(m, j);
-               links[len*2] = i;
-               links[len*2+1] = m;
-               len++;
-               links[len*2] = j;
-               links[len*2+1] = m;
-               len++;
-       }
-}
-               
-}
diff --git a/contrib/psg/src/peersim/dynamics/WireStar.java b/contrib/psg/src/peersim/dynamics/WireStar.java
deleted file mode 100644 (file)
index 0f11b64..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.dynamics;
-
-import peersim.graph.*;
-
-/**
- * Takes a {@link peersim.core.Linkable} protocol and adds connection
- * which for a star
- * topology. No connections are removed, they are only added. So it can be used
- * in combination with other initializers.
- * @see GraphFactory#wireStar
- */
-public class WireStar extends WireGraph {
-
-// ===================== initialization ==============================
-// ===================================================================
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireStar(String prefix) { super(prefix); }
-
-// ===================== public methods ==============================
-// ===================================================================
-
-
-/** Calls {@link GraphFactory#wireStar}.*/
-public void wire(Graph g) {
-       
-       GraphFactory.wireStar(g);
-}
-
-
-}
-
diff --git a/contrib/psg/src/peersim/dynamics/WireWS.java b/contrib/psg/src/peersim/dynamics/WireWS.java
deleted file mode 100644 (file)
index 65cefed..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.dynamics;
-
-import peersim.graph.*;
-import peersim.core.*;
-import peersim.config.Configuration;
-
-/**
-* Takes a {@link Linkable} protocol and adds connections following the
-* small-world model of Watts and Strogatz. Note that no
-* connections are removed, they are only added. So it can be used in
-* combination with other initializers.
-* @see GraphFactory#wireWS
-*/
-public class WireWS extends WireGraph {
-
-
-// ========================= fields =================================
-// ==================================================================
-
-/**
- * The beta parameter of a Watts-Strogatz graph represents the probability for a
- * node to be re-wired.
- * Passed to {@link GraphFactory#wireWS}.
- * @config
- */
-private static final String PAR_BETA = "beta";
-
-/**
- * The degree of the graph. See {@link GraphFactory#wireRingLattice}.
- * Passed to {@link GraphFactory#wireWS}.
- * @config
- */
-private static final String PAR_DEGREE = "k";
-
-/**
- * The degree of the regular graph
- */
-private final int k;
-
-/**
- * The degree of the regular graph
- */
-private final double beta;
-
-
-// ==================== initialization ==============================
-//===================================================================
-
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public WireWS(String prefix) {
-
-       super(prefix);
-       k = Configuration.getInt(prefix+"."+PAR_DEGREE);
-       beta = Configuration.getDouble(prefix+"."+PAR_BETA);
-}
-
-
-// ===================== public methods ==============================
-// ===================================================================
-
-
-/** calls {@link GraphFactory#wireWS}.*/
-public void wire(Graph g) {
-
-       GraphFactory.wireWS(g,k,beta,CommonState.r);
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/edsim/CDScheduler.java b/contrib/psg/src/peersim/edsim/CDScheduler.java
deleted file mode 100644 (file)
index f864ff5..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.*;
-import peersim.cdsim.CDProtocol;
-import peersim.config.*;
-import peersim.dynamics.NodeInitializer;
-
-/**
- * Schedules the first execution of the cycle based protocol instances in the
- * event driven engine. It implements {@link Control} but it will most often be
- * invoked only once for each protocol as an initializer, since the scheduled
- * events schedule themselves for the consecutive executions (see
- * {@link NextCycleEvent}).
- *
- * <p>
- * All {@link CDProtocol} specifications in the configuration need to contain a
- * {@link Scheduler} specification at least for the step size (see config
- * parameter {@value peersim.core.Scheduler#PAR_STEP} of {@link Scheduler}).
- * This value is used as the cycle length for the corresponding protocol.
- *
- * @see NextCycleEvent
- */
-public class CDScheduler implements Control, NodeInitializer {
-
-       // ============================== fields ==============================
-       // ====================================================================
-
-       /**
-        * Parameter that is used to define the class that is used to schedule the
-        * next cycle. Its type is (or extends) {@link NextCycleEvent}. Defaults to
-        * {@link NextCycleEvent}.
-        * 
-        * @config
-        */
-       private static final String PAR_NEXTC = "nextcycle";
-
-       /**
-        * The protocols that this scheduler schedules for the first execution. It
-        * might contain several protocol names, separated by whitespace. All
-        * protocols will be scheduled based on the common parameter set for this
-        * scheduler and the parameters of the protocol (cycle length). Protocols
-        * are scheduled independently of each other.
-        * 
-        * @config
-        */
-       private static final String PAR_PROTOCOL = "protocol";
-
-       /**
-        * If set, it means that the initial execution of the given protocol is
-        * scheduled for a different random time for all nodes. The random time is a
-        * sample between the current time (inclusive) and the cycle length
-        * (exclusive), the latter being specified by the step parameter (see
-        * {@link Scheduler}) of the assigned protocol.
-        * 
-        * @see #execute
-        * @config
-        */
-       private static final String PAR_RNDSTART = "randstart";
-
-       /**
-        * Contains the scheduler objects for all {@link CDProtocol}s defined in the
-        * configuration. The length of the array is the number of protocols
-        * defined, but those entries that belong to protocols that are not
-        * {@link CDProtocol}s are null.
-        */
-       public static final Scheduler[] sch;
-
-       private final NextCycleEvent[] nce;
-
-       private final int[] pid;
-
-       private final boolean randstart;
-
-       // =============================== initialization ======================
-       // =====================================================================
-
-       /**
-        * Loads protocol schedulers for all protocols.
-        */
-       static {
-
-               String[] names = Configuration.getNames(Node.PAR_PROT);
-               sch = new Scheduler[names.length];
-               for (int i = 0; i < names.length; ++i) {
-                       if (Network.prototype.getProtocol(i) instanceof CDProtocol)
-                               // with no default values for step to avoid
-                               // "overscheduling" due to lack of step option.
-                               sch[i] = new Scheduler(names[i], false);
-               }
-       }
-
-       // --------------------------------------------------------------------
-
-       /**
-        * Initialization based on configuration parameters.
-        */
-       public CDScheduler(String n) {
-               String[] prots = Configuration.getString(n + "." + PAR_PROTOCOL).split("\\s");
-               pid = new int[prots.length];
-               nce = new NextCycleEvent[prots.length];
-               for (int i = 0; i < prots.length; ++i) {
-                       pid[i] = Configuration.lookupPid(prots[i]);
-                       if (!(Network.prototype.getProtocol(pid[i]) instanceof CDProtocol)) {
-                               throw new IllegalParameterException(n + "." + PAR_PROTOCOL,
-                                               "Only CDProtocols are accepted here");
-                       }
-                       nce[i] = (NextCycleEvent) Configuration.getInstance(n + "."
-                                       + PAR_NEXTC, new NextCycleEvent(null));
-               }
-               randstart = Configuration.contains(n + "." + PAR_RNDSTART);
-       }
-
-       // ========================== methods ==================================
-       // =====================================================================
-
-       /**
-        * Schedules the protocol at all nodes for the first execution adding it to
-        * the priority queue of the event driven simulation. The time of the first
-        * execution is determined by {@link #firstDelay}. The implementation calls
-        * {@link #initialize} for all nodes.
-        * 
-        * @see #initialize
-        */
-       public boolean execute() {
-
-               for (int i = 0; i < Network.size(); ++i) {
-                       initialize(Network.get(i));
-               }
-
-               return false;
-       }
-
-       // --------------------------------------------------------------------
-
-       /**
-        * Schedules the protocol at given node for the first execution adding it to
-        * the priority queue of the event driven simulation. The time of the first
-        * execution is determined by a reference point in time and
-        * {@link #firstDelay}, which defines the delay from the reference point.
-        * The reference point is the maximum of the current time, and the value of
-        * parameter {@value peersim.core.Scheduler#PAR_FROM} of the protocol being
-        * scheduled. If the calculated time of the first execution is not valid
-        * according to the schedule of the protocol then no execution is scheduled
-        * for that protocol.
-        * <p>
-        * A final note: for performance reasons, the recommended practice is not to
-        * use parameter {@value peersim.core.Scheduler#PAR_FROM} in protocols, but
-        * to schedule {@link CDScheduler} itself for the desired time, whenever
-        * possible (e.g., it is not possible if {@link CDScheduler} is used as a
-        * {@link NodeInitializer}).
-        */
-       public void initialize(Node n) {
-               /*
-                * XXX If "from" is not the current time and this is used as a control
-                * (not node initializer) then we dump _lots_ of events in the queue
-                * that are just stored there until "from" comes. This reduces
-                * performance, and should be fixed. When fixed, the final comment can
-                * be removed from the docs.
-                */
-
-               final long time = CommonState.getTime();
-               for (int i = 0; i < pid.length; ++i) {
-                       Object nceclone = null;
-                       try {
-                               nceclone = nce[i].clone();
-                       } catch (CloneNotSupportedException e) {
-                       } // cannot possibly happen
-
-                       final long delay = firstDelay(sch[pid[i]].step);
-                       final long nexttime = Math.max(time, sch[pid[i]].from) + delay;
-                       if (nexttime < sch[pid[i]].until)
-                               EDSimulator.add(nexttime - time, nceclone, n, pid[i]);
-               }
-       }
-
-       // --------------------------------------------------------------------
-
-       /**
-        * Returns the time (through giving the delay from the current time) when
-        * this even is first executed. If {@value #PAR_RNDSTART} is not set, it
-        * returns zero, otherwise a random value between 0, inclusive, and
-        * cyclelength, exclusive.
-        * 
-        * @param cyclelength
-        *            The cycle length of the cycle based protocol for which this
-        *            method is called
-        */
-       protected long firstDelay(long cyclelength) {
-
-               if (randstart)
-                       return CommonState.r.nextLong(cyclelength);
-               else
-                       return 0;
-       }
-}
diff --git a/contrib/psg/src/peersim/edsim/ControlEvent.java b/contrib/psg/src/peersim/edsim/ControlEvent.java
deleted file mode 100644 (file)
index 8c12d3a..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.Control;
-import peersim.core.Scheduler;
-
-
-/**
- * Wrapper for {@link Control}s to be executed in an event driven simulation.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.5 $
- */
-class ControlEvent
-{
-
-//---------------------------------------------------------------------
-//Fields
-//---------------------------------------------------------------------
-
-/** 
- * The reference to the dynamics to be executed; null if this cycle event
- * refers to an observer.
- */
-private Control control;
-
-/** Order index used to maintain order between cycle-based events */
-private int order;
-
-
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/** 
- * Scheduler object to obtain the next schedule time of this event 
- */
-private Scheduler scheduler;
-
-/**
- * Creates a cycle event for a control object. It also schedules the object
- * for the first execution adding it to the priority queue of the event driven
- * simulation.
- */
-public ControlEvent(Control control, Scheduler scheduler, int order)
-{
-       this.control = control;
-       this.order = order;
-       this.scheduler = scheduler;
-       long next = scheduler.getNext();
-       if( next>=0 ) EDSimulator.addControlEvent(next, order, this);
-}
-
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/**
-* Executes the control object, and schedules the object for the next execution
-* adding it to the priority queue of the event driven simulation.
-*/
-public boolean execute() {
-
-       boolean ret = control.execute();
-       long next = scheduler.getNext();
-       if( next>=0 ) EDSimulator.addControlEvent(next, order, this);
-       return ret;
-}
-
-}
-
-
diff --git a/contrib/psg/src/peersim/edsim/EDProtocol.java b/contrib/psg/src/peersim/edsim/EDProtocol.java
deleted file mode 100644 (file)
index 60c83a2..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.edsim;
-
-import peersim.core.*;
-
-/**
- * The interface to be implemented by protocols run under the event-driven
- * model. A single method is provided, to deliver events to the protocol.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.5 $
- */
-public interface EDProtocol 
-extends Protocol 
-{
-
-       /**
-       * This method is invoked by the scheduler to deliver events to the
-       * protocol. Apart from the event object, information about the node
-       * and the protocol identifier are also provided. Additional information
-       * can be accessed through the {@link CommonState} class.
-       * 
-       * @param node the local node
-       * @param pid the identifier of this protocol
-       * @param event the delivered event
-       */
-       public void processEvent( Node node, int pid, Object event );
-
-}
-
diff --git a/contrib/psg/src/peersim/edsim/EDSimulator.java b/contrib/psg/src/peersim/edsim/EDSimulator.java
deleted file mode 100644 (file)
index e56d021..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import java.util.Arrays;
-
-import peersim.Simulator;
-import peersim.config.*;
-import peersim.core.*;
-import psgsim.PSGSimulator;
-
-/**
- * Event-driven simulator engine. It is a fully static singleton class. For an
- * event driven simulation the configuration has to describe a set of
- * {@link Protocol}s, a set of {@link Control}s and their ordering and a set of
- * initializers and their ordering. See parameters {@value #PAR_INIT},
- * {@value #PAR_CTRL}.
- * <p>
- * One experiment run by {@link #nextExperiment} works as follows. First the
- * initializers are run in the specified order. Then the first execution of all
- * specified controls is scheduled in the event queue. This scheduling is
- * defined by the {@link Scheduler} parameters of each control component. After
- * this, the first event is taken from the event queue. If the event wraps a
- * control, the control is executed, otherwise the event is delivered to the
- * destination protocol, that must implement {@link EDProtocol}. This is
- * iterated while the current time is less than {@value #PAR_ENDTIME} or the
- * queue becomes empty. If more control events fall at the same time point, then
- * the order given in the configuration is respected. If more non-control events
- * fall at the same time point, they are processed in a random order.
- * <p>
- * The engine also provides the interface to add events to the queue. Note that
- * this engine does not explicitly run the protocols. In all cases at least one
- * control or initializer has to be defined that sends event(s) to protocols.
- * <p>
- * Controls can be scheduled (using the {@link Scheduler} parameters in the
- * configuration) to run after the experiment has finished. That is, each
- * experiment is finished by running the controls that are scheduled to be run
- * after the experiment.
- * <p>
- * Any control can interrupt an experiment at any time it is executed by
- * returning true in method {@link Control#execute}. However, the controls
- * scheduled to run after the experiment are still executed completely,
- * irrespective of their return value and even if the experiment was
- * interrupted.
- * <p>
- * {@link CDScheduler} has to be mentioned that is a control that can bridge the
- * gap between {@link peersim.cdsim} and the event driven engine. It can wrap
- * {@link peersim.cdsim.CDProtocol} appropriately so that the execution of the
- * cycles are scheduled in configurable ways for each node individually. In some
- * cases this can add a more fine-grained control and more realism to
- * {@link peersim.cdsim.CDProtocol} simulations, at the cost of some loss in
- * performance.
- * <p>
- * When protocols at different nodes send messages to each other, they might
- * want to use a model of the transport layer so that in the simulation message
- * delay and message omissions can be modeled in a modular way. This
- * functionality is implemented in package {@link peersim.transport}.
- * 
- * @see Configuration
- */
-public class EDSimulator {
-
-       // ---------------------------------------------------------------------
-       // Parameters
-       // ---------------------------------------------------------------------
-
-       /**
-        * The ending time for simulation. Only events that have a strictly smaller
-        * value are executed. It must be positive. Although in principle negative
-        * timestamps could be allowed, we assume time will be positive.
-        * 
-        * @config
-        */
-       public static final String PAR_ENDTIME = "simulation.endtime";
-
-       /**
-        * This parameter specifies how often the simulator should log the current
-        * time on the standard error. The time is logged only if there were events
-        * in the respective interval, and only the time of some actual event is
-        * printed. That is, the actual log is not guaranteed to happen in identical
-        * intervals of time. It is merely a way of seeing whether the simulation
-        * progresses and how fast...
-        * 
-        * @config
-        */
-       private static final String PAR_LOGTIME = "simulation.logtime";
-
-       /**
-        * This parameter specifies the event queue to be used. It must be an
-        * implementation of interface {@link PriorityQ}. If it is not defined, the
-        * internal implementation is used.
-        * 
-        * @config
-        */
-       private static final String PAR_PQ = "simulation.eventqueue";
-
-       /**
-        * This is the prefix for initializers. These have to be of type
-        * {@link Control}. They are run at the beginning of each experiment, in the
-        * order specified by the configuration.
-        * 
-        * @see Configuration
-        * @config
-        * @config
-        */
-       private static final String PAR_INIT = "init";
-
-       /**
-        * This is the prefix for {@link Control} components. They are run at the
-        * time points defined by the {@link Scheduler} associated to them. If some
-        * controls have to be executed at the same time point, they are executed in
-        * the order specified in the configuration.
-        * 
-        * @see Configuration
-        * @config
-        */
-       private static final String PAR_CTRL = "control";
-
-       // ---------------------------------------------------------------------
-       // Fields
-       // ---------------------------------------------------------------------
-
-       /** Maximum time for simulation */
-       private static long endtime;
-
-       /** Log time */
-       private static long logtime;
-
-       /** holds the modifiers of this simulation */
-       private static Control[] controls = null;
-
-       /** Holds the control schedulers of this simulation */
-       private static Scheduler[] ctrlSchedules = null;
-
-       /** Ordered list of events (heap) */
-       private static PriorityQ heap = null;
-
-       private static long nextlog = 0;
-
-       // =============== initialization ======================================
-       // =====================================================================
-
-       /** to prevent construction */
-       private EDSimulator() {
-       }
-
-       // ---------------------------------------------------------------------
-       // Private methods
-       // ---------------------------------------------------------------------
-
-       /**
-        * Load and run initializers.
-        */
-       private static void runInitializers() {
-
-               Object[] inits = Configuration.getInstanceArray(PAR_INIT);
-               String names[] = Configuration.getNames(PAR_INIT);
-
-               for (int i = 0; i < inits.length; ++i) {
-
-                       System.err.println("- Running initializer " + names[i] + ": "
-                                       + inits[i].getClass());
-                       ((Control) inits[i]).execute();
-               }
-       }
-
-       // --------------------------------------------------------------------
-
-       private static void scheduleControls() {
-               // load controls
-               String[] names = Configuration.getNames(PAR_CTRL);
-               controls = new Control[names.length];
-               ctrlSchedules = new Scheduler[names.length];
-               for (int i = 0; i < names.length; ++i) {
-                       controls[i] = (Control) Configuration.getInstance(names[i]);
-                       ctrlSchedules[i] = new Scheduler(names[i], false);
-               }
-               System.err.println("EDSimulator: loaded controls "
-                               + Arrays.asList(names));
-
-               // Schedule controls execution
-               if (controls.length > heap.maxPriority() + 1)
-                       throw new IllegalArgumentException("Too many control objects");
-               for (int i = 0; i < controls.length; i++) {
-                       new ControlEvent(controls[i], ctrlSchedules[i], i);
-               }
-       }
-
-       // ---------------------------------------------------------------------
-
-       /**
-        * Adds a new event to be scheduled, specifying the number of time units of
-        * delay, and the execution order parameter.
-        * 
-        * @param time
-        *            The actual time at which the next event should be scheduled.
-        * @param order
-        *            The index used to specify the order in which control events
-        *            should be executed, if they happen to be at the same time,
-        *            which is typically the case.
-        * @param event
-        *            The control event
-        */
-       static void addControlEvent(long time, int order, ControlEvent event) {
-               // we don't check whether time is negative or in the past: we trust
-               // the caller, which must be from this package
-               if (time >= endtime)
-                       return;
-               heap.add(time, event, null, (byte) 0, order);
-       }
-
-       // ---------------------------------------------------------------------
-
-       /**
-        * This method is used to check whether the current configuration can be
-        * used for event driven simulations. It checks for the existence of config
-        * parameter {@value #PAR_ENDTIME}.
-        */
-       public static final boolean isConfigurationEventDriven() {
-               return Configuration.contains(PAR_ENDTIME);
-       }
-
-       // ---------------------------------------------------------------------
-
-       /**
-        * Execute and remove the next event from the ordered event list.
-        * 
-        * @return true if the execution should be stopped.
-        */
-       private static boolean executeNext() {
-               PriorityQ.Event ev = heap.removeFirst();
-               if (ev == null) {
-                       System.err.println("EDSimulator: queue is empty, quitting"
-                                       + " at time " + CommonState.getTime());
-                       return true;
-               }
-
-               long time = ev.time;
-
-               if (time >= nextlog) {
-                       // System.err.println("Current time: " + time);
-                       // seemingly complicated: to prevent overflow
-                       while (time - nextlog >= logtime)
-                               nextlog += logtime;
-                       if (endtime - nextlog >= logtime)
-                               nextlog += logtime;
-                       else
-                               nextlog = endtime;
-               }
-               if (time >= endtime) {
-                       System.err.println("EDSimulator: reached end time, quitting,"
-                                       + " leaving " + heap.size()
-                                       + " unprocessed events in the queue");
-                       return true;
-               }
-
-               CommonState.setTime(time);
-               int pid = ev.pid;
-                       if (ev.node == null) {
-                       // might be control event; handled through a special method
-                       ControlEvent ctrl = null;
-                       try {
-                               ctrl = (ControlEvent) ev.event;
-                       } catch (ClassCastException e) {
-                               throw new RuntimeException(
-                                               "No destination specified (null) for event " + ev);
-                       }
-                       return ctrl.execute();
-               } else if (ev.node != Network.prototype && ev.node.isUp()) {
-                       CommonState.setPid(pid);
-                       CommonState.setNode(ev.node);
-                       if (ev.event instanceof NextCycleEvent) {
-                               NextCycleEvent nce = (NextCycleEvent) ev.event;
-                               nce.execute();
-                       } else {
-                               EDProtocol prot = null;
-                               try {
-                                       prot = (EDProtocol) ev.node.getProtocol(pid);
-                                       // System.out.println("prot "+prot.getClass().getName());
-                               } catch (ClassCastException e) {
-                                       e.printStackTrace();
-                                       throw new IllegalArgumentException("Protocol "
-                                                       + Configuration.lookupPid(pid)
-                                                       + " does not implement EDProtocol; "
-                                                       + ev.event.getClass());
-                               }
-                               prot.processEvent(ev.node, pid, ev.event);
-                       }
-               }
-
-               return false;
-       }
-
-       // ---------------------------------------------------------------------
-       // Public methods
-       // ---------------------------------------------------------------------
-
-       /**
-        * Runs an experiment, resetting everything except the random seed.
-        */
-       public static void nextExperiment() {
-               // Reading parameter
-               if (Configuration.contains(PAR_PQ))
-                       heap = (PriorityQ) Configuration.getInstance(PAR_PQ);
-               else
-                       heap = new Heap();
-               endtime = Configuration.getLong(PAR_ENDTIME);
-               if (CommonState.getEndTime() < 0) // not initialized yet
-                       CommonState.setEndTime(endtime);
-               if (heap.maxTime() < endtime)
-                       throw new IllegalParameterException(PAR_ENDTIME,
-                                       "End time is too large: configured event queue only"
-                                                       + " supports " + heap.maxTime());
-               logtime = Configuration.getLong(PAR_LOGTIME, Long.MAX_VALUE);
-
-               // initialization
-               System.err.println("EDSimulator: resetting");
-               CommonState.setPhase(CommonState.PHASE_UNKNOWN);
-               CommonState.setTime(0); // needed here
-               controls = null;
-               ctrlSchedules = null;
-               nextlog = 0;
-               Network.reset();
-               System.err.println("EDSimulator: running initializers");
-               runInitializers();
-               scheduleControls();
-                       // Perform the actual simulation; executeNext() will tell when to
-               // stop.
-               boolean exit = false;
-               while (!exit) {
-                       exit = executeNext();
-               }
-
-               // analysis after the simulation
-               CommonState.setPhase(CommonState.POST_SIMULATION);
-               for (int j = 0; j < controls.length; ++j) {
-                       if (ctrlSchedules[j].fin)
-                               controls[j].execute();
-               }
-
-       }
-
-       // ---------------------------------------------------------------------
-
-       /**
-        * Adds a new event to be scheduled, specifying the number of time units of
-        * delay, and the node and the protocol identifier to which the event will
-        * be delivered.
-        * 
-        * @param delay
-        *            The number of time units before the event is scheduled. Has to
-        *            be non-negative.
-        * @param event
-        *            The object associated to this event
-        * @param node
-        *            The node associated to the event.
-        * @param pid
-        *            The identifier of the protocol to which the event will be
-        *            delivered
-        */
-       public static void add(long delay, Object event, Node node, int pid) {
-               //if (event instanceof NextCycleEvent)
-                       //System.err.println("************* edsim delay="+delay +" pid="+pid+" event="+event+" time="+CommonState.getTime());
-               if (Simulator.getSimID() == 2){
-                       PSGSimulator.add(delay, event, node, pid);
-               }
-               
-               else {
-                       if (delay < 0)
-                               throw new IllegalArgumentException("Protocol "
-                                               + node.getProtocol(pid) + " is trying to add event "
-                                               + event + " with a negative delay: " + delay);
-                       if (pid > Byte.MAX_VALUE)
-                               throw new IllegalArgumentException(
-                                               "This version does not support more than "
-                                                               + Byte.MAX_VALUE + " protocols");
-
-                       long time = CommonState.getTime();
-                       if (endtime - time > delay) // check like this to deal with overflow
-                               heap.add(time + delay, event, node, (byte) pid);
-               }
-       }
-
-}
diff --git a/contrib/psg/src/peersim/edsim/Heap.java b/contrib/psg/src/peersim/edsim/Heap.java
deleted file mode 100644 (file)
index eb123ac..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * Copyright (c) 2001 The Anthill Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.Node;
-import peersim.core.CommonState;
-import peersim.config.Configuration;
-import peersim.config.IllegalParameterException;
-
-/**
- *  The Heap data structure used to maintain events "sorted" by 
- *  scheduled time and to obtain the next event to be executed.
- *  
- *  @author Alberto Montresor
- *  @version $Revision: 1.10 $
- */
-public class Heap implements PriorityQ {
-
-//--------------------------------------------------------------------------
-// Constants
-//--------------------------------------------------------------------------
-
-/** 
- * This parameter specifies how many
- * bits are used to order events that occur at the same time. Defaults
- * to 8. A value smaller than 8 causes an IllegalParameterException.
- * Higher values allow for a better discrimination, but reduce
- * the maximal time steps that can be simulated.
- * @config 
- */    
-private static final String PAR_PBITS = "pbits";
-private static final String PAR_PBITS_LEGACY = "simulation.timebits";
-
-/** 
- * Specifies the initial capacity of the heap. Defaults to 65536.
- * @config 
- */    
-private static final String PAR_SIZE = "size";
-
-
-//--------------------------------------------------------------------------
-// Fields
-//--------------------------------------------------------------------------
-
-// The following arrays are four heaps ordered by time. The alternative
-// approach (i.e. to store event objects) requires much more memory,
-// and based on some tests that I've done is not really much faster.
-
-/** Event component of the heap */
-private Object[] events;
-
-/** Time component of the heap */
-private long[] times;
-
-/** Node component of the heap */
-private Node[] nodes;
-
-/** Pid component of the heap */
-private byte[] pids;
-
-/** Number of elements */
-private int size;
-
-/** Singleton event object used to return (event, time, node, pid) tuples */
-private final Event ev = new Event();
-
-/** The number of bits reserved to order event with the same timestamp */
-private final int pbits;
-
-/** The mask to test whether the time value fits into the range we can
-represent */
-private final long overflowMask;
-
-//--------------------------------------------------------------------------
-// Contructor
-//--------------------------------------------------------------------------
-
-/**
- * Initializes a new heap using defaults.
- */
-public Heap() {
-       this(""); // "" is not a valid prefix for a component
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Initializes a new heap using the configuration.
- */
-public Heap(String prefix) {
-
-       int size = Configuration.getInt(prefix+"."+PAR_SIZE,65536);
-       
-       // some complex stuff to deal with legacy parameter names...
-       if( !Configuration.contains(PAR_PBITS_LEGACY) )
-               pbits = Configuration.getInt(prefix+"."+PAR_PBITS,8);
-       else
-       {
-               pbits = Configuration.getInt(PAR_PBITS_LEGACY);
-               if( Configuration.contains(prefix+"."+PAR_PBITS) )
-                       throw new IllegalParameterException(PAR_PBITS_LEGACY,
-                               "Your configuration file contains both "+
-                               prefix+"."+PAR_PBITS+ " and "+
-                               PAR_PBITS_LEGACY+"; please remove "+
-                               PAR_PBITS_LEGACY);
-       }
-
-       if (pbits < 8 || pbits >= 31) {
-               throw new IllegalParameterException(prefix+"."+PAR_PBITS,
-               "This parameter should be >= 8 or < 31");
-       }
-       overflowMask = ~maxTime();
-       events = new Object[size];
-       times = new long[size];
-       nodes = new Node[size];
-       pids = new byte[size];
-}
-
-//--------------------------------------------------------------------------
-// Methods
-//--------------------------------------------------------------------------
-
-/**
- * Returns the current number of events in the system.
- */
-public int size()
-{
-       return size;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Add a new event, to be scheduled at the specified time.
- * 
- * @param time the time at which this event should be scheduled
- * @param event the object describing the event
- * @param node the node at which the event has to be delivered
- * @param pid the protocol that handles the event
- */
-public void add(long time, Object event, Node node, byte pid) 
-{
-       add(time,event,node,pid,CommonState.r.nextInt(1 << pbits));
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Add a new event, to be scheduled at the specified time.
- * 
- * @param time the time at which this event should be scheduled
- * @param event the object describing the event
- * @param node the node at which the event has to be delivered
- * @param pid the protocol that handles the event
- */
-public void add(long time, Object event, Node node, byte pid, long priority) 
-{
-       if( (time&overflowMask) != 0 ) throw new
-               IllegalArgumentException("Time overflow: time="+time);
-//XXX should we test priority overflow? How much does it cost?
-       
-       time = (time << pbits) | priority;
-       
-       size++;
-       int pos = size;
-       put(pos, time, event, node, pid);
-       while (pos > 1 && getTime(pos / 2) > time) {
-               swap(pos, pos / 2);
-               pos = pos / 2;
-       }
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Removes the first event in the heap and returns it.
- * Note that, to avoid garbage collection, a singleton instance of
- * the Event class is used. This means that data contained in the
- * returned event are overwritten when a new invocation of this
- * method is performed.
- * @return first event or null if size is zero
- */
-public Event removeFirst() {
-       
-       if(size==0) return null;
-
-       ev.time = times[0] >> pbits;
-       ev.event = events[0];
-       ev.node = nodes[0];
-       ev.pid = pids[0];
-       swap(1, size);
-       size--;
-       minHeapify(1);
-       return ev;
-}
-
-//--------------------------------------------------------------------------
-
-public long maxTime() { return Long.MAX_VALUE >> pbits; }
-
-//--------------------------------------------------------------------------
-
-public long maxPriority() { return (1L << pbits)-1; }
-
-//--------------------------------------------------------------------------
-
-/** 
- *  Prints the time values contained in the heap.
- */
-public String toString()
-{
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("[Size: " + size + " Times: ");
-       for (int i=1; i <= size; i++) {
-               buffer.append(getTime(i)+",");
-       }
-       buffer.append("]");
-       return buffer.toString();
-}
-
-
-//--------------------------------------------------------------------------
-// Private methods
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-private void minHeapify(int index) 
-{
-       // The time to be placed of the current node
-       long time = getTime(index);  
-       // Left, right children of the current index
-       int l,r; 
-       // Their associated time
-       long lt, rt;
-       // The minimum time between val, lt, rt
-       long mintime;
-       // The index of the mininum time
-       int minindex = index; 
-       do {
-               index = minindex;
-               mintime = time;
-               l = index << 1;
-               r = l + 1;
-               if (l <= size && (lt = getTime(l)) < mintime) {
-                       minindex = l;
-                       mintime = lt;
-               }
-               if (r <= size && (rt = getTime(r)) < mintime) {
-                       minindex = r;
-                       mintime = rt;
-               }
-               if (minindex != index) {
-                       swap(minindex, index);
-               }
-       } while (minindex != index);
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-private void swap(int i1, int i2) {
-       
-       i1--;
-       i2--;
-       
-       Object te = events[i1];
-       events[i1] = events[i2];
-       events[i2] = te;
-       
-       long tt = times[i1];
-       times[i1] = times[i2];
-       times[i2] = tt;
-       
-       Node tn = nodes[i1];
-       nodes[i1] = nodes[i2];
-       nodes[i2] = tn;
-
-       byte tp = pids[i1];
-       pids[i1] = pids[i2];
-       pids[i2] = tp;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-private long getTime(int index) {
-       /* Compute first and second index, and return the value */
-       index--;
-       return times[index];
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-private void put(int index, long time, Object event, Node node, byte pid) {
-       
-       index--;
-       if (index >= events.length) {
-               doubleCapacity();
-       }
-       events[index] = event;
-       times[index] = time;
-       nodes[index] = node;
-       pids[index] = pid;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-private void doubleCapacity() {
-       int oldsize = events.length;
-       int newsize = oldsize*2;
-       Object[] te = new Object[newsize];
-       System.arraycopy(events, 0, te, 0, oldsize);
-       events = te;
-       long[] tt = new long[newsize];
-       System.arraycopy(times, 0, tt, 0, oldsize);
-       times = tt;
-       Node[] tn = new Node[newsize];
-       System.arraycopy(nodes, 0, tn, 0, oldsize);
-       nodes = tn;
-       byte[] tp = new byte[newsize];
-       System.arraycopy(pids, 0, tp, 0, oldsize);
-       pids = tp;
-}
-
-//--------------------------------------------------------------------------
-// Testing
-//--------------------------------------------------------------------------
-
-/*
-public static void main(String[] args) {
-       Random random = new Random();
-       Heap heap = new Heap();
-       int rep = 1000000;
-       if( args.length > 0 ) rep = Integer.parseInt(args[0]);
-       int[] values1 = new int[rep];
-       long[] values2 = new long[rep];
-       for (int i = 0; i < rep; i++) {
-               values1[i] = random.nextInt(1000000000); 
-       }
-       
-       long time1 = System.currentTimeMillis();
-       for (int i = 0; i < rep; i++) {
-               heap.add(values1[i], null, null, (byte) 1);
-       }
-       long time2 = System.currentTimeMillis();
-       System.out.println("Inserting: " + (time2-time1));
-       
-       time1 = System.currentTimeMillis();
-       for (int i = 0; i < rep; i++) {
-               values2[i] = heap.removeFirst().time;
-       }
-       time2 = System.currentTimeMillis();
-       System.out.println("Removing: " + (time2-time1));
-       
-       Arrays.sort(values1);
-       for (int i=0; i<rep; i++) {
-               if (values1[i] != values2[i])
-                       System.out.print("+");
-       }
-}
-*/
-
-} // END Heap
diff --git a/contrib/psg/src/peersim/edsim/NextCycleEvent.java b/contrib/psg/src/peersim/edsim/NextCycleEvent.java
deleted file mode 100644 (file)
index 18de9d5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.*;
-import peersim.cdsim.CDProtocol;
-
-/**
- * This class is used to wrap a {@link CDProtocol} instance into an event so
- * that it can be used in the event based simulation engine. This class is
- * responsible for calling {@link CDProtocol#nextCycle} and also to schedule the
- * consecutive cycle. In the configuration of an event driven simulation
- * {@link CDProtocol}s can be configured using {@link CDScheduler}, which places
- * appropriate instances of this events in the queue.
- *
- * <p>
- * Note that reimplementing method {@link #nextDelay} of this class allows for
- * arbitrary scheduling, including adaptively changing or irregular cycle
- * lengths, etc.
- *
- * @see CDScheduler
- * @see CDProtocol
- */
-public class NextCycleEvent implements Cloneable {
-
-       // =============================== initialization ======================
-       // =====================================================================
-
-       /**
-        * Reads configuration to initialize the object. Extending classes should
-        * have a constructor with the same signature, often as simple as
-        * <code>super(n)</code>.
-        */
-       public NextCycleEvent(String n) {
-       }
-
-       // --------------------------------------------------------------------
-
-       /**
-        * Returns a clone of the object. Overriding this method is necessary and
-        * typically is as simple as <code>return super.clone()</code>. In general,
-        * always use <code>super.clone()</code> to obtain the object to be returned
-        * on which you can perform optional deep cloning operations (arrays, etc).
-        */
-       public Object clone() throws CloneNotSupportedException {
-
-               return super.clone();
-       }
-
-       // ========================== methods ==================================
-       // =====================================================================
-
-       /**
-        * Executes the nextCycle method of the protocol, and schedules the next
-        * call using the delay returned by {@link #nextDelay}. If the next
-        * execution time as defined by the delay is outside of the valid times as
-        * defined by {@link CDScheduler#sch}, then the next event is not scheduled.
-        * Note that this means that this protocol will no longer be scheduled
-        * because the next event after the next event is scheduled by the next
-        * event.
-        */
-       public final void execute() {
-
-               int pid = CommonState.getPid();
-               Node node = CommonState.getNode();
-               CDProtocol cdp = (CDProtocol) node.getProtocol(pid);
-               cdp.nextCycle(node, pid);
-               long delay = nextDelay(CDScheduler.sch[pid].step);
-
-               if (CommonState.getTime() + delay < CDScheduler.sch[pid].until)
-                       EDSimulator.add(delay, this, node, pid);
-       }
-
-       // --------------------------------------------------------------------
-
-       /**
-        * Calculates the delay until the next execution of the protocol. This
-        * default implementation returns a constant delay equal to the step
-        * parameter (cycle length in this case) of the schedule of this event (as
-        * set in the config file).
-        */
-       protected long nextDelay(long step) {
-
-               return step;
-       }
-
-}
diff --git a/contrib/psg/src/peersim/edsim/PriorityQ.java b/contrib/psg/src/peersim/edsim/PriorityQ.java
deleted file mode 100644 (file)
index 5525768..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c)2008 The Peersim Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.Node;
-
-/**
- * The interface to be implemented by the event queue of the evend based
- * engine. An implementation must also provide the standard cosntructor
- * required by any peersim components: one that takes a String argument,
- * the component name in the configuration.
- */
-public interface PriorityQ {
-
-
-/**
- * Returns the current number of events in the queue.
- */
-public int size();
-
-/**
- * Add a new event, to be scheduled at the specified time. If there are other
- * events scheduled at the same time, then the time of execution if this event
- * relative to the other events is unspecified.
- * 
- * @param time The time at which this event should be scheduled. It is
- * guaranteed to be non-negative (so no extra checks are needed)
- * @param event the object describing the event
- * @param node the node at which the event has to be delivered
- * @param pid the protocol that handles the event
- */
-public void add(long time, Object event, Node node, byte pid);
-
-/**
- * Add a new event, to be scheduled at the specified time, specifying also
- * the priority of the event, should there be other events scheduled at the
- * same time. If both time and priority is the same for an event, then the
- * scheduling order is unspecified.
- * 
- * @param time The time at which this event should be scheduled. It is
- * guaranteed to be non-negative (so no extra checks are needed)
- * @param event the object describing the event
- * @param node the node at which the event has to be delivered
- * @param pid the protocol that handles the event
- * @param priority if for two events the "time" value is the same, this
- * value should be used to order them. Lower value means higher priority.
- * Like with time, non-negativity as assumed.
- */
-public void add(long time, Object event, Node node, byte pid, long priority);
-
-/**
- * Removes the first event in the heap and returns it.
- * The returned object is not guaranteed to be a freshly generated object,
- * that is, we allow for an implementation that keeps one copy of an event
- * object and always returns a reference to that copy.
- * @return first event or null if size is zero
- */
-public Event removeFirst();
-
-/**
-* Maximal value of time this interpretation can represent.
-*/
-public long maxTime();
-
-/**
-* Maximal value of priority this interpretation can deal with. That is,
-* the number of different priority levels is <tt>maxPriority()+1</tt> because
-* 0 is also a valid level.
-* @see #add(long,Object,Node,byte,long)
-*/
-public long maxPriority();
-
-/**
- * Return type of {@link #removeFirst()}.
- */
-public class Event
-{
-       public Object event;
-       public long time;
-       public Node node;
-       public byte pid;
-       public String toString() {
-               return event+" to node "+node+"prot "+pid+"at "+time; }
-}
-
-}
diff --git a/contrib/psg/src/peersim/edsim/RandNextCycle.java b/contrib/psg/src/peersim/edsim/RandNextCycle.java
deleted file mode 100644 (file)
index b74a4f4..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.*;
-
-
-/**
-* Implements random delay between calling the nextCycle method of the protocol.
-* @see #nextDelay
-*/
-public class RandNextCycle extends NextCycleEvent {
-
-
-// =============================== initialization ======================
-// =====================================================================
-
-
-/**
-* Calls super constructor.
-*/
-public RandNextCycle(String n) { super(n); }
-
-// --------------------------------------------------------------------
-
-/**
-* Calls super.clone().
-*/
-public Object clone() throws CloneNotSupportedException {
-       
-       return super.clone();
-}
-
-
-// ========================== methods ==================================
-// =====================================================================
-
-
-/**
-* Returns a random delay with uniform distribution between 1 (inclusive) and
-* 2*<code>step</code> (exclusive)
-* (expected value is therefore <code>step</code>).
-*/
-protected long nextDelay(long step) {
-       
-       return 1+CommonState.r.nextLong((step<<1)-1);
-}
-
-
-}
-
-
diff --git a/contrib/psg/src/peersim/edsim/RegRandNextCycle.java b/contrib/psg/src/peersim/edsim/RegRandNextCycle.java
deleted file mode 100644 (file)
index dbc5edb..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.edsim;
-
-import peersim.core.*;
-
-
-/**
-* Implements a random delay, but making sure there is exactly one call in each
-* consecutive <code>step</code> time units.
-*/
-public class RegRandNextCycle extends NextCycleEvent {
-
-// ============================== fields ==============================
-// ====================================================================
-
-/**
-* Indicates the start of the next cycle for a particular protocol
-* instance. If negative it means it has not been initialized yet.
-*/
-private long nextCycleStart = -1;
-
-// =============================== initialization ======================
-// =====================================================================
-
-
-/**
-* Calls super constructor.
-*/
-public RegRandNextCycle(String n) {
-
-       super(n);
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Calls super.clone().
-*/
-public Object clone() throws CloneNotSupportedException {
-       
-       return super.clone();
-}
-
-
-// ========================== methods ==================================
-// =====================================================================
-
-
-/**
-* Returns a random delay but making sure there is exactly one invocation in each
-* consecutive interval of length <code>step</code>. The beginning of these
-* intervals is defined by the first invocation which is in turn defined by
-* {@link CDScheduler} that initiates the protocol in question.
-*/
-protected long nextDelay(long step) {
-       
-       // at this point nextCycleStart points to the start of the next cycle
-       // (the cycle after the one in which this execution is taking place)
-       // (note that the start of the cycle is included in the cycle)
-       
-       final long now = CommonState.getTime();
-       if(nextCycleStart<0)
-       {
-               // not initialized
-               nextCycleStart=now+step;
-       }
-       
-       // to be on the safe side, we do the next while loop.
-       // although currently it never executes
-       while(nextCycleStart<=now) nextCycleStart+=step;
-       
-       // we increment nextCycleStart to point to the start of the cycle
-       // after the next cycle
-       nextCycleStart+=step;
-       
-       return nextCycleStart-now-CommonState.r.nextLong(step)-1;
-}
-
-}
-
-
diff --git a/contrib/psg/src/peersim/edsim/edsim_jsp.xmi b/contrib/psg/src/peersim/edsim/edsim_jsp.xmi
deleted file mode 100644 (file)
index 5fba52d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<jsp:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:jsp="http://www.eclipse.org/MoDisco/JSP/0.1.incubation/jsp"/>
diff --git a/contrib/psg/src/peersim/edsim/edsim_kdm.xmi b/contrib/psg/src/peersim/edsim/edsim_kdm.xmi
deleted file mode 100644 (file)
index db34498..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<kdm:Segment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:kdm="http://www.eclipse.org/MoDisco/kdm/kdm" xmlns:source="http://www.eclipse.org/MoDisco/kdm/source">
-  <model xsi:type="source:InventoryModel" name="edsim">
-    <inventoryElement xsi:type="source:Directory" name="edsim" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim">
-      <inventoryElement xsi:type="source:SourceFile" name="RandNextCycle.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/RandNextCycle.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="RegRandNextCycle.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/RegRandNextCycle.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="Heap.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/Heap.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="ControlEvent.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/ControlEvent.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="EDSimulator.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/EDSimulator.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="CDScheduler.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/CDScheduler.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="PriorityQ.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/PriorityQ.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="NextCycleEvent.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/NextCycleEvent.java"/>
-      <inventoryElement xsi:type="source:SourceFile" name="EDProtocol.java" path="/home/imb/Bureau/kbaati/pseclipse/work/PSG/src/peersim/edsim/EDProtocol.java"/>
-    </inventoryElement>
-  </model>
-</kdm:Segment>
diff --git a/contrib/psg/src/peersim/graph/BitMatrixGraph.java b/contrib/psg/src/peersim/graph/BitMatrixGraph.java
deleted file mode 100644 (file)
index 7e88fec..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* This class implements a graph which uses a bitmatrix as inner representation
-* of edges.
-*/
-public class BitMatrixGraph implements Graph {
-
-
-// ====================== private fileds ========================
-// ==============================================================
-
-private final List<BitSet> sets;
-
-private final boolean directed;
-
-// ====================== public constructors ===================
-// ==============================================================
-
-
-/**
-* Constructs a directed graph with the given number of nodes.
-* The graph has no edges initially. The graph is directed.
-* @param n size of graph
-*/
-public BitMatrixGraph( int n ) {
-
-       this(n,true);
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Constructs an graph with the given number of nodes.
-* The graph has no edges initially.
-* @param n size of graph
-* @param directed if true graph is directed
-*/
-public BitMatrixGraph( int n, boolean directed ) {
-
-       sets = new ArrayList<BitSet>(n);
-       for(int i=0; i<n; ++i) sets.add(new BitSet());
-       this.directed = directed;
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       return sets.get(i).get(j);
-}
-
-// ---------------------------------------------------------------
-
-public Collection<Integer> getNeighbours(int i) {
-       
-       Set<Integer> result = new HashSet<Integer>();
-       BitSet neighb = sets.get(i);
-       final int max = size();
-       for(int j=0; j<max; ++j)
-       {
-               if( neighb.get(j) ) result.add(j);
-       }
-
-       return Collections.unmodifiableCollection(result);
-}
-
-// ---------------------------------------------------------------
-
-/** Returns null always */
-public Object getNode(int i) { return null; }
-       
-// ---------------------------------------------------------------
-
-/**
-* Returns null always. 
-*/
-public Object getEdge(int i, int j) { return null; }
-
-// ---------------------------------------------------------------
-
-public int size() { return sets.size(); }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return directed; }
-
-// --------------------------------------------------------------------
-
-public boolean setEdge(int i, int j) {
-
-       if( i > size() || j > size() || i<0 || j<0 ) throw new
-               IndexOutOfBoundsException();
-
-       BitSet neighb = sets.get(i);
-       boolean old = neighb.get(j);
-       neighb.set(j);
-       
-       if( !old && !directed )
-       {
-               neighb = sets.get(j);
-               neighb.set(i);
-       }
-       
-       return !old;
-}
-
-// --------------------------------------------------------------------
-
-public boolean clearEdge(int i, int j) {
-
-       if( i > size() || j > size() || i<0 || j<0 ) throw new
-               IndexOutOfBoundsException();
-
-       BitSet neighb = sets.get(i);
-       boolean old = neighb.get(j);
-       neighb.clear(j);
-       
-       if( old && !directed )
-       {
-               neighb = sets.get(i);
-               neighb.clear(j);
-       }
-       
-       return old;
-}
-
-// --------------------------------------------------------------------
-
-public int degree(int i) {
-
-       BitSet neighb = sets.get(i);
-       return neighb.cardinality(); // only from jdk 1.4
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/graph/ConstUndirGraph.java b/contrib/psg/src/peersim/graph/ConstUndirGraph.java
deleted file mode 100644 (file)
index 3aac06f..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* This class is an adaptor making any Graph an undirected graph
-* by making its edges bidirectional. The graph to be made undirected
-* is passed to the constructor. Only the reference is stored.
-* However, at construction time the incoming edges are stored
-* for each node, so if the graph
-* passed to the constructor changes over time then
-* methods {@link #getNeighbours(int)} and {@link #degree(int)}
-* become inconsistent (but only those).
-* The upside of this inconvenience is that {@link #getNeighbours} will have
-* constant time complexity.
-* @see UndirectedGraph
-*/
-public class ConstUndirGraph implements Graph {
-
-
-// ====================== private fileds ========================
-// ==============================================================
-
-
-protected final Graph g;
-
-protected final List<Integer>[] in;
-
-// ====================== public constructors ===================
-// ==============================================================
-
-/**
-* Initialization based on given graph. Stores the graph and if necessary
-* (if the graph is directed) searches for the incoming edges and stores
-* them too. The given graph is stored by reference (not cloned) so it should
-* not be modified while this object is in use.
-*/
-public ConstUndirGraph( Graph g ) {
-
-       this.g = g;
-       if( !g.directed() )
-       {
-               in = null;
-       }
-       else
-       {
-               in = new List[g.size()];
-       }
-       
-       initGraph();
-}
-       
-// --------------------------------------------------------------
-
-/** Finds and stores incoming edges */
-protected void initGraph() {
-
-       final int max = g.size();
-       for(int i=0; i<max; ++i) in[i] = new ArrayList<Integer>();
-       for(int i=0; i<max; ++i)
-       {
-               for(Integer j:g.getNeighbours(i))
-               {
-                       if( ! g.isEdge(j,i) ) in[j].add(i);
-               }
-       }
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       return g.isEdge(i,j) || g.isEdge(j,i);
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Uses sets as collection so does not support multiple edges now, even if
-* the underlying directed graph does.
-*/
-public Collection<Integer> getNeighbours(int i) {
-       
-       List<Integer> result = new ArrayList<Integer>();
-       result.addAll(g.getNeighbours(i));
-       if( in != null ) result.addAll(in[i]);
-       return Collections.unmodifiableCollection(result);
-}
-
-// ---------------------------------------------------------------
-
-/** Returns the node from the underlying graph */
-public Object getNode(int i) { return g.getNode(i); }
-       
-// ---------------------------------------------------------------
-
-/**
-* If there is an (i,j) edge, returns that, otherwise if there is a (j,i)
-* edge, returns that, otherwise returns null.
-*/
-public Object getEdge(int i, int j) {
-       
-       if( g.isEdge(i,j) ) return g.getEdge(i,j);
-       if( g.isEdge(j,i) ) return g.getEdge(j,i);
-       return null;
-}
-
-// ---------------------------------------------------------------
-
-public int size() { return g.size(); }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return false; }
-
-// --------------------------------------------------------------------
-
-/** not supported */
-public boolean setEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-/** not supported */
-public boolean clearEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-public int degree(int i) { return g.degree(i)+(in==null?0:in[i].size()); }
-
-// ---------------------------------------------------------------
-/*
-public static void main( String[] args ) {
-
-       Graph net = new BitMatrixGraph(20);
-       GraphFactory.wireKOut(net,5,new Random());
-       ConstUndirGraph ug = new ConstUndirGraph(net);
-       for(int i=0; i<net.size(); ++i)
-               System.err.println(
-                       i+" "+net.getNeighbours(i)+" "+net.degree(i));
-       System.err.println("============");
-       for(int i=0; i<ug.size(); ++i)
-               System.err.println(i+" "+ug.getNeighbours(i)+" "+ug.degree(i));
-       System.err.println("============");
-       for(int i=0; i<ug.size(); ++i)
-               System.err.println(i+" "+ug.in[i]);
-       for(int i=0; i<ug.size(); ++i)
-       {
-               for(int j=0; j<ug.size(); ++j)
-                       System.err.print(ug.isEdge(i,j)?"W ":"+ ");
-               System.err.println();
-       }
-
-       GraphIO.writeUCINET_DL(net,System.out);
-       GraphIO.writeUCINET_DL(ug,System.out);
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/graph/FastUndirGraph.java b/contrib/psg/src/peersim/graph/FastUndirGraph.java
deleted file mode 100644 (file)
index 9f5de5e..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-/*
- * Created on Jan 30, 2005 by Spyros Voulgaris
- *
- */
-package peersim.graph;
-
-import java.util.ArrayList;
-import java.util.BitSet;
-
-/**
-* Speeds up {@link ConstUndirGraph#isEdge} by storing the links in an
-* adjacency matrix (in fact in a triangle).
-* Its memory consumption is huge but it's much faster if the isEdge method
-* of the original underlying graph is slow.
-*/
-public class FastUndirGraph extends ConstUndirGraph
-{
-
-private BitSet[] triangle;
-
-
-// ======================= initializarion ==========================
-// =================================================================
-
-
-/** Calls super constructor */
-public FastUndirGraph(Graph graph)
-{
-       super(graph);
-}
-
-// -----------------------------------------------------------------
-
-protected void initGraph()
-{
-       final int max = g.size();
-       triangle = new BitSet[max];
-       for (int i=0; i<max; ++i)
-       {
-               in[i] = new ArrayList<Integer>();
-               triangle[i] = new BitSet(i);
-       }
-
-       for(int i=0; i<max; ++i)
-       {
-               for(Integer out:g.getNeighbours(i))
-               {
-                       int j=out.intValue();
-                       if( ! g.isEdge(j,i) )
-                               in[j].add(i);
-                       // But always add the link to the triangle
-                       if (i>j) // make sure i>j
-                               triangle[i].set(j);
-                       else
-                               triangle[j].set(i);
-               }
-       }
-}
-
-
-// ============================ Graph functions ====================
-// =================================================================
-
-
-public boolean isEdge(int i, int j)
-{
-       // make sure i>j
-       if (i<j)
-       {
-               int ii=i;
-               i=j;
-               j=ii;
-       }
-       return triangle[i].get(j);
-}
-}
-
diff --git a/contrib/psg/src/peersim/graph/Graph.java b/contrib/psg/src/peersim/graph/Graph.java
deleted file mode 100644 (file)
index 70a2142..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.graph;
-
-import java.util.Collection;
-
-/**
-* A general graph interface. It follows the following model:
-* the graph has n nodes which are indexed from 0 to n-1.
-* The parameters of operators refer to indices only.
-* Implementations might return objects that represent the
-* nodes or edges, although this is not required.
-*
-* Undirected graphs are modelled by the interface as directed graphs in which
-* every edge (i,j) has a corresponding reverse edge (j,i).
-*/
-public interface Graph {
-
-       /**
-       * Returns true if there is a directed edge between node i
-       * and node j.
-       */
-       boolean isEdge(int i, int j);
-
-       /**
-       * Returns a collection view to all outgoing edges from
-       * i. The collection should ideally be unmodifiable.
-       * In any case, modifying the returned collection is not safe and
-       * may result in unspecified behavior.
-       */
-       Collection<Integer> getNeighbours(int i);
-
-       /**
-       * Returns the node object associated with the index. Optional
-       * operation.
-       */
-       Object getNode(int i);
-       
-       /**
-       * Returns the edge object associated with the index. Optional
-       * operation.
-       */
-       Object getEdge(int i, int j);
-
-       /**
-       * The number of nodes in the graph.
-       */
-       int size();
-
-       /**
-       * Returns true if the graph is directed otherwise false.
-       */
-       boolean directed();
-
-       /**
-       * Sets given edge, returns true if it did not exist before.
-       * If the graph is
-       * undirected, sets the edge (j,i) as well. Optional operation.
-       */
-       public boolean setEdge(int i, int j);
-
-       /**
-       * Removes given edge, returns true if it existed before. If the graph is
-       * undirected, removes the edge (j,i) as well. Optional operation.
-       */
-       public boolean clearEdge(int i, int j);
-
-       /**
-       * Returns the degree of the given node. If the graph is directed,
-       * returns out degree.
-       */
-       public int degree(int i);
-}
diff --git a/contrib/psg/src/peersim/graph/GraphAlgorithms.java b/contrib/psg/src/peersim/graph/GraphAlgorithms.java
deleted file mode 100644 (file)
index 6bbb351..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* Implements graph algorithms. The current implementation is NOT thread
-* safe. Some algorithms are not static, many times the result of an
-* algorithm can be read from non-static fields.
-*/
-public class GraphAlgorithms {
-
-// =================== public fields ==================================
-// ====================================================================
-
-/** output of some algorithms is passed here */
-public int[] root = null;
-private Stack<Integer> stack = new Stack<Integer>();
-private int counter=0;
-
-private Graph g=null;
-
-public final static int WHITE=0;
-public final static int GREY=1;
-public final static int BLACK=2;
-
-/** output of some algorithms is passed here */
-public int[] color = null;
-
-/** output of some algorithms is passed here */
-public Set<Integer> cluster = null;
-
-/** output of some algorithms is passed here */
-public int[] d = null;
-
-// =================== private methods ================================
-// ====================================================================
-
-
-/**
-* Collects nodes accessible from node "from" using depth-first search.
-* Works on the array {@link #color} which must be of the same length as
-* the size of the graph, and must contain values according to the
-* following semantics: 
-* WHITE (0): not seen yet, GREY (1): currently worked upon. BLACK
-* (other than 0 or 1): finished.
-* If a negative color is met, it is saved in the {@link #cluster} set
-* and is treated as black. This can be used to check if the currently
-* visited cluster is weakly connected to another cluster.
-* On exit no nodes are GREY.
-* The result is the modified array {@link #color} and the modified set
-* {@link #cluster}.
-*/
-private void dfs( int from ) {
-
-       color[from]=GREY;
-
-       for(int j:g.getNeighbours(from))
-       {
-               if( color[j]==WHITE )
-               {
-                       dfs(j);
-               }
-               else
-               {
-                       if( color[j]<0 ) cluster.add(color[j]);
-               }
-       }
-
-       color[from]=BLACK;
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Collects nodes accessible from node "from" using breadth-first search.
-* Its parameters and side-effects are identical to those of dfs.
-* In addition, it stores the shortest distances from "from" in {@link #d},
-* if it is not null. On return, <code>d[i]</code> contains the length of
-* the shortest path from "from" to "i", if such a path exists, or it is
-* unchanged (ie the original value of <code>d[i]</code> is kept,
-* whatever that was.
-* <code>d</code> must either be long enough or null.
-*/
-private void bfs( int from ) {
-
-       List<Integer> q = new LinkedList<Integer>();
-       int u, du;
-       
-       q.add(from);
-       q.add(0);
-       if( d != null ) d[from] = 0;
-
-       color[from]=GREY;
-
-       while( ! q.isEmpty() )
-       {
-               u = q.remove(0).intValue();
-               du = q.remove(0).intValue();
-               
-               for(int j:g.getNeighbours(u))
-               {
-                       if( color[j]==WHITE )
-                       {
-                               color[j]=GREY;
-                               
-                               q.add(j);
-                               q.add(du+1);
-                               if( d != null ) d[j] = du+1;
-                       }
-                       else
-                       {
-                               if( color[j]<0 )
-                                       cluster.add(color[j]);
-                       }
-               }
-               color[u]=BLACK;
-       }
-}
-
-// --------------------------------------------------------------------
-
-/** The recursive part of the Tarjan algorithm. */
-private void tarjanVisit(int i) {
-
-       color[i]=counter++;
-       root[i]=i;
-       stack.push(i);
-       
-       for(int j:g.getNeighbours(i))
-       {
-               if( color[j]==WHITE )
-               {
-                       tarjanVisit(j);
-               }
-               if( color[j]>0 && color[root[j]]<color[root[i]] )
-               // inComponent is false and have to update root
-               {
-                       root[i]=root[j];
-               }
-       }
-
-       int j;
-       if(root[i]==i) //this node is the root of its cluster
-       {
-               do
-               {
-                       j=stack.pop();
-                       color[j]=-color[j];
-                       root[j]=i;
-               }
-               while(j!=i);
-       }
-}
-
-// =================== public methods ================================
-// ====================================================================
-
-/** Returns the weakly connected cluster indexes with size as a value.
-* Cluster membership can be seen from the content of the array {@link #color};
-* each node has the cluster index as color. The cluster indexes carry no
-* information; we guarantee only that different clusters have different indexes.
-*/
-public Map weaklyConnectedClusters( Graph g ) {
-
-       this.g=g;
-       if( cluster == null ) cluster = new HashSet<Integer>();
-       if( color==null || color.length<g.size() ) color = new int[g.size()];
-
-       // cluster numbers are negative integers
-       int i, j, actCluster=0;
-       for(i=0; i<g.size(); ++i) color[i]=WHITE;
-       for(i=0; i<g.size(); ++i)
-       {
-               if( color[i]==WHITE )
-               {
-                       cluster.clear();
-                       bfs(i); // dfs is recursive, for large graphs not ok
-                       --actCluster;
-                       for(j=0; j<g.size(); ++j)
-                       {
-                               if( color[j] == BLACK ||
-                                               cluster.contains(color[j]) )
-                                       color[j] = actCluster;
-                       }
-               }
-       }
-
-       Hashtable<Integer,Integer> ht = new Hashtable<Integer,Integer>();
-       for(j=0; j<g.size(); ++j)
-       {
-               Integer num = ht.get(color[j]);
-               if( num == null ) ht.put(color[j],Integer.valueOf(1));
-               else ht.put(color[j],num+1);
-       }
-       
-       return ht;
-}
-
-// --------------------------------------------------------------------
-
-/**
-* In <code>{@link #d}[j]</code> returns the length of the shortest path between
-* i and j. The value -1 indicates that j is not accessible from i.
-*/
-public void dist( Graph g, int i ) {
-
-       this.g=g;
-       if( d==null || d.length<g.size() ) d = new int[g.size()];
-       if( color==null || color.length<g.size() ) color = new int[g.size()];
-       
-       for(int j=0; j<g.size(); ++j)
-       {
-               color[j]=WHITE;
-               d[j] = -1;
-       }
-       
-       bfs(i);
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Calculates the clustering coefficient for the given node in the given
-* graph. The clustering coefficient is the number of edges between
-* the neighbours of i divided by the number of possible edges.
-* If the graph is directed, an exception is thrown.
-* If the number of neighbours is 1, returns 1. For zero neighbours
-* returns NAN.
-* @throws IllegalArgumentException if g is directed
-*/
-public static double clustering( Graph g, int i ) {
-
-       if( g.directed() ) throw new IllegalArgumentException(
-               "graph is directed");
-               
-       Object[] n = g.getNeighbours(i).toArray();
-       
-       if( n.length==1 ) return 1.0;
-       
-       int edges = 0;
-       
-       for(int j=0; j<n.length; ++j)
-       for(int k=j+1; k<n.length; ++k)
-               if( g.isEdge((Integer)n[j],(Integer)n[k]) ) ++edges;
-
-       return ((edges*2.0)/n.length)/(n.length-1);
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Performs anti-entropy epidemic multicasting from node 0.
-* As a result the number of nodes that have been reached in cycle i
-* is put into <code>b[i]</code>.
-* The number of cycles performed is determined by <code>b.length</code>.
-* In each cycle each node contacts a random neighbour and exchanges
-* information. The simulation is generational: when a node contacts a neighbor
-* in cycle i, it sees their state as in cycle i-1, besides, all nodes update
-* their state at the same time point, synchronously.
-*/
-public static void multicast( Graph g, int[] b, Random r ) {
-
-       int c1[] = new int[g.size()];
-       int c2[] = new int[g.size()];
-       for(int i=0; i<c1.length; ++i) c2[i]=c1[i]=WHITE;
-       c2[0]=c1[0]=BLACK;
-       Collection<Integer> neighbours=null;
-       int black=1;
-       
-       int k=0;
-       for(; k<b.length || black<g.size(); ++k)
-       {
-               for(int i=0; i<c2.length; ++i)
-               {
-                       neighbours=g.getNeighbours(i);
-                       Iterator<Integer> it=neighbours.iterator();
-                       for(int j=r.nextInt(neighbours.size()); j>0; --j)
-                               it.next();
-                       int randn = it.next();
-                       
-                       // push pull exchane with random neighbour
-                       if( c1[i]==BLACK ) //c2[i] is black too
-                       {
-                               if(c2[randn]==WHITE) ++black;
-                               c2[randn]=BLACK;
-                       }
-                       else if( c1[randn]==BLACK )
-                       {
-                               if(c2[i]==WHITE) ++black;
-                               c2[i]=BLACK;
-                       }
-               }
-               System.arraycopy(c2,0,c1,0,c1.length);
-               b[k]=black;
-       }
-       
-       for(; k<b.length; ++k) b[k]=g.size();
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Performs flooding from given node.
-* As a result <code>b[i]</code> contains the number of nodes
-* reached in exactly i steps, and always <code>b[0]=1</code>.
-* If the maximal distance from k is lower than <code>b.length</code>,
-* then the remaining elements of b are zero.
-*/
-public void flooding( Graph g, int[] b, int k ) {
-
-       dist(g, k);
-
-       for(int i=0; i<b.length; ++i) b[i]=0;
-       for(int i=0; i<d.length; ++i)
-       {
-               if( d[i] >= 0 && d[i] < b.length ) b[d[i]]++;
-       }
-}
-
-// --------------------------------------------------------------------
-
-/** Returns the strongly connected cluster roots with size as a value.
-* Cluster membership can be seen from the content of the array {@link #root};
-* each node has the root of the strongly connected cluster it belongs to.
-* A word of caution: for large graphs that have a large diameter and that
-* are strongly connected (such as large rings) you can get stack overflow
-* because of the large depth of recursion.
-*/
-//XXX implement a non-recursive version ASAP!!!
-public Map tarjan( Graph g ) {
-       
-       this.g=g;
-       stack.clear();
-       if( root==null || root.length<g.size() ) root = new int[g.size()];
-       if( color==null || color.length<g.size() ) color = new int[g.size()];
-       for( int i=0; i<g.size(); ++i) color[i]=WHITE;
-       counter = 1;
-       
-       // color is WHITE (0): not visited
-       // not WHITE, positive (c>1): visited as the c-th node
-       // color is negative (c<1): inComponent true
-       for(int i=0; i<g.size(); ++i)
-       {
-               if( color[i]==WHITE ) tarjanVisit(i);
-       }
-       for( int i=0; i<g.size(); ++i) color[i]=0;
-       for( int i=0; i<g.size(); ++i) color[root[i]]++;
-       Hashtable<Integer,Integer> ht = new Hashtable<Integer,Integer>();
-       for(int j=0; j<g.size(); ++j)
-       {
-               if(color[j]>0)
-               {
-                       ht.put(j,color[j]);
-               }
-       }
-       
-       return ht;
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/graph/GraphFactory.java b/contrib/psg/src/peersim/graph/GraphFactory.java
deleted file mode 100644 (file)
index 81857cc..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* Contains static methods for wiring certain kinds of graphs. The general
-* contract of all methods is that they accept any graph and add edges
-* as specified in the documentation.
-*/
-public class GraphFactory {
-
-/** Disable instance construction */
-private GraphFactory() {}
-
-// ===================== public static methods ======================
-// ==================================================================
-
-/**
-* Wires a ring lattice.
-* The added connections are defined as follows. If k is even, links to
-* i-k/2, i-k/2+1, ..., i+k/2 are added (but not to i), thus adding an
-* equal number of predecessors and successors.
-* If k is odd, then we add one more successors than predecessors.
-* For example, for k=4: 2 predecessors, 2 successors.
-* For k=5: 2 predecessors, 3 successors.
-* For k=1: each node is linked only to its successor.
-* All values are understood mod n to make the lattice circular, where n is the
-* number of nodes in g.
-* @param g the graph to be wired
-* @param k lattice parameter
-* @return returns g for convenience
-*/
-public static Graph wireRingLattice(Graph g, int k) {
-       
-       final int n = g.size();
-
-       int pred = k/2;
-       int succ = k-pred;
-
-       for(int i=0; i<n; ++i)
-       for(int j=-pred; j<=succ; ++j)
-       {
-               if( j==0 ) continue;
-               final int v = (i+j+n)%n;
-               g.setEdge(i,v);
-       }
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Watts-Strogatz model. A bit modified though: by default assumes a directed
-* graph. This means that directed
-* links are re-wired, and the undirected edges in the original (undirected)
-* lattice are modeled
-* by double directed links pointing in opposite directions. Rewiring is done
-* with replacement, so the possibility of wiring two links to the same target
-* is positive (though very small).
-* <p>
-* Note that it is possible to pass an undirected graph as a parameter. In that
-* case the output is the directed graph produced by the method, converted to
-* an undirected graph by dropping directionality of the edges. This graph is
-* still not from the original undirected WS model though.
-* @param g the graph to be wired
-* @param k lattice parameter: this is the out-degree of a node in the
-* ring lattice before rewiring
-* @param p the probability of rewiring each 
-* @param r source of randomness
-* @return returns g for convenience
-*/
-public static Graph wireWS( Graph g, int k, double p, Random r ) {
-//XXX unintuitive to call it WS due to the slight mods
-       final int n = g.size();
-       for(int i=0; i<n; ++i)
-       for(int j=-k/2; j<=k/2; ++j)
-       {
-               if( j==0 ) continue;
-               int newedge = (i+j+n)%n;
-               if( r.nextDouble() < p )
-               {
-                       newedge = r.nextInt(n-1);
-                       if( newedge >= i ) newedge++; // random _other_ node
-               }
-               g.setEdge(i,newedge);
-       }
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Random graph. Generates randomly k directed edges out of each node.
-* The neighbors
-* (edge targets) are chosen randomly without replacement from the nodes of the
-* graph other than the source node (i.e. no loop edge is added).
-* If k is larger than N-1 (where N is the number of nodes) then k is set to
-* be N-1 and a complete graph is returned.
-* @param g the graph to be wired
-* @param k samples to be drawn for each node
-* @param r source of randomness
-* @return returns g for convenience
-*/
-public static Graph wireKOut( Graph g, int k, Random r ) {
-
-       final int n = g.size();
-       if( n < 2 ) return g;
-       if( n <= k ) k=n-1;
-       int[] nodes = new int[n];
-       for(int i=0; i<nodes.length; ++i) nodes[i]=i;
-       for(int i=0; i<n; ++i)
-       {
-               int j=0;
-               while(j<k)
-               {
-                       int newedge = j+r.nextInt(n-j);
-                       int tmp = nodes[j];
-                       nodes[j] = nodes[newedge];
-                       nodes[newedge] = tmp;
-                       if( nodes[j] != i )
-                       {
-                               g.setEdge(i,nodes[j]);
-                               j++;
-                       }
-               }
-       }
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* A sink star.
-* Wires a sink star topology adding a link to 0 from all other nodes.
-* @param g the graph to be wired
-* @return returns g for convenience
-*/
-public static Graph wireStar( Graph g ) {
-
-       final int n = g.size();
-       for(int i=1; i<n; ++i) g.setEdge(i,0);
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* A regular rooted tree.
-* Wires a regular rooted tree. The root is 0, it has links to 1,...,k.
-* In general, node i has links to i*k+1,...,i*k+k.
-* @param g the graph to be wired
-* @param k the number of outgoing links of nodes in the tree (except
-* leaves that have zero out-links, and exactly one node that might have
-* less than k).
-* @return returns g for convenience
-*/
-public static Graph wireRegRootedTree( Graph g, int k ) {
-
-       if( k==0 ) return g;
-       final int n = g.size();
-       int i=0; // node we wire
-       int j=1; // next free node to link to
-       while(j<n)
-       {
-               for(int l=0; l<k && j<n; ++l,++j) g.setEdge(i,j);
-               ++i;
-       }
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* A hypercube.
-* Wires a hypercube.
-* For a node i the following links are added: i xor 2^0, i xor 2^1, etc.
-* this define a log(graphsize) dimensional hypercube (if the log is an
-* integer).
-* @param g the graph to be wired
-* @return returns g for convenience
-*/
-public static Graph wireHypercube( Graph g ) {
-
-       final int n = g.size();
-       if(n<=1) return g;
-       final int highestone = Integer.highestOneBit(n-1); // not zero
-       for(int i=0; i<n; ++i)
-       {
-               int mask = highestone;
-               while(mask>0)
-               {
-                       int j = i^mask;
-                       if(j<n) g.setEdge(i,j);
-                       mask = mask >> 1;
-               }
-               
-       }
-       return g;
-}
-
-// -------------------------------------------------------------------
-
-/**
-* This contains the implementation of the Barabasi-Albert model
-* of growing scale free networks. The original model is described in
-* <a href="http://arxiv.org/abs/cond-mat/0106096">
-http://arxiv.org/abs/cond-mat/0106096</a>.
-* It also works if the graph is directed, in which case the model is a
-* variation of the BA model
-* described in <a href="http://arxiv.org/pdf/cond-mat/0408391">
-http://arxiv.org/pdf/cond-mat/0408391</a>. In both cases, the number of the
-* initial set of nodes is the same as the degree parameter, and no links are
-* added. The first added node is connected to all of the initial nodes,
-* and after that the BA model is used normally.
-* @param k the number of edges that are generated for each new node, also
-* the number of initial nodes (that have no edges).
-* @param r the randomness to be used
-* @return returns g for convenience
-*/
-public static Graph wireScaleFreeBA( Graph g, int k, Random r ) {
-
-       final int nodes = g.size();
-       if( nodes <= k ) return g;
-       
-       // edge i has ends (ends[2*i],ends[2*i+1])
-       int[] ends = new int[2*k*(nodes-k)];
-       
-       // Add initial edges from k to 0,1,...,k-1
-       for(int i=0; i < k; i++)
-       {
-               g.setEdge(k,i);
-               ends[2*i]=k;
-               ends[2*i+1]=i;
-       }
-       
-       int len = 2*k; // edges drawn so far is len/2
-       for(int i=k+1; i < nodes; i++) // over the remaining nodes
-       {
-               for (int j=0; j < k; j++) // over the new edges
-               {
-                       int target;
-                       do
-                       {
-                               target = ends[r.nextInt(len)]; 
-                               int m=0;
-                               while( m<j && ends[len+2*m+1]!=target) ++m;
-                               if(m==j) break;
-                               // we don't check in the graph because
-                               // this wire method should accept graphs
-                               // that already have edges.
-                       }
-                       while(true);
-                       g.setEdge(i,target);
-                       ends[len+2*j]=i;
-                       ends[len+2*j+1]=target;
-               }
-               len += 2*k;
-       }
-
-       return g;
-}
-
-// -------------------------------------------------------------------
-/*
-public static void main(String[] pars) {
-       
-       int n = Integer.parseInt(pars[0]);
-       //int k = Integer.parseInt(pars[1]);
-       Graph g = new BitMatrixGraph(n);
-       
-       //wireWS(g,20,.1,new Random());
-       //GraphIO.writeChaco(new UndirectedGraph(g),System.out);
-       
-       //wireScaleFreeBA(g,3,new Random());
-       //wireKOut(g,k,new Random());
-       //wireRegRootedTree(g,k);
-       wireHypercube(g);
-       GraphIO.writeNeighborList(g,System.out);
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/graph/GraphIO.java b/contrib/psg/src/peersim/graph/GraphIO.java
deleted file mode 100644 (file)
index 9d928d3..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-import java.io.*;
-
-/**
-* Implements static methods to load and write graphs.
-*/
-public class GraphIO {
-private GraphIO() {}
-
-
-// ================== public static methods =========================
-// ==================================================================
-
-
-/**
-* Prints graph in edge list format. Each line contains exactly two
-* node IDs separated by whitespace.
-*/
-public static void writeEdgeList( Graph g, PrintStream out ) {
-
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println(i+" "+it.next());
-               }
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Prints graph in neighbor list format. Each line starts with the
-* id of a node followed by the ids of its neighbors separated by space.
-*/
-public static void writeNeighborList( Graph g, PrintStream out ) {
-
-       out.println("# "+g.size());
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               out.print(i+" ");
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print(it.next()+" ");
-               }
-               out.println();
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in DOT format. Good for the graphviz package.
-*/
-public static void writeDOT( Graph g, PrintStream out ) {
-
-       out.println((g.directed()?"digraph":"graph")+" {");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator<Integer> it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       final int j = it.next();
-                       if(g.directed())
-                               out.println(i+" -> "+j+";");
-                       else if( i<=j )
-                               out.println(i+" -- "+j+";");
-               }
-       }
-       
-       out.println("}");
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in GML format.
-*/
-public static void writeGML( Graph g, PrintStream out ) {
-
-       out.println("graph [ directed "+(g.directed()?"1":"0"));
-       
-       for(int i=0; i<g.size(); ++i)
-               out.println("node [ id "+i+" ]");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println(
-                               "edge [ source "+i+" target "+it.next()+" ]");
-               }
-       }
-       
-       out.println("]");
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream to be read by NETMETER. It should be ok also for Pajek.
-*/
-public static void writeNetmeter( Graph g, PrintStream out ) {
-
-       out.println("*Vertices "+g.size());
-       for(int i=0; i<g.size(); ++i)
-               out.println((i+1)+" \""+(i+1)+"\"");
-       
-       out.println("*Arcs");
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println((i+1)+" "+
-                               (((Integer)it.next()).intValue()+1)+" 1");
-               }
-       }
-       out.println("*Edges");
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in UCINET DL nodelist format.
-*/
-public static void writeUCINET_DL( Graph g, PrintStream out ) {
-
-       out.println("DL\nN="+g.size()+"\nFORMAT=NODELIST\nDATA:");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               out.print(" " + (i+1));
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print(" "+(((Integer)it.next()).intValue()+1));
-               }
-               out.println();
-       }
-       out.println();
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in UCINET DL matrix format.
-*/
-public static void writeUCINET_DLMatrix( Graph g, PrintStream out ) {
-
-       out.println("DL\nN="+g.size()+"\nDATA:");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               BitSet bs = new BitSet(g.size());
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       bs.set( ((Integer)it.next()).intValue() );
-               }
-               for(int j=0; j<g.size(); ++j)
-               {
-                       out.print(bs.get(j)?" 1":" 0");
-               }
-               out.println();
-       }
-       out.println();
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in Chaco format. We need to output the number of edges
-* so they have to be counted first which might not be very efficient.
-* Note that this format is designed for undirected graphs only.
-*/
-public static void writeChaco( Graph g, PrintStream out ) {
-
-       if( g.directed() ) System.err.println(
-               "warning: you're saving a directed graph in Chaco format");
-       
-       long edges = 0;
-       for(int i=0; i<g.size(); ++i) edges += g.getNeighbours(i).size();
-       
-       out.println( g.size() + " " + edges/2 );
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print((((Integer)it.next()).intValue()+1)+" ");
-               }
-               out.println();
-       }
-       
-       out.println();
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Read a graph in newscast graph format.
-* The format depends on mode, the parameter.
-* The file begins with the three byte latin 1 coded "NCG" string followed
-* by the int MODE which is the
-* given parameter. The formats are the following as a function of mode:
-* <ul>
-* <li> 1: Begins with cacheSize in binary format (int), followed by the
-*     numberOfNodes (int), and then a continuous series of exactly
-*     numberOfNodes records, where a record describes a node's
-*     neighbours and their timestamps.
-*     A record is a series of exactly cacheSize (int,long) pairs where
-*     the int is the node id, and the long is the timestamp.
-*     Node id-s start from 1. Node id 0 means no node and used if the parent
-*     node has less that cacheSize nodes.</li>
-* </ul>
-* @param file Filename to read
-* @param direction If 0, the original directionality is preserved, if 1,
-* than each edge is reversed, if 2 then directionality is dropped and the
-* returned graph will be undirected.
-*/
-public static Graph readNewscastGraph( String file, int direction )
-throws IOException {
-       
-       NeighbourListGraph gr = new NeighbourListGraph( direction != 2 );
-       FileInputStream fis = new FileInputStream(file);
-       DataInputStream dis = new DataInputStream(fis);
-
-       dis.readByte();
-       dis.readByte();
-       dis.readByte();
-       
-       final int MODE = dis.readInt();
-       if( MODE != 1 ) throw new IOException("Unknown mode "+MODE);
-       
-       final int CACHESIZE = dis.readInt(); 
-       final int GRAPHSIZE = dis.readInt(); 
-       
-//System.out.println("header: "+MODE+" "+CACHESIZE+" "+GRAPHSIZE);
-       
-       for(int i=1; i<=GRAPHSIZE; ++i)
-       {
-               int iind = gr.addNode(i);
-               
-               for(int j=0; j<CACHESIZE; ++j)
-               {
-                       int a = dis.readInt();
-                       dis.readLong();
-                       
-                       int agentIndex = gr.addNode(a);
-                       if( direction == 0 ) gr.setEdge(iind,agentIndex);
-                       else gr.setEdge(agentIndex,iind);
-               }
-       }
-       
-       dis.close();
-
-       return gr;
-}
-
-
-}
-
diff --git a/contrib/psg/src/peersim/graph/NeighbourListGraph.java b/contrib/psg/src/peersim/graph/NeighbourListGraph.java
deleted file mode 100644 (file)
index 50b3c97..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* Implements a graph which uses the neighbour list representation.
-* No multiple edges are allowed. The implementation also supports the
-* growing of the graph. This is very useful when the number of nodes is
-* not known in advance or when we construct a graph reading a file.
-*/
-public class NeighbourListGraph implements Graph, java.io.Serializable {
-
-// =================== private fields ============================
-// ===============================================================
-
-/** Contains the objects associated with the node indeces.*/
-private final ArrayList<Object> nodes;
-
-/**
-* Contains the indices of the nodes. The vector "nodes" contains this
-* information implicitly but this way we can find indexes in log time at
-* the cost of memory (node that the edge lists typically use much more memory
-* than this anyway). Note that the nodes vector is still necessary to
-* provide constant access to nodes based on indexes.
-*/
-private final HashMap<Object,Integer> nodeindex;
-
-/** Contains sets of node indexes. If "nodes" is not null, indices are 
-* defined by "nodes", otherwise they correspond to 0,1,... */
-private final ArrayList<Set<Integer>> neighbors;
-
-/** Indicates if the graph is directed. */
-private final boolean directed;
-
-// =================== public constructors ======================
-// ===============================================================
-
-/**
-* Constructs an empty graph. That is, the graph has zero nodes, but any
-* number of nodes and edges can be added later.
-* @param directed if true the graph will be directed
-*/
-public NeighbourListGraph( boolean directed ) {
-
-       nodes = new ArrayList<Object>(1000);    
-       neighbors = new ArrayList<Set<Integer>>(1000);
-       nodeindex = new HashMap<Object,Integer>(1000);
-       this.directed = directed;
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Constructs a graph with a fixed size without edges. If the graph is
-* constructed this way, it is not possible to associate objects to nodes,
-* nor it is possible to grow the graph using {@link #addNode}.
-* @param directed if true the graph will be directed
-*/
-public NeighbourListGraph( int size, boolean directed ) {
-
-       nodes = null;
-       neighbors = new ArrayList<Set<Integer>>(size);
-       for(int i=0; i<size; ++i) neighbors.add(new HashSet<Integer>());
-       nodeindex = null;
-       this.directed = directed;
-}
-
-// =================== public methods =============================
-// ================================================================
-
-/**
-* If the given object is not associated with a node yet, adds a new
-* node. Returns the index of the node. If the graph was constructed to have
-* a specific size, it is not possible to add nodes and therefore calling
-* this method will throw an exception.
-* @throws NullPointerException if the size was specified at construction time.
-*/
-public int addNode( Object o ) {
-
-       Integer index = nodeindex.get(o);
-       if( index == null )
-       {
-               index = nodes.size();
-               nodes.add(o);
-               neighbors.add(new HashSet<Integer>());
-               nodeindex.put(o,index);
-       }
-
-       return index;
-}
-
-
-// =================== graph implementations ======================
-// ================================================================
-
-
-public boolean setEdge( int i, int j ) {
-       
-       boolean ret = neighbors.get(i).add(j);
-       if( ret && !directed ) neighbors.get(j).add(i);
-       return ret;
-}
-
-// ---------------------------------------------------------------
-
-public boolean clearEdge( int i, int j ) {
-       
-       boolean ret = neighbors.get(i).remove(j);
-       if( ret && !directed ) neighbors.get(j).remove(i);
-       return ret;
-}
-
-// ---------------------------------------------------------------
-
-public boolean isEdge(int i, int j) {
-       
-       return neighbors.get(i).contains(j);
-}
-
-// ---------------------------------------------------------------
-
-public Collection<Integer> getNeighbours(int i) {
-       
-       return Collections.unmodifiableCollection(neighbors.get(i));
-}
-
-// ---------------------------------------------------------------
-
-/** If the graph was gradually grown using {@link #addNode}, returns the
-* object associated with the node, otherwise null */
-public Object getNode(int i) { return (nodes==null?null:nodes.get(i)); }
-       
-// ---------------------------------------------------------------
-
-/**
-* Returns null always. 
-*/
-public Object getEdge(int i, int j) { return null; }
-
-// ---------------------------------------------------------------
-
-public int size() { return neighbors.size(); }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return directed; }
-
-// --------------------------------------------------------------------
-
-public int degree(int i) { return neighbors.get(i).size(); }
-}
-
-
-
-
diff --git a/contrib/psg/src/peersim/graph/PrefixSubGraph.java b/contrib/psg/src/peersim/graph/PrefixSubGraph.java
deleted file mode 100644 (file)
index 5098316..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* This class is an adaptor for representing special subgraphs of any graph.
-* It can represent the subgraphs spanned by the nodes 0,...,i where
-* i is less than or equal to n-1, the last node of the original graph.
-* The underlying graph is stored by reference. This means that if the
-* graph changes, then these changes will be reflected by this class as well.
-* Besides, the size of the prefix can be changed at will at any time
-* using {@link #setSize}.
-*/
-public class PrefixSubGraph implements Graph {
-
-
-// ====================== private fileds ========================
-// ==============================================================
-
-
-private final Graph g;
-
-/** The graph represents the subgraph defined by nodes 0,...,prefSize */
-private int prefSize;
-
-
-// ====================== public constructors ===================
-// ==============================================================
-
-
-/**
-* Constructs an initially max size subgraph of g. That is, the subgraph will
-* contain all nodes.
-*/
-public PrefixSubGraph( Graph g ) {
-
-       this.g = g;
-       prefSize = g.size();
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       if( i<0 || i>=prefSize ) throw new IndexOutOfBoundsException();
-       if( j<0 || j>=prefSize ) throw new IndexOutOfBoundsException();
-       return g.isEdge(i,j);
-}
-
-// ---------------------------------------------------------------
-
-public Collection<Integer> getNeighbours(int i) {
-       
-       if( i<0 || i>=prefSize ) throw new IndexOutOfBoundsException();
-       
-       List<Integer> result = new LinkedList<Integer>();
-       for(Integer j:g.getNeighbours(i))
-       {
-               if( j < prefSize ) result.add(j);
-       }
-
-       return Collections.unmodifiableCollection(result);
-}
-
-// ---------------------------------------------------------------
-
-public Object getNode(int i) {
-
-       if( i<0 || i>=prefSize ) throw new IndexOutOfBoundsException();
-       return g.getNode(i);
-}
-       
-// ---------------------------------------------------------------
-
-/**
-* Returns the edge in the original graph if both i and j are smaller than
-* size().
-*/
-public Object getEdge(int i, int j) {
-       
-       if( isEdge(i,j) ) return g.getEdge(i,j);
-       return null;
-}
-
-// --------------------------------------------------------------------
-
-public int size() { return prefSize; }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return g.directed(); }
-
-// --------------------------------------------------------------------
-
-/** not supported */
-public boolean setEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-/** not supported */
-public boolean clearEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-public int degree(int i) {
-
-       if( i<0 || i>=prefSize ) throw new IndexOutOfBoundsException();
-       return g.degree(i);
-}
-       
-
-// ================= public functions =================================
-// ====================================================================
-
-
-/**
-* Sets the size of the subgraph. If i is negative, it is changed to 0 and
-* if it is larger than the underlying graph size, it is changed to the
-* underlying graph size (set at construction time).
-* @return old size.
-*/
-public int setSize(int i) {
-       
-       int was = prefSize;
-       if( i < 0 ) i = 0;
-       if( i > g.size() ) i=g.size();
-       prefSize=i;
-       return was;
-}
-}
-
diff --git a/contrib/psg/src/peersim/graph/SubGraphEdges.java b/contrib/psg/src/peersim/graph/SubGraphEdges.java
deleted file mode 100644 (file)
index bb4201f..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* This class is an adaptor for representing subgraphs of any graph.
-* The subgraph is defined the following way.
-* The subgraph always contains all the nodes of the original underlying
-* graph. However, it is possible to remove edges by flagging nodes as
-* removed, in which case
-* the edges that have at least one end on those nodes are removed.
-* If the underlying graph changes after initialization, this class follows
-* the change.
-*/
-public class SubGraphEdges implements Graph {
-
-
-// ====================== private fields ========================
-// ==============================================================
-
-
-private final Graph g;
-
-private final BitSet nodes;
-
-
-// ====================== public constructors ===================
-// ==============================================================
-
-
-/**
-* Constructs an initially empty subgraph of g. That is, the subgraph will
-* contain no nodes.
-*/
-public SubGraphEdges( Graph g ) {
-
-       this.g = g;
-       nodes = new BitSet(g.size());
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       return nodes.get(i) && nodes.get(j) && g.isEdge(i,j);
-}
-
-// ---------------------------------------------------------------
-
-public Collection<Integer> getNeighbours(int i) {
-       
-       List<Integer> result = new LinkedList<Integer>();
-       if( nodes.get(i) )
-       {
-               for(Integer in:g.getNeighbours(i))
-               {
-                       if( nodes.get(in) ) result.add(in);
-               }
-       }
-
-       return Collections.unmodifiableCollection(result);
-}
-
-// ---------------------------------------------------------------
-
-public Object getNode(int i) { return g.getNode(i); }
-       
-// ---------------------------------------------------------------
-
-/**
-* If both i and j are within the node set of the subgraph and the original
-* graph has an (i,j) edge, returns that edge.
-*/
-public Object getEdge(int i, int j) {
-       
-       if( isEdge(i,j) ) return g.getEdge(i,j);
-       return null;
-}
-
-// --------------------------------------------------------------------
-
-public int size() { return g.size(); }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return g.directed(); }
-
-// --------------------------------------------------------------------
-
-/** not supported */
-public boolean setEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-/** not supported */
-public boolean clearEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-public int degree(int i) {
-
-       int degree=0;
-       if( nodes.get(i) )
-       {
-               for(Integer in:g.getNeighbours(i))
-               {
-                       if( nodes.get(in) ) degree++;
-               }
-       }
-       return degree;
-}
-
-
-// ================= public functions =================================
-// ====================================================================
-
-
-/**
-* This function returns the size of the subgraph, i.e. the number of nodes
-* in the subgraph.
-*/
-public int subGraphSize() { return nodes.cardinality(); }
-
-// --------------------------------------------------------------------
-
-/**
-* Removes given node from subgraph.
-* @return true if the node was already in the subgraph otherwise false.
-*/
-public boolean removeNode(int i) {
-       
-       boolean was = nodes.get(i);
-       nodes.clear(i);
-       return was;
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Adds given node to subgraph.
-* @return true if the node was already in the subgraph otherwise false.
-*/
-public boolean addNode(int i) {
-       
-       boolean was = nodes.get(i);
-       nodes.set(i);
-       return was;
-}
-}
-
diff --git a/contrib/psg/src/peersim/graph/UndirectedGraph.java b/contrib/psg/src/peersim/graph/UndirectedGraph.java
deleted file mode 100644 (file)
index d229bae..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-
-/**
-* This class is an adaptor making any Graph an undirected graph
-* by making its edges bidirectional. The graph to be made undirected
-* is passed to the constructor. Only the reference is stored so
-* if the directed graph changes later, the undirected version will
-* follow that change. However, {@link #getNeighbours} has O(n) time complexity
-* (in other words, too slow for large graphs).
-* @see ConstUndirGraph
-*/
-public class UndirectedGraph implements Graph {
-
-
-// ====================== private fileds ========================
-// ==============================================================
-
-
-private final Graph g;
-
-
-// ====================== public constructors ===================
-// ==============================================================
-
-
-public UndirectedGraph( Graph g ) {
-
-       this.g = g;
-}
-
-
-// ======================= Graph implementations ================
-// ==============================================================
-
-
-public boolean isEdge(int i, int j) {
-       
-       return g.isEdge(i,j) || g.isEdge(j,i);
-}
-
-// ---------------------------------------------------------------
-
-/**
-* Uses sets as collection so does not support multiple edges now, even if
-* the underlying directed graph does.
-*/
-public Collection<Integer> getNeighbours(int i) {
-       
-       Set<Integer> result = new HashSet<Integer>();
-       result.addAll(g.getNeighbours(i));
-       final int max = g.size();
-       for(int j=0; j<max; ++j)
-       {
-               if( g.isEdge(j,i) ) result.add(j);
-       }
-
-       return Collections.unmodifiableCollection(result);
-}
-
-// ---------------------------------------------------------------
-
-public Object getNode(int i) { return g.getNode(i); }
-       
-// ---------------------------------------------------------------
-
-/**
-* If there is an (i,j) edge, returns that, otherwise if there is a (j,i)
-* edge, returns that, otherwise returns null.
-*/
-public Object getEdge(int i, int j) {
-       
-       if( g.isEdge(i,j) ) return g.getEdge(i,j);
-       if( g.isEdge(j,i) ) return g.getEdge(j,i);
-       return null;
-}
-
-// ---------------------------------------------------------------
-
-public int size() { return g.size(); }
-
-// --------------------------------------------------------------------
-       
-public boolean directed() { return false; }
-
-// --------------------------------------------------------------------
-
-/** not supported */
-public boolean setEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// ---------------------------------------------------------------
-
-/** not supported */
-public boolean clearEdge( int i, int j ) {
-       
-       throw new UnsupportedOperationException();
-}
-
-// --------------------------------------------------------------------
-
-public int degree(int i) {
-       
-       return getNeighbours(i).size();
-}
-
-// --------------------------------------------------------------------
-/*
-public static void main( String[] args ) {
-
-       
-       Graph net = null;       
-       UndirectedGraph ug = new UndirectedGraph(net);
-       for(int i=0; i<net.size(); ++i)
-               System.err.println(i+" "+net.getNeighbours(i));
-       System.err.println("============");
-       for(int i=0; i<ug.size(); ++i)
-               System.err.println(i+" "+ug.getNeighbours(i));
-       for(int i=0; i<ug.size(); ++i)
-       {
-               for(int j=0; j<ug.size(); ++j)
-                       System.err.print(ug.isEdge(i,j)?"W ":"- ");
-               System.err.println();
-       }
-
-       GraphIO.writeGML(net,System.out);
-}
-*/
-}
-
-
diff --git a/contrib/psg/src/peersim/rangesim/ProcessHandler.java b/contrib/psg/src/peersim/rangesim/ProcessHandler.java
deleted file mode 100644 (file)
index 92537ec..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.rangesim;
-
-public interface ProcessHandler
-{
-
-/**
- * Stop the external process managed by this object.
- */
-public abstract void doStop();
-
-/**
- * Wait until the process has terminated. 
- * @exception InterruptedException 
- *   thrown if the wait is interrupted
- */
-public abstract void join()
-  throws InterruptedException;
-
-}
\ No newline at end of file
diff --git a/contrib/psg/src/peersim/rangesim/ProcessManager.java b/contrib/psg/src/peersim/rangesim/ProcessManager.java
deleted file mode 100644 (file)
index 1ccfc79..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-package peersim.rangesim;
-
-import java.util.*;
-
-/**
- * This thread is used to kill forked processes in the case of an abnormal
- * termination of the Java virtual machine (for example, due to a signal).
- */
-public class ProcessManager extends Thread
-{
-
-/** The threads that must be killed */
-private List<ProcessHandler> threads;
-
-public ProcessManager()
-{
-       threads = Collections.synchronizedList(new ArrayList<ProcessHandler>());
-}
-
-public void addThread(ProcessHandler p)
-{
-       threads.add(p);
-}
-
-/**
- * Assumes that the process manager
- */
-public void joinAll()
-{
-       int i=0;
-       while (i < threads.size()) {
-               try {
-                       threads.get(i).join();
-                       i++;
-               } catch (InterruptedException e) {
-               }
-       }
-}
-
-
-/**
- * Kill the child process.
- */
-public void run()
-{
-       System.err.println("Terminating simulation.");
-       for (int i=0; i < threads.size(); i++) {
-               if (threads.get(i) != null)
-                       threads.get(i).doStop();
-       }
-}
-
-}
\ No newline at end of file
diff --git a/contrib/psg/src/peersim/rangesim/RangeSimulator.java b/contrib/psg/src/peersim/rangesim/RangeSimulator.java
deleted file mode 100644 (file)
index 0995bcc..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.rangesim;
-
-import java.io.*;
-import java.util.*;
-
-import peersim.*;
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * This class is the main class for the Range Simulator. A range is
- * a collection of values <em>S</em> to be assigned to a variable 
- * <em>v</em>. The Range Simulator invokes the standard Peersim 
- * simulator once for each distinct value. If multiple ranges 
- * <em>S1, S2, ..., Sn</em> are specified, the standard Peersim
- * simulator is invoked for each element in 
- * <em>S1 * S2 * ... * Sn</em>.  
- * <p>  
- * Ranges are specified with the following syntax:
-<pre>
-range.[id] [var];[range]
-</pre>
- * where:
- * <UL>
- * <LI> {@value #PAR_RANGE} is the prefix for all range
- * specifications;</LI>
- * <LI> <code>id</code> is an identifier; since they are not referred anywhere else,
- * consecutive numbers are a good choice for range identifiers;</LI>
- * <LI> <code>var</code> is a variable parameter </LI>
- * <LI> <code>range</code> describes the collection of values to be associated
- * to <code>var</code>, whose syntax and semantics is defined in 
- * {@link peersim.util.StringListParser}. </LI>
- * </UL>
- * Examples of range specifications are the following:
-<pre>
-range.0 SIZE;2^10:2^18|*2
-range.1 K;20:30
-range.2 CHURN;0.05,0.10,0.20 
-</pre>
- * With this specification, the collection of values associated to 
- * <code>SIZE</code> is {2^10,2^11,...,2^18}; <code>K</code> contains 
- * {20,21,22,...,30}, while <code>CHURN</code> contains just the
- * specified values.
- * <p>
- * Values can be specified as constant expressions (like 2^10, (5+10), etc.)
- * but variables cannot be used. 
- * <p>
- * A separate Java virtual machine is invoked to run each of the
- * experiments. An attempt is done to run the same JVM version as
- * the one running the Range Simulator; if this is not possible
- * (for example due to path problems), the command shell mechanism
- * is used to run the first JVM version found in the path.
- * </p>
- * It is possible to specify options for the forked JVM using the
- * {@value #PAR_JVM} parameter on the command line. For example,
- * a command line like this:
-<pre>
-java peersim.rangesim.RangeSimulator config.file jvm.options=-Xmx256m
-</pre>
- * can be used to run the forked JVM with a maximum heap of 256MB.
- * <p>
- * The new JVM inherits the same classpath as the JVM running the
- * RangeSimulator. The {@value #PAR_JVM} parameter can be used to
- * specify additional classpath specification.
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.11 $
- */
-public class RangeSimulator implements ProcessHandler
-{
-
-// --------------------------------------------------------------------------
-// Configuration parameters
-// --------------------------------------------------------------------------
-
-/**
- * This is the prefix of the config properties whose value vary during
- * a set of experiments.
- * @config
- */
-private static final String PAR_RANGE = "range";
-
-/**
- * This config property can be used to set options in the JVMs that
- * are forked to execute experiments with different configuration
- * parameters.
- * @config
- */
-public static final String PAR_JVM = "jvm.options";
-
-
-// --------------------------------------------------------------------------
-// Static variables
-// --------------------------------------------------------------------------
-
-/** Names of range parameters */
-private String[] pars;
-
-/** Values to be simulated, for each parameter */
-private String[][] values;
-
-/** The jvm options to be used when creating jvms */
-private String[] jvmoptions;
-
-/** Command line arguments */
-private String[] args;
-
-/** The current process that is executed */
-private Process p;
-
-
-// --------------------------------------------------------------------------
-// Main
-// --------------------------------------------------------------------------
-
-/**
- * Main method of the system.
- */
-public static void main(String[] args)
-{
-       RangeSimulator r = new RangeSimulator(args);
-       r.run();
-}
-
-//--------------------------------------------------------------------------
-// Constructor
-//--------------------------------------------------------------------------
-
-public RangeSimulator(String[] args)
-{
-
-       // Check if there are no arguments or there is an explicit --help
-       // flag; if so, print the usage of the class
-       if (args.length == 0 || args[0].equals("--help")) {
-               usage();
-               System.exit(101);
-       }
-
-       this.args = args.clone();
-
-       // Read property file
-       System.err.println("Simulator: loading configuration");
-       Properties properties = new ParsedProperties(args);
-       Configuration.setConfig(properties);
-       
-       // Read jvm options and separate them in different strings
-       String opt = Configuration.getString(PAR_JVM, null);
-       if (opt == null)
-               jvmoptions = new String[0];
-       else
-               jvmoptions = opt.split(" ");
-
-       // Parse range parameters
-       parseRanges();
-
-}
-
-/**
- * Main method to be executed
- */
-public void run()
-{
-       // Shutdown thread management
-       ProcessManager t = new ProcessManager();
-       t.addThread(this);
-       Runtime.getRuntime().addShutdownHook(t);
-
-       // Executes experiments; report short messages about exceptions that are
-       // handled by the configuration mechanism.
-       try {
-               doExperiments(args);
-       } catch (MissingParameterException e) {
-               Runtime.getRuntime().removeShutdownHook(t);
-               System.err.println(e + "");
-               System.exit(101);
-       } catch (IllegalParameterException e) {
-               Runtime.getRuntime().removeShutdownHook(t);
-               System.err.println(e + "");
-               System.exit(101);
-       }
-       Runtime.getRuntime().removeShutdownHook(t);
-       System.exit(0);
-}
-
-// --------------------------------------------------------------------
-
-/**
- * Parses a collection of range specifications and returns the set of
- * parameter that will change during the simulation and the values that
- * will be used for those parameters.
- */
-private void parseRanges()
-{
-       // Get ranges
-       String[] ranges = Configuration.getNames(PAR_RANGE);
-
-       // Start is the first element in which ranges are stored
-       int start;
-       
-       // If there is an explicit simulation.experiment or there are no 
-       // ranges, put an experiment range at the beginning of the values.
-       // Otherwise, just use the ranges.
-       if (Configuration.contains(Simulator.PAR_EXPS) || ranges.length == 0) {
-               pars = new String[ranges.length + 1];
-               values = new String[ranges.length + 1][];
-               pars[0] = "EXP";
-               values[0] = StringListParser.parseList("1:"
-                               + Configuration.getInt(Simulator.PAR_EXPS, 1));
-               start = 1;
-       } else {
-               pars = new String[ranges.length];
-               values = new String[ranges.length][];
-               start = 0;
-       }
-
-       for (int i = start; i < pars.length; i++) {
-               String[] array = Configuration.getString(ranges[i-start]).split(";");
-               if (array.length != 2) {
-                       throw new IllegalParameterException(ranges[i],
-                                       " should be formatted as <parameter>;<value list>");
-               }
-               pars[i] = array[0];
-               values[i] = StringListParser.parseList(array[1]);
-       }
-}
-
-// --------------------------------------------------------------------
-
-/**
- * Selects the next set of values by incrementing the specified index
- * array. The index array is treated as a vector of digits; the first is
- * managed managed as a vector of digits.
- */
-private void nextValues(int[] idx, String[][] values)
-{
-       idx[idx.length - 1]++;
-       for (int j = idx.length - 1; j > 0; j--) {
-               if (idx[j] == values[j].length) {
-                       idx[j] = 0;
-                       idx[j - 1]++;
-               }
-       }
-}
-
-// --------------------------------------------------------------------
-
-private void doExperiments(String[] args)
-{
-
-       // Configure the java parameter for exception
-       String filesep = System.getProperty("file.separator");
-       String classpath = System.getProperty("java.class.path");
-       String javapath = System.getProperty("java.home") + filesep + "bin" + filesep
-                       + "java";
-       ArrayList<String> list = new ArrayList<String>(20);
-       list.add(javapath);
-       list.add("-cp");
-       list.add(classpath);
-       
-       // Add the jvm options
-       for (int i=0; i < jvmoptions.length; i++)
-               list.add(jvmoptions[i]);
-       
-       // The class to be run in the forked JVM
-       list.add("peersim.Simulator");
-       
-       // Parameters specified on the command line
-       for (int i=0; i < args.length; i++) {
-               list.add(args[i]);
-       }
-       
-       // Since multiple experiments are managed here, the value
-       // of standard variable for multiple experiments is changed to 1
-       list.add(Simulator.PAR_EXPS+"=1");
-
-       // Activate redirection to separate stdout from stderr
-       list.add(Simulator.PAR_REDIRECT+"="+TaggedOutputStream.class.getCanonicalName());
-       int startlog = list.size();
-       list.add(""); 
-       
-       // Create a placeholder for the seed
-       int startseed = list.size();
-       list.add("");
-       
-       // Create placeholders for the range parameters
-       int startpar = list.size();
-       for (int i=0; i < values.length; i++)
-               list.add("");
-               
-       // Execute with different values
-       int[] idx = new int[values.length]; // Initialized to 0
-       while (idx[0] < values[0].length) {
-
-               // Configure the argument string array
-               for (int j = 0; j < pars.length; j++) {
-                       list.set(startpar + j, pars[j] + "=" + values[j][idx[j]]);
-               }
-
-               // Fill the log placeholder
-               StringBuffer log = new StringBuffer();
-               for (int j = 0; j < pars.length; j++) {
-                       log.append(pars[j]);
-                       log.append(" ");
-                       log.append(values[j][idx[j]]);
-                       log.append(" ");
-               }
-               list.set(startlog, Simulator.PAR_REDIRECT+"."+
-                               TaggedOutputStream.PAR_RANGES+"="+log);
-
-               // Fill the seed place holder
-               long seed = CommonState.r.nextLong();
-               list.set(startseed, CommonState.PAR_SEED+"="+seed);
-
-               System.err.println("Experiment: " + log);
-               
-               executeProcess(list);
-
-               // Increment values
-               nextValues(idx, values);
-       
-       }
-}
-
-//--------------------------------------------------------------------
-
-/**
- * Execute the "command line" represented by this String list.
- * The first argument is the process to be executed. We try
- * to run the same JVM as the current one. If not possible,
- * we use the first java command found in the path.
- */
-private void executeProcess(List<String> list)
-{
-       // Prepare the argument array for process forking
-       String[] newargs = new String[list.size()];
-
-       // Execute a new JVM
-       try {
-               ProcessBuilder pb = new ProcessBuilder(list.toArray(newargs));
-               pb.redirectErrorStream(true);
-               p = pb.start();
-       } catch (IOException e1) {
-               try {
-                       list.set(0, "java");
-                       ProcessBuilder pb = new ProcessBuilder(list.toArray(newargs));
-                       pb.redirectErrorStream(true);
-                       p = pb.start();
-               } catch (IOException e2) {
-                       System.err.println("Unable to launch a Java virtual machine");
-                       System.exit(1);
-               }
-       }
-
-       // Read the output from the process and redirect it to System.out
-       // and System.err.
-       BufferedReader toprint = new BufferedReader(new InputStreamReader(p
-                       .getInputStream()));
-       String line;
-       while ((line = getLine(toprint)) != null) {
-               if (line.length() == 0) {
-                       System.out.println();
-               } else {
-                       int last = line.charAt(line.length()-1);
-                       if (last != TaggedOutputStream.TAG) {
-                               System.err.println(line);
-                       } else {
-                               line = line.substring(0, line.length()-1);
-                               System.out.println(line);
-                       }
-               }
-       }
-
-       // We close all the files and we destroy the process. They are not 
-       // cleaned when the process is closed. See:
-       // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4784692
-       // http://www.thescripts.com/forum/thread18019.html
-       try {
-               p.getErrorStream().close();
-               p.getInputStream().close();
-               p.getOutputStream().close();
-               p.destroy();
-       } catch (IOException e) {
-               e.printStackTrace();
-       }
-
-       // The static variable p (used also by ShutdownThread) is back to
-       // null - no process must be killed on shutdown.
-       p = null;
-       
-       
-
-}
-
-//--------------------------------------------------------------------
-
-private static String getLine(BufferedReader toprint)
-{
-       try {
-               return toprint.readLine();
-       } catch (IOException e) {
-               // If we get here, this means that the forked process has
-               // been killed by the shutdown thread. We just exit without
-         // printing this exception.
-               System.exit(1);
-               return null; // Never reached, but needed.
-       }
-}
-
-
-// --------------------------------------------------------------------
-
-private static void usage()
-{
-       System.err.println("Usage:");
-       System.err.println("  peersim.RangeSimulator <configfile> [property]*");
-}
-
-//--------------------------------------------------------------------
-
-RangeSimulator()
-{
-}
-
-/**
- * Stop the process executing the external java virtual machine.
- */
-public void doStop()
-{
-       if (p != null)
-               p.destroy();
-}
-
-/**
- * Wait until the java virtual machine has terminated; it won't be
- * used in this class, but you never know.
- */
-public void join() throws InterruptedException
-{
-       p.waitFor();
-}
-
-}
diff --git a/contrib/psg/src/peersim/rangesim/TaggedOutputStream.java b/contrib/psg/src/peersim/rangesim/TaggedOutputStream.java
deleted file mode 100644 (file)
index 6288553..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.rangesim;
-
-import java.io.*;
-import java.util.*;
-
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * This OutputStream uses an underlying stream to output
- * data. Each line (terminated with `\n`) is augmented
- * with a tag character. This is used to discriminate
- * among standard error and standard output. This 
- * feature is needed for launching new JVMs; it should
- * not be used for other purposes. 
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.5 $
- */
-public class TaggedOutputStream extends PrintStream
-{
-
-//--------------------------------------------------------------------------
-//Constants
-//--------------------------------------------------------------------------
-
-/** 
- * This character is appended at the end of each line. 
- */
-public static final int TAG = 1;
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * This parameter contains the string that should be printed on each 
- * line, containing the values of the range parameters for the experiment
- * which is being run. The full name of this configuration string is
- * prefixed by {@value peersim.Simulator#PAR_REDIRECT}.
- * @config
- */
-public static final String PAR_RANGES = "ranges";
-
-/**
- * This parameter contains the list of observers for which the string
- * contained in parameter {@value #PAR_RANGES} should be augmented with 
- * a "TIME &lt;t&gt;" specification regarding current time. Observers are 
- * separated by one of this characters: ' ' - ',' - ';'.
- * @config
- */
-public static final String PAR_TIME = "simulation.timed-observers";
-
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/** Variable used to save the original System.out to simplify printing */
-private PrintStream stdout;
-
-/** Buffer used to store a single line; it can grow */
-private byte[] buffer = new byte[1024];
-
-/** Current size of the buffer */
-private int size;
-
-/** The value of the PAR_RANGES parameter */
-private final String ranges;
-
-/** The value of the PAR_TIME parameter */
-private final ArrayList<String> obstime;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-
-/**
- * Creates a tagged output stream that prints the tagged
- * output on the specified stream.
- */
-public TaggedOutputStream(String prefix)
-{
-       super(System.out);
-       
-       obstime = new ArrayList<String>();
-       String[] obs = Configuration.getString(PAR_TIME, "").split("[ :,]");
-       for (int i=0; i < obs.length; i++) {
-               obstime.add("control." + obs[i]);
-       }
-       ranges = Configuration.getString(prefix + "." + PAR_RANGES, "");
-       stdout = System.out;
-       size = 0;
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-// Comment inherited from interface
-@Override
-public synchronized void write(byte[] b, int off, int len)
-{
-       if (size+len > buffer.length) {
-               byte[] tmp = new byte[Math.max(buffer.length*2, size+len)];
-               System.arraycopy(buffer, 0, tmp, 0, size);
-               buffer = tmp;
-       }
-       int last = off+len;
-       for (int i=off; i < last; i++) {
-               if (b[i] == '\n') {
-                       buffer[size++] = TAG;
-                       buffer[size++] = b[i];
-                       printLine();
-               }  else {
-                       buffer[size++] = b[i];
-               }
-       }
-}
-
-// Comment inherited from interface
-@Override
-public synchronized void write(int b)
-{
-       if (size == buffer.length) {
-               byte[] tmp = new byte[buffer.length*2];
-               System.arraycopy(buffer, 0, tmp, 0, size);
-               buffer = tmp;
-       }
-       if (b == '\n') {
-               buffer[size++] = TAG;
-               buffer[size++] = (byte) b;
-               printLine();
-       }  else {
-               buffer[size++] = (byte) b;
-       }
-}
-
-/** 
- * Actually prints a line, inserting ranges and time
- * when needed.
- */
-private void printLine()
-{
-       String line = new String(buffer, 0, size);
-       String[] parts = line.split(":");
-       if (parts.length == 2) {
-               stdout.print(parts[0]);
-               stdout.print(": ");
-               stdout.print(ranges);
-               if (obstime.contains(parts[0]))
-                       stdout.print(" TIME " + CommonState.getTime() + " ");
-               stdout.print(parts[1]);
-       } else {
-               stdout.print(line);
-       }
-       size = 0;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/BallExpansion.java b/contrib/psg/src/peersim/reports/BallExpansion.java
deleted file mode 100644 (file)
index b46e117..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * Control to observe the ball expansion, that is,
- * the number of nodes that are
- * accessible from a given node in at most 1, 2, etc steps.
- */
-public class BallExpansion extends GraphObserver
-{
-
-// ===================== fields =======================================
-// ====================================================================
-
-/**
- * This parameter defines the maximal distance we care about.
- * In other words, two nodes are further away, they will not be taken
- * into account when calculating statistics.
- * <p>
- * Defaults to the
- * network size (which means all distances are taken into account).
- * Note that this default is normally way too much; many low diameter graphs
- * have only short distances between the nodes. Setting a short
- * (but sufficient) distance saves memory.
- * Also note that the <em>initial</em> network
- * size is used if no value is given which might not be what you want if e.g. the
- * network is growing.
- * @config
- */
-private static final String PAR_MAXD = "maxd";
-
-/**
- * The number of nodes to print info about.
- * Defaults to 1000. If larger than the current network size, then the
- * current network size is used.
- * @config
- */
-private static final String PAR_N = "n";
-
-/**
- * If defined, statistics are printed instead over the minimal path lengths. Not
- * defined by default.
- * @config
- */
-private static final String PAR_STATS = "stats";
-
-private final int maxd;
-
-private final int n;
-
-private final boolean stats;
-
-/** working variable */
-private final int[] b;
-
-private final RandPermutation rp = new RandPermutation(CommonState.r);
-
-// ===================== initialization ================================
-// =====================================================================
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public BallExpansion(String name)
-{
-       super(name);
-       maxd = Configuration.getInt(name + "." + PAR_MAXD, Network.size());
-       n = Configuration.getInt(name + "." + PAR_N, 1000);
-       stats = Configuration.contains(name + "." + PAR_STATS);
-       b = new int[maxd];
-}
-
-// ====================== methods ======================================
-// =====================================================================
-
-/**
-* Prints information about ball expansion. It uses {@value #PAR_N} nodes to
-* collect statistics.
-* If parameter {@value #PAR_STATS} is defined then the output is
-* produced by {@link IncrementalStats#toString}, over the values of minimal
-* distances from the given number of nodes to all other nodes in the network.
-* If at least one node is unreachable from any selected starting node, then
-* the path length is taken as infinity and statistics are calculated
-* accordingly. In that case, {@link IncrementalStats#getMaxCount()} returns
-* the number of nodes of "infinite distance", that is, the number of
-* unreachable nodes.
-* Otherwise one line is printed for all nodes we observe, containing the
-* number of nodes at distance 1, 2, etc, separated by spaces.
-* In this output format, unreachable nodes are simply ignored, but of course
-* the sum of the numbers in one line can be used to detect partitioning if
-* necessary.
-* Finally, note that the {@value #PAR_N} nodes are not guaranteed to be the
-* same nodes over consecutive calls to this method.
-* @return always false
-*/
-public boolean execute() {
-
-       updateGraph();
-       System.out.print(name + ": ");
-       rp.reset(g.size());
-       if (stats)
-       {
-               IncrementalStats is = new IncrementalStats();
-               for (int i = 0; i < n && i < g.size(); ++i)
-               {
-                       ga.dist(g, rp.next());
-                       for (int j=0; j<g.size(); j++)
-                       {
-                               if (ga.d[j] > 0)
-                                       is.add(ga.d[j]);
-                               else if (ga.d[j] == -1)
-                                       is.add(Double.POSITIVE_INFINITY);
-                               // deliberately left ga.d[j]==0 out, as we don't
-                               // want to count trivial distance to oneself.
-                       }
-               }
-               System.out.println(is);
-       }
-       else
-       {
-               System.out.println();
-               for (int i = 0; i < n && i < g.size(); ++i)
-               {
-                       ga.flooding(g, b, rp.next());
-                       int j = 0;
-                       while (j < b.length && b[j] > 0)
-                       {
-                               System.out.print(b[j++] + " ");
-                       }
-                       System.out.println();
-               }
-       }
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/Clustering.java b/contrib/psg/src/peersim/reports/Clustering.java
deleted file mode 100644 (file)
index 38b81f7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.config.Configuration;
-import peersim.graph.GraphAlgorithms;
-import peersim.util.IncrementalStats;
-
-/**
- * Control to observe the clustering coefficient.
- * @see GraphAlgorithms#clustering
- */
-public class Clustering extends GraphObserver
-{
-
-// ===================== fields =======================================
-// ====================================================================
-
-/**
- * The number of nodes to collect info about. Defaults to the size of the graph.
- * @config
- */
-private static final String PAR_N = "n";
-
-private final int n;
-
-// ===================== initialization ================================
-// =====================================================================
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public Clustering(String name)
-{
-       super(name);
-       n = Configuration.getInt(name + "." + PAR_N, Integer.MAX_VALUE);
-}
-
-// ====================== methods ======================================
-// =====================================================================
-
-/**
-* Prints information about the clustering coefficient.
-* It uses {@value #PAR_N} nodes to collect statistics.
-* The output is
-* produced by {@link IncrementalStats#toString}, over the values of
-* the clustering coefficients of the given number of nodes.
-* Clustering coefficients are calculated by {@link GraphAlgorithms#clustering}.
-* @return always false
-*/
-public boolean execute()
-{
-       IncrementalStats stats = new IncrementalStats();
-       updateGraph();
-       for (int i = 0; i < n && i < g.size(); ++i) {
-               stats.add(GraphAlgorithms.clustering(g, i));
-       }
-       System.out.println(name + ": " + stats);
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/ConnectivityObserver.java b/contrib/psg/src/peersim/reports/ConnectivityObserver.java
deleted file mode 100644 (file)
index d23ac08..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import java.util.Iterator;
-import java.util.Map;
-import peersim.config.Configuration;
-import peersim.util.IncrementalStats;
-
-/**
- * Reports statistics about connectivity properties of the network, such as
- * weakly or strongly connected clusters.
- */
-public class ConnectivityObserver extends GraphObserver
-{
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The parameter used to request cluster size statistics instead of the usual
- * list of clusters. Not set by default.
- * @config
- */
-private static final String PAR_STATS = "stats";
-
-/**
- * Defines the types of connected clusters to discover.
- * Possible values are
- * <ul>
- * <li>"wcc": weakly connected clusters</li>
- * <li>"scc": strongly connected clusters</li>
- * </ul>
- * Defaults to "wcc".
- * @config
- */
-private static final String PAR_TYPE = "type";
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/** {@link #PAR_STATS} */
-private final boolean sizestats;
-
-/** {@link #PAR_TYPE} */
-private final String type;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public ConnectivityObserver(String name)
-{
-       super(name);
-       sizestats = Configuration.contains(name + "." + PAR_STATS);
-       type = Configuration.getString(name + "." + PAR_TYPE,"wcc");
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/**
-* Prints information about clusters.
-* If parameter {@value #PAR_STATS} is defined then the output is
-* produced by {@link IncrementalStats#toString}, over the sizes of the
-* clusters.
-* Otherwise one line is printed that contains the string representation of
-* a map, that holds cluster IDs mapped to cluster sizes.
-* The meaning of the cluster IDs is not specified, but is printed for
-* debugging purposes.
-* @return always false
-* @see peersim.graph.GraphAlgorithms#tarjan
-* @see peersim.graph.GraphAlgorithms#weaklyConnectedClusters
-*/
-public boolean execute()
-{
-       Map clst;
-       updateGraph();
-       
-       if(type.equals("wcc"))
-               clst=ga.weaklyConnectedClusters(g);
-       else if(type.equals("scc"))
-               clst=ga.tarjan(g);
-       else
-               throw new RuntimeException(
-               "Unsupported connted cluster type '"+type+"'");
-
-       if (!sizestats) {
-               System.out.println(name + ": " + clst);
-       } else {
-               IncrementalStats stats = new IncrementalStats();
-               Iterator it = clst.values().iterator();
-               while (it.hasNext()) {
-                       stats.add(((Integer) it.next()).intValue());
-               }
-               System.out.println(name + ": " + stats);
-       }
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/DegreeStats.java b/contrib/psg/src/peersim/reports/DegreeStats.java
deleted file mode 100644 (file)
index d6c57e6..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * Prints several statistics about the node degrees in the graph.
- */
-public class DegreeStats extends GraphObserver
-{
-
-//--------------------------------------------------------------------------
-//Parameter
-//--------------------------------------------------------------------------
-
-/**
- * The number of nodes to be used for sampling the degree. 
- * Defaults to full size of the graph.
- * @config
- */
-private static final String PAR_N = "n";
-
-/**
- * If defined, then the given number of nodes will be traced. That is, it is
- * guaranteed that in each call the same nodes will be picked in the same order.
- * If a node being traced fails, its degree will be considered 0. Not defined by
- * default.
- * @config
- */
-private static final String PAR_TRACE = "trace";
-
-/**
- * Selects a method to use when printing results. Three methods are known:
- * "stats" will use {@link IncrementalStats#toString}. "freq" will
- * use {@link IncrementalFreq#print}. "list" will print the
- * degrees of the sample nodes one by one in one line, separated by spaces.
- * Default is "stats".
- * @config
- */
-private static final String PAR_METHOD = "method";
-
-/**
- * Selects the types of links to print information about. Three methods are
- * known: "live": links pointing to live nodes, "dead": links pointing to nodes
- * that are unavailable and "all": both dead and live links summed. "all" and
- * "dead" require parameter {@value peersim.reports.GraphObserver#PAR_UNDIR} 
- * to be unset (graph must be directed). Default is "live".
- * @config
- */
-private static final String PAR_TYPE = "linktype";
-
-//--------------------------------------------------------------------------
-//Parameter
-//--------------------------------------------------------------------------
-
-private final int n;
-
-private final boolean trace;
-
-private Node[] traced = null;
-
-private final String method;
-
-private final String type;
-
-private final RandPermutation rp = new RandPermutation(CommonState.r);
-
-private int nextnode = 0;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public DegreeStats(String name)
-{
-       super(name);
-       n = Configuration.getInt(name + "." + PAR_N, -1);
-       trace = Configuration.contains(name + "." + PAR_TRACE);
-       method = Configuration.getString(name + "." + PAR_METHOD, "stats");
-       type = Configuration.getString(name + "." + PAR_TYPE, "live");
-       if ((type.equals("all") || type.equals("dead")) && undir) {
-               throw new IllegalParameterException(
-                       name + "." + PAR_TYPE, " Parameter "+ name + "." +
-                       PAR_UNDIR + " must not be defined if " + name + "."
-                       + PAR_TYPE + "=" + type + ".");
-       }
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/**
- * Returns next node to get degree information about.
- */
-private int nextNodeId()
-{
-       if (trace) {
-               if (traced == null) {
-                       int nn = (n < 0 ? Network.size() : n);
-                       traced = new Node[nn];
-                       for (int j = 0; j < nn; ++j)
-                               traced[j] = Network.get(j);
-               }
-               return traced[nextnode++].getIndex();
-       } else
-               return rp.next();
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Returns degree information about next node.
- */
-private int nextDegree()
-{
-       final int nodeid = nextNodeId();
-       if (type.equals("live")) {
-               return g.degree(nodeid);
-       } else if (type.equals("all")) {
-               return ((OverlayGraph) g).fullDegree(nodeid);
-       } else if (type.equals("dead")) {
-               return ((OverlayGraph) g).fullDegree(nodeid) - g.degree(nodeid);
-       } else
-               throw new RuntimeException(name + ": invalid type");
-}
-
-// ---------------------------------------------------------------------
-
-/**
- * Prints statistics about node degree. The format of the output is specified
- * by {@value #PAR_METHOD}. See also the rest of the configuration parameters.
- * @return always false
- */
-public boolean execute()
-{
-       updateGraph();
-       if (!trace)
-               rp.reset(g.size());
-       else
-               nextnode = 0;
-       final int nn = (n < 0 ? Network.size() : n);
-       if (method.equals("stats")) {
-               IncrementalStats stats = new IncrementalStats();
-               for (int i = 0; i < nn; ++i)
-                       stats.add(nextDegree());
-               System.out.println(name + ": " + stats);
-       } else if (method.equals("freq")) {
-               IncrementalFreq stats = new IncrementalFreq();
-               for (int i = 0; i < nn; ++i)
-                       stats.add(nextDegree());
-               stats.print(System.out);
-               System.out.println("\n\n");
-       } else if (method.equals("list")) {
-               System.out.print(name + ": ");
-               for (int i = 0; i < nn; ++i)
-                       System.out.print(nextDegree() + " ");
-               System.out.println();
-       }
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/GraphObserver.java b/contrib/psg/src/peersim/reports/GraphObserver.java
deleted file mode 100644 (file)
index 6f939ea..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.reports;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-import peersim.graph.*;
-import peersim.cdsim.CDState;
-
-/**
-* Class that provides functionality for observing graphs.
-* It can efficiently create an undirected version of the graph, making sure
-* it is updated only when the simulation has advanced already, and provides
-* some common parameters.
-*/
-public abstract class GraphObserver implements Control {
-
-
-// ===================== fields =======================================
-// ====================================================================
-
-/**
- * The protocol to operate on.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-/**
- * If defined, the undirected version of the graph will be analyzed. Not defined
- * by default.
- * @config
- */
-protected static final String PAR_UNDIR = "undir";
-
-/**
-* Alias for {@value #PAR_UNDIR}.
-* @config
-*/
-private static final String PAR_UNDIR_ALT = "undirected";
-
-/**
- * If defined, the undirected version of the graph will be stored using much
- * more memory but observers will be in general a few times faster. As a
- * consequence, it will not work with large graphs. Not defined by default. It
- * is a static property, that is, it affects all graph observers that are used
- * in a simulation. That is, it is not a parameter of any observer, the name
- * should be specified as a standalone property.
- * @config
- */
-private static final String PAR_FAST = "graphobserver.fast";
-
-/** The name of this observer in the configuration */
-protected final String name;
-
-protected final int pid;
-
-protected final boolean undir;
-
-protected final GraphAlgorithms ga = new GraphAlgorithms();
-
-protected Graph g;
-
-// ---------------------------------------------------------------------
-
-private static int lastpid = -1234;
-
-private static long time = -1234;
-
-private static int phase = -1234;
-
-private static int ctime = -1234;
-
-private static Graph dirg;
-
-private static Graph undirg;
-
-private static boolean fast;
-
-/** If any instance of some extending class defines undir we need to
-maintain an undir graph. Note that the graph is stored in a static
-field so it is common to all instances. */
-private static boolean needUndir=false;
-
-// ===================== initialization ================================
-// =====================================================================
-
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-protected GraphObserver(String name) {
-
-       this.name = name;
-       pid = Configuration.getPid(name+"."+PAR_PROT);
-       undir = (Configuration.contains(name + "." + PAR_UNDIR) |
-               Configuration.contains(name + "." + PAR_UNDIR_ALT));
-       GraphObserver.fast = Configuration.contains(PAR_FAST);
-       GraphObserver.needUndir = (GraphObserver.needUndir || undir);
-}
-
-
-// ====================== methods ======================================
-// =====================================================================
-
-/**
-* Sets {@link #g}.
-* It MUST be called by any implementation of {@link #execute()} before
-* doing anything else.
-* Attempts to initialize {@link #g} from a
-* pre-calculated graph stored in a static field, but first it
-* checks whether it needs to be updated.
-* If the simulation time has progressed or it was calculated for a different
-* protocol, then updates this static graph as well.
-* The purpose of this mechanism is to save the time of constructing the
-* graph if many observers are run on the same graph. Time savings can be very
-* significant if the undirected version of the same graph is observed by many
-* observers.
-*/
-protected void updateGraph() {
-       
-       if( CommonState.getTime() != GraphObserver.time ||
-           (CDState.isCD() && (CDState.getCycleT() != GraphObserver.ctime)) ||
-           CommonState.getPhase() != GraphObserver.phase ||
-           pid != GraphObserver.lastpid )
-       {
-               // we need to update the graphs
-               
-               GraphObserver.lastpid = pid;
-               GraphObserver.time = CommonState.getTime();
-               if( CDState.isCD() ) GraphObserver.ctime = CDState.getCycleT();
-               GraphObserver.phase = CommonState.getPhase();
-
-               GraphObserver.dirg = new OverlayGraph(pid);
-               if( GraphObserver.needUndir )
-               {
-                       if( fast )
-                               GraphObserver.undirg =
-                               new FastUndirGraph(GraphObserver.dirg);
-                       else
-                               GraphObserver.undirg =
-                               new ConstUndirGraph(GraphObserver.dirg);
-               }
-       }
-       
-       if( undir ) g = GraphObserver.undirg;
-       else g = GraphObserver.dirg;
-}
-
-}
-
-
-
diff --git a/contrib/psg/src/peersim/reports/GraphPrinter.java b/contrib/psg/src/peersim/reports/GraphPrinter.java
deleted file mode 100644 (file)
index 3317c10..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.reports;
-
-import peersim.config.Configuration;
-import peersim.graph.GraphIO;
-import peersim.util.FileNameGenerator;
-import java.io.PrintStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-/**
-* Prints the whole graph in a given format.
-*/
-public class GraphPrinter extends GraphObserver {
-
-
-// ===================== fields =======================================
-// ====================================================================
-
-/**
-* This is the prefix of the filename where the graph is saved.
-* The extension is ".graph" and after the prefix the basename contains
-* a numeric index that is incremented at each saving point.
-* If not given, the graph is dumped on the standard output.
-* @config
-*/
-private static final String PAR_BASENAME = "outf";
-
-/**
-* The name for the format of the output. Defaults to "neighborlist",
-* which is a plain dump of neighbors. The class
-* {@link peersim.dynamics.WireFromFile} can read this format.
-* Other supported formats are "chaco" to be used with Yehuda Koren's
-* Embedder, "netmeter" to be used with Sergi Valverde's netmeter and also
-* with pajek,
-* "edgelist" that dumps one (directed) node pair in each line for each edge,
-* "gml" that is a generic format of many graph tools, and "dot" that can
-* be used with the graphviz package.
-* @see GraphIO#writeEdgeList
-* @see GraphIO#writeChaco
-* @see GraphIO#writeNeighborList
-* @see GraphIO#writeNetmeter
-* @config
-*/
-private static final String PAR_FORMAT = "format";
-
-private final String baseName;
-
-private final FileNameGenerator fng;
-
-private final String format;
-
-
-// ===================== initialization ================================
-// =====================================================================
-
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public GraphPrinter(String name) {
-
-       super(name);
-       baseName = Configuration.getString(name+"."+PAR_BASENAME,null);
-       format = Configuration.getString(name+"."+PAR_FORMAT,"neighborlist");
-       if(baseName!=null) fng = new FileNameGenerator(baseName,".graph");
-       else fng = null;
-}
-
-
-// ====================== methods ======================================
-// =====================================================================
-
-
-/**
-* Saves the graph according to the specifications in the configuration.
-* @return always false
-*/
-public boolean execute() {
-try {  
-       updateGraph();
-       
-       System.out.print(name+": ");
-       
-       // initialize output streams
-       FileOutputStream fos = null;
-       PrintStream pstr = System.out;
-       if( baseName != null )
-       {
-               String fname = fng.nextCounterName();
-               fos = new FileOutputStream(fname);
-               System.out.println("writing to file "+fname);
-               pstr = new PrintStream(fos);
-       }
-       else    System.out.println();
-       
-       if( format.equals("neighborlist") )
-               GraphIO.writeNeighborList(g, pstr);
-       else if( format.equals("edgelist") )
-               GraphIO.writeEdgeList(g, pstr);
-       else if( format.equals("chaco") )
-               GraphIO.writeChaco(g, pstr);
-       else if( format.equals("netmeter") )
-               GraphIO.writeNetmeter(g, pstr);
-       else if( format.equals("gml") )
-               GraphIO.writeGML(g, pstr);
-       else if( format.equals("dot") )
-               GraphIO.writeDOT(g, pstr);
-       else
-               System.err.println(name+": unsupported format "+format);
-       
-       if( fos != null ) fos.close();
-       
-       return false;
-}
-catch( IOException e )
-{
-       throw new RuntimeException(e);
-}
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/reports/GraphStats.java b/contrib/psg/src/peersim/reports/GraphStats.java
deleted file mode 100644 (file)
index a57773c..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.reports;
-
-import peersim.config.Configuration;
-import peersim.graph.GraphAlgorithms;
-import peersim.util.IncrementalStats;
-
-/**
-* Prints reports on the graph like average clustering and average path length,
-* based on random sampling of the nodes.
-* In fact its functionality is a subset of the union of {@link Clustering}
-* and {@link BallExpansion}, and therefore is redundant,
-* but it is there for historical reasons.
-* @see BallExpansion
-* @see Clustering
-*/
-public class GraphStats extends GraphObserver {
-
-
-// ===================== fields =======================================
-// ====================================================================
-
-/** 
-* The number of nodes to use for
-* sampling average path length.
-* Statistics are printed over a set of node pairs.
-* To create the set of pairs, we select the given number of different nodes
-* first, and then pair all these nodes with every other node in the network.
-* If zero is given, then no statistics
-* will be printed about path length. If a negative value is given then
-* the value is the full size of the graph.
-* Defaults to zero.
-* @config
-*/
-private static final String PAR_NL = "nl";
-
-/** 
-* The number of nodes to use to sample
-* average clustering.
-* If zero is given, then no statistics
-* will be printed about clustering. If a negative value is given then
-* the value is the full size of the graph.
-* Defaults to zero.
-* @config
-*/
-private static final String PAR_NC = "nc";
-
-private final int nc;
-
-private final int nl;
-
-
-// ===================== initialization ================================
-// =====================================================================
-
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public GraphStats(String name) {
-
-       super(name);
-       nl = Configuration.getInt(name+"."+PAR_NL,0);
-       nc = Configuration.getInt(name+"."+PAR_NC,0);
-}
-
-
-// ====================== methods ======================================
-// =====================================================================
-
-/**
-* Returns statistics over minimal path length and clustering.
-* The output is the average over the set of
-* clustering coefficients of randomly selected nodes, and the
-* set of distances from randomly selected nodes to all the other nodes.
-* The output is always concatenated in one line, containing zero, one or two
-* numbers (averages) as defined by the config parameters.
-* Note that the path length between a pair of nodes can be infinite, in which
-* case the statistics will reflect this (the average will be infinite, etc).
-* See also the configuration parameters.
-* @return always false
-* @see BallExpansion
-* @see Clustering
-*/
-public boolean execute() {
-       
-       System.out.print(name+": ");
-       
-       IncrementalStats stats = new IncrementalStats();
-       updateGraph();
-       
-       if( nc != 0 )
-       {
-               stats.reset();
-               final int n = ( nc<0 ? g.size() : nc );
-               for(int i=0; i<n && i<g.size(); ++i)
-               {
-                       stats.add(GraphAlgorithms.clustering(g,i));
-               }
-               System.out.print(stats.getAverage()+" ");
-       }
-       
-       if( nl != 0 )
-       {
-               stats.reset();
-               final int n = ( nl<0 ? g.size() : nl );
-               outerloop:
-               for(int i=0; i<n && i<g.size(); ++i)
-               {
-                       ga.dist(g,i);
-                       for(int j=0; j<g.size(); ++j)
-                       {
-                               if( j==i ) continue;
-                               if (ga.d[j] == -1)
-                               {
-                                       stats.add(Double.POSITIVE_INFINITY);
-                                       break outerloop;
-                               }
-                               else
-                                       stats.add(ga.d[j]); 
-                       }
-               }
-               System.out.print(stats.getAverage());
-       }
-       
-       System.out.println();
-       return false;
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/reports/MemoryObserver.java b/contrib/psg/src/peersim/reports/MemoryObserver.java
deleted file mode 100644 (file)
index 839108c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.core.*;
-
-/**
- * This observer reports memory utilization (max, total and 
- * free, as defined by <code>java.lang.Runtime</code>).
- *
- * @author Alberto Montresor
- * @version $Revision: 1.1 $
- */
-public class MemoryObserver implements Control
-{
-
-/** The runtime object to obtain memory info */
-private final static Runtime r = Runtime.getRuntime(); 
-
-/** The prefix to be printed */
-private final String prefix;
-
-/**
- * Constructor to be instantiated in PeerSim.
- * @param prefix
- */
-public MemoryObserver(String prefix)
-{
-       this.prefix = prefix;
-}
-
-public boolean execute()
-{
-       System.out.println(prefix + ": max=" + r.maxMemory() + ", total=" + 
-                       r.totalMemory() + ", free=" + r.freeMemory()); 
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/reports/RandRemoval.java b/contrib/psg/src/peersim/reports/RandRemoval.java
deleted file mode 100644 (file)
index 8872873..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.reports;
-
-import peersim.core.*;
-import peersim.config.Configuration;
-import peersim.graph.*;
-import peersim.util.IncrementalStats;
-import java.util.Map;
-import java.util.Iterator;
-
-/**
- * It tests the network for robustness to random node removal.
- * It does not actually remove
- * nodes, it is only an observer, so can be applied several times during the
- * simulation. A warning though: as a side effect it <em>may
- * shuffle the network</em> (see {@value #PAR_N}) so if this is an issue,
- * it should not be used,
- * or only after the simulation has finished.
- */
-public class RandRemoval extends GraphObserver
-{
-
-// ===================== fields =======================================
-// ====================================================================
-
-// XXX remove side effect
-/**
- * This parameter defines the number of runs of the iterative removal procedure
- * to get statistics. Look out: if set to a value larger than 1 then as a side
- * effect <em>the overlay will be shuffled</em>. Defaults to 1.
- * @config
- */
-private static final String PAR_N = "n";
-
-private final int n;
-
-// ===================== initialization ================================
-// =====================================================================
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public RandRemoval(String name)
-{
-       super(name);
-       n = Configuration.getInt(name + "." + PAR_N, 1);
-}
-
-// ====================== methods ======================================
-// =====================================================================
-
-/**
-* Prints results of node removal tests. The following experiment is
-* repeated {@value #PAR_N} times. From the graph 50%, 51%, ..., 99% of the nodes
-* are removed at random. For all percentages it is calculated what is
-* the maximal
-* clustersize (weakly connected clusters) and the number of
-* clusters in the remaining graph.
-* These values are averaged over the experiments, and for all 50 different
-* percentage values a line is printed that contains the respective averages,
-* first the average maximal cluster size, followed by the average number
-* of clusters.
-* @return always false
-*/
-public boolean execute()
-{
-       if( n < 1 ) return false;
-       updateGraph();
-       
-       System.out.println(name + ":");
-       
-       final int size = Network.size();
-       final int steps = 50;
-       IncrementalStats[] maxClust = new IncrementalStats[steps];
-       IncrementalStats[] clustNum = new IncrementalStats[steps];
-       for (int i = 0; i < steps; ++i) {
-               maxClust[i] = new IncrementalStats();
-               clustNum[i] = new IncrementalStats();
-       }
-       for (int j = 0; j < n; ++j) {
-               PrefixSubGraph sg = new PrefixSubGraph(g);
-               IncrementalStats stats = new IncrementalStats();
-               for (int i = 0; i < steps; i++) {
-                       sg.setSize(size / 2 - i * (size / 100));
-                       Map clst = ga.weaklyConnectedClusters(sg);
-                       stats.reset();
-                       Iterator it = clst.values().iterator();
-                       while (it.hasNext()) {
-                               stats.add(((Integer) it.next()).intValue());
-                       }
-                       maxClust[i].add(stats.getMax());
-                       clustNum[i].add(clst.size());
-               }
-               if( j+1 < n ) Network.shuffle();
-       }
-       for (int i = 0; i < steps; ++i) {
-               System.out.println(maxClust[i].getAverage() + " "
-                               + clustNum[i].getAverage());
-       }
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/transport/E2ENetwork.java b/contrib/psg/src/peersim/transport/E2ENetwork.java
deleted file mode 100644 (file)
index a184f9a..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-
-/**
- * This static singleton emulates an underlying router network
- * of fixed size, and stores the latency measurements for all pairs
- * of routers.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.6 $
- */
-public class E2ENetwork
-{
-
-//---------------------------------------------------------------------
-//Fields
-//---------------------------------------------------------------------
-
-/**
- * True if latency between nodes is considered symmetric. False otherwise.
- */
-private static boolean symm;   
-       
-/**
- * Size of the router network. 
- */
-private static int size;
-
-/**
- * Latency distances between nodes.
- */
-private static int[][] array;
-       
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/** Disable instance construction */
-private E2ENetwork() {}
-
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/**
- * Resets the network, by creating a triangular (if symm is true) or
- * a rectangular (if symm is false) array of integers. Initially all
- * latencies between any pairs are set to be 0.
- * @param size the number or routers
- * @param symm if latency is symmetric between all pairs of routers
- */
-public static void reset(int size, boolean symm)
-{
-       E2ENetwork.symm = symm;
-       E2ENetwork.size = size;
-       array = new int[size][];
-       for (int i=0; i < size; i++) {
-               if (symm)
-                       array[i] = new int[i];
-               else
-                       array[i] = new int[size];
-       }
-}
-       
-//---------------------------------------------------------------------
-
-/**
- * Returns the latency associated to the specified (sender, receiver)
- * pair. Routers are indexed from 0.
- * 
- * @param sender the index of the sender
- * @param receiver the index of the receiver
- * @return the latency associated to the specified (sender, receiver)
- * pair.
- */
-public static int getLatency(int sender, int receiver) 
-{
-       if (sender == receiver)
-               return 0;
-       // XXX There should be the possibility to fix the delay.
-       if (symm) {
-               // Symmetric network
-               if (sender < receiver) {
-                       int tmp = sender;
-                       sender = receiver;
-                       receiver = tmp;
-               }
-       } 
-       return array[sender][receiver];
-}
-
-//---------------------------------------------------------------------
-
-/**
- * Sets the latency associated to the specified (sender, receiver)
- * pair. Routers are indexed from 0.
- * 
- * @param sender the index of the sender
- * @param receiver the index of the receiver
- * @param latency the latency to be set
- */
-public static void setLatency(int sender, int receiver, int latency) 
-{
-       if (symm) {
-               // Symmetric network
-               if (sender < receiver) {
-                       int tmp = sender;
-                       sender = receiver;
-                       receiver = tmp;
-               }
-       } 
-       array[sender][receiver] = latency;
-}
-
-//---------------------------------------------------------------------
-
-/**
- * Returns the current size of the underlying network (i.e., the number of
- * routers).
- */
-public static int getSize()
-{
-       return size;
-}
-
-}
diff --git a/contrib/psg/src/peersim/transport/E2ETransport.java b/contrib/psg/src/peersim/transport/E2ETransport.java
deleted file mode 100644 (file)
index e2eab78..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.edsim.*;
-
-
-/**
- * This transport protocol is based on the {@link E2ENetwork} class.
- * Each instance
- * of this transport class is assigned to one of the routers contained in
- * the (fully static singleton) {@link E2ENetwork},
- * and subsequently the {@link E2ENetwork} class is used to obtain the
- * latency for messages sending based on the router assignment.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.11 $
- */
-public class E2ETransport implements Transport, RouterInfo
-{
-
-//---------------------------------------------------------------------
-//Parameters
-//---------------------------------------------------------------------
-
-/**
- * The delay that corresponds to the time spent on the source (and destination)
- * nodes. In other words, full latency is calculated by fetching the latency
- * that belongs to communicating between two routers, incremented by
- * twice this delay. Defaults to 0.
- * @config
- */
-private static final String PAR_LOCAL = "local";
-       
-//---------------------------------------------------------------------
-//Static fields
-//---------------------------------------------------------------------
-
-/** Identifier of this transport protocol */
-private static int tid;
-       
-/** Local component of latency */
-private static long local;
-
-//---------------------------------------------------------------------
-//Fields
-//---------------------------------------------------------------------
-
-/** Identifier of the internal node */
-private int router = -1;
-       
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/**
- * Reads configuration parameters.
- */
-public E2ETransport(String prefix)
-{
-       tid = CommonState.getPid();
-       local = Configuration.getLong(prefix + "." + PAR_LOCAL, 0);
-}
-
-//---------------------------------------------------------------------
-
-/**
- * Clones the object.
- */
-public Object clone()
-{
-       E2ETransport e2e=null;
-       try { e2e=(E2ETransport)super.clone(); }
-       catch( CloneNotSupportedException e ) {} // never happens
-       return e2e;
-}
-
-//---------------------------------------------------------------------
-//Methods inherited by Transport
-//---------------------------------------------------------------------
-
-/**
-* Delivers the message reliably, with the latency calculated by
-* {@link #getLatency}.
-*/
-public void send(Node src, Node dest, Object msg, int pid)
-{
-       /* Assuming that the sender corresponds to the source node */
-       E2ETransport sender = (E2ETransport) src.getProtocol(tid);
-       E2ETransport receiver = (E2ETransport) dest.getProtocol(tid);
-       long latency =
-          E2ENetwork.getLatency(sender.router, receiver.router) + local*2;
-       EDSimulator.add(latency, msg, dest, pid);
-}
-
-//---------------------------------------------------------------------
-
-/**
-* Calculates latency using the static singleton {@link E2ENetwork}.
-* It looks up which routers the given nodes are assigned to, then
-* looks up the corresponding latency. Finally it increments this value
-* by adding twice the local delay configured by {@value #PAR_LOCAL}.
-*/
-public long getLatency(Node src, Node dest)
-{
-       /* Assuming that the sender corresponds to the source node */
-       E2ETransport sender = (E2ETransport) src.getProtocol(tid);
-       E2ETransport receiver = (E2ETransport) dest.getProtocol(tid);
-       return E2ENetwork.getLatency(sender.router, receiver.router) + local*2;
-}
-
-
-//---------------------------------------------------------------------
-//Methods inherited by RouterInfo
-//---------------------------------------------------------------------
-
-/**
- * Associates the node hosting this transport protocol instance with
- * a router in the router network.
- * 
- * @param router the numeric index of the router 
- */
-public void setRouter(int router)
-{
-       this.router = router;
-}
-
-//---------------------------------------------------------------------
-
-/**
- * @return the router associated to this transport protocol.
- */
-public int getRouter()
-{
-       return router;
-}
-
-}
diff --git a/contrib/psg/src/peersim/transport/KingParser.java b/contrib/psg/src/peersim/transport/KingParser.java
deleted file mode 100644 (file)
index 1471796..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import java.io.*;
-import java.util.*;
-import peersim.config.*;
-import peersim.core.Control;
-
-/**
- * Initializes static singleton {@link E2ENetwork} by reading a king data set.
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.9 $
- */
-public class KingParser implements Control
-{
-
-// ---------------------------------------------------------------------
-// Parameters
-// ---------------------------------------------------------------------
-
-/**
- * The file containing the King measurements.
- * @config
- */
-private static final String PAR_FILE = "file";
-
-/**
- * The ratio between the time units used in the configuration file and the
- * time units used in the Peersim simulator.
- * @config
- */
-private static final String PAR_RATIO = "ratio";
-
-// ---------------------------------------------------------------------
-// Fields
-// ---------------------------------------------------------------------
-
-/** Name of the file containing the King measurements. */
-private String filename;
-
-/**
- * Ratio between the time units used in the configuration file and the time
- * units used in the Peersim simulator.
- */
-private double ratio;
-
-/** Prefix for reading parameters */
-private String prefix;
-
-// ---------------------------------------------------------------------
-// Initialization
-// ---------------------------------------------------------------------
-
-/**
- * Read the configuration parameters.
- */
-public KingParser(String prefix)
-{
-       this.prefix = prefix;
-       ratio = Configuration.getDouble(prefix + "." + PAR_RATIO, 1);
-       filename = Configuration.getString(prefix + "." + PAR_FILE, null);
-}
-
-// ---------------------------------------------------------------------
-// Methods
-// ---------------------------------------------------------------------
-
-/**
- * Initializes static singleton {@link E2ENetwork} by reading a king data set.
-* @return  always false
-*/
-public boolean execute()
-{
-       BufferedReader in = null;
-       if (filename != null) {
-               try {
-                       in = new BufferedReader(new FileReader(filename));
-               } catch (FileNotFoundException e) {
-                       throw new IllegalParameterException(prefix + "." + PAR_FILE, filename
-                                       + " does not exist");
-               }
-       } else {
-               in = new BufferedReader( new InputStreamReader(
-                                               ClassLoader.getSystemResourceAsStream("t-king.map")
-                                       )       );
-       }
-               
-       // XXX If the file format is not correct, we will get quite obscure
-       // exceptions. To be improved.
-
-       String line = null;
-       // Skip initial lines
-       int size = 0;
-       int lc = 1;
-       try {
-               while ((line = in.readLine()) != null && !line.startsWith("node")) lc++;
-               while (line != null && line.startsWith("node")) {
-                       size++;
-                       lc++;
-                       line = in.readLine();
-               }
-       } catch (IOException e) {
-               System.err.println("KingParser: " + filename + ", line " + lc + ":");
-               e.printStackTrace();
-               try { in.close(); } catch (IOException e1) { };
-               System.exit(1);
-       }
-       E2ENetwork.reset(size, true);
-       if (line == null) {
-               System.err.println("KingParser: " + filename + ", line " + lc + ":");
-               System.err.println("No latency matrix contained in the specified file");
-               try { in.close(); } catch (IOException e1) { };
-               System.exit(1);
-       }
-       
-       System.err.println("KingParser: read " + size + " entries");
-       
-       try {
-               do {
-                       StringTokenizer tok = new StringTokenizer(line, ", ");
-                       if (tok.countTokens() != 3) {
-                               System.err.println("KingParser: " + filename + ", line " + lc + ":");
-                               System.err.println("Specified line does not contain a <node1, node2, latency> triple");
-                               try { in.close(); } catch (IOException e1) { };
-                               System.exit(1);
-                       }
-                       int n1 = Integer.parseInt(tok.nextToken()) - 1;
-                       int n2 = Integer.parseInt(tok.nextToken()) - 1;
-                       int latency = (int) (Double.parseDouble(tok.nextToken()) * ratio);
-                       E2ENetwork.setLatency(n1, n2, latency);
-                       lc++;
-                       line = in.readLine();
-               } while (line != null);
-               
-               in.close();
-       
-       } catch (IOException e) {
-               System.err.println("KingParser: " + filename + ", line " + lc + ":");
-               e.printStackTrace();
-               try { in.close(); } catch (IOException e1) { };
-               System.exit(1);
-       }
-
-
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/transport/RouterInfo.java b/contrib/psg/src/peersim/transport/RouterInfo.java
deleted file mode 100644 (file)
index be3c168..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-/**
- * Generic interface to be implemented by protocols that need to be assigned to
- * routers. The idea is that each node is assigned to a router, by
- * invoking {@link #setRouter(int)} method. Routers are identified by
- * integer indexes (starting from 0), based on the assumption that the
- * router network
- * is static. The router information is then used by different 
- * implementations to compute latency, congestion, etc.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.4 $
- */
-public interface RouterInfo
-{
-
-/**
- * Associates the node hosting this transport protocol instance with
- * a router in the router network.
- * 
- * @param router the numeric index of the router 
- */
-public void setRouter(int router);
-
-/**
- * @return the router associated to this transport protocol.
- */
-public int getRouter();
-
-}
diff --git a/contrib/psg/src/peersim/transport/Transport.java b/contrib/psg/src/peersim/transport/Transport.java
deleted file mode 100644 (file)
index 4606283..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import peersim.core.*;
-
-
-/**
- * This interface represents a generic transport protocol, used to
- * send messages through the underlying network. Generally, transport
- * protocols use {@link peersim.edsim.EDSimulator} to schedule the delivery of
- * messages with some appropriate delay. They can also model message omission
- * failure as well.
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.7 $
- */
-public interface Transport extends Protocol
-{
-       
-/**
- * Sends message <code>msg</code>      from node <code>src</code> to protocol
- * <code>pid</code> of node <code>dst</code>.
- * 
- * @param src sender node
- * @param dest destination node
- * @param msg message to be sent
- * @param pid protocol identifier
- */
-public void send(Node src, Node dest, Object msg, int pid);
-
-
-/**
- * Return a latency estimate from node <code>src</code> to protocol
- * <code>pid</code> of node <code>dst</code>. 
- * 
- * @param src sender node
- * @param dest destination node
- */
-public long getLatency(Node src, Node dest);
-
-
-}
diff --git a/contrib/psg/src/peersim/transport/TriangularMatrixParser.java b/contrib/psg/src/peersim/transport/TriangularMatrixParser.java
deleted file mode 100644 (file)
index d3f0768..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import java.io.*;
-
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Initializes static singleton {@link E2ENetwork} by reading a trace 
- * file containing the latency distance measured between a set of 
- * "virtual" routers. Latency is assumed to be symmetric, so the 
- * latency between x and y is equal to the latency to y and x.
- * 
- * The format of the file is as follows: all values are stored as
- * integers. The first value is the number of nodes considered.
- * The rest of the values correspond to a "strictly upper triangular 
- * matrix" (see this 
- * <a href="http://en.wikipedia.org/w/index.php?title=Triangular_matrix&oldid=82411128">
- * link</a>), ordered first by row than by column.
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.4 $
- */
-public class TriangularMatrixParser implements Control
-{
-
-// ---------------------------------------------------------------------
-// Parameters
-// ---------------------------------------------------------------------
-
-/**
- * This configuration parameter identifies the filename of the file
- * containing the measurements. First, the file is used as a pathname 
- * in the local file system. If no file can be identified in this way, 
- * the file is searched in the local classpath. If the file cannot be 
- * identified again, an error message is reported.
- * @config
- */
-private static final String PAR_FILE = "file";
-
-/**
- * The ratio between the time units used in the configuration file and the
- * time units used in the Peersim simulator.
- * @config
- */
-private static final String PAR_RATIO = "ratio";
-
-// ---------------------------------------------------------------------
-// Fields
-// ---------------------------------------------------------------------
-
-/** Name of the file containing the measurements. */
-private String filename;
-
-/** Ratio read from PAR_RATIO */
-private double ratio;
-
-// ---------------------------------------------------------------------
-// Initialization
-// ---------------------------------------------------------------------
-
-/**
- * Read the configuration parameters.
- */
-public TriangularMatrixParser(String prefix)
-{
-       filename = Configuration.getString(prefix + "." + PAR_FILE);
-       ratio = Configuration.getDouble(prefix + "." + PAR_RATIO);
-}
-
-// ---------------------------------------------------------------------
-// Methods
-// ---------------------------------------------------------------------
-
-/**
- * Initializes static singleton {@link E2ENetwork} by reading a king data set.
-* @return  always false
-*/
-public boolean execute()
-{
-       try {
-               ObjectInputStream in = null;
-               try {
-                       in = new ObjectInputStream(
-                                       new BufferedInputStream(
-                                                       new FileInputStream(filename)));
-                       System.err.println("TriangularMatrixParser: Reading " + filename + " from local file system");
-               } catch (FileNotFoundException e) {
-                       in = new ObjectInputStream(
-                                       new BufferedInputStream(
-                                                       ClassLoader.getSystemResourceAsStream(filename)));
-                       System.err.println("TriangularMatrixParser: Reading " + filename + " through the class loader");
-               }
-       
-               // Read the number of nodes in the file (first four bytes).
-         int size = in.readInt();
-         
-               // Reset the E2E network
-               E2ENetwork.reset(size, true);
-               System.err.println("TriangularMatrixParser: reading " + size + " rows");
-       
-               // If the file format is not correct, data will be read 
-               // incorrectly. Probably a good way to spot this is the 
-               // presence of negative delays, or an end of file.
-       
-               // Reading data
-               int count = 0;
-               for (int r=0; r < size; r++) {
-                       for (int c = r+1; c < size; c++) {
-                               int x = (int) (ratio*in.readInt());
-                               count++;
-                               E2ENetwork.setLatency(r,c,x);
-                       }
-               }
-               System.err.println("TriangularMatrixParser: Read " + count + " entries");
-       } catch (IOException e) {
-               throw new RuntimeException(e.getMessage());
-       }
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/peersim/transport/UniformRandomTransport.java b/contrib/psg/src/peersim/transport/UniformRandomTransport.java
deleted file mode 100644 (file)
index 1abc6d8..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.edsim.*;
-
-
-/**
- * Implement a transport layer that reliably delivers messages with a random
- * delay, that is drawn from the configured interval according to the uniform
- * distribution.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.14 $
- */
-public final class UniformRandomTransport implements Transport
-{
-
-//---------------------------------------------------------------------
-//Parameters
-//---------------------------------------------------------------------
-
-/** 
- * String name of the parameter used to configure the minimum latency.
- * @config
- */    
-private static final String PAR_MINDELAY = "mindelay"; 
-       
-/** 
- * String name of the parameter used to configure the maximum latency.
- * Defaults to {@value #PAR_MINDELAY}, which results in a constant delay.
- * @config 
- */    
-private static final String PAR_MAXDELAY = "maxdelay"; 
-       
-//---------------------------------------------------------------------
-//Fields
-//---------------------------------------------------------------------
-
-/** Minimum delay for message sending */
-private final long min;
-       
-/** Difference between the max and min delay plus one. That is, max delay is
-* min+range-1.
-*/
-private final long range;
-
-       
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/**
- * Reads configuration parameter.
- */
-public UniformRandomTransport(String prefix)
-{
-       min = Configuration.getLong(prefix + "." + PAR_MINDELAY);
-       long max = Configuration.getLong(prefix + "." + PAR_MAXDELAY,min);
-       if (max < min) 
-          throw new IllegalParameterException(prefix+"."+PAR_MAXDELAY, 
-          "The maximum latency cannot be smaller than the minimum latency");
-       range = max-min+1;
-}
-
-//---------------------------------------------------------------------
-
-/**
-* Returns <code>this</code>. This way only one instance exists in the system
-* that is linked from all the nodes. This is because this protocol has no
-* node specific state.
-*/
-public Object clone()
-{
-       return this;
-}
-
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/**
- * Delivers the message with a random
- * delay, that is drawn from the configured interval according to the uniform
- * distribution.
-*/
-public void send(Node src, Node dest, Object msg, int pid)
-{
-       // avoid calling nextLong if possible
-       long delay = (range==1?min:min + CommonState.r.nextLong(range));
-       EDSimulator.add(delay, msg, dest, pid);
-}
-
-/**
- * Returns a random
- * delay, that is drawn from the configured interval according to the uniform
- * distribution.
-*/
-public long getLatency(Node src, Node dest)
-{
-       return (range==1?min:min + CommonState.r.nextLong(range));
-}
-
-
-}
diff --git a/contrib/psg/src/peersim/transport/UniformRouterAssignment.java b/contrib/psg/src/peersim/transport/UniformRouterAssignment.java
deleted file mode 100644 (file)
index 064ba7d..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import peersim.config.*;
-import peersim.core.*;
-
-
-/**
- * Initializes {@link RouterInfo} protocols by assigning routers to them.
- * The number of routers is defined by static singleton {@link E2ENetwork}.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.6 $
- */
-public class UniformRouterAssignment implements Control
-{
-
-//---------------------------------------------------------------------
-//Parameters
-//---------------------------------------------------------------------
-
-/** 
- * Parameter name used to configure the {@link RouterInfo} protocol
- * that should be initialized.
- * @config 
- */
-private static final String PAR_PROT = "protocol"; 
-       
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/** Protocol identifier */
-private int pid;       
-       
-
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/**
- * Reads configuration parameters.
- */
-public UniformRouterAssignment(String prefix)
-{
-       pid = Configuration.getPid(prefix+"."+PAR_PROT);
-}
-
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/**
- * Initializes given {@link RouterInfo} protocol layer by assigning
- * routers randomly.
- * The number of routers is defined by static singleton {@link E2ENetwork}.
-* @return always false
-*/
-public boolean execute()
-{
-       int nsize = Network.size();
-       int nrouters = E2ENetwork.getSize();
-       for (int i=0; i < nsize; i++) {
-               Node node = Network.get(i);
-               RouterInfo t = (RouterInfo) node.getProtocol(pid);
-               int r = CommonState.r.nextInt(nrouters);
-               t.setRouter(r);
-       }
-
-       return false;
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/transport/UnreliableTransport.java b/contrib/psg/src/peersim/transport/UnreliableTransport.java
deleted file mode 100644 (file)
index 9460880..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.transport;
-
-import peersim.config.*;
-import peersim.core.*;
-
-
-/**
- * This transport protocol can be combined with other transports
- * to simulate message losses. Its behavior is the following: each message
- * can be dropped based on the configured probability, or it will be sent
- * using the underlying transport protocol. 
- * <p>
- * The memory requirements are minimal, as a single instance is created and 
- * inserted in the protocol array of all nodes (because instances have no state
- * that depends on the hosting node). 
- *
- * @author Alberto Montresor
- * @version $Revision: 1.13 $
- */
-public final class UnreliableTransport implements Transport
-{
-
-//---------------------------------------------------------------------
-//Parameters
-//---------------------------------------------------------------------
-
-/**
- * The name of the underlying transport protocol. This transport is
- * extended with dropping messages.
- * @config
- */
-private static final String PAR_TRANSPORT = "transport";
-
-/** 
- * String name of the parameter used to configure the probability that a 
- * message sent through this transport is lost.
- * @config
- */
-private static final String PAR_DROP = "drop";
-
-
-//---------------------------------------------------------------------
-//Fields
-//---------------------------------------------------------------------
-
-/** Protocol identifier for the support transport protocol */
-private final int transport;
-
-/** Probability of dropping messages */
-private final float loss;
-
-//---------------------------------------------------------------------
-//Initialization
-//---------------------------------------------------------------------
-
-/**
- * Reads configuration parameter.
- */
-public UnreliableTransport(String prefix)
-{
-       transport = Configuration.getPid(prefix+"."+PAR_TRANSPORT);
-       loss = (float) Configuration.getDouble(prefix+"."+PAR_DROP);
-}
-
-//---------------------------------------------------------------------
-
-/**
-* Returns <code>this</code>. This way only one instance exists in the system
-* that is linked from all the nodes. This is because this protocol has no
-* state that depends on the hosting node.
- */
-public Object clone()
-{
-       return this;
-}
-
-//---------------------------------------------------------------------
-//Methods
-//---------------------------------------------------------------------
-
-/** Sends the message according to the underlying transport protocol.
-* With the configured probability, the message is not sent (i.e. the method does
-* nothing).
-*/
-public void send(Node src, Node dest, Object msg, int pid)
-{
-       try
-       {
-               if (CommonState.r.nextFloat() >= loss)
-               {
-                       // Message is not lost
-                       Transport t = (Transport) src.getProtocol(transport);
-                       t.send(src, dest, msg, pid);
-               }
-       }
-       catch(ClassCastException e)
-       {
-               throw new IllegalArgumentException("Protocol " +
-                               Configuration.lookupPid(transport) + 
-                               " does not implement Transport");
-       }
-}
-
-/** Returns the latency of the underlying protocol.*/
-public long getLatency(Node src, Node dest)
-{
-       Transport t = (Transport) src.getProtocol(transport);
-       return t.getLatency(src, dest);
-}
-
-}
diff --git a/contrib/psg/src/peersim/util/ExtendedRandom.java b/contrib/psg/src/peersim/util/ExtendedRandom.java
deleted file mode 100644 (file)
index 14e713e..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.util;
-
-import java.util.Random;
-import java.lang.Math;
-
-/**
- * Extends the functionality of <code>java.util.Random</code>.
- */
-public class ExtendedRandom extends Random {
-
-private long lastSeed;
-
-// -------------------------------------------------------------------------
-
-/** Calls super constructor. Also stores the seed to be returned by
-{@link #getLastSeed}. */
-public ExtendedRandom(long seed) {
-       
-       super(seed);
-       lastSeed = seed;
-}
-
-// -------------------------------------------------------------------------
-
-/**
- * Extracts the next integer, according to a Poisson distribution.
- * 
- * @param mean The mean of the Poisson distribution.
- * @return An integer Poisson extraction.
- */
-public int nextPoisson(double mean) {
-       
-       double emean = Math.exp(-1 * mean);
-       double product = 1;
-       int count = 0;
-       int result = 0;
-       while (product >= emean) {
-               product *= nextDouble();
-               result = count;
-               count++; // keep result one behind
-       }
-       return result;
-}
-
-// -------------------------------------------------------------------------
-
-/**
-* Implements nextLong(long) the same way nexInt(int) is implemented in
-* java.util.Random.
-* @param n the bound on the random number to be returned. Must be positive.
-* @return a pseudorandom, uniformly distributed long value between 0
-* (inclusive) and n (exclusive).
-*/
-public long nextLong(long n) {
-
-       if (n<=0)
-               throw new IllegalArgumentException("n must be positive");
-       
-       if ((n & -n) == n)  // i.e., n is a power of 2
-       {       
-               return nextLong()&(n-1);
-       }
-       
-       long bits, val;
-       do
-       {
-               bits = (nextLong()>>>1);
-               val = bits % n;
-       }
-       while(bits - val + (n-1) < 0);
-       
-       return val;
-}
-
-// -------------------------------------------------------------------------
-
-/** Sets random seed. Calls super method but also stores the seed to be
-returned by {@link #getLastSeed}. */
-public void setSeed( long seed ) {
-       
-       super.setSeed(seed);
-       lastSeed = seed;
-}
-
-// -------------------------------------------------------------------------
-
-/**
-* Returns the last random seed that was set explicitly. Either at
-* construction time or through {@link #setSeed}.
-*/
-public long getLastSeed() { return lastSeed; }
-
-// -------------------------------------------------------------------------
-
-/*
-public static void main(String[] args) {
-
-       ExtendedRandom er = new ExtendedRandom(12345678);
-       for(int i=0; i<100; ++i)
-               System.out.println(er.nextLong(Long.parseLong(args[0])));
-       
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/util/FileNameGenerator.java b/contrib/psg/src/peersim/util/FileNameGenerator.java
deleted file mode 100644 (file)
index c07d925..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-import java.io.*;
-
-
-/**
-* Generates a series of filenames for classes that have to save e.g.
-* snapshots regularly.
-*/
-public class FileNameGenerator {
-
-
-/**
-* The number of filenames already returned.
-*/
-private long counter = 0;
-
-/** The prefix of the filename */
-public final String prefix;
-
-/** The extension of the filename */
-public final String ext;
-
-
-// ==================== initialization ==============================
-// ==================================================================
-
-
-/**
-* @param prefix all returned names will be prefixed by this
-* @param ext will be appended to all returned names
-*/
-public FileNameGenerator(String prefix, String ext) {
-       
-       this.prefix=prefix;
-       this.ext=ext;
-}
-
-
-// ===================== methods ====================================
-// ==================================================================
-
-
-/**
-* Generates a name based on a counter.
-* The format of the name returned is {@link #prefix} followed by
-* an 8 digit zero padded number, followed by {@link #ext}.
-* The first number used is zero.
-* @return the next filename after increasing the counter
-*/
-public String nextCounterName() {
-       
-       ByteArrayOutputStream baos = new ByteArrayOutputStream();
-       (new PrintStream(baos)).printf("%08d",counter);
-       counter++;
-       return prefix+baos.toString()+ext;
-}
-
-// ------------------------------------------------------------------
-
-/*
-public static void main(String args[]) {
-       
-       FileNameGenerator fng = new FileNameGenerator(args[0],args[1]);
-       for(int i=0; i<100; ++i) System.err.println(fng.nextCounterName()); 
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/util/IncrementalFreq.java b/contrib/psg/src/peersim/util/IncrementalFreq.java
deleted file mode 100644 (file)
index 3352daf..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.        See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-import java.io.PrintStream;
-
-//XXX This implementation is very restricted, to be made more flexible
-// using hashtables.
-/**
-* A class that can collect frequency information on integer input.
-* right now it can handle only unsigned input. It simply ignores negative
-* numbers.
-*/
-public class IncrementalFreq implements Cloneable {
-
-
-// ===================== fields ========================================
-// =====================================================================
-
-/** The number of items inserted. */
-private int n;
-
-/** freq[i] holds the frequency of i. primitive implementation, to be changed */
-private int[] freq = null; 
-
-/**
-* The capacity, if larger than 0. Added values larger than or equal to
-* this one will be ignored.
-*/
-private final int N;
-
-
-// ====================== initialization ==============================
-// ====================================================================
-
-
-/**
-* @param maxvalue Values in the input set larger than this one will be ignored.
-* However, if it is negative, no values are ignored.
-*/
-public IncrementalFreq(int maxvalue) {
-       
-       N = maxvalue+1;
-       reset();
-}
-
-// --------------------------------------------------------------------
-
-/** Calls <code>this(-1)</code>, that is, no values will be ignored.
-* @see #IncrementalFreq(int) */
-public IncrementalFreq() {
-       
-       this(-1);
-}
-
-// --------------------------------------------------------------------
-
-/** Reset the state of the object. After calling this, all public methods
-* behave the same as they did after constructing the object.
-*/
-public void reset() {
-
-       if( freq==null || N==0 ) freq = new int[0];
-       else for(int i=0; i<freq.length; ++i) freq[i]=0;
-       n = 0;
-}
-
-
-// ======================== methods ===================================
-// ====================================================================
-
-/**
- * Adds item <code>i</code> to the input set.
- * It calls <code>add(i,1)</code>.
- * @see #add(int,int)
- */
-public final void add( int i ) { add(i,1); }
-
-
-// --------------------------------------------------------------------
-
-/**
- * Adds item <code>i</code> to the input set <code>k</code> times.
- * That is, it increments counter <code>i</code> by <code>k</code>.
- * If, however, <code>i</code> is negative, or larger than the maximum defined
- * at construction time (if a maximum was set at all) the operation is ignored.
- */
-public void add( int i, int k ) {
-  
-  if( N>0 && i>=N ) return;
-  if( i<0 || k<=0 ) return;
-
-  // Increase number of items by k.
-  n+=k;
-
-  // If index i is out of bounds for the current array of counters,
-  // increase the size of the array to i+1.
-  if( i>=freq.length )
-  {
-    int tmp[] = new int[i+1];
-    System.arraycopy(freq, 0, tmp, 0, freq.length);
-    freq=tmp;
-  }
-
-  // Finally, increase counter i by k.
-  freq[i]+=k;
-}
-
-// --------------------------------------------------------------------
-
-/** Returns number of processed data items.
-* This is the number of items over which the class holds statistics.
-*/
-public int getN() { return n; }
-
-// --------------------------------------------------------------------
-
-/** Returns the number of occurrences of the given integer. */
-public int getFreq(int i) {
-       
-       if( i>=0 && i<freq.length ) return freq[i];
-       else return 0;
-}
-
-// --------------------------------------------------------------------
-       
-
-/**
- * Performs an element-by-element vector subtraction of the
- * frequency vectors. If <code>strict</code> is true, it
- * throws an IllegalArgumentException if <code>this</code> is
- * not strictly larger than <code>other</code> (element by element)
- * (Note that both frequency vectors are positive.)
- * Otherwise just sets those elements in <code>this</code> to zero
- * that are smaller than those of <code>other</code>.
- * @param other The instance of IncrementalFreq to subtract
- * @param strict See above explanation
- */
-public void remove(IncrementalFreq other, boolean strict) {
-
-       // check if other has non-zero elements in non-overlapping part
-       if(strict && other.freq.length>freq.length)
-       {
-               for(int i=other.freq.length-1; i>=freq.length; --i)
-               {
-                       if (other.freq[i]!=0)
-                               throw new IllegalArgumentException();
-               }
-       }
-       
-       final int minLength = Math.min(other.freq.length, freq.length);
-       for (int i=minLength-1; i>=0; i--)
-       {
-               if (strict && freq[i] < other.freq[i])
-                       throw new IllegalArgumentException();
-               final int remove = Math.min(other.freq[i], freq[i]);
-               n -= remove;
-               freq[i] -= remove;
-       }
-}
-
-// ---------------------------------------------------------------------
-
-/**
-* Prints current frequency information. Prints a separate line for
-* all values from 0 to the capacity of the internal representation using the
-* format
-* <pre>
-* value occurrences
-* </pre>
-* That is, numbers with zero occurrences will also be printed. 
-*/
-public void printAll( PrintStream out ) {
-       
-       for(int i=0; i<freq.length; ++i)
-       {
-               out.println(i+" "+freq[i]);
-       }
-}
-
-// ---------------------------------------------------------------------
-
-/**
-* Prints current frequency information. Prints a separate line for
-* all values that have a number of occurrences different from zero using the 
-* format
-* <pre>
-* value occurrences
-* </pre>
-*/
-public void print( PrintStream out ) {
-
-       for(int i=0; i<freq.length; ++i)
-       {
-               if(freq[i]!=0) out.println(i+" "+freq[i]);
-       }
-}
-
-// ---------------------------------------------------------------------
-
-public String toString() {
-       
-       StringBuilder result=new StringBuilder("");
-       for(int i=0; i<freq.length; ++i)
-       {
-               if (freq[i] != 0)
-                       result.append(" (").append(i).append(","
-                       ).append(freq[i]).append(")");
-       }
-       return result.toString();
-}
-
-// ---------------------------------------------------------------------
-
-/** An alternative method to convert the object to String */
-public String toArithmeticExpression() {
-
-       StringBuilder result=new StringBuilder("");
-       for (int i=freq.length-1; i>=0; i--)
-       {
-               if (freq[i] != 0)
-                       result.append(freq[i]).append(
-                       "*").append(i).append("+");
-       }
-       
-       if (result.length()==0)
-               return "(empty)";
-       else
-               return result.substring(0, result.length()-1);
-}
-
-// ---------------------------------------------------------------------
-
-public Object clone() throws CloneNotSupportedException {
-
-       IncrementalFreq result = (IncrementalFreq)super.clone();
-       if( freq != null ) result.freq = freq.clone();
-       return result;
-}
-
-// ---------------------------------------------------------------------
-
-/**
-* Tests equality between two IncrementalFreq instances.
-* Two objects are equal if both hold the same set of numbers that have
-* occurred non-zero times and the number of occurrences is also equal for
-* these numbers.
-*/
-public boolean equals(Object obj) {
-
-       if( !( obj instanceof IncrementalFreq) ) return false;
-       IncrementalFreq other = (IncrementalFreq)obj;
-       final int minlength = Math.min(other.freq.length, freq.length);
-       
-       for (int i=minlength-1; i>=0; i--)
-               if (freq[i] != other.freq[i])
-                       return false;
-
-       if( freq.length > minlength ) other=this;
-       for (int i=minlength; i<other.freq.length; i++)
-               if( other.freq[i] != 0 )
-                       return false;
-
-       return true;
-}
-
-// ---------------------------------------------------------------------
-
-/**
-* Hashcode (consistent with {@link #equals}). Probably you will never want to
-* use this, but since we have {@link #equals}, we must implement it.
-*/
-public int hashCode() {
-
-       int sum = 0;
-       for(int i=0; i<freq.length; ++i) sum += freq[i]*i;
-       return sum;
-}
-
-// ---------------------------------------------------------------------
-
-/*
-public static void main(String[] pars) {
-       
-       IncrementalFreq ifq = new IncrementalFreq(Integer.parseInt(pars[0]));
-       for(int i=1; i<pars.length; ++i)
-       {
-               ifq.add(Integer.parseInt(pars[i]));
-       }
-       ifq.print(System.out);
-       System.out.println(ifq);
-}
-*/
-}
-
-
diff --git a/contrib/psg/src/peersim/util/IncrementalStats.java b/contrib/psg/src/peersim/util/IncrementalStats.java
deleted file mode 100644 (file)
index eb48d69..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-/**
-* A class that can keep track of some statistics like variance, average, min,
-* max incrementally. That is, when adding a new data item, it updates the
-* statistics.
-*/
-public class IncrementalStats {
-
-
-// ===================== fields ========================================
-// =====================================================================
-
-
-private double min;
-
-private double max;
-
-private double sum;
-
-private double sqrsum;
-
-private int n;
-
-private int countmin;
-
-private int countmax;
-
-// ====================== initialization ==============================
-// ====================================================================
-
-
-/** Calls {@link #reset}. */
-public IncrementalStats() { reset(); }
-
-// --------------------------------------------------------------------
-
-/** Resets the statistics to reflect the zero elements set.
-* Min and max are set to positive and negative infinity, respectively.
-*/
-public void reset() {
-       
-       countmin=0;
-       countmax=0;
-       min = Double.POSITIVE_INFINITY;
-       max = Double.NEGATIVE_INFINITY;
-       sum = 0.0;
-       sqrsum = 0.0;
-       n = 0;
-}
-
-
-// ======================== methods ===================================
-// ====================================================================
-
-
-/** Updates the statistics according to this element. It calls
-* <code>add(item,1)</code>.
-* @see #add(double,int) */
-public final void add( double item ) { add(item,1); }
-
-// --------------------------------------------------------------------
-
-/** Updates the statistics assuming element <code>item</code> is added
-* <code>k</code> times.*/
-public void add( double item, int k ) {
-       
-       if( item < min )
-       {
-               min = item;
-               countmin = 0;
-       } 
-       if( item == min ) countmin+=k;
-       if( item > max )
-       {
-               max = item;
-               countmax = 0;
-       }
-       if(item == max) countmax+=k;  
-       n+=k;
-       if( k == 1 )
-       {
-               sum += item;
-               sqrsum += item*item;
-       }
-       else
-       {
-               sum += item*k;
-               sqrsum += item*item*k;
-       }
-}
-
-// --------------------------------------------------------------------
-
-/** The number of data items processed so far */
-public int getN() { return n; }
-
-// --------------------------------------------------------------------
-
-/** The maximum of the data items */
-public double getMax() { return max; }
-
-// --------------------------------------------------------------------
-
-/** The minimum of the data items */
-public double getMin() { return min; }
-
-// --------------------------------------------------------------------
-
-/** Returns the number of data items whose value equals the maximum. */
-public int getMaxCount() { return countmax; }
-
-// --------------------------------------------------------------------
-
-/** Returns the number of data items whose value equals the minimum. */
-public int getMinCount() { return countmin; }
-
-// --------------------------------------------------------------------
-
-/** The sum of the data items */
-public double getSum() { return sum; }
-
-// --------------------------------------------------------------------
-
-/** The sum of the squares of the data items */
-public double getSqrSum() { return sqrsum; }
-
-// --------------------------------------------------------------------
-
-/** The average of the data items */
-public double getAverage() { return sum/n; }
-
-// --------------------------------------------------------------------
-
-/** The empirical variance of the data items. Guaranteed to be larger or
-equal to 0.0. If due to rounding errors the value becomes negative,
-it returns 0.0.*/
-public double getVar() {
-
-       double var=
-               (((double)n) / (n-1)) * (sqrsum/n - getAverage()*getAverage());
-       return (var>=0.0?var:0.0);
-       // XXX note that we have very little possibility to increase numeric
-       // stability if this class is "greedy", ie, if it has no memory
-       // In a more precise implementation we could delay the calculation of
-       // statistics and store the data in some intelligent structure
-}
-
-// --------------------------------------------------------------------
-
-/** the empirical standard deviation of the data items */
-public double getStD() { return Math.sqrt(getVar()); }
-
-// --------------------------------------------------------------------
-
-/**
-* Prints the following quantities separated by spaces in a single line
-* in this order.
-* Minimum, maximum, number of items, average, variance, number of minimal
-* items, number of maximal items.
-*/
-public String toString() {
-
-       return min+" "+max+" "+n+" "+sum/n+" "+getVar()+" "+
-               countmin+" "+countmax;
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/util/IndexIterator.java b/contrib/psg/src/peersim/util/IndexIterator.java
deleted file mode 100644 (file)
index 8d078ab..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-/**
-* This class provides iterations over the set of integers [0...k-1].
-*/
-public interface IndexIterator {
-
-       /**
-       * This resets the iteration. The set of integers will be 0,..,k-1.
-       */
-       public void reset(int k);
-       
-       /**
-       * Returns next index.
-       */
-       public int next();
-
-       /**
-       * Returns true if {@link #next} can be called at least one more time.
-       * Note that {@link #next} can be called k times after {@link #reset}.
-       */
-       public boolean hasNext();
-}
-
diff --git a/contrib/psg/src/peersim/util/LinearIterator.java b/contrib/psg/src/peersim/util/LinearIterator.java
deleted file mode 100644 (file)
index 2a1ee36..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-import java.util.NoSuchElementException;
-
-/**
-* This class gives the linear order 0,1,etc or alternatively k-1, k-2, etc.,
-* depending on the constructor.
-*/
-public class LinearIterator implements IndexIterator {
-
-
-// ======================= private fields ============================
-// ===================================================================
-
-private final boolean reverse;
-
-private int len = 0;
-
-private int pointer = 0;
-
-
-// ======================= initialization ============================
-// ===================================================================
-
-
-/**
-* Construct an iterator for an empty set of numbers.
-* You have to call {@link #reset} to actually fully initialize the object.
-* The numbers returned by consecutive calls to {@link #next} are 0,1,...
-*/
-public LinearIterator() { reverse=false; }
-
-// -------------------------------------------------------------------
-
-/**
-* Construct an interator for an empty set of numbers.
-* You have to call {@link #reset} to actually fully initialize the object.
-* If parameter is true then the numbers returned by consecutive calls to
-* {@link #next} are k-1,k-2,..., otherwise 0,1,...
-*/
-public LinearIterator( boolean rev ) { reverse=rev; }
-
-
-// ======================= public methods ============================
-// ===================================================================
-
-
-public void reset(int k) {
-       
-       len = k;
-       pointer = (reverse ? len-1 : 0);
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Returns next index. The indices are returned in increasing or decreasing
-* order depending on the parameter given at construction time.
-*/
-public int next() {
-       
-       if( !hasNext() ) throw new NoSuchElementException();
-       
-       return (reverse ? pointer-- : pointer++);
-}
-
-// -------------------------------------------------------------------
-
-public boolean hasNext() { return (reverse ? pointer >= 0 : pointer < len); }
-
-// -------------------------------------------------------------------
-
-/*
-public static void main( String pars[] ) throws Exception {
-       
-       LinearIterator rp = new LinearIterator(pars[0].equals("rev"));
-       
-       int k = Integer.parseInt(pars[1]);
-       rp.reset(k);
-       while(rp.hasNext()) System.out.println(rp.next());
-       
-       System.out.println();
-
-       k = Integer.parseInt(pars[2]);
-       rp.reset(k);
-       while(rp.hasNext()) System.out.println(rp.next());
-       System.out.println(rp.next());
-}
-*/
-}
diff --git a/contrib/psg/src/peersim/util/MedianStats.java b/contrib/psg/src/peersim/util/MedianStats.java
deleted file mode 100644 (file)
index be1e9be..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.util;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
- * This class adds the ability to retrieve the median element to the
- * {@link IncrementalStats} class. Note that this class actually stores all
- * the elements, so (unlike in its superclass) storage requirements depend
- * on the number of items processed.
- * 
- * @author giampa
- */
-public class MedianStats extends IncrementalStats
-{
-
-/** Structure to store each entry. */
-private final ArrayList<Double> data=new ArrayList<Double>();
-
-/** Calls {@link #reset}. */
-public MedianStats()
-{
-       reset();
-}
-
-/**
- * Retrieves the median in the current data collection.
- * 
- * @return The current median value.
- */
-public double getMedian()
-{
-       double result;
-
-       if (data.isEmpty())
-               throw new IllegalStateException("Data vector is empty!");
-
-       // Sort the arraylist
-       Collections.sort(data);
-       if (data.size() % 2 != 0) { // odd number
-               result = data.get(data.size() / 2);
-       } else { // even number:
-               double a = data.get(data.size() / 2);
-               double b = data.get(data.size() / 2 - 1);
-               result = (a + b) / 2;
-       }
-       return result;
-}
-
-public void add(double item, int k)
-{
-       for (int i = 0; i < k; ++i) {
-               super.add(item, 1);
-               data.add(new Double(item));
-       }
-}
-
-public void reset()
-{
-       super.reset();
-       if (data != null)
-               data.clear();
-}
-
-
-public static void main( String[] args ) {
-       MedianStats s = new MedianStats();
-       for(int i=0; i<args.length; i++) s.add(Double.parseDouble(args[i]));
-       System.out.println("Average: "+s.getAverage());
-       System.out.println("Median: "+s.getMedian());
-}
-
-}
diff --git a/contrib/psg/src/peersim/util/MomentStats.java b/contrib/psg/src/peersim/util/MomentStats.java
deleted file mode 100644 (file)
index 0a847c3..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.util;
-
-/**
- * This class provides extended statistical informations about the inspected 
- * distribution. In particular, it provides functions to compute the skewness
- * (the 3rd degree moment) and the kurtosis (4th degree moment).
- *
- * @author  Gian Paolo Jesi
- */
-public class MomentStats extends IncrementalStats {
-    
-    private double cubicsum, quadsum; // incremental sums
-    
-    /** Calls {@link #reset} */
-    public MomentStats() {
-       reset();
-    }
-    
-    public void reset() {
-        super.reset();
-        cubicsum = quadsum = 0.0;
-    }
-    
-    public void add(double item, int k) {
-        for(int i=0; i<k; ++i)
-       {
-               super.add(item,1);
-               cubicsum += item * item * item;
-               quadsum += item * cubicsum;
-       }
-    }
-   
-    /** Outputs on a single line the superclass statistics postfixed by the 
-     * current skewness and kurtosis.
-     */
-    public String toString() {
-        return super.toString()+" "+getSkewness()+" "+getKurtosis();
-    }
-    
-    /** Computes the skewness on the node values distribution and 
-     * returns the asymmetry coefficient. It gives an indication about the 
-     * distribution symmetry compared to the average.
-     *
-     *@return The skewness value as a double.
-     */ 
-    public double getSkewness() {
-        int n = this.getN();
-        double m3 = (((double)n) / (n-1)) * (cubicsum/n - Math.pow(getAverage(), 3) );
-        return ( m3 / Math.pow(getStD(), 3 ) );
-    }
-    
-    /** Computes the kurtosis on the node values distribution and 
-     *  returns the flatness coefficient. It gives an indication about the 
-     *  distribution sharpness or flatness.
-     *
-     * @return The kurtosis momentus value as a double.
-     */ 
-    public double getKurtosis(){
-        int n = this.getN();
-        double m4 = (((double)n) / (n-1)) * (quadsum/n - Math.pow(getAverage(), 4) );
-        return ( m4 / Math.pow(getStD(), 4) )-3;
-    }
-
-}
diff --git a/contrib/psg/src/peersim/util/RandPermutation.java b/contrib/psg/src/peersim/util/RandPermutation.java
deleted file mode 100644 (file)
index be97ab3..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-import java.util.NoSuchElementException;
-import java.util.Random;
-
-/**
-* This class provides a random permutation of indexes. Useful for
-* random sampling without replacement.
-*/
-public class RandPermutation implements IndexIterator {
-
-
-// ======================= private fields ============================
-// ===================================================================
-
-
-private int[] buffer = null;
-
-private int len = 0;
-
-private int pointer = 0;
-
-private final Random r;
-
-
-// ======================= initialization ============================
-// ===================================================================
-
-
-/** Sets source of randomness to be used. You need to call
-* {@link #reset} to fully initialize the object.
-* @param r Source of randomness
-*/
-public RandPermutation( Random r ) { this.r=r; }
-
-// -------------------------------------------------------------------
-
-/** Sets source of randomness and initial size. It calls 
-* {@link #setPermutation} to fully initialize the object with a
-* permuation ready to use. 
-* @param r Source of randomness
-* @param k size of permutation
-*/
-public RandPermutation( int k, Random r ) {
-       
-       this.r=r;
-       setPermutation(k);
-}
-
-
-// ======================= public methods ============================
-// ===================================================================
-
-
-/**
-* It calculates a random permutation of the integers from 0 to k-1.
-* The permutation can be read using method {@link #get}. 
-* If the previous permutation was of the same length, it is more efficient.
-* Note that after calling this the object is reset, so {@link #next} can
-* be called k times, even if {@link #get} was called an arbitrary number of
-* times. Note however that mixing {@link #get} and {@link #next} results in
-* incorrect behavior for {@link #get} (but {@link #next} works fine).
-* The idea is to use this method only in connection with {@link #get}.
-*/
-public void setPermutation(int k) {
-       
-       reset(k);
-       
-       for(int i=len; i>1; i--)
-       {
-               int j = r.nextInt(i);
-               int a = buffer[j];
-               buffer[j] = buffer[i-1];
-               buffer[i-1] = a;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Returns the ith element of the permutation set by {@link #setPermutation}.
-* If {@link #next} is called after {@link #setPermutation} and before
-* this method, then the behavior of this method is unspecified.
-*/
-public int get(int i) {
-       
-       if( i >= len ) throw new IndexOutOfBoundsException();
-       return buffer[i];
-}
-
-// -------------------------------------------------------------------
-
-/**
-* It initiates a random permutation of the integers from 0 to k-1.
-* It does not actually calculate the permutation.
-* The permutation can be read using method {@link #next}.
-* Calls to {@link #get} return undefined values, so {@link #next} must be used.
-* If the previous permutation was of the same length, it is more efficient.
-*/
-public void reset(int k) {
-       
-       pointer = k;
-       if( len == k ) return;
-       
-       if( buffer == null || buffer.length < k )
-       {
-               buffer = new int[k];
-       }
-       
-       len = k;
-       for( int i=0; i<len; ++i ) buffer[i]=i;
-}
-
-// -------------------------------------------------------------------
-
-/** Next random sample without replacement */
-public int next() {
-       
-       if( pointer < 1 ) throw new NoSuchElementException();
-       
-       int j = r.nextInt(pointer);
-       int a = buffer[j];
-       buffer[j] = buffer[pointer-1];
-       buffer[pointer-1] = a;
-       
-       return buffer[--pointer];
-}
-
-// -------------------------------------------------------------------
-
-public boolean hasNext() { return pointer > 0; }
-
-// -------------------------------------------------------------------
-
-/*
-public static void main( String pars[] ) throws Exception {
-       
-       RandPermutation rp = new RandPermutation(new Random());
-
-       int k;
-       
-       k = Integer.parseInt(pars[0]);
-       rp.setPermutation(k);
-       for(int i=0; i<k; ++i) System.out.println(rp.get(i));
-
-       System.out.println();
-
-       k = Integer.parseInt(pars[1]);
-       rp.reset(k);
-       while(rp.hasNext()) System.out.println(rp.next());
-       
-       System.out.println();
-
-       k = Integer.parseInt(pars[2]);
-       rp.reset(k);
-       while(rp.hasNext()) System.out.println(rp.next());
-       System.out.println(rp.next());
-}
-*/
-}
diff --git a/contrib/psg/src/peersim/util/StringListParser.java b/contrib/psg/src/peersim/util/StringListParser.java
deleted file mode 100644 (file)
index 445e19f..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.util;
-
-import java.math.*;
-import java.util.*;
-
-import org.lsmp.djep.groupJep.*;
-
-import peersim.config.*;
-
-/**
- * This utility class can be used to parse range expressions. In particular,
- * it is used by {@link peersim.rangesim.RangeSimulator} to express ranges for
- * configuration properties.
- * <p>
- * The language for range expression is the following: 
- * <pre>
- *   [rangelist] := [range] | [range],[rangelist]
- *   [range] := value | min:max | min:max|step | 
- *      min:max*|step
- * </pre>
- * where <tt>value</tt>, <tt>min</tt>, <tt>max</tt> and <tt>step</tt>
- * are numeric atoms that defines ranges.
- * <p>
- * For example, the following range expression:
- * <pre>
- *   5,9:11,13:17|2,32:128*|2
- * </pre>
- * corresponds to 5 (single value), 9-10-11 (range between 9 and 11,
- * default increment 1), 13-15-17 (range between 13 and 17, specified
- * step 2, 32-64-128 (range between 32 and 128, multiplicative step 2).
- * 
- * @author Alberto Montresor
- * @version $Revision: 1.8 $
- */
-public class StringListParser
-{
-
-/** Disable instance construction */
-private StringListParser() { }
-
-/**
- * Parse the specified string.
- * 
- * @param s the string to be parsed
- * @return an array of strings containing all the values defined by the
- *   range string
- */
-public static String[] parseList(String s)
-{
-       ArrayList<String> list = new ArrayList<String>();
-       String[] tokens = s.split(",");
-       for (int i = 0; i < tokens.length; i++) {
-               parseItem(list, tokens[i]);
-       }
-       return list.toArray(new String[list.size()]);
-}
-
-private static void parseItem(List<String> list, String item)
-{
-       String[] array = item.split(":");
-       if (array.length == 1) {
-               parseSingleItem(list, item);
-       } else if (array.length == 2) {
-               parseRangeItem(list, array[0], array[1]);
-       } else {
-               throw new IllegalArgumentException("Element " + item
-                               + "should be formatted as <start>:<stop> or <value>");
-       }
-}
-
-private static void parseSingleItem(List<String> list, String item)
-{
-       list.add(item);
-}
-
-private static void parseRangeItem(List<String> list, String start, String stop)
-{
-       Number vstart;
-       Number vstop;
-       Number vinc;
-       boolean sum;
-       
-       GroupJep jep = new GroupJep(new Operators());
-       jep.parseExpression(start);
-       vstart = (Number) jep.getValueAsObject(); 
-       int pos = stop.indexOf("|*");
-       if (pos >= 0) {
-               // The string contains a multiplicative factor
-               jep.parseExpression(stop.substring(0, pos));
-               vstop = (Number) jep.getValueAsObject(); 
-               jep.parseExpression(stop.substring(pos + 2));
-               vinc = (Number) jep.getValueAsObject(); 
-               sum = false;
-       } else {
-               pos = stop.indexOf("|");
-               // The string contains an additive factor
-               if (pos >= 0) {
-                       // The string contains just the final value
-                       jep.parseExpression(stop.substring(0, pos));
-                       vstop = (Number) jep.getValueAsObject(); 
-                       jep.parseExpression(stop.substring(pos + 1));
-                       vinc = (Number) jep.getValueAsObject(); 
-                       sum = true;
-               } else {
-                       jep.parseExpression(stop);
-                       vstop = (Number) jep.getValueAsObject(); 
-                       vinc = BigInteger.ONE;
-                       sum = true;
-               }
-       }
-       
-       if (vstart instanceof BigInteger && vstart instanceof BigInteger && vinc instanceof BigInteger) {
-               long vvstart = vstart.longValue();
-               long vvstop  =  vstop.longValue();
-               long vvinc   =   vinc.longValue(); 
-               if (sum) {
-                       for (long i = vvstart; i <= vvstop; i += vvinc)
-                               list.add("" + i);
-               } else {
-                       for (long i = vvstart; i <= vvstop; i *= vvinc)
-                               list.add("" + i);
-               }
-       } else {
-               double vvstart = vstart.doubleValue();
-               double vvstop  =  vstop.doubleValue();
-               double vvinc   =   vinc.doubleValue(); 
-               if (sum) {
-                       for (double i = vvstart; i <= vvstop; i += vvinc) 
-                               list.add("" + i);
-               } else {
-                       for (double i = vvstart; i <= vvstop; i *= vvinc)
-                               list.add("" + i);
-               }
-       }
-}
-
-/*
-public static void main(String[] args)
-{
-       String[] ret = parseList(args[0]);
-       for (int i = 0; i < ret.length; i++)
-               System.out.print(ret[i] + " ");
-       System.out.println("");
-}
-*/
-}
diff --git a/contrib/psg/src/peersim/util/WeightedRandPerm.java b/contrib/psg/src/peersim/util/WeightedRandPerm.java
deleted file mode 100644 (file)
index 80c8928..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.util;
-
-import java.util.NoSuchElementException;
-import java.util.Random;
-
-/**
-* This class provides a weighted random permutation of indexes.
-* Useful for weighted random sampling without replacement.
-* The next sample is taken according to the weights given as a parameter
-* to {@link #reset(int)}.
-* The weights work as follows.
-* The first sample is drawn according to the probability distribution
-* defined by the (normalized) weights.
-* After this the remaining k-1 elements and the associated k-1
-* (re-normalized) weights
-* define a new probability distribution, according to which the 2nd element
-* is drawn, and so on.
-*/
-public class WeightedRandPerm implements IndexIterator {
-
-
-// ======================= private fields ============================
-// ===================================================================
-
-/** Holds the weights that are used to initialize the permutation */
-private final double[] w;
-
-/** Holds the sum of the weights until the given index, inclusive. */
-private final double[] wsum;
-
-private int[] buffer = null;
-
-/** Working array for calculating the permutation */ 
-private double[] weights = null;
-
-private int len = 0;
-
-private int pointer = 0;
-
-private double sum = 0.0;
-
-private final Random r;
-
-
-// ======================= initialization ============================
-// ===================================================================
-
-
-/** Set the source of randomness to use and the weights. You need to call
-* {@link #reset} to fully initialize the object.
-* @param r source of randomness
-* @param weights The array that holds the weights for the calculation of the
-* permutation. The length of the array will be an upper bound on the
-* parameter {@link #reset} accepts. If {@link #reset} is called with a
-* parameter less than the length of weights, the prefix of the same length
-* is used.
-* The vector elements must be positive, that is, zero is not accepted either.
-*/
-public WeightedRandPerm( Random r, double[] weights ) {
-
-       this.r=r;
-       w = weights.clone();
-       wsum = weights.clone();;
-       this.weights = new double[w.length];
-       buffer = new int[w.length];
-       
-       for(int i=0; i<w.length; ++i)
-       {
-               if( w[i] <= 0.0 ) throw new IllegalArgumentException(
-                       "weights should be positive: w["+i+"]="+w[i]);
-       }
-       
-       for(int i=1; i<w.length; ++i) wsum[i]+=wsum[i-1];
-}
-
-
-// ======================= public methods ============================
-// ===================================================================
-
-
-/**
-* It initiates a random weighted permutation of the integeres from 0 to k-1.
-* It does not actually calculate the permutation.
-* The permutation can be read using method {@link #next}.
-* If the previous permutation was of the same length, it is more efficient.
-* The weights set at construction time work as follows.
-* The first sample is drawn according to the probability distribution
-* defined by the (normalized) weights.
-* After this the remaining k-1 elements and the associated k-1
-* (re-normalized) weights
-* define a new probability distribution, according to which the 2nd element
-* is drawn, and so on.
-* @param k the set is defined as 0,...,k-1
-*/
-public void reset(int k) {
-       
-       if( k<0 || k>w.length )
-               throw new IllegalArgumentException(
-                       "k should be non-negative and <= "+w.length);
-       
-       pointer = k;
-       sum = wsum[k-1];
-       
-       if( k != len )
-       {
-               // we need to initialize weights and buffer
-               for(int i=0; i<k; ++i)
-               {
-                       weights[i]=w[i];
-                       buffer[i]=i;
-               }
-               len=k;
-       }
-}
-
-// -------------------------------------------------------------------
-
-/**
-* The first sample is drawn according to the probability distribution
-* defined by the (normalized) weights.
-* After this the remaining k-1 elements and the associated k-1
-* (re-normalized) weights
-* define a new probability distribution, according to which the 2nd element
-* is drawn, and so on.
-* @see #reset
-*/
-public int next() {
-       
-       if( pointer < 1 ) throw new NoSuchElementException();
-       
-       double d = sum*r.nextDouble();
-       int i = pointer;
-       double tmp = weights[i-1];
-       while( tmp < d && i>1 ) tmp += weights[--i-1];
-       
-       // now i-1 is the selected element, we shift it to next position
-       int a = buffer[i-1];
-       double b = weights[i-1];
-       buffer[i-1] = buffer[pointer-1];
-       weights[i-1] = weights[pointer-1];
-       buffer[pointer-1] = a;
-       weights[pointer-1] = b;
-       sum -= b;
-       
-       return buffer[--pointer];
-}
-
-// -------------------------------------------------------------------
-
-public boolean hasNext() { return pointer > 0; }
-
-// -------------------------------------------------------------------
-
-/*
-public static void main( String pars[] ) throws Exception {
-       
-
-       int k = pars.length;
-       double w[] = new double[k];
-       for(int i=0; i<k; ++i) w[i] = Double.parseDouble(pars[i]);
-       
-       WeightedRandPerm rp = new WeightedRandPerm(new Random(),w);
-       rp.reset(k);
-       for(int i=0; i<1000; ++i)
-       {
-               if(i%2==0) rp.reset(k);
-               if(i%2==1) rp.reset(k-1);
-               while(rp.hasNext()) System.out.print(rp.next()+" ");
-               System.out.println();
-       }
-       
-       System.out.println();
-}
-*/
-}
-
diff --git a/contrib/psg/src/peersim/vector/Getter.java b/contrib/psg/src/peersim/vector/Getter.java
deleted file mode 100644 (file)
index a90e756..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.lang.reflect.*;
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Vectors can be written through this class. Typically {@link Control} classes
- * use this to manipulate vectors.
- * <p>
- * The method to be used is specified at construction time.
- * For backward compatibility, if no method is specified, the method
- * <code>getValue</code> is used. In this way, protocols
- * implementing the {@link SingleValue} interface can be manipulated using the
- * old configuration syntax (i.e., without specifying the method).
- * <p>
- * Please refer to package {@link peersim.vector} for a detailed description of 
- * the concept of protocol vector and the role of getters and setters. 
- */
-public class Getter {
-
-// ============================ fields ===================================
-// =======================================================================
-
-private final String protocol;
-private final String methodn;
-private final String prefix;
-
-/** Identifier of the protocol that defines the vector */
-private int pid;
-
-/** Getter method name */
-private String methodName;
-
-/** Getter method */
-private Method method = null;
-
-/** Parameter type of getter method */
-private Class type;
-
-
-// ========================== initialization =============================
-// =======================================================================
-
-
-/**
- * Constructs a Getter class based on the configuration. Note that the
- * actual initialization is delayed until the first access to the class,
- * so that if a class is not used, no unnecessary error messages and exceptions
- * are generated.
- * @param prefix the configuration prefix to use when reading the configuration
- * @param protocol the configuration parameter name that contains
- * the protocol we want to manipulate using a getter method.
- * The parameter <code>prefix + "." + protocol</code> is read.
- * @param methodn the configuration parameter name that contains the getter
- * method name.
- * The parameter <code>prefix + "." + methodn</code> is read, with the default
- * value <code>getValue</code>.
- */
-public Getter(String prefix, String protocol, String methodn) {
-
-       this.prefix=prefix;
-       this.protocol=protocol;
-       this.methodn=methodn;
-}
-
-// --------------------------------------------------------------------------
-
-/** Performs actual initialization */
-private void init() {
-
-       if( method!=null) return;
-
-       // Read configuration parameter
-       pid = Configuration.getPid(prefix + "." + protocol);
-       methodName = Configuration.getString(prefix+"."+methodn,"getValue");
-       // Search the method
-       Class clazz = Network.prototype.getProtocol(pid).getClass();
-       try {
-               method = GetterSetterFinder.getGetterMethod(clazz, methodName);
-       } catch (NoSuchMethodException e) {
-               throw new IllegalParameterException(prefix + "." +
-               methodn, e+"");
-       }
-       // Obtain the type of the field
-       type = GetterSetterFinder.getGetterType(method);
-}
-
-
-// =============================== methods =============================
-// =====================================================================
-
-/**
-* @return type of return value of getter method
-*/
-public Class getType() {
-
-       init();
-       return type;
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given value as a Number.
-* @param n The node to get the value on. The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public Number get(Node n) {
-       
-       init();
-
-       try 
-       {
-               Object ret =method.invoke(n.getProtocol(pid));
-               if (ret instanceof Boolean)
-                       return ((Boolean) ret) ? 1 : 0;
-               else
-                       return (Number) ret;
-       }
-       catch (Exception e)
-       {
-               throw new RuntimeException("While using getter "+methodName,e);
-       }
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given integer value.
-* @param n The node to get the value on. The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public long getLong(Node n) {
-       
-       init();
-
-       if(type==long.class || type==int.class)
-       {
-               try 
-               {
-                       return ((Number)
-                       method.invoke(n.getProtocol(pid))).longValue();
-               }
-               catch (Exception e)
-               {
-                       throw new RuntimeException(
-                       "While using getter "+methodName,e);
-               }
-       }       
-       else throw new RuntimeException("type has to be int or long");
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given real value.
-* @param n The node to get the value on. The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public double getDouble(Node n) {
-       
-       init();
-
-       if(type==double.class || type==float.class)
-       {
-               try
-               {
-                       return ((Number)
-                       method.invoke(n.getProtocol(pid))).doubleValue();
-               }
-               catch (Exception e)
-               {
-                       throw new RuntimeException(
-                       "While using getter "+methodName,e);
-               }
-       }
-       else throw new RuntimeException(
-                       "type has to be double or float");
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given value as a Number.
-* @param i The index of the node to get the value on in the network.
-* The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public Number get(int i) { return get(Network.get(i)); }
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given integer value.
-* @param i The index of the node to get the value on in the network.
-* The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public long getLong(int i) { return getLong(Network.get(i)); }
-
-// --------------------------------------------------------------------------
-
-/**
-* Gets the given real value.
-* @param i The index of the node to get the value on in the network.
-* The protocol is defined
-* by {@link #pid}.
-* @return the read value.
-*/
-public double getDouble(int i) { return getDouble(Network.get(i)); }
-
-}
-
diff --git a/contrib/psg/src/peersim/vector/GetterSetterFinder.java b/contrib/psg/src/peersim/vector/GetterSetterFinder.java
deleted file mode 100644 (file)
index 48670be..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- * This utility class can be used to obtain get/set methods from classes. In
- * particular, it is used in the vector package to locate get/set methods for
- * observing and modifying protocol fields.
- * Please refer to package {@link peersim.vector} for a definition of
- * getter and setter methods. 
- */
-class GetterSetterFinder
-{
-
-//--------------------------------------------------------------------------
-
-/**
- * Search a getter method in the specified class. It succeeds only of there
- * is exactly one method with the given name that is a getter method.
- * Please refer to package {@link peersim.vector} for a definition of
- * getter methods. 
- * 
- * @param clazz
- *          the class where to find get/set method
- * @param methodName
- *          the method to be searched
- * @return the requested method
- */
-public static Method getGetterMethod(Class clazz, String methodName)
-               throws NoSuchMethodException
-{
-       // Search methods
-       Method[] methods = clazz.getMethods();
-       ArrayList<Method> list = new ArrayList<Method>();
-       for (Method m: methods) {
-               if (m.getName().equals(methodName)) {
-                       list.add(m);
-               }
-       }
-       if (list.size() == 0) {
-               throw new NoSuchMethodException("No getter method for method "
-               + methodName + " in class " + clazz.getName());
-       } else if (list.size() > 1) {
-               throw new NoSuchMethodException("Multiple getter for method "
-               + methodName + " in class " + clazz.getName());
-       }
-       
-       // Found a single method with the right name; check if
-       // it is a gettter.
-       Method method = list.get(0);
-       Class[] pars = method.getParameterTypes();
-       if (pars.length > 0) {
-               throw new NoSuchMethodException(method.getName() + " of class "
-               + clazz.getName()
-               + " is not a valid getter method: "+
-               "its argument list is not empty");
-       }
-       
-       Class ret = method.getReturnType();
-       if (    !( ret==int.class || ret==long.class ||
-               ret==double.class || ret==float.class || ret==boolean.class)
-       ) {
-               throw new NoSuchMethodException(method.getName() + " of class "
-               + clazz.getName() + " is not a valid getter method: "+
-               "it should have a return type of int, long, short or double");
-       }
-       
-       return method;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Search a setter method in the specified class.
- * It succeeds only of there
- * is exactly one method with the given name that is a setter method.
- * Please refer to package {@link peersim.vector} for a definition of
- * setter methods. 
- * @param clazz
- *          the class where to find get/set method
- * @param methodName
- *          the method to be searched
- * @return the requested method, if it fully conforms to the definition of
- * the setter methods.
- */
-public static Method getSetterMethod(Class clazz, String methodName)
-               throws NoSuchMethodException
-{
-       // Search methods
-       Method[] methods = clazz.getMethods();
-       ArrayList<Method> list = new ArrayList<Method>();
-       for (Method m: methods) {
-               if (m.getName().equals(methodName)) {
-                       list.add(m);
-               }
-       }
-       
-       if (list.size() == 0) {
-               throw new NoSuchMethodException("No setter method for method "
-               + methodName + " in class " + clazz.getName());
-       } else if (list.size() > 1) {
-               throw new NoSuchMethodException("Multiple setter for method "
-               + methodName + " in class " + clazz.getName());
-       }
-       
-       // Found a single method with the right name; check if
-       // it is a setter.
-       Method method = list.get(0);
-       Class[] pars = method.getParameterTypes();
-       if (    pars.length != 1 ||
-               !( pars[0]==int.class || pars[0]==long.class ||
-               pars[0]==double.class || pars[0]==float.class )
-       ) {
-               throw new NoSuchMethodException(method.getName() + " of class "
-               + clazz.getName()
-               + " is not a valid setter method: "+
-               "it should have exactly one argument of type "+
-               "int, long, short or double");
-       }
-       
-       Class ret = method.getReturnType();
-       if (!ret.equals(void.class)) {
-               throw new NoSuchMethodException(method.getName() + "  of class "
-               + clazz.getName() +
-               " is not a valid setter method; it returns a value");
-       }
-       
-       return method;
-}
-
-//--------------------------------------------------------------------------
-
-
-/**
- * Returns the field type for the specified getter.
- */
-public static Class getGetterType(Method m)
-{
-       return m.getReturnType();
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Returns the field type for the specified setter.
- */
-public static Class getSetterType(Method m)
-{
-       Class[] pars = m.getParameterTypes();
-       return pars[0];
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/InitVectFromFile.java b/contrib/psg/src/peersim/vector/InitVectFromFile.java
deleted file mode 100644 (file)
index 1bfaa17..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.io.*;
-import java.util.*;
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Initializes a protocol vector from data read from a file.
- * The file format is as follows:
- * lines starting with # or lines that contain only
- * whitespace are ignored.
- * From the rest of the lines the first field separated by whitespace is
- * read. Only the first field is read from each line, the rest of the line
- * is ignored.
- * The file can contain more values than necessary but
- * enough values must be present.
- * @see VectControl
- * @see peersim.vector
- */
-public class InitVectFromFile extends VectControl
-{
-
-// --------------------------------------------------------------------------
-// Parameter names
-// --------------------------------------------------------------------------
-
-/**
- * The filename to load links from.
- * @config
- */
-private static final String PAR_FILE = "file";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** The file to be read */
-private final String file;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public InitVectFromFile(String prefix)
-{
-       super(prefix);
-       file = Configuration.getString(prefix + "." + PAR_FILE);
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Initializes values from a file.
- * The file format is as follows:
- * lines starting with # or lines that contain only
- * whitespace are ignored.
- * From the rest of the lines the first field separated by whitespace is
- * read. Only the first field is read from each line, the rest of the line
- * is ignored.
- * The file can contain more values than necessary but
- * enough values must be present.
- * @throws RuntimeException if the file cannot be read or contains too few
- * values
- * @return always false
- */
-public boolean execute() {
-
-       int i = 0;
-
-try {
-       FileReader fr = new FileReader(file);
-       LineNumberReader lnr = new LineNumberReader(fr);
-       String line;
-       while ((line = lnr.readLine()) != null && i < Network.size()) {
-               if (line.startsWith("#"))
-                       continue;
-               StringTokenizer st = new StringTokenizer(line);
-               if (!st.hasMoreTokens())
-                       continue;
-               if( setter.isInteger() )
-                       setter.set(i,Long.parseLong(st.nextToken()));
-               else    setter.set(i,Double.parseDouble(st.nextToken()));
-               i++;
-       }
-       lnr.close();
-}
-catch(IOException e)
-{
-       throw new RuntimeException("Unable to read file: " + e);
-}
-       
-       if (i < Network.size())
-               throw new RuntimeException(
-               "Too few values in file '" + file + "' (only "
-               + i + "); we need " + Network.size() + ".");
-       
-       return false;
-}
-
-// --------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/LinearDistribution.java b/contrib/psg/src/peersim/vector/LinearDistribution.java
deleted file mode 100644 (file)
index e7cc19e..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Initializes a protocol vector with values in the range [{@value #PAR_MIN}, 
- * {@value #PAR_MAX}] (inclusive both ends), linearly increasing.
- * @see VectControl
- * @see peersim.vector
- */
-public class LinearDistribution extends VectControl
-{
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * Upper end of the interval..
- * @config
- */
-private static final String PAR_MAX = "max";
-
-/**
- * Lower end of the interval. Defaults to -{@value #PAR_MAX}.
- * @config
- */
-private static final String PAR_MIN = "min";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Minimum value */
-private final Number min;
-
-/** Maximum value */
-private final Number max;
-
-/** Step value */
-private final double step;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public LinearDistribution(String prefix)
-{
-       super(prefix);
-       
-       // Read parameters based on type
-       if (setter.isInteger()) {
-               max=Long.valueOf(Configuration.getLong(prefix + "." + PAR_MAX));
-               min=Long.valueOf(Configuration.getLong(prefix + "." + PAR_MIN, 
-                               -max.longValue()));
-               step= (max.longValue()-min.longValue())/
-                       ((double)(Network.size()-1));
-       } else { // we know it's double or float
-               max = new Double(Configuration.getDouble(prefix+"."+PAR_MAX));
-               min = new Double(Configuration.getDouble(prefix+"."+PAR_MIN, 
-                               -max.doubleValue()));
-               step= (max.doubleValue()-min.doubleValue())/(Network.size()-1);
-       }
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Initializes a protocol vector with values in the range [{@value #PAR_MIN}, 
- * {@value #PAR_MAX}] (inclusive both ends), linearly increasing.
- * @return always false
- */
-public boolean execute() {
-       
-       if ( setter.isInteger() )
-       {
-               for(int i=0; i<Network.size(); ++i)
-               {
-                       // we avoid the entire expression being cast to double
-                       setter.set(i,Math.round(i*step)+min.longValue());
-               }
-       }
-       else
-       {
-               for(int i=0; i<Network.size(); ++i)
-               {
-                       setter.set(i,i*step+min.doubleValue());
-               }
-       }
-
-       return false;
-}
-
-
-}
-
-
diff --git a/contrib/psg/src/peersim/vector/Normalizer.java b/contrib/psg/src/peersim/vector/Normalizer.java
deleted file mode 100644 (file)
index 5aa4383..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Normalizes the values of a protocol vector.
- * The normalization is based on the L1 norm, that is, the sum of the
- * absolute values of the vector elements. Parameter {@value #PAR_L1} defines
- * the L1 norm that the vector will have after normalization.
- * @see VectControl
- * @see peersim.vector
- */
-public class Normalizer extends VectControl
-{
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/**
- * The L1 norm (sum of absolute values) to normalize to. After the operation the
- * L1 norm will be the value given here. Defaults to 1.
- * @config
- */
-private static final String PAR_L1 = "l1";
-
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** L1 norm */
-private final double l1;
-
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public Normalizer(String prefix)
-{
-       super(prefix);
-       l1 = Configuration.getDouble(prefix + "." + PAR_L1, 1);
-       
-       if( setter.isInteger() ) 
-               throw new IllegalParameterException(prefix + "." + PAR_METHOD,
-                       "setter value must be floating point, instead of "+
-                       setter.getType());
-                       
-       if( setter.getType() !=  getter.getType() )
-               throw new IllegalParameterException(prefix + "." + PAR_GETTER,
-               "getter and setter must have the same numeric type, "+
-               "but we have "+setter.getType()+" and "+getter.getType());
-}
-
-//--------------------------------------------------------------------------
-//Methods
-//--------------------------------------------------------------------------
-
-/**
- * Makes the sum of the absolute values (L1 norm) equal to the value
- * given in the configuration parameter {@value #PAR_L1}. If the value is
- * negative, the L1 norm will be the absolute value and the vector elements
- * change sign.
- * @return always false
- */
-public boolean execute() {
-       
-       double sum = 0.0;
-       for (int i = 0; i < Network.size(); ++i)
-       {
-               sum += getter.getDouble(i);
-       }
-       if (sum == 0.0)
-       {
-               throw new
-               RuntimeException("Attempted to normalize all zero vector.");
-       }
-       double factor = l1 / sum;
-       for (int i = 0; i < Network.size(); ++i)
-       {
-               double val = getter.getDouble(i)*factor;
-               setter.set(i,val);
-       }
-       return false;
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/PeakDistribution.java b/contrib/psg/src/peersim/vector/PeakDistribution.java
deleted file mode 100644 (file)
index c9f1309..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.config.*;
-import peersim.core.*;
-
-
-/**
- * Initializes the values so that {@value #PAR_PEAKS} nodes have value
- * {@value #PAR_VALUE}/{@value #PAR_PEAKS}, the rest {@value #PAR_LVALUE}
- * (zero by default).
- * @see VectControl
- * @see peersim.vector
- */
-public class PeakDistribution extends VectControl
-{
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/** 
- * The sum of values in the system, to be equally distributed between peak 
- * nodes.
- * @config
- */
-private static final String PAR_VALUE = "value";
-
-/** 
- * The value for the nodes that are not peaks. This parameter is optional,
- * by default, the nodes that are
- * not peaks are set to zero. This value overrides that behavior.
- * @config
- */
-private static final String PAR_LVALUE = "background";
-
-/** 
- * The number of peaks in the system. If this value is greater than or equal to
- * 1, it is interpreted as the actual number of peaks. If it is included in 
- * the range [0, 1] it is interpreted as a percentage with respect to the
- * current network size. Defaults to 1. 
- * @config
- */
-private static final String PAR_PEAKS = "peaks";
-
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Total load */
-private final Number lvalue;
-
-/** Total load */
-private final Number value;
-
-/** Number of peaks */
-private final double peaks;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public PeakDistribution(String prefix)
-{
-       super(prefix);
-       
-       peaks = Configuration.getDouble(prefix+"."+PAR_PEAKS, 1);
-       
-       if( setter.isInteger() )
-       {
-               value=Long.valueOf(Configuration.getLong(prefix+"."+PAR_VALUE));
-               lvalue=Long.valueOf(Configuration.getLong(prefix+"."+PAR_LVALUE,0));
-       }
-       else
-       {
-               value = new Double(Configuration.getDouble(prefix + "." +
-               PAR_VALUE));
-               lvalue = new Double(Configuration.getDouble(prefix + "." +
-               PAR_LVALUE,0));
-       }
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Initializes the values so that {@value #PAR_PEAKS} nodes have value
- * {@value #PAR_VALUE}/{@value #PAR_PEAKS}, the rest zero.
- * @return always false
- */
-public boolean execute()
-{
-       int pn = (peaks < 1 ? (int) (peaks*Network.size()) : (int) peaks);
-       
-       if( setter.isInteger() )
-       {
-               long v = value.longValue()/pn;
-               long lv = lvalue.longValue();
-               for (int i=0; i < pn; i++) setter.set(i, v);
-               for (int i=pn; i < Network.size(); i++) setter.set(i,lv);
-       }
-       else
-       {
-               double v = value.doubleValue()/pn;
-               double lv = lvalue.doubleValue();
-               for (int i=0; i < pn; i++) setter.set(i, v);
-               for (int i=pn; i < Network.size(); i++) setter.set(i,lv);
-       }
-
-       return false;
-}
-
-// --------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/Setter.java b/contrib/psg/src/peersim/vector/Setter.java
deleted file mode 100644 (file)
index cfcf54c..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.lang.reflect.*;
-import peersim.config.*;
-import peersim.core.*;
-
-/**
- * Vectors can be written through this class. Typically {@link Control} classes
- * use this to manipulate vectors.
- * <p>
- * The method to be used is specified at construction time.
- * For backward compatibility, if no method is specified, the method
- * <code>setValue</code> is used. In this way, protocols
- * implementing the {@link SingleValue} interface can be manipulated using the
- * old configuration syntax (i.e., without specifying the method).
- * <p>
- * Please refer to package {@link peersim.vector} for a detailed description of 
- * the concept of protocol vector and the role of getters and setters. 
- */
-public class Setter {
-
-// ============================ fields ===================================
-// =======================================================================
-
-private final String protocol;
-private final String methodn;
-private final String prefix;
-
-/** Identifier of the protocol that defines the vector */
-private int pid;
-
-/** Setter method name */
-private String methodName;
-
-/** Setter method */
-private Method method=null;
-
-/** Parameter type of setter method */
-private Class type;
-
-
-// ========================== initialization =============================
-// =======================================================================
-
-
-/**
- * Constructs a Setter class based on the configuration.
- * Note that the
- * actual initialization is delayed until the first access to the class,
- * so that if a class is not used, no unnecessary error messages and exceptions
- * are generated.
- * @param prefix the configuration prefix to use when reading the configuration
- * @param protocol the configuration parameter name that contains
- * the protocol we want to manipulate using a setter method.
- * The parameter <code>prefix + "." + protocol</code> is read.
- * @param methodn the configuration parameter name that contains the setter
- * method name.
- * The parameter <code>prefix + "." + methodn</code> is read, with the default
- * value <code>setValue</code>.
- */
-public Setter(String prefix, String protocol, String methodn) {
-       
-       this.prefix=prefix;
-       this.protocol=protocol;
-       this.methodn=methodn;
-}
-
-// --------------------------------------------------------------------------
-
-private void init() {
-
-       if( method!=null) return;
-
-       // Read configuration parameter
-       pid = Configuration.getPid(prefix + "." + protocol);
-       methodName = Configuration.getString(prefix+"."+methodn,"setValue");
-       // Search the method
-       Class clazz = Network.prototype.getProtocol(pid).getClass();
-       try {
-               method = GetterSetterFinder.getSetterMethod(clazz, methodName);
-       } catch (NoSuchMethodException e) {
-               throw new IllegalParameterException(prefix + "." +
-               methodn, e+"");
-       }
-       // Obtain the type of the field
-       type = GetterSetterFinder.getSetterType(method);
-}
-
-
-// =============================== methods =============================
-// =====================================================================
-
-
-/**
-* @return type of parameter of setter method
-*/
-public Class getType() {
-
-       init();
-       return type;
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* @return true if the setter type is long or int
-*/
-public boolean isInteger() {
-
-       init();
-       return type==long.class || type==int.class;
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Sets the given integer value.
-* @param n The node to set the value on. The protocol is defined
-* by {@link #pid}.
-* @param val the value to set.
-*/
-public void set(Node n, long val) {
-       
-       init();
-       
-       try 
-       {
-               if(type==long.class)
-               {
-                       method.invoke(n.getProtocol(pid),val);
-                       return;
-               }
-               if(type==int.class)
-               {
-                       method.invoke(n.getProtocol(pid),(int)val);
-                       return;
-               }
-       }
-       catch (Exception e)
-       {
-               throw new RuntimeException("While using setter "+methodName,e);
-               
-       }
-       
-       throw new RuntimeException("type has to be int or long");
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Sets the given real value.
-* @param n The node to set the value on. The protocol is defined
-* by {@link #pid}.
-* @param val the value to set.
-*/
-public void set(Node n, double val) {
-       
-       init();
-       
-       try
-       {
-               if(type==double.class)
-               {
-                       method.invoke(n.getProtocol(pid),val);
-                       return;
-               }
-               if(type==float.class)
-               {
-                       method.invoke(n.getProtocol(pid),(float)val);
-                       return;
-               }
-       }
-       catch (Exception e)
-       {
-               throw new RuntimeException("While using setter "+methodName,e);
-       }
-       
-       throw new RuntimeException("type has to be double or float");
-}
-
-// --------------------------------------------------------------------------
-
-/**
-* Sets the given integer value.
-* @param i The index of the node to set the value on in the network.
-* The protocol is defined
-* by {@link #pid}.
-* @param val the value to set.
-*/
-public void set(int i, long val) { set(Network.get(i),val); }
-
-// --------------------------------------------------------------------------
-
-/**
-* Sets the given real value.
-* @param i The index of the node to set the value on in the network.
-* The protocol is defined
-* by {@link #pid}.
-* @param val the value to set.
-*/
-public void set(int i, double val) { set(Network.get(i),val); }
-
-}
-
diff --git a/contrib/psg/src/peersim/vector/SingleValue.java b/contrib/psg/src/peersim/vector/SingleValue.java
deleted file mode 100644 (file)
index 8d3dd9e..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-/**
-* The implementor class has a single parameter. This interface
-* provides access to that parameter.
-*/
-public interface SingleValue {
-
-/**
- * Returns the value of the parameter hold by the implementor
- * of this interface. 
- */
-public double getValue();
-
-/**
- * Modifies the value of the parameter hold by the implementor
- * of this interface. 
- */
-public void setValue(double value);
-
-}
-
diff --git a/contrib/psg/src/peersim/vector/SingleValueComparator.java b/contrib/psg/src/peersim/vector/SingleValueComparator.java
deleted file mode 100644 (file)
index 0fa324e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.core.*;
-import java.util.*;
-
-/**
- * This comparator class compares two node objects based on the value 
- * maintained by one of its protocols. The protocol must implement the
- * {@link SingleValue} interface; its identifier has to be specified when a
- * new comparator is built.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.4 $
- */
-public class SingleValueComparator implements Comparator 
-{
-
-/** Protocol to be be compared */
-private int pid;
-
-/**
- * Builds a new comparator that compares the double values maintained
- * by protocol identified by <code>pid</code>.
- */
-public SingleValueComparator(int pid) { this.pid = pid; }
-
-/**
- * Compares the values of two protocols. The parameters must have dynamic type
- * {@link Node}. The protocol {@link #pid} is accessed on both nodes. These
- * protocols have to implement the {@link SingleValue} interface. The values
- * held by these protocol instances are then compared.
- */
-public int compare(Object o1, Object o2)
-{
-       SingleValue s1 = (SingleValue) ((Node) o1).getProtocol(pid);
-       SingleValue s2 = (SingleValue) ((Node) o2).getProtocol(pid);
-       return (int) (s1.getValue() - s2.getValue());
-}
-       
-}
diff --git a/contrib/psg/src/peersim/vector/SingleValueHolder.java b/contrib/psg/src/peersim/vector/SingleValueHolder.java
deleted file mode 100644 (file)
index 450086d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.core.*;
-
-/**
- * The task of this protocol is to store a single double value and make it
- * available through the {@link SingleValue} interface.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.6 $
- */
-public class SingleValueHolder 
-implements SingleValue, Protocol
-{
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-       
-/** Value held by this protocol */
-protected double value;
-       
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Does nothing.
- */
-public SingleValueHolder(String prefix)
-{
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Clones the value holder.
- */
-public Object clone()
-{
-       SingleValueHolder svh=null;
-       try { svh=(SingleValueHolder)super.clone(); }
-       catch( CloneNotSupportedException e ) {} // never happens
-       return svh;
-}
-
-//--------------------------------------------------------------------------
-//methods
-//--------------------------------------------------------------------------
-
-/**
- * @inheritDoc
- */
-public double getValue()
-{
-       return value;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * @inheritDoc
- */
-public void setValue(double value)
-{
-       this.value = value;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Returns the value as a string.
- */
-public String toString() { return ""+value; }
-
-}
diff --git a/contrib/psg/src/peersim/vector/SingleValueObserver.java b/contrib/psg/src/peersim/vector/SingleValueObserver.java
deleted file mode 100644 (file)
index 262d2e0..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.vector;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
-* Print statistics over a vector. The vector is defined by a protocol,
-* specified by {@value #PAR_PROT}, that has to  implement
-* {@link SingleValue}.
-* Statistics printed are: min, max, number of samples, average, variance,
-* number of minimal instances, number of maximal instances (using
-* {@link IncrementalStats#toString}).
-* @see IncrementalStats
-*/
-public class SingleValueObserver implements Control {
-
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/** 
- *  The parameter used to determine the accuracy
- *  (standard deviation) before stopping the simulation. If not 
- *  defined, a negative value is used which makes sure the observer 
- *  does not stop the simulation.
- * @see #execute
- *  @config
- */
-private static final String PAR_ACCURACY = "accuracy";
-
-/**
- * The protocol to operate on.
- * @config
- */
-private static final String PAR_PROT = "protocol";
-
-
-//--------------------------------------------------------------------------
-// Fields
-//--------------------------------------------------------------------------
-
-/** The name of this observer in the configuration */
-private final String name;
-
-/** Accuracy for standard deviation used to stop the simulation */
-private final double accuracy;
-
-/** Protocol identifier */
-private final int pid;
-
-
-//--------------------------------------------------------------------------
-// Constructor
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param name the configuration prefix for this class
- */
-public SingleValueObserver(String name)
-{
-       this.name = name;
-       accuracy = Configuration.getDouble(name + "." + PAR_ACCURACY, -1);
-       pid = Configuration.getPid(name + "." + PAR_PROT);
-}
-
-
-//--------------------------------------------------------------------------
-// Methods
-//--------------------------------------------------------------------------
-
-/**
-* Print statistics over a vector. The vector is defined by a protocol,
-* specified by {@value #PAR_PROT}, that has to  implement
-* {@link SingleValue}.
-* Statistics printed are: min, max, number of samples, average, variance,
-* number of minimal instances, number of maximal instances (using 
-* {@link IncrementalStats#toString}).
-* @return true if the standard deviation is below the value of
- * {@value #PAR_ACCURACY}, and the time of the simulation is larger then zero
- * (i.e. it has started).
- */
-public boolean execute()
-{
-       IncrementalStats stats = new IncrementalStats();
-       
-       /* Compute max, min, average */
-       for (int i = 0; i < Network.size(); i++)
-       {
-               SingleValue v = (SingleValue)Network.get(i).getProtocol(pid);
-               stats.add( v.getValue() );
-       }
-
-       /* Printing statistics */
-       System.out.println(name+": "+stats);
-
-       /* Terminate if accuracy target is reached */
-       return (stats.getStD()<=accuracy && CommonState.getTime()>0);
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/TestVectors.java b/contrib/psg/src/peersim/vector/TestVectors.java
deleted file mode 100644 (file)
index f6920cb..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-
-/**
- * Do testing the vector package.
- */
-public class TestVectors extends SingleValueHolder
-{
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-       
-/** Value held by this protocol */
-protected float fvalue;
-
-/** Value held by this protocol */
-protected int ivalue;
-
-/** Value held by this protocol */
-protected long lvalue;
-       
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Builds a new (not initialized) value holder.
- * Calls super constructor.
- */
-public TestVectors(String prefix) { super(prefix); }
-
-//--------------------------------------------------------------------------
-//methods
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public int getIValue() { return ivalue; }
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public void setIValue(int value) { ivalue = value; }
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public float getFValue() { return fvalue; }
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public void setFValue(float value) { fvalue = value; }
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public long getLValue() { return lvalue; }
-
-//--------------------------------------------------------------------------
-
-/**
- * 
- */
-public void setLValue(long value) { lvalue = value; }
-
-//--------------------------------------------------------------------------
-
-/**
- * Returns the value as a string.
- */
-public String toString() { return value+" "+fvalue+" "+ivalue+" "+lvalue; }
-
-}
-
diff --git a/contrib/psg/src/peersim/vector/UniformDistribution.java b/contrib/psg/src/peersim/vector/UniformDistribution.java
deleted file mode 100644 (file)
index bd30fb1..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.dynamics.*;
-
-/**
- * Initializes the values drawing uniform random samples from the range
- * [{@value #PAR_MIN}, {@value #PAR_MAX}[.
- * @see VectControl
- * @see peersim.vector
- */
-public class UniformDistribution extends VectControl implements NodeInitializer
-{
-
-//--------------------------------------------------------------------------
-//Parameter names
-//--------------------------------------------------------------------------
-
-/**
- * The upper bound of the uniform random variable, exclusive.
- * @config
- */
-private static final String PAR_MAX = "max";
-
-/**
- * The lower bound of the uniform
- * random variable, inclusive. Defaults to -{@value #PAR_MAX}.
- * @config
- */
-private static final String PAR_MIN = "min";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Minimum value */
-private final Number min;
-
-/** Maximum value */
-private final Number max;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public UniformDistribution(String prefix)
-{
-       super(prefix);
-       
-       // Read parameters based on type
-       if (setter.isInteger()) {
-               max=Long.valueOf(Configuration.getLong(prefix + "." + PAR_MAX));
-               min=Long.valueOf(Configuration.getLong(prefix + "." + PAR_MIN, 
-                               -max.longValue()));
-       } else { // we know it's double or float
-               max = new Double(Configuration.getDouble(prefix+"."+PAR_MAX));
-               min = new Double(Configuration.getDouble(prefix+"."+PAR_MIN, 
-                               -max.doubleValue()));
-       }
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Initializes the values drawing uniform random samples from the range
- * [{@value #PAR_MIN}, {@value #PAR_MAX}[.
- * @return always false
- */
-public boolean execute() {
-
-       if(setter.isInteger())
-       {
-               long d = max.longValue() - min.longValue();
-               for (int i = 0; i < Network.size(); ++i)
-               {
-                       setter.set(i,CommonState.r.nextLong(d)+min.longValue());
-               }
-       }
-       else
-       {
-               double d = max.doubleValue() - min.doubleValue();
-               for (int i = 0; i < Network.size(); ++i)
-               {
-                       setter.set(i,CommonState.r.nextDouble()*d+
-                       min.doubleValue());
-               }
-       }
-
-       return false;
-}
-
-// --------------------------------------------------------------------------
-
-/**
- * Initializes the value drawing a uniform random sample from the range
- * [{@value #PAR_MIN}, {@value #PAR_MAX}[.
- * @param n the node to initialize
- */
-public void initialize(Node n) {
-
-       if( setter.isInteger() )
-       {
-               long d = max.longValue() - min.longValue();
-               setter.set(n,CommonState.r.nextLong(d) + min.longValue());
-       }
-       else
-       {
-               double d = max.doubleValue() - min.doubleValue();
-               setter.set(n,CommonState.r.nextDouble()*d);
-       }
-}
-
-// --------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/ValueDumper.java b/contrib/psg/src/peersim/vector/ValueDumper.java
deleted file mode 100644 (file)
index ce6746e..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.io.*;
-
-import peersim.config.*;
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * Dump the content of a vector in a file. Each line
- * represent a single node.
- * Values are dumped to a file whose name is obtained from a
- * configurable prefix (set by {@value #PAR_BASENAME}), a number that is
- * increased before each dump by one, and the extension ".vec".
- * <p>
- * This observer class can observe any protocol field containing a 
- * primitive value, provided that the field is associated with a getter method 
- * that reads it.
- * @see VectControl
- * @see peersim.vector
- */
-public class ValueDumper extends VectControl {
-
-
-// --------------------------------------------------------------------------
-// Parameter names
-// --------------------------------------------------------------------------
-
-/**
- * This is the base name of the file where the values are saved. The full name
- * will be baseName+cycleid+".vec".
- * @config
- */
-private static final String PAR_BASENAME = "outf";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** Prefix name of this observer */
-private final String prefix;
-
-/** Base name of the file to be written */
-private final String baseName;
-
-private final FileNameGenerator fng;
-
-// --------------------------------------------------------------------------
-// Constructor
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public ValueDumper(String prefix) {
-
-       super(prefix);
-       this.prefix = prefix;
-       baseName = Configuration.getString(prefix + "." + PAR_BASENAME, null);
-       if(baseName!=null) fng = new FileNameGenerator(baseName,".vec");
-       else fng = null;
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Dump the content of a vector in a file. Each line
- * represent a single node.
- * Values are dumped to a file whose name is obtained from a
- * configurable prefix (set by {@value #PAR_BASENAME}), a number that is
- * increased before each dump by one, and the extension ".vec".
- * @return always false
- * @throws RuntimeException if there is an I/O problem
- */
-public boolean execute() {
-try
-{
-       System.out.print(prefix + ": ");
-       
-       // initialize output streams
-       if (baseName != null)
-       {
-               String filename = fng.nextCounterName();
-               System.out.println("writing "+filename);
-               PrintStream pstr =
-                       new PrintStream(new FileOutputStream(filename));
-               for (int i = 0; i < Network.size(); ++i)
-               {
-                       pstr.println(getter.get(i));
-               }
-               pstr.close();
-       }
-       else
-       {
-               System.out.println();
-               for (int i = 0; i < Network.size(); ++i)
-               {
-                       System.out.println(getter.get(i));
-               }
-       }
-}
-catch (IOException e)
-{
-       throw new RuntimeException(prefix + ": Unable to write to file: " + e);
-}
-
-       return false;
-}
-
-// ---------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/VectAngle.java b/contrib/psg/src/peersim/vector/VectAngle.java
deleted file mode 100644 (file)
index 629a06e..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.core.*;
-
-/**
- * Observes the cosine angle between two vectors. The number which is output is
- * the inner product divided by the product of the length of the vectors.
- * All values are converted to double before processing.
- * <p>
- * This observer class can observe any protocol field containing a 
- * primitive value, provided that the field is associated with a getter method 
- * that reads it.
- * The methods to be used are specified through parameter {@value #PAR_METHOD1}
- * and {@value #PAR_METHOD2}.
- * <p>
- * Please refer to package {@link peersim.vector} for a detailed description of 
- * this mechanism. 
- */
-public class VectAngle implements Control
-{
-
-// --------------------------------------------------------------------------
-// Parameters
-// --------------------------------------------------------------------------
-
-/**
- * The first protocol to be observed.
- * @config
- */
-private static final String PAR_PROT1 = "protocol1";
-
-/**
- * The second protocol to be observed.
- * @config
- */
-private static final String PAR_PROT2 = "protocol2";
-
-/**
- * The getter method used to obtain the values of the first protocol. 
- * Defaults to <code>getValue</code> (for backward compatibility with previous 
- * implementation of this class, that were based on the 
- * {@link SingleValue} interface).
- * Refer to the {@linkplain peersim.vector vector package description} for more 
- * information about getters and setters.
- * @config
- */
-private static final String PAR_METHOD1 = "getter1";
-
-/**
- * The getter method used to obtain the values of the second protocol. 
- * Defaults to <code>getValue</code> (for backward compatibility with previous 
- * implementation of this class, that were based on the 
- * {@link SingleValue} interface).
- * Refer to the {@linkplain peersim.vector vector package description} for more 
- * information about getters and setters.
- * @config
- */
-private static final String PAR_METHOD2 = "getter2";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** The prefix for this observer*/
-private final String name;
-
-private final Getter getter1;
-
-private final Getter getter2;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public VectAngle(String prefix)
-{
-       name = prefix;
-       getter1 = new Getter(prefix,PAR_PROT1,PAR_METHOD1);
-       getter2 = new Getter(prefix,PAR_PROT2,PAR_METHOD2);
-}
-
-// --------------------------------------------------------------------------
-// Methods
-// --------------------------------------------------------------------------
-
-/**
- * Observes the cosine angle between two vectors. The printed values
- * are: cosine, Eucledian norm of vect 1, Eucledian norm of vector 2,
- * angle in radians.
-* @return always false
-*/
-public boolean execute() {
-
-       double sqrsum1 = 0, sqrsum2 = 0, prod = 0;
-       for (int i = 0; i < Network.size(); ++i)
-       {
-               double v1= getter1.get(i).doubleValue();
-               double v2= getter2.get(i).doubleValue();
-               sqrsum1 += v1 * v1;
-               sqrsum2 += v2 * v2;
-               prod += v2 * v1;
-       }
-       
-       double cos = prod / Math.sqrt(sqrsum1) / Math.sqrt(sqrsum2);
-       
-       // deal with numeric errors
-       if( cos > 1 ) cos=1;
-       if( cos < -1 ) cos = -1;
-       
-       System.out.println(name+": " + cos + " "
-                       + Math.sqrt(sqrsum1) + " " + Math.sqrt(sqrsum2) + " "
-                       + Math.acos(cos));
-       return false;
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/VectControl.java b/contrib/psg/src/peersim/vector/VectControl.java
deleted file mode 100644 (file)
index 174b962..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.core.*;
-
-/**
- * Serves as an abstract superclass for {@link Control}s that deal
- * with vectors.
- * It reads a {@link Setter} to be used by extending classes.
- */
-public abstract class VectControl implements Control {
-
-
-// --------------------------------------------------------------------------
-// Parameter names
-// --------------------------------------------------------------------------
-
-/**
- * The protocol to operate on.
- * @config
- */
-protected static final String PAR_PROT = "protocol";
-
-/**
- * The setter method used to set values in the protocol instances. Defaults to
- * <code>setValue</code>
- * (for backward compatibility with previous implementation of this
- * class, that were based on the {@link SingleValue} interface). Refer to the
- * {@linkplain peersim.vector vector package description} for more
- * information about getters and setters.
- * @config
- */
-protected static final String PAR_METHOD = "setter";
-
-/**
- * The getter method used to obtain the protocol values. 
- * Defaults to <code>getValue</code>
- * (for backward compatibility with previous 
- * implementation of this class, that were based on the 
- * {@link SingleValue} interface).
- * Refer to the {@linkplain peersim.vector vector package description} for more 
- * information about getters and setters.
- * @config
- */
-protected static final String PAR_GETTER = "getter";
-
-// --------------------------------------------------------------------------
-// Fields
-// --------------------------------------------------------------------------
-
-/** The setter to be used to write a vector. */
-protected final Setter setter;
-
-/** The getter to be used to read a vector. */
-protected final Getter getter;
-
-// --------------------------------------------------------------------------
-// Initialization
-// --------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-protected VectControl(String prefix)
-{
-       setter = new Setter(prefix,PAR_PROT,PAR_METHOD);
-       getter = new Getter(prefix,PAR_PROT,PAR_GETTER);
-}
-
-}
-
diff --git a/contrib/psg/src/peersim/vector/VectCopy.java b/contrib/psg/src/peersim/vector/VectCopy.java
deleted file mode 100644 (file)
index 6d13091..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import peersim.core.*;
-import peersim.dynamics.*;
-
-/**
- * Sets values in a protocol vector by copying the values of another 
- * protocol vector.
- * The source is defined by {@value #PAR_SOURCE},
- * and getter method {@value peersim.vector.VectControl#PAR_GETTER}.
- * <p>
- * This dynamics class can copy any primitive field in the source
- * protocol to any primitive field in the destination protocol,
- * provided that the former field is associated with a getter method,
- * while the latter is associated with a setter method.
- * @see VectControl
- * @see peersim.vector
- */
-public class VectCopy extends VectControl implements  NodeInitializer {
-
-
-//--------------------------------------------------------------------------
-//Parameters
-//--------------------------------------------------------------------------
-
-/**
- * The identifier of the protocol to be copied.
- * The vector values are copied from this vector.
- * @config
- */
-private static final String PAR_SOURCE = "source";
-
-
-// --------------------------------------------------------------------------
-// Variables
-// --------------------------------------------------------------------------
-
-/** Source getter */
-private final Getter source;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public VectCopy(String prefix)
-{
-       super(prefix);
-       source = new Getter(prefix,PAR_SOURCE,PAR_GETTER);
-}
-
-//--------------------------------------------------------------------------
-//Method
-//--------------------------------------------------------------------------
-
-/**
- * Sets values in a protocol vector by copying the values of another 
- * protocol vector. The source is defined by {@value #PAR_SOURCE},
- * and getter method {@value peersim.vector.VectControl#PAR_GETTER}.
- * @return always false
- */
-public boolean execute() {
-
-       int size = Network.size();
-       for (int i = 0; i < size; i++) {
-               Number ret = source.get(i);
-               if(setter.isInteger()) setter.set(i,ret.longValue());
-               else setter.set(i,ret.doubleValue());
-       }
-
-       return false;
-}
-
-//--------------------------------------------------------------------------
-
-/**
- * Sets the value by copying the value of another 
- * protocol. The source is  defined by {@value #PAR_SOURCE},
- * and getter method {@value peersim.vector.VectControl#PAR_GETTER}.
- * @param n the node to initialize
- */
-public void initialize(Node n) {
-
-       Number ret = source.get(n);
-       if(setter.isInteger()) setter.set(n,ret.longValue());
-       else setter.set(n,ret.doubleValue());
-}
-
-//--------------------------------------------------------------------------
-
-}
diff --git a/contrib/psg/src/peersim/vector/VectorComparator.java b/contrib/psg/src/peersim/vector/VectorComparator.java
deleted file mode 100644 (file)
index 97f269e..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2006 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-package peersim.vector;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import peersim.core.*;
-
-/**
- * This class provides a generic implementation of the
- * <code>java.lang.Comparator<code> interface specialized
- * for {@link Node} objects. Nodes are compared based
- * on one of their protocols, on which a configurable
- * method is invoked. Both the protocol id and the
- * method are specified in the constructor.
- * <br>
- * This comparator can be used, for example, to sort
- * an array of nodes based on method <code>getValue</code>
- * associated to the protocol <code>pid</code>:
- * <PRE>
- * Comparator c = new VectorComparator(pid, "getValue");
- * Array.sort(Node[] array, c);
- * </PRE>
- * Note that differently from other classes in this package,
- * VectorComparator is declared programmatically in the code
- * and not in the configuration file. It is included in this
- * package because it shares the same philosophy of the other
- * classes.
- *
- * @author Alberto Montresor
- * @version $Revision: 1.1 $
- */
-public class VectorComparator implements Comparator
-{
-
-//--------------------------------------------------------------------------
-//Fields
-//--------------------------------------------------------------------------
-
-/** Protocol identifier of the protocol to be observed */
-private final int pid;
-
-/** The getter to be used to obtain comparable values */
-private final Method method;
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-public VectorComparator(int pid, String methodName)
-{
-       this.pid = pid;
-       Node n = Network.prototype;
-       if (n == null) {
-               throw new IllegalStateException("No prototype node can be used to search methods");
-       }
-       Object p = n.getProtocol(pid);
-       Class c = p.getClass();
-       try {
-               method = GetterSetterFinder.getGetterMethod(c, methodName);
-       } catch (NoSuchMethodException e) {
-               throw new IllegalArgumentException(e.getMessage());
-       }
-}
-
-
-public int compare(Object o1, Object o2)
-{
-       try {
-       Comparable c1 = (Comparable) method.invoke(((Node) o1).getProtocol(pid));
-       Comparable c2 = (Comparable) method.invoke(((Node) o2).getProtocol(pid));
-       return c1.compareTo(c2);
-       } catch (InvocationTargetException e) {
-               throw new RuntimeException(e.getCause().getMessage());
-       } catch (IllegalAccessException e) {
-               throw new RuntimeException(e.getCause().getMessage());
-       }
-}
-
-}
diff --git a/contrib/psg/src/peersim/vector/VectorObserver.java b/contrib/psg/src/peersim/vector/VectorObserver.java
deleted file mode 100644 (file)
index b971fc2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.vector;
-
-import peersim.core.*;
-import peersim.util.*;
-
-/**
- * This class computes and reports statistics information about a vector.
- * Provided statistics include average, max, min, variance,
- * etc. Values are printed according to the string format of {@link 
- * IncrementalStats#toString}.
- * @see VectControl
- * @see peersim.vector
- */
-public class VectorObserver extends VectControl {
-
-
-/** The name of this observer in the configuration */
-private final String prefix;
-
-
-//--------------------------------------------------------------------------
-//Initialization
-//--------------------------------------------------------------------------
-
-/**
- * Standard constructor that reads the configuration parameters.
- * Invoked by the simulation engine.
- * @param prefix the configuration prefix for this class
- */
-public VectorObserver(String prefix) {
-
-       super(prefix);
-       this.prefix = prefix;
-}
-
-//--------------------------------------------------------------------------
-// Methods
-//--------------------------------------------------------------------------
-
-/**
- * Prints statistics information about a vector.
- * Provided statistics include average, max, min, variance,
- * etc. Values are printed according to the string format of {@link 
- * IncrementalStats#toString}.
- * @return always false
- */
-public boolean execute() {
-
-       IncrementalStats stats = new IncrementalStats();
-
-       for (int j = 0; j < Network.size(); j++)
-       {
-               Number v = getter.get(j);
-               stats.add( v.doubleValue() );
-       }
-       
-       System.out.println(prefix+": "+stats);  
-
-       return false;
-}
-
-}
diff --git a/contrib/psg/src/psgsim/NodeHost.java b/contrib/psg/src/psgsim/NodeHost.java
deleted file mode 100644 (file)
index 1dce76f..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.Host;
-import peersim.core.Network;
-import peersim.core.Node;
-
-import java.util.Comparator;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * 
- * NodeHost class used to make the mapping Node-Host.
- * 
- * @author Khaled Baati 26/10/2014
- * @version version 1.1
- */
-public class NodeHost {
-
-       /**
-        * A collection of map contained the couple (host,node)
-        */
-       public static TreeMap<Node, Host> mapHostNode = new TreeMap<Node, Host>(
-                       new Comparator<Node>() {
-                               public int compare(Node n1, Node n2) {
-                                       return String.valueOf(n1.getID()).compareTo(
-                                                       String.valueOf(n2.getID()));
-                               }
-                       });
-
-       /**
-        * The main method to make the mapping Node to Host in the
-        * {@link #mapHostNode} field
-        */
-       public static void start() {
-               Host host = null;
-               for (Integer i = 0; i < PSGSimulator.size; i++) {
-                       host = PSGPlatform.hostList[i];
-                       mapHostNode.put(Network.get(i), host);
-               }
-       }
-
-       /**
-        * This static method gets a Node instance associated with a host of your
-        * platform.
-        * 
-        * @param host
-        *            The host associated in your platform.
-        * @return The node associated.
-        */
-       public static Node getNode(Host host) {
-               for (Map.Entry<Node, Host> element : mapHostNode.entrySet()) {
-                       if (element.getValue() == host)
-                               return element.getKey();
-               }
-               return null;
-       }
-
-       /**
-        * This static method gets a host instance associated with the node of your
-        * platform.
-        * 
-        * @param node
-        *            The node associated in your platform.
-        * @return The host associated, else return null (host doesn't exist).
-        */
-       public static Host getHost(Node node) {
-               for (Map.Entry<Node, Host> element : mapHostNode.entrySet()) {
-                       if (element.getKey() == node)
-                               return element.getValue();
-               }
-               return null;
-       }
-}
diff --git a/contrib/psg/src/psgsim/PSGDynamicNetwork.java b/contrib/psg/src/psgsim/PSGDynamicNetwork.java
deleted file mode 100644 (file)
index f4bb3b1..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostNotFoundException;
-
-import peersim.core.Node;
-
-/**
- * 
- * This class can change the size of networks by adding and removing nodes, as
- * {@link peersim.dynamics.DynamicNetwork} in peersim.
- * 
- * @author Khaled Baati 09/02/2015
- * @version version 1.1
- */
-public class PSGDynamicNetwork {
-
-       /**
-        * Removes the node from the network.
-        * 
-        * @param node
-        *            the node to be removed
-        */
-       public static void remove(Node node) {
-               // NodeHost.getHost(node).off();
-               // Host h=NodeHost.mapHostNode.get(node);
-               // NodeHost.mapHostNode.remove(node);
-               PSGSimulator.size = PSGSimulator.size - 1;
-       }
-
-       /**
-        * Adds a node to the network.
-        * 
-        * @param node
-        *            the node to be added
-        * @throws HostNotFoundException 
-        */
-       public static void add(Node node) throws HostNotFoundException {
-               Host host = PSGPlatform.hostList[(int) node.getID()];
-               NodeHost.mapHostNode.put(node, host);
-               if (PSGPlatform.interfED)
-                       new PSGProcessEvent(host, host.getName(), null).start();
-               PSGSimulator.size = PSGSimulator.size + 1;
-       }
-}
diff --git a/contrib/psg/src/psgsim/PSGPlatform.java b/contrib/psg/src/psgsim/PSGPlatform.java
deleted file mode 100644 (file)
index 90c7c87..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-package psgsim;
-
-import java.io.*;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.jdom2.*;
-import org.jdom2.output.*;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-
-import peersim.config.Configuration;
-import peersim.core.Control;
-import peersim.core.Protocol;
-
-/**
- * A class store different configuration information for simulation. It creates
- * the deployment file according to this informations.
- * 
- * @author Khaled Baati 26/10/2014
- * @version version 1.1
- */
-
-public class PSGPlatform {
-
-       enum timeUnit {
-               us, ms, sec;
-       }
-
-       /** unit of measure. **/
-       static int unit;
-
-       /** the clock. **/
-       static double time;
-
-       /** the default unit of measure **/
-       static final String sec = "sec";
-
-       /** All protocols defined in the configuration file. **/
-       static Protocol[] protocolsName;
-
-       /** A numeric identifier associated for each protocol. **/
-       static int[] pid;
-
-       /** List of hos.t **/
-       static Host[] hostList;
-
-       /** A collection map represents the Control and its associated step. **/
-       static Map<Control, Double> controlStepMap = new LinkedHashMap<Control, Double>();
-
-       /** A collection map represents the protocol and its associated pid. **/
-       static TreeMap<Protocol, Integer> protocolsPidsMap = new TreeMap<Protocol, Integer>(
-                       new Comparator<Protocol>() {
-                               public int compare(Protocol p1, Protocol p2) {
-                                       return p1.toString().compareTo(p2.toString());
-                               }
-                       });
-
-       /** A collection map represents all CDProtocol and its associated step **/
-       static TreeMap<Protocol, Double> cdProtocolsStepMap = new TreeMap<Protocol, Double>(
-                       new Comparator<Protocol>() {
-                               public int compare(Protocol p1, Protocol p2) {
-                                       return p1.toString().compareTo(p2.toString());
-                               }
-                       });
-       /** the default platform file **/
-       static final String platformFile = "platforms/psg.xml";
-
-       /** the deployment file **/
-       static final String deploymentFile = "deployment.xml";
-
-       static Element racine;
-       static Document document;
-       static boolean interfED = false;
-       static boolean interfCD = false;
-
-       /** Prepare the deployment file **/
-       static {
-               DocType dtype = new DocType("platform",
-                               "http://simgrid.gforge.inria.fr/simgrid.dtd");
-               racine = new Element("platform");
-               document = new Document(racine, dtype);
-               Attribute version = new Attribute("version", "3");
-               racine.setAttribute(version);
-       }
-
-       // ========================== methods ==================================
-       // =====================================================================
-
-       /**
-        * Convert PS unit time to Simgrid unit time
-        * 
-        * @param valeur
-        *            the value to convert
-        * @return time converted
-        */
-       public static double psToSgTime(long valeur) {
-               timeUnit unit = unit();
-               switch (unit) {
-               case us:
-                       return ((double) valeur) / 1000000;
-               case ms:
-                       return ((double) valeur) / 1000;
-               default:
-                       return (double) valeur;
-
-               }
-       }
-
-       /**
-        * Convert Simgrid unit time to PS unit time
-        * 
-        * @param valeur
-        *            the value to convert
-        * @return time converted
-        */
-       public static long sgToPsTime(double valeur) {
-               timeUnit unit = unit();
-               switch (unit) {
-               case us:
-                       return (long) valeur * 1000000;
-               case ms:
-                       return (long) valeur * 1000;
-               default:
-                       return (long) valeur;
-
-               }
-       }
-
-       /**
-        * 
-        * @return the duration of simulation.
-        */
-       public static long getDuration() {
-               return Configuration.getLong("simulation.duration");
-       }
-
-       /**
-        * 
-        * @return PeerSim Time
-        */
-       public static long getTime() {
-               return sgToPsTime(Msg.getClock());
-       }
-
-       /**
-        * 
-        * @return the Simgrid Clock
-        */
-       public static double getClock() {
-               return Msg.getClock();
-       }
-
-       /**
-        * Load and run initializers.
-        */
-       public static void init() {
-               Object[] inits = Configuration.getInstanceArray("init");
-               String names[] = Configuration.getNames("init");
-               for (int i = 0; i < inits.length; ++i) {
-                       System.err.println("- Running initializer " + names[i] + ": "
-                                       + inits[i].getClass().toString());
-                       ((Control) inits[i]).execute();
-               }
-       }
-
-       /**
-        * Load all controls and stores them in {@link #controlStepMap} collection
-        * to be scheduled, and executed in {@link psgsim.PSGProcessController}.
-        */
-       public static void control() {
-               // load controls
-               String[] names = Configuration.getNames("control");
-               Control control;
-               for (int i = 0; i < names.length; ++i) {
-                       control = (Control) Configuration.getInstance(names[i]);
-                       Long stepControl = Configuration.getLong(names[i] + "." + "step");
-                       controlStepMap.put(control, psToSgTime(stepControl));
-               }
-       }
-
-       /**
-        * Lookup all protocols in the configuration file
-        */
-       public static void protocols() {
-               String[] names = Configuration.getNames("protocol");
-               Class[] interfaces;
-               protocolsName = new Protocol[names.length];
-               pid = new int[names.length];
-               boolean save = false;
-               for (int i = 0; i < names.length; i++) {
-                       protocolsName[i] = (Protocol) Configuration.getInstance(names[i]);
-                       if (i == names.length - 1)
-                               save = true;
-                       userProtocol(protocolsName[i], names[i], save);
-                       pid[i] = i;
-                       protocolsPidsMap.put(protocolsName[i], pid[i]);
-               }
-
-       }
-
-       /**
-        * Lookup CDProtocol and EDProtocol among all protocols
-        * 
-        * @param prot
-        *            the protocol class
-        * @param names
-        *            the protocol name
-        * @param save
-        *            parameter equal true when parsing all protocols
-        */
-       public static void userProtocol(Protocol prot, String names, boolean save) {
-               Class[] interfaces = prot.getClass().getInterfaces();
-               for (int j = 0; j < interfaces.length; j++) {
-                       if (interfaces[j].getName().endsWith("EDProtocol")) {
-                               interfED = true;
-                       }
-                       if (interfaces[j].getName().endsWith("CDProtocol")) {
-                               String protName = names.substring("protocol".length() + 1);
-                               long step = Configuration.getLong("protocol" + "." + protName
-                                               + "." + "step");
-                               cdProtocolsStepMap.put(prot, psToSgTime(step));
-                       }
-               }
-               if (save) {
-                       edProt();
-               }
-       }
-
-       /**
-        * 
-        */
-       private static void edProt() {
-               Host hostVal;
-               hostList = Host.all();
-               for (int i = 0; i < PSGSimulator.size; i++) {
-                       hostVal = hostList[i];
-                       Element process = new Element("process");
-                       racine.addContent(process);
-                       Attribute host = new Attribute("host", hostVal.getName());
-                       Attribute function = new Attribute("function",
-                                       "psgsim.PSGProcessEvent");
-                       process.setAttribute(host);
-                       process.setAttribute(function);
-               }
-               save(deploymentFile);
-
-       }
-
-       /**
-        * 
-        */
-       @Deprecated
-       private static void cdProt() {
-               for (int i = 0; i < PSGSimulator.size; i++) {
-                       Element process = new Element("process");
-                       racine.addContent(process);
-                       Attribute host = new Attribute("host", String.valueOf(i));
-                       Attribute function = new Attribute("function",
-                                       "psgsim.PSGProcessCycle");
-                       process.setAttribute(host);
-                       process.setAttribute(function);
-
-               }
-               save("deployment.xml");
-
-       }
-
-       /**
-        * Reads given configuration property: "platform". If not found, returns the
-        * default value.
-        * 
-        * @return the platform file
-        */
-       public static String platformFile() {
-               String defFile = platformFile;
-               String file = Configuration.getString("platform", defFile);
-               return file;
-       }
-
-       /**
-        * Reads given configuration property: "unit". If not found, returns the
-        * default value (ms).
-        * 
-        * @return the unit of measure
-        */
-       public static timeUnit unit() {
-               String defUnit = sec;
-               String unit = Configuration.getString("unit", defUnit);
-               timeUnit t = timeUnit.valueOf(unit);
-               return t;
-       }
-
-       /**
-        * Create the deployment file
-        * 
-        * @param file
-        *            the name of the deployment file
-        */
-       public static void save(String file) {
-               try {
-                       // On utilise ici un affichage classique avec getPrettyFormat()
-                       XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
-                       out.output(document, new FileOutputStream(file));
-               } catch (java.io.IOException e) {
-               }
-       }
-
-       /**
-        * Delete the deployment file
-        * 
-        * @param path
-        *            the path of the deployment file
-        */
-       public static void delete(String path) {
-               File file = new File(path);
-               try {
-                       file.delete();
-               } catch (Exception e) {
-                       System.err.println("deployment file not found");
-
-               }
-               System.err.println(path + "file deleted");
-
-       }
-
-}
diff --git a/contrib/psg/src/psgsim/PSGProcessController.java b/contrib/psg/src/psgsim/PSGProcessController.java
deleted file mode 100644 (file)
index d587691..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-package psgsim;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.MsgException;
-
-import peersim.core.Control;
-
-/**
- * This class executes all controls object scheduled in the
- * {@link PSGPlatform#controlStepMap} collection.
- * 
- * @author Khaled Baati 10/12/2014
- * @version version 1.1
- */
-public class PSGProcessController extends org.simgrid.msg.Process {
-       
-       private Map<Control, Double> controlStepMapTmp = new LinkedHashMap<Control, Double>();
-
-       public PSGProcessController(Host host, String name, String[] args) {
-               super(host, name, null);
-       }
-
-       @Override
-       public void main(String[] args) throws MsgException {
-               Double nextControlEvent;
-               for (Map.Entry<Control, Double> entry : PSGPlatform.controlStepMap
-                               .entrySet()) {
-                       controlStepMapTmp.put(entry.getKey(), entry.getValue());
-               }
-               while (PSGPlatform.getTime() <= PSGPlatform.getDuration()) {
-                       for (Map.Entry<Control, Double> entrytmp : controlStepMapTmp
-                                       .entrySet()) {
-                               Control cle = entrytmp.getKey();
-                               Double valeur = entrytmp.getValue();
-                               if (PSGPlatform.getTime() % valeur == 0) {
-                                       cle.execute();
-                                       if (PSGPlatform.getTime() != 0)
-                                               for (Map.Entry<Control, Double> entry : PSGPlatform.controlStepMap
-                                                               .entrySet()) {
-                                                       if (cle == entry.getKey())
-                                                               controlStepMapTmp.replace(cle, valeur, valeur
-                                                                               + entry.getValue());
-
-                                               }
-                               }
-                       }
-                       nextControlEvent = next();
-                       if (nextControlEvent + PSGPlatform.getTime() >= PSGPlatform.getDuration()) {
-                               break;
-                       } else {
-                               waitFor(nextControlEvent);
-                       }
-               }
-       }
-
-       private Double next() {
-               Double min = controlStepMapTmp.values().iterator().next();
-               for (Map.Entry<Control, Double> entry : controlStepMapTmp.entrySet()) {
-                       Double valeur = (entry.getValue() - PSGPlatform.getClock());
-                       if (min > valeur)
-                               min = valeur;
-               }
-
-               return min;
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/psgsim/PSGProcessCycle.java b/contrib/psg/src/psgsim/PSGProcessCycle.java
deleted file mode 100644 (file)
index e0931b1..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-package psgsim;
-
-import java.util.Map.Entry;
-
-import org.simgrid.msg.Host;
-import peersim.cdsim.CDProtocol;
-import peersim.core.Node;
-import peersim.core.Protocol;
-
-/**
- * This class handle an event of type NextCycleEvent, received on the protocol
- * identified by a pid among all CDProtocols defined in the
- * {@link PSGPlatform#cdProtocolsStepMap} collection.
- * <p>
- * It executes the nextCyle method associated to this protocol.
- * 
- * @author Khaled Baati 27/10/2014
- * @version version 1.1
- */
-public class PSGProcessCycle {
-
-       /**
-        * Executes the nextCycle method of the CDprotocol with the appropriate
-        * parameters, and schedules the next call using {@link PSGSimulator#add}.
-        * 
-        * @param host
-        *            the host on which this component is run
-        * @param name
-        *            the host's name
-        * @param delay
-        *            the start time
-        * @param event
-        *            the actual event
-        * @param pid
-        *            the protocol identifier
-        */
-       public static void nextCycle(Host host, String name, double delay,
-                       Object event, int pid) {
-               CDProtocol cdp = null;
-               Node node = NodeHost.getNode(host);
-               cdp = (CDProtocol) node.getProtocol(pid);
-               cdp.nextCycle(node, pid);
-               PSGTransport.flush();
-               for (Entry<Protocol, Double> entry : PSGPlatform.cdProtocolsStepMap
-                               .entrySet()) {
-                       Double step = entry.getValue();
-                       for (Entry<Protocol, Integer> p : PSGPlatform.protocolsPidsMap
-                                       .entrySet()) {
-                               if (p.getValue() == pid) {
-                                       break;
-                               }
-                       }
-                       if (PSGPlatform.getTime() <= PSGPlatform.getDuration() && host.isOn()) {
-                               PSGSimulator.add(PSGPlatform.sgToPsTime(step), event, node, pid);
-                       }
-               }
-       }
-
-}
diff --git a/contrib/psg/src/psgsim/PSGProcessEvent.java b/contrib/psg/src/psgsim/PSGProcessEvent.java
deleted file mode 100644 (file)
index cc4f73c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.MsgException;
-
-import peersim.core.Node;
-import peersim.edsim.EDProtocol;
-
-/**
- * This class extends {@link org.simgrid.msg.Process} which creates a process
- * for each host (corresponding to node in peersim) in the system.
- * <p>
- * The main method of this class is to handle events received, by calling the
- * processEvent method on the corresponding node and pid.
- * <p>
- * See {@link peersim.edsim.EDProtocol#processEvent}
- * 
- * @author Khaled Baati 28/10/2014
- * @version version 1.1
- */
-public class PSGProcessEvent extends org.simgrid.msg.Process {
-       /** The delivered event **/
-       private PSGTask task;
-       /** The current protocol **/
-       private EDProtocol prot;
-       /** The identifier of the current protocol **/
-       private int pid;
-
-       /**
-        * Constructs a new process from the name of a host.
-        * 
-        * @param host
-        *            the local host to create according to the active node in
-        *            peersim
-        * @param name
-        *            the host's name
-        * @param args
-        *            The arguments of main method of the process.
-        */
-       public PSGProcessEvent(Host host, String name, String[] args) {
-               super(host, name, args);
-       }
-
-       @Override
-       public void main(String[] args) throws MsgException {
-               Node node = NodeHost.getNode(getHost());
-               Host.setAsyncMailbox(getHost().getName());
-               while (PSGPlatform.getTime() < PSGPlatform.getDuration()) {
-                       task = null;
-                       task = (PSGTask) PSGTask.receive(Host.currentHost().getName(),
-                                       PSGPlatform.psToSgTime(PSGPlatform.getDuration() - PSGPlatform.getTime()-1));
-                       if (task != null && PSGPlatform.getTime() < PSGPlatform.getDuration()) {
-                               pid = task.getPid();
-                               prot = (EDProtocol) node.getProtocol(pid);
-                               prot.processEvent(node, pid, task.getEvent());
-                               PSGTransport.flush();
-                       } else
-                               break;
-               }
-       }
-
-}
diff --git a/contrib/psg/src/psgsim/PSGProcessLauncher.java b/contrib/psg/src/psgsim/PSGProcessLauncher.java
deleted file mode 100644 (file)
index 97d89c0..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.MsgException;
-
-import peersim.core.Node;
-import peersim.edsim.EDProtocol;
-import peersim.edsim.NextCycleEvent;
-
-/**
- * This class extends {@link org.simgrid.msg.Process}, it creates a process for
- * each event added in {@link PSGSimulator#add}.
- * <p>
- * This class performs to launch the appropriate call according to the type of
- * the event;
- * <p>
- * - A NextCycleEvent: the event will be delivered to the
- * {@link PSGProcessCycle} for treatment.
- * <p>
- * - Otherwise the event is delivered to the destination protocol, that must
- * implement {@link EDProtocol}, and the processEvent method is executed.
- * 
- * @author Khaled Baati 12/11/2014
- * @version version 1.1
- */
-public class PSGProcessLauncher extends org.simgrid.msg.Process {
-       private EDProtocol prot = null;
-       private int pid;
-       private double delay;
-       private Object event;
-       private Host host;
-
-       /**
-        * Constructs a new process from the name of a host and with the associated
-        * parameters
-        * 
-        * @param host
-        *            the local host
-        * @param name
-        *            the host's name
-        * @param delay
-        *            the start time of the process
-        * @param event
-        *            the event added to the simulator
-        * @param pid
-        *            the protocol identifier
-        */
-       public PSGProcessLauncher(Host host, String name, double delay, Object event,
-                       int pid) {
-               super(host, name, null, delay, -1);
-               this.host = host;
-               this.pid = pid;
-               this.event = event;
-               this.delay = delay;
-       }
-
-       public PSGProcessLauncher(Host host, String name, String[] args) {
-
-       }
-
-       @Override
-       public void main(String[] args) throws MsgException {
-               Node node = NodeHost.getNode(host);
-               if (event instanceof NextCycleEvent) {
-                       PSGProcessCycle.nextCycle(Host.currentHost(), host.getName(),
-                                       delay, event, pid);
-               } else {
-                       prot = (EDProtocol) node.getProtocol(pid);
-                       prot.processEvent(node, pid, event);
-                       PSGTransport.flush();
-               }
-               waitFor(500);
-       }
-}
\ No newline at end of file
diff --git a/contrib/psg/src/psgsim/PSGSimulator.java b/contrib/psg/src/psgsim/PSGSimulator.java
deleted file mode 100644 (file)
index cd60973..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.NativeException;
-
-import peersim.core.CommonState;
-import peersim.core.Network;
-import peersim.core.Node;
-
-/**
- * This is the main entry point to Simgrid simulator. This class loads the
- * different parameters and initializes the simulation.
- * 
- * @author Khaled Baati 14/10/2014
- * @version version 1.1
- */
-public class PSGSimulator {
-       public static int size;
-
-       static {
-               Network.reset();
-               size = Network.size();
-       }
-
-       // ========================== methods ==================================
-       // =====================================================================
-
-       /**
-        * Adds a new event to be scheduled, specifying the number of time units of
-        * delay (in seconds), the node and the protocol identifier to which the
-        * event will be delivered. A {@link psgsim.PSGProcessLauncher} process will
-        * be created according to this event.
-        * 
-        * @param delay
-        *            The number of time units (seconds in simgrid) before the event
-        *            is scheduled.
-        * @param event
-        *            The object associated to this event
-        * @param src
-        *            The node associated to the event.
-        * @param pid
-        *            The identifier of the protocol to which the event will be
-        *            delivered
-        */
-       public static void add(long delay, Object event, Node src, int pid) {
-               Host host = NodeHost.getHost(src);
-               double startTime = PSGPlatform.psToSgTime(delay) + Msg.getClock(); 
-               if (startTime < PSGPlatform.psToSgTime(PSGPlatform.getDuration()) ) {
-                       try {
-                               /**
-                                * random instruction associated to Heap.add(...) method in
-                                * peersim.edsim
-                                **/
-                               CommonState.r.nextInt(1 << 8);
-                               new PSGProcessLauncher(host, host.getName(), startTime, event,
-                                               pid).start();
-                       } catch (HostNotFoundException e) {
-                               System.err.println("Host not found");
-                       }
-               }
-
-       }
-
-       // ========================== main method ==================================
-       // =====================================================================
-       public static void main() throws NativeException, HostNotFoundException {
-
-               String platformfile = PSGPlatform.platformFile();
-               System.err.println(platformfile + " loaded");
-               String[] arguments = { platformfile, "deployment.xml" };
-               Msg.init(arguments);
-
-               /** construct the platform */
-               Msg.createEnvironment(arguments[0]);
-
-               PSGPlatform.protocols();
-
-               /** deploy the application **/
-               Msg.deployApplication(arguments[1]);
-
-               /** construct the host-node mapping **/
-               NodeHost.start();
-
-               /** Process Controller **/
-               PSGPlatform.control();
-               if (!PSGPlatform.controlStepMap.isEmpty())
-                       new PSGProcessController(PSGPlatform.hostList[0],
-                                       PSGPlatform.hostList[0].getName(), null).start();
-
-               /** Load and execute the initializers classes in the configuration file **/
-               PSGPlatform.init();
-
-               PSGPlatform.delete("deployment.xml");
-               /** execute the simulation. **/
-               Msg.run();
-       }
-}
diff --git a/contrib/psg/src/psgsim/PSGTask.java b/contrib/psg/src/psgsim/PSGTask.java
deleted file mode 100644 (file)
index 6d25e2c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-package psgsim;
-
-import org.simgrid.msg.HostFailureException;
-import org.simgrid.msg.Task;
-import org.simgrid.msg.TimeoutException;
-import org.simgrid.msg.TransferFailureException;
-
-/**
- * The PSGTask includes all the parameters of sending a message as the size, the
- * compute duration and the protocol identifier.
- * 
- * @author Khaled Baati 28/10/2014
- * @version version 1.1
- */
-public class PSGTask extends org.simgrid.msg.Task {
-       /** The Message to be sent **/
-       private Object event;
-       /** The protocol identifier **/
-       private int pid;
-
-       /**
-        * Construct a new task to be sent.
-        * 
-        * @param name
-        *            The name of task
-        * @param computeDuration
-        *            The compute duration
-        * 
-        * @param messageSize
-        *            The size of the message
-        * @param event
-        *            The message to be sent
-        * @param pid
-        *            The protocol identifier
-        */
-       public PSGTask(String name, double computeDuration, double messageSize,
-                       Object event, int pid) {
-               super(name, computeDuration, messageSize);
-               this.event = event;
-               this.pid = pid;
-       }
-
-       /**
-        * 
-        * @return the protocol identifier
-        */
-       public int getPid() {
-               return pid;
-       }
-
-       /**
-        * 
-        * @return the message
-        */
-       public Object getEvent() {
-               return event;
-       }
-
-       /**
-        * Retrieves next task on the mailbox identified by the specified name (wait
-        * at most timeout seconds)
-        * 
-        * @param mailbox
-        *            the mailbox on where to receive the task
-        * @param timeout
-        *            the timeout to wait for receiving the task
-        * @return the task
-        */
-       public static Task receive(String mailbox, double timeout) {
-               double time = PSGPlatform.getClock();
-               if (time + timeout > PSGPlatform.getClock()) {
-                       try {
-                               return receive(mailbox, timeout, null);
-                       } catch (TimeoutException e) {
-                       } catch (TransferFailureException e) {
-                               e.printStackTrace();
-                       } catch (HostFailureException e) {
-                               e.printStackTrace();
-                       }
-               }
-               return null;
-
-       }
-
-}
diff --git a/contrib/psg/src/psgsim/PSGTransport.java b/contrib/psg/src/psgsim/PSGTransport.java
deleted file mode 100644 (file)
index db964b4..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-package psgsim;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import peersim.config.Configuration;
-import peersim.config.IllegalParameterException;
-import peersim.core.CommonState;
-import peersim.core.Node;
-import peersim.transport.Transport;
-
-/**
- * PSGTransport is the transport layer. it is responsible for sending messages.
- * 
- * @author Khaled Baati 28/10/2014
- * @version 1.1
- */
-public class PSGTransport implements Transport {
-
-       private static double computeDuration = 0;
-       private PSGTask task;
-       private static Map<PSGTask, String> taskToSend = new LinkedHashMap<PSGTask, String>();
-
-       /**
-        * String name of the parameter used to configure the minimum latency. * @config
-        */
-       private static final String PAR_MINDELAY = "mindelay";
-
-       /**
-        * String name of the parameter used to configure the maximum latency.
-        * Defaults to {@value #PAR_MINDELAY}, which results in a constant delay.
-        * 
-        * @config
-        */
-       private static final String PAR_MAXDELAY = "maxdelay";
-
-       /** Minimum delay for message sending */
-       private long min;
-       /** Maximum delay for message sending */
-       private long max;
-
-       /**
-        * Difference between the max and min delay plus one. That is, max delay is
-        * min+range-1.
-        */
-       private long range;
-
-       public PSGTransport() {
-
-       }
-
-       public PSGTransport(String prefix) {
-               min = Configuration.getLong(prefix + "." + PAR_MINDELAY);
-               max = Configuration.getLong(prefix + "." + PAR_MAXDELAY, min);
-               if (max < min)
-                       throw new IllegalParameterException(prefix + "." + PAR_MAXDELAY,
-                                       "The maximum latency cannot be smaller than the minimum latency");
-               range = max - min + 1;
-       }
-
-       /**
-        * Returns <code>this</code>. This way only one instance exists in the
-        * system that is linked from all the nodes. This is because this protocol
-        * has no node specific state.
-        */
-       public Object clone() {
-               return this;
-       }
-
-       @Override
-       public void send(Node src, Node dest, Object msg, int pid) {
-               double commSizeLat = 0;
-               /**
-                * random instruction associated to UniformRandomTransport.send(...)
-                * method in peersim.transport
-                **/
-               long delay = (range == 1 ? min : min + CommonState.r.nextLong(range));
-               CommonState.r.nextInt(1 << 8);
-               if (msg instanceof Sizable) {
-                       commSizeLat = ((Sizable) msg).getSize();
-               }
-
-               task = new PSGTask("task sender_" + src.getID(), computeDuration,
-                               commSizeLat, msg, pid);
-               taskToSend.put(this.task, NodeHost.getHost(dest).getName());
-
-       }
-
-       /**
-        * Process for sending all messages in the queue.
-        */
-       public static void flush() {
-               Map<PSGTask, String> taskToSendCopy = new LinkedHashMap<PSGTask, String>();
-               for (Map.Entry<PSGTask, String> entry : taskToSend.entrySet()) {
-                       taskToSendCopy.put(entry.getKey(), entry.getValue());
-               }
-               taskToSend.clear();
-               for (Map.Entry<PSGTask, String> entry : taskToSendCopy.entrySet()) {
-                       PSGTask task = entry.getKey();
-                       String dest = entry.getValue();
-                       task.dsend(dest);
-               }
-               taskToSendCopy.clear();
-
-       }
-
-       @Override
-       public long getLatency(Node src, Node dest) {
-               /**
-                * random instruction associated to
-                * UniformRandomTransport.getLatency(...) method in peersim.transport
-                **/
-               return (range == 1 ? min : min + CommonState.r.nextLong(range));
-       }
-}
diff --git a/contrib/psg/src/psgsim/Sizable.java b/contrib/psg/src/psgsim/Sizable.java
deleted file mode 100644 (file)
index 16196f6..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-package psgsim;
-
-/**
- * An interface which defines a size for the message or the event to be sent. If you
- * wish that your message has a size, your class message must implements this
- * interface and defines a size parameter in the constructor.
- * 
- * @author Khaled Baati 05/02/2015
- * @version 1.1
- * 
- */
-public interface Sizable {
-       /**
-        * 
-        * @return The size of the message
-        */
-       public double getSize();
-}
diff --git a/contrib/psg/test.sh b/contrib/psg/test.sh
deleted file mode 100755 (executable)
index 7f6d61c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-
-if [ $(uname -m) = "i686" ]; then
-       eval ulimit -s 64
-else 
-       eval ulimit -s 128
-fi
-
-echo -e "\n";
-echo '------------- Execute the edaggregation example under PSG -------------';
-echo -e "\n";
-java -Xmx1024m -cp lib.jar:classes:../../simgrid.jar peersim.Simulator configs/edaggregationPSG.txt
-echo -e "\n";
-echo '------------- Execute the edaggregation example under PS -------------';
-echo -e "\n";
-java -Xmx1024m -cp lib.jar:classes:../../simgrid.jar peersim.Simulator configs/edaggregation.txt
-echo -e "\n";
-echo '------------- Execute the chord example under PSG -------------';
-echo -e "\n";
-java -Xmx1024m -cp lib.jar:classes:../../simgrid.jar peersim.Simulator configs/chordPSG.txt
-echo -e "\n";
-echo '------------- Execute the chord example under PS -------------';
-echo -e "\n";
-java -Xmx1024m -cp lib.jar:classes:../../simgrid.jar peersim.Simulator configs/chord.txt
-echo -e "\n";
-echo '------------- Compare the 2 results PS and PSG -------------';
-echo -e "\n";
-
-cd outputs
-
-ListeRep="$(find * -type d -prune)"   # liste des repertoires
-for Rep in ${ListeRep}; do     
-       cd $Rep
-       VAR=$(diff ps.txt psg.txt)
-       if [ "${VAR}"1 = 1 ]
-               then
-                echo The results of diff "for" the $Rep example is '.............:)';
-       else
-                echo The results of diff "for" the $Rep example is '.............:(';
-       fi
-       cd ..
-done
-echo -e "\n";
-exit 0
-
diff --git a/contrib/psg/tutorial.odt b/contrib/psg/tutorial.odt
deleted file mode 100644 (file)
index 9a1f50d..0000000
Binary files a/contrib/psg/tutorial.odt and /dev/null differ
diff --git a/contrib/psg/tutorial.pdf b/contrib/psg/tutorial.pdf
deleted file mode 100644 (file)
index df0ef22..0000000
Binary files a/contrib/psg/tutorial.pdf and /dev/null differ
index a81b2bf..28cca26 100644 (file)
@@ -154,7 +154,7 @@ SHORT_NAMES            = NO
 # comments will behave just like regular Qt-style comments
 # (thus requiring an explicit @brief command for a brief description.)
 
-JAVADOC_AUTOBRIEF      = NO
+JAVADOC_AUTOBRIEF      = YES
 
 # If the QT_AUTOBRIEF tag is set to YES then Doxygen will
 # interpret the first line (until the first dot) of a Qt-style
@@ -210,7 +210,7 @@ TCL_SUBST              =
 # For instance, some of the names that are used will be different. The list
 # of all members will be omitted, etc.
 
-OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_FOR_C  = NO
 
 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
 # sources only. Doxygen will then generate output that is more tailored for
@@ -342,7 +342,7 @@ LOOKUP_CACHE_SIZE      = 0
 # Private class members and static file members will be hidden unless
 # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
 
-EXTRACT_ALL            = NO
+EXTRACT_ALL            = YES
 
 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class
 # will be included in the documentation.
@@ -385,7 +385,7 @@ EXTRACT_ANON_NSPACES   = NO
 # various overviews, but no documentation section is generated.
 # This option has no effect if EXTRACT_ALL is enabled.
 
-HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_MEMBERS     = NO
 
 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
 # undocumented classes that are normally visible in the class hierarchy.
@@ -399,7 +399,7 @@ HIDE_UNDOC_CLASSES     = YES
 # If set to NO (the default) these declarations will be included in the
 # documentation.
 
-HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_FRIEND_COMPOUNDS  = YES
 
 # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
 # documentation blocks found inside the body of a function.
@@ -616,7 +616,7 @@ WARN_IF_DOC_ERROR      = YES
 # wrong or incomplete parameter documentation, but not about the absence of
 # documentation.
 
-WARN_NO_PARAMDOC       = YES
+WARN_NO_PARAMDOC       = NO
 
 # The WARN_FORMAT tag determines the format of the warning messages that
 # doxygen can produce. The string should contain the $file, $line, and $text
@@ -683,7 +683,9 @@ INPUT                  = doxygen/index.doc \
                          @top_srcdir@/src/xbt/ \
                          @top_srcdir@/src/surf/ \
                          @top_srcdir@/src/surf/plugins/ \
+                         @top_srcdir@/src/s4u/ \
                          @top_srcdir@/src/msg/ \
+                         @top_srcdir@/src/smpi/ \
                          @top_srcdir@/src/simdag \
                          @top_srcdir@/src/simix \
                          @bindir@/src
diff --git a/doc/HelloWorld/CMakeLists.txt b/doc/HelloWorld/CMakeLists.txt
deleted file mode 100644 (file)
index 02d42f5..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-### This is a template for building targets with simgrid
-cmake_minimum_required(VERSION 2.8)
-
-### Need to set rc ccompiler before enable language
-if(WIN32)
-  SET(CMAKE_RC_COMPILER "windres")
-  set(LIBRARIES_DEP simgrid ws2_32 pthread)
-else()
-  set(LIBRARIES_DEP simgrid pthread)
-endif()
-
-project(MY_SIMGRID_PROJECT C)
-
-set(CMAKE_C_FLAGS "" CACHE TYPE INTERNAL FORCE)
-set(CMAKE_EXE_LINKER_FLAGS "" CACHE TYPE INTERNAL FORCE)
-
-###############################
-# Test the build dependencies #
-###############################
-message(STATUS "Looking for lib Simgrid")
-if("$ENV{SIMGRID_ROOT}" STREQUAL "")
-  message(STATUS "Looking for lib Simgrid - Not found")
-  message(FATAL_ERROR "Simgrid not found, reinstall it or set SIMGRID_ROOT")
-else()
-  link_directories($ENV{SIMGRID_ROOT}/lib)
-  include_directories($ENV{SIMGRID_ROOT}/include)
-  include_directories($ENV{SIMGRID_ROOT}/src)
-  include_directories($ENV{SIMGRID_ROOT}/src/include)
-  message(STATUS "Looking for lib Simgrid - found")
-endif()
-
-################
-# FIND TARGETS #
-################
-file(GLOB SOURCE_FILE
-  RELATIVE ${CMAKE_HOME_DIRECTORY}/
-  "*.c"
-  )
-string(REPLACE ".c" "" TARGET_NAME ${SOURCE_FILE})
-
-foreach(target "${TARGET_NAME}")
-  add_executable(${target} "${target}.c")
-  message(STATUS "source_file: ${target}.c")
-  message(STATUS "target name: ${target}.exe")
-  # Any targets need to be linked with libraries
-  target_link_libraries(${target} ${LIBRARIES_DEP})
-endforeach(target ${SOURCE_FILE})
diff --git a/doc/HelloWorld/HelloWorld.c b/doc/HelloWorld/HelloWorld.c
deleted file mode 100644 (file)
index 72c6d04..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright (c) 2011-2012, 2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include "xbt/log.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(HelloWorld,
-                             "Messages specific for this Hello World example");
-void main()
-{
-  XBT_INFO("Hello World !!!");
-}
diff --git a/doc/HelloWorld/README b/doc/HelloWorld/README
deleted file mode 100644 (file)
index 67b0585..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a very simple example to explain how to compile with simgrid.
-
-1) How to compile an example: (HelloWorld)
-
-- Run windows shell "cmd".
-- Open HelloWorld Directory ('cd' command line).
-- Create a build directory and change directory. (optional)
-- Type 'cmake -G"MinGW Makefiles" <path_to_HelloWorld_project>'
-- Run mingw32-make
-- You should obtain a runnable example ("HelloWorld.exe").
-
-2) Content of this directory
-
-- HelloWorld.c 
-       The example source file.
-- CMakeLists.txt
-       It allows to configure the project.
-- README
-       This explaination.
-       
-3) How to add and compile a new example
-
-- Put your source file into the helloWord directory.
-- Edit CMakeLists.txt :
-       * In the Targets section add those two lines:
-               add_executable(TARGET_NAME SOURCES)
-               target_link_libraries(TARGET_NAME simgrid) 
-       * It creates a target called 'TARGET_NAME.exe' with the sources 'SOURCES'.
-- To initialize your project, you'll need to run 'cmake -G"Unix Makefiles" <path_to_HelloWorld_project>.'
-- To build you project, run "cmake ." 
-- Run "gmake"
-- You should obtain "TARGET_NAME.exe".
\ No newline at end of file
index 385846f..585a480 100644 (file)
@@ -1,21 +1,19 @@
 <doxygenlayout version="1.0">
   <!-- Navigation index tabs for HTML output -->
   <navindex>
-    <tab type="usergroup" visible="yes" title="Getting started" intro="Getting started" url="@ref getting_started">
+    <!--<tab type="usergroup" visible="yes" title="Getting started" intro="Getting started" url="@ref getting_started">
       <tab type="user" visible="yes" url="@ref getting_started" title="What to read" />
       <tab type="user" visible="yes" url="@ref install" title="Installing SimGrid" />
       <tab type="user" visible="yes" url="@ref help" title="Getting help" />
-    </tab>
+    </tab>-->
+    
     <tab type="mainpage" visible="yes" title="SimGrid User Documentation" />
-  
-    <!--<tab type="pages" visible="yes" title="Table Of Content" intro="Complete pages list">-->
-      <!--<tab type="pages" visible="yes" title="Table Of Content" intro="Complete pages list"/>-->
-    <!--</tab>-->
-    <tab type="usergroup" visible="yes" title="Technical documentation" intro="Technical documentation">
+
+    <tab type="usergroup" visible="yes" title="Reference documentation" intro="Reference documentation">
       <tab type="namespaces" visible="no" title="">
-        <tab type="namespaces" visible="yes" title="" intro=""/>
-        <tab type="namespacemembers" visible="yes" title="" intro=""/>
-      </tab>
+      <tab type="namespaces" visible="yes" title="" intro=""/>
+      <tab type="namespacemembers" visible="yes" title="" intro=""/>
+    </tab>
       <tab type="classes" visible="no" title="">
         <tab type="classes" visible="yes" title="" intro=""/>
         <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> 
index 8658fd8..168706b 100644 (file)
@@ -1,4 +1,4 @@
-/*! @page contributing Contributing to SimGrid
+/*! @page contributing Giving back to SimGrid
 
 @tableofcontents
 
index 1439a60..107b44b 100644 (file)
@@ -1,4 +1,4 @@
-/*! \page deployment Step 3: Deploy the simulation
+/*! \page deployment Deploy the simulation
 
 \section dep_over Overview
 
index 2a4dac1..878f901 100644 (file)
@@ -1,9 +1,9 @@
-/*! @page getting_started Getting started with SimGrid!
+/*! @page getting_started Getting started with SimGrid
 
 \tableofcontents
 
-Welcome to SimGrid's documentation! %As you may know, SimGrid is (actively
-developed) research software and contains many features. This documentation is
+Welcome to SimGrid's documentation! %As you may know, SimGrid is an actively
+developed research software and contains many features. This documentation is
 \c "work in progress" (and we need the community's help to improve this
 documentation! If you're ready to step up and help us, see Section \ref
 contributing "Contributing"), but many features are already well described.
@@ -29,30 +29,31 @@ own needs. This page gives you a brief overview of available resources.
 | ----------------- | ------------------------------------------------- |
 | \ref tutorial     | Introduces the user to basic features of SimGrid. |
 | \ref install      | Explains how SimGrid can be installed; this covers Windows as well as Linux; plus, it shows how to install from a package or how to install from source. |
-| [Tutorials](http://simgrid.gforge.inria.fr/tutorials.html) | These tutorials cover most of the basics and might be valuable for what you want to do, especially the [SimGrid User 101](http://simgrid.gforge.inria.fr/tutorials/simgrid-use-101.pdf). |
+| [Online Tutorials](http://simgrid.gforge.inria.fr/tutorials.html) | These tutorials cover most of the basics and might be valuable for what you want to do, especially the [SimGrid User 101](http://simgrid.gforge.inria.fr/tutorials/simgrid-use-101.pdf). |
 | \ref MSG_examples | This document explains several tests that we wrote for MSG; these tests are working simulations and you may learn something from looking at them. |
 
 In order to actually use SimGrid, three steps are necessary:
 
-\li \ref platform
-\li \ref options
-\li \ref deployment
+\li Step 1: \ref platform
+\li Step 2: \ref options
+\li Step 3: \ref deployment
 
 \section gs_experienced_users Documentation for experienced users
 
 | Document name     | Description                                       |
 | ----------------- | ------------------------------------------------- |
 | \ref tracing      | Shows how the behavior of a program can be written to a file so that it can be analyzed. |
-| \ref bindings     | SimGrid supports many different bindings for languages such as Lua, Ruby, Java, ... You can run your simulations with those! |
-| \ref pls          | Although SimGrid is not a packet level simulator, it does have bindings to two such simulators. |
+| \ref bindings     | You can write your application in Java, if you prefer. |
+| \ref pls          | You can use the NS3 simulation models instead of our own. |
 | \ref inside       | If you want to contribute or obtain a deeper understanding of SimGrid, this is the right location. |
 
 \section gs_examples Examples shipped with SimGrid
 
-SimGrid ships with many examples. You can find them in the folder
-\c examples/. Especially when you're looking for examples on how to
-use a specific XML-tag, this will prove valuable, as you can easily
-search through all the files with tools like \c grep.
+SimGrid ships with many examples, detailed in Section \ref
+MSG_examples. You can find them in the folder \c examples/. Especially
+when you're looking for examples on how to use a specific XML-tag,
+this will prove valuable, as you can easily search through all the
+files with tools like \c grep.
 
 
 Here is the output of a quick search for examples for \ref pf_trace "trace_connect":
@@ -65,7 +66,4 @@ Here is the output of a quick search for examples for \ref pf_trace "trace_conne
 ./platforms/two_hosts_platform_with_availability_included.xml:26:<trace_connect kind="POWER" trace="B" element="Cpu B"/>
 \endverbatim
 
-\note
-    There's also a Section on \ref MSG_examples "examples for MSG".
-
 */
index 87311a8..f129c89 100644 (file)
 <tr><td width="50%">
 @endhtmlonly
 
+- @subpage getting_started
+  - @ref install
+  - @ref help
 - @subpage tutorial
-- @subpage platform
-- @subpage options
-- @subpage deployment
-- @subpage examples
+  - @subpage platform
+  - @subpage options
+  - @subpage deployment
+  - @subpage examples
 - @subpage advanced
   - @ref bindings
   - @ref pls
index c6679fa..ca1b7ed 100644 (file)
@@ -308,4 +308,16 @@ We re-use the ones from the
 project. Thanks to them for compiling sane tools and constituting that
 archive, it saved my mind! 
 
+\subsection inside_tests_debian Debian builders
+
+Since SimGrid is packaged in Debian, we benefit from their huge
+testing infrastructure. That's an interesting torture test for our
+code base. The downside is that it's only for the released versions of
+SimGrid. That is why the Debian build does not stop when the tests
+fail: post-releases fixes do not fit well in our workflow and we fix
+only the most important breakages.
+
+The build results are here:
+https://buildd.debian.org/status/package.php?p=simgrid
+
 */
index eabdcc4..18fea41 100644 (file)
@@ -3,12 +3,13 @@
 
 @tableofcontents
 
+SimGrid should work out of the box on Linux, Mac OSX, FreeBSD and
+Windows (under windows, only the Java interfaces are available atm).
+
 The easiest way to install SimGrid is to go for a binary package.
 Under Debian or Ubuntu, this is very easy as SimGrid is directly
 integrated to the official repositories.  If you just want to use
-Java, simply copy the jar file on your disk and you're set. Note that
-under Windows, you should go for Java, as the native C interface is
-not supported on that OS.
+Java, simply copy the jar file on your disk and you're set.
 
 Recompiling an official archive is not much more complex, actually.
 SimGrid has very few dependencies and rely only on very standard
@@ -95,19 +96,8 @@ SimGrid only uses very standard tools:
     - osX: with <a href="http://www.finkproject.org/">fink</a>: `sudo fink install boost1.53.nopython`
     - debian: `apt-get install libboost-dev libboost-context-dev`
 
-On MacOSX, it is advised to use the clang compiler (version 3.0 or
-higher), from either MacPort or XCode.  See also @ref install_cmake_mac.
-
-Building from the source on Windows, may be something of an adventure.
-We never managed to compile SimGrid with something else than MinGW-64
-ourselves. We usually use the
-<a href="http://www.activestate.com/activeperl/downloads">activestate</a>
-version of Perl, and the
-<a href="http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe">msys</a>
-version of git on this architecture, but YMMV. You can have a look at
-the configuration scripts in the appveyor.yml file, but you are
-basically on your own here. Sorry. We are not fluent with Windows so
-we cannot really help. 
+For platform specific details, please see  @ref install_cmake_mac and
+@ref install_cmake_windows.
 
 @subsection install_src_fetch Retrieving the source
 
@@ -255,9 +245,9 @@ cmake [options] ..
 make
 @endverbatim
 
-\subsubsection install_cmake_mac Cmake on Mac OS X
+\subsubsection install_cmake_mac Building on Mac OS X
 
-SimGrid compiles like a charm with clang on Mac OS X:
+SimGrid compiles like a charm with clang (version 3.0 or higher) on Mac OS X:
 
 @verbatim
 cmake -DCMAKE_C_COMPILER=/path/to/clang -DCMAKE_CXX_COMPILER=/path/to/clang++ .
@@ -276,7 +266,25 @@ warning that the "-pthread" argument is not used, if it appears.
 CMAKE_OSX_SYSROOT:PATH=/Applications/XCode.app/Contents/Developer/Platforms/MacOSX.platform/Developer
 @endverbatim
 
-\subsection install_src_compil Compiling SimGrid
+\subsubsection install_cmake_windows Building on Windows
+
+Building from the source on Windows, may be something of an adventure.
+We never managed to compile SimGrid with something else than MinGW-64
+ourselves. We usually use the
+<a href="http://www.activestate.com/activeperl/downloads">activestate</a>
+version of Perl, and the
+<a href="http://msysgit.googlecode.com/files/Git-1.7.4-preview20110204.exe">msys</a>
+version of git on this architecture, but YMMV. You can have a look at
+the configuration scripts in the appveyor.yml file, but you are
+basically on your own here. Sorry. We are not fluent with Windows so
+we cannot really help. 
+
+The drawback of MinGW-64 is that the produced DLL are not compatible
+with MS Visual C. If you need it, <a href="http://clang.llvm.org/docs/MSVCCompatibility.html">clang-cl</a>
+sounds promising. If you manage to get something working, please tell
+us how you achieved it.
+
+\subsection install_src_compil SimGrid main compilation targets
 
 In most cases, compiling and installing SimGrid is enough:
 
index a690ad3..4488c39 100644 (file)
@@ -1,4 +1,4 @@
-/*! \page options Step 2: Configure SimGrid
+/*! \page options Configure SimGrid
 
 A number of options can be given at runtime to change the default
 SimGrid behavior. For a complete list of all configuration options
index a43c273..f7f7bec 100644 (file)
@@ -1,4 +1,4 @@
-/*! \page platform Step 1: %Model the underlying platform
+/*! \page platform %Model the underlying platform
 
 @tableofcontents
 
@@ -35,10 +35,10 @@ available and very well tested.
 
 The XML checking is done based on the Document Type Definition (DTD) file,
 available at
-<a href="http://simgrid.gforge.inria.fr/simgrid.dtd">http://simgrid.gforge.inria.fr/simgrid.dtd</a>.
+<a href="http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd</a>.
 
 If you read the DTD, you should notice the following:
-\li The platform tags contain a version attribute; the current version is 3.
+\li The platform tags contain a version attribute; the current version is 4.
     This property might be used in the future to provide backwards
     compatibility.
 \li The DTD contains definitions for the two files used by SimGrid (i.e.,
@@ -206,8 +206,8 @@ and a separate text file whose syntax is exemplified below.
 #### Adding a trace file ####
 
 \verbatim
-<platform version="1">
-  <host id="bob" power="500000000" availability_file="bob.trace" />
+<platform version="4">
+  <host id="bob" power="500Gf" availability_file="bob.trace" />
 </platform>
 \endverbatim
 
@@ -241,8 +241,8 @@ It is also possible to specify whether the host is up or down by setting the
 #### Example: Expliciting the default value "ON" ####
 
 \verbatim
-<platform version="1">
-   <host id="bob" power="500000000" state="ON" />
+<platform version="4">
+   <host id="bob" power="500Gf" state="ON" />
 </platform>
 \endverbatim
 
@@ -259,8 +259,8 @@ of such a file is presented below.
 #### Adding a state file ####
 
 \verbatim
-<platform version="1">
-  <host id="bob" power="500000000" state_file="bob.fail" />
+<platform version="4">
+  <host id="bob" power="500Gf" state_file="bob.fail" />
 </platform>
 \endverbatim
 
@@ -339,6 +339,7 @@ sharing_policy  | no        | string | Sharing policy for the links between node
 bb_bw           | no        | int    | Bandwidth for backbone (if any). See <b>link</b> section for syntax/details. If bb_bw and bb_lat (see below) attributes are omitted, no backbone is created (alternative cluster architecture <b>described before</b>).
 bb_lat          | no        | int    | Latency for backbone (if any). See <b>link</b> section for syntax/details. If bb_lat and bb_bw (see above) attributes are omitted, no backbone is created (alternative cluster architecture <b>described before</b>).
 bb_sharing_policy | no      | string | Sharing policy for the backbone (if any). See <b>link</b> section for syntax/details.
+limiter_link      | no        | int    | Bandwidth for limiter link (if any). This adds a specific link for each node, to set the maximum bandwidth reached when communicating in both directions at the same time. In theory this value should be 2*bw for fullduplex links, but in reality this might be less. This value will depend heavily on the communication model, and on the cluster's hardware, so no default value can be set, this has to be measured. More details can be obtained in <a href="https://hal.inria.fr/hal-00919507/"> "Toward Better Simulation of MPI Applications on Ethernet/TCP Networks"</a>
 availability_file | no      | string | Allows you to use a file as input for availability. Similar to <b>hosts</b> attribute.
 state_file        | no      | string | Allows you to use a file as input for states.  Similar to <b>hosts</b> attribute.
 loopback_bw       | no      | int    | Bandwidth for loopback (if any). See <b>link</b> section for syntax/details. If loopback_bw and loopback_lat (see below) attributes are omitted, no loopback link is created and all intra-node communication will use the main network link of the node. Loopback link is a \ref pf_sharing_policy_fatpipe "\b FATPIPE".
@@ -1560,7 +1561,7 @@ Tag name        | Description | Documentation
 \verbatim
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
 <config id="General">
        <prop id="maxmin/precision" value="0.000010"></prop>
        <prop id="cpu/optim" value="TI"></prop>
@@ -1607,7 +1608,7 @@ each of them will then be usable.
 \verbatim
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
        <AS id="main" routing="Full">
                <include file="clusterA.xml"></include>
                <include file="clusterB.xml"></include>
@@ -1753,16 +1754,16 @@ complicated in using it, here is an example of it:
 \verbatim
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
 
 <config id="General">
        <prop id="network/coordinates" value="yes"></prop>
 </config>
  <AS  id="AS0"  routing="Vivaldi">
-       <host id="100030591" coordinates="25.5 9.4 1.4" power="1500000000.0" />
-       <host id="100036570" coordinates="-12.7 -9.9 2.1" power="730000000.0" />
+       <host id="100030591" coordinates="25.5 9.4 1.4" power="1.5Gf" />
+       <host id="100036570" coordinates="-12.7 -9.9 2.1" power="7.3Gf" />
        ...
-       <host id="100429957" coordinates="17.5 6.7 18.8" power="830000000.0" />
+       <host id="100429957" coordinates="17.5 6.7 18.8" power="8.3Gf" />
        </AS>
 </platform>
 \endverbatim
@@ -1776,7 +1777,7 @@ That is for example what is commonly done when using peers (see Section \ref pf_
 \verbatim
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<platform version="4">
 
 <config id="General">
        <prop id="network/coordinates" value="yes"></prop>
@@ -1896,7 +1897,7 @@ FleXML parser are close to classical SAX parsers. It means that a
 well-formed SimGrid platform XML file might result in the following
 "events":
 
-  - start "platform_description" with attribute version="2"
+  - start "platform_description" with attribute version="4"
   - start "host" with attributes id="host1" power="1.0"
   - end "host"
   - start "host" with attributes id="host2" power="2.0"
index b4b203e..7c11bda 100644 (file)
@@ -143,17 +143,6 @@ tracing/filename
 \endverbatim
   If you do not provide this parameter, the trace file will be named simgrid.trace.
 
-\li <b>\c
-tracing/onelink_only
-</b>:
-  By default, the tracing system uses all routes in the platform file
-  to re-create a "graph" of the platform and register it in the trace file.
-  This option let the user tell the tracing system to use only the routes
-  that are composed with just one link.
-\verbatim
---cfg=tracing/onelink_only:yes
-\endverbatim
-
 \li <b>\c
 tracing/smpi
 </b>:
@@ -201,6 +190,38 @@ exchanged in the trace, both in the links and on the states. For collective, siz
 --cfg=tracing/smpi/display_sizes:yes
 \endverbatim
 
+\li <b>\c
+tracing/smpi/sleeping
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/smpi/format
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/smpi/format/ti_one_file
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/msg/vm
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
 \li <b>\c
 tracing/msg/process
 </b>:
@@ -237,6 +258,22 @@ traced as usual.
 --cfg=tracing/onelink_only:yes
 \endverbatim
 
+\li <b>\c
+tracing/disable_link
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/disable_power
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
 \li <b>\c
 tracing/disable_destroy
 </b>:
@@ -274,6 +311,30 @@ Use this to add the contents of a file to the top of the trace file as comment.
 --cfg=tracing/comment_file:textual_file.txt
 \endverbatim
 
+\li <b>\c
+tracing/precision
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/platform
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
+\li <b>\c
+tracing/platform/topology
+</b>:
+TODO
+\verbatim
+TODO
+\endverbatim
+
 \li <b>\c
 viva/categorized
 </b>:
index 6d7bae7..4746b97 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
index 5d8fae4..04dd2eb 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
index fce6c1b..de5170e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="master">
      <argument value="3600"/>      <!-- Simulation timeout -->
      <argument value="50000000"/>  <!-- Computation size of tasks -->
index 52ca721..3c86f5b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="master">
      <argument value="3600"/>      <!-- Simulation timeout -->
      <argument value="50000000"/>  <!-- Computation size of tasks -->
index 0f9c44b..6afc3c8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="griffon-1.nancy.grid5000.fr" function="master"> <!-- griffon-1.nancy.grid5000.fr peer-0 cb1-1.dc1.acloud.com-->
      <argument value="3600"/>      <!-- Simulation timeout -->
      <argument value="50000000"/>  <!-- Computation size of tasks -->
index 2d44af8..c5d7877 100644 (file)
@@ -70,13 +70,13 @@ int master(int argc, char *argv[])
     
     for (i = 0; i < workers_count; i++)
       if(host_self == workers[i]) {
-       workers[i] = workers[workers_count-1];
-       workers_count--;
-       break;
+  workers[i] = workers[workers_count-1];
+  workers_count--;
+  break;
       }
 
     for (i = 0; i < workers_count; i++)
-       MSG_process_create("worker", worker, master_name, workers[i]);
+  MSG_process_create("worker", worker, master_name, workers[i]);
   }
 
   XBT_INFO("Got %d workers and %d tasks to process", workers_count,
@@ -84,7 +84,7 @@ int master(int argc, char *argv[])
 
   for (i = 0; i < number_of_tasks; i++) {
     build_channel_name(channel,master_name,
-                      MSG_host_get_name(workers[i % workers_count]));
+           MSG_host_get_name(workers[i % workers_count]));
 
     XBT_INFO("Sending \"%s\" to channel \"%s\"", todo[i]->name, channel);
 
@@ -97,7 +97,7 @@ int master(int argc, char *argv[])
   for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
     MSG_task_send(finalize, build_channel_name(channel,master_name,
-                   MSG_host_get_name(workers[i % workers_count])));
+        MSG_host_get_name(workers[i % workers_count])));
   }
 
   XBT_INFO("Goodbye now!");
@@ -114,7 +114,7 @@ int worker(int argc, char *argv[])
   char channel[1024];
 
   build_channel_name(channel,MSG_process_get_data(MSG_process_self()),
-                    MSG_host_get_name(MSG_host_self()));
+         MSG_host_get_name(MSG_host_self()));
 
   XBT_INFO("Receiving on channel \"%s\"", channel);
 
index 4ac7469..e3c2826 100644 (file)
@@ -57,17 +57,17 @@ int master(int argc, char *argv[])
     
     for (i = 0; i < workers_count; i++)
       if(host_self == workers[i]) {
-       workers[i] = workers[workers_count-1];
-       workers_count--;
-       break;
+  workers[i] = workers[workers_count-1];
+  workers_count--;
+  break;
       }
 
     for (i = 0; i < workers_count; i++)
-       MSG_process_create("worker", worker, master_name, workers[i]);
+  MSG_process_create("worker", worker, master_name, workers[i]);
   }
 
   XBT_INFO("Got %d workers and will send tasks for %g seconds!", 
-          workers_count, timeout);
+     workers_count, timeout);
 
   for (i = 0; 1; i++) {
     char sprintf_buffer[64];
@@ -77,10 +77,10 @@ int master(int argc, char *argv[])
 
     sprintf(sprintf_buffer, "Task_%d", i);
     task = MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size,
-                          NULL);
+         NULL);
 
     build_channel_name(channel,master_name,
-                      MSG_host_get_name(workers[i % workers_count]));
+           MSG_host_get_name(workers[i % workers_count]));
     
     XBT_DEBUG("Sending \"%s\" to channel \"%s\"", task->name, channel);
     MSG_task_send(task, channel);
@@ -94,7 +94,7 @@ int master(int argc, char *argv[])
   for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
     MSG_task_send(finalize, build_channel_name(channel,master_name,
-                   MSG_host_get_name(workers[i % workers_count])));
+        MSG_host_get_name(workers[i % workers_count])));
   }
 
   XBT_INFO("Sent %d tasks in total!", task_num);
@@ -111,7 +111,7 @@ int worker(int argc, char *argv[])
   char channel[1024];
 
   build_channel_name(channel,MSG_process_get_data(MSG_process_self()),
-                    MSG_host_get_name(MSG_host_self()));
+         MSG_host_get_name(MSG_host_self()));
 
   XBT_DEBUG("Receiving on channel \"%s\"", channel);
 
index 75f351d..e5e9726 100644 (file)
@@ -59,17 +59,17 @@ int master(int argc, char *argv[])
     
     for (i = 0; i < workers_count; i++)
       if(host_self == workers[i]) {
-       workers[i] = workers[workers_count-1];
-       workers_count--;
-       break;
+  workers[i] = workers[workers_count-1];
+  workers_count--;
+  break;
       }
 
     for (i = 0; i < workers_count; i++)
-       MSG_process_create("worker", worker, master_name, workers[i]);
+  MSG_process_create("worker", worker, master_name, workers[i]);
   }
 
   XBT_INFO("Got %d workers and will send tasks for %g seconds!", 
-          workers_count, timeout);
+     workers_count, timeout);
 
   for (i = 0; 1; i++) {
     char sprintf_buffer[64];
@@ -79,11 +79,11 @@ int master(int argc, char *argv[])
 
     sprintf(sprintf_buffer, "Task_%d", i);
     task = MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size,
-                          NULL);
+         NULL);
     MSG_task_set_category(task, master_name);
 
     build_channel_name(channel,master_name,
-                      MSG_host_get_name(workers[i % workers_count]));
+           MSG_host_get_name(workers[i % workers_count]));
     
     XBT_DEBUG("Sending \"%s\" to channel \"%s\"", task->name, channel);
     MSG_task_send(task, channel);
@@ -97,7 +97,7 @@ int master(int argc, char *argv[])
   for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
     MSG_task_send(finalize, build_channel_name(channel,master_name,
-                   MSG_host_get_name(workers[i % workers_count])));
+        MSG_host_get_name(workers[i % workers_count])));
   }
 
   XBT_INFO("Sent %d tasks in total!", task_num);
@@ -114,7 +114,7 @@ int worker(int argc, char *argv[])
   char channel[1024];
 
   build_channel_name(channel,MSG_process_get_data(MSG_process_self()),
-                    MSG_host_get_name(MSG_host_self()));
+         MSG_host_get_name(MSG_host_self()));
 
   XBT_DEBUG("Receiving on channel \"%s\"", channel);
 
index c50a067..029ceb9 100644 (file)
@@ -59,17 +59,17 @@ int master(int argc, char *argv[])
     
     for (i = 0; i < workers_count; i++)
       if(host_self == workers[i]) {
-       workers[i] = workers[workers_count-1];
-       workers_count--;
-       break;
+  workers[i] = workers[workers_count-1];
+  workers_count--;
+  break;
       }
 
     for (i = 0; i < workers_count; i++)
-       MSG_process_create("worker", worker, master_name, workers[i]);
+  MSG_process_create("worker", worker, master_name, workers[i]);
   }
 
   XBT_INFO("Got %d workers and will send tasks for %g seconds!", 
-          workers_count, timeout);
+     workers_count, timeout);
   xbt_dynar_t idle_hosts = xbt_dynar_new(sizeof(msg_host_t), NULL);
   msg_host_t request_host = NULL;
 
@@ -90,8 +90,8 @@ int master(int argc, char *argv[])
     if(MSG_get_clock()>timeout) {
       if(xbt_dynar_length(idle_hosts) == workers_count) break;
       else {
-       MSG_process_sleep(.1);
-       continue;
+  MSG_process_sleep(.1);
+  continue;
       }
     }
     
@@ -103,7 +103,7 @@ int master(int argc, char *argv[])
 
     sprintf(sprintf_buffer, "Task_%d", i);
     task = MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size,
-                          NULL);
+         NULL);
     MSG_task_set_category(task, master_name);
 
     xbt_dynar_shift(idle_hosts, &request_host);
@@ -123,7 +123,7 @@ int master(int argc, char *argv[])
   for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
     MSG_task_send(finalize, build_channel_name(channel,master_name,
-                   MSG_host_get_name(workers[i % workers_count])));
+        MSG_host_get_name(workers[i % workers_count])));
   }
 
   XBT_INFO("Sent %d tasks in total!", task_num);
diff --git a/doc/simgrid.css b/doc/simgrid.css
deleted file mode 100644 (file)
index d185605..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Table Of Content styles, by Martin Quinson (but not original at all) */
-DIV.toc  {
-       background-color: #e8eef2;
-       border: 1px solid #84b0c7;
-       font-size: 120%;
-       display: block;
-       float: right;
-       margin: 10px;
-       padding: 10px;
-       padding-top: 0px;
-       padding-bottom: 0px;
-}
-
-DIV.tocTitle {
-       text-align: center;
-       font-weight: bold;
-       font-size: 130%;
-}
-
-.remark {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
index e2c117f..94da85f 100644 (file)
@@ -1,21 +1,16 @@
 set(tesh_files
   ${tesh_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 
index 983fecd..0c6d1fe 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,28 +10,20 @@ import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 public class AsyncTest {
-
-       /* This only contains the launcher. If you do nothing more than than you can run 
-        *   java simgrid.msg.Msg
-        * which also contains such a launcher
-        */
-
-       public static void main(String[] args) throws NativeException {
-
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-
-           if (args.length < 2) {              
-                       Msg.info("Usage   : Async platform_file deployment_file");
-                       Msg.info("example : Async basic_platform.xml basic_deployment.xml");
-                       System.exit(1); 
-               }
-
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-
-               /*  execute the simulation. */
-               Msg.run();
-       }
+  public static void main(String[] args) throws NativeException {
+    Msg.init(args);
+
+    if (args.length < 2) {
+    Msg.info("Usage   : AsyncTest platform_file deployment_file");
+    Msg.info("example : AsyncTest ../platforms/platform.xml asyncDeployment.xml");
+    System.exit(1);
+  }
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index e9eaec2..6aa09fe 100644 (file)
@@ -23,24 +23,16 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/async.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/asyncDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 1e7b439..39b1a4f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,9 +7,8 @@
 package async;
 import org.simgrid.msg.Task;
 
-public class FinalizeTask extends Task {       
-   public FinalizeTask() {
-      super("finalize",0,0);
-   }
+public class FinalizeTask extends Task {
+  public FinalizeTask() {
+    super("finalize",0,0);
+  }
 }
-    
\ No newline at end of file
index fbf394f..965bb8c 100644 (file)
@@ -1,57 +1,57 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
+ * All rights reserved.                                    */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package async;
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
-
+import org.simgrid.msg.MsgException;
 
 public class Forwarder extends Process {
-       public Forwarder(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       public void main(String[] args) throws MsgException {
-               if (args.length < 3) {   
-                       Msg.info("Forwarder needs 3 arguments (input mailbox, first output mailbox, last one)");
-                       Msg.info("Got "+args.length+" instead");
-                       System.exit(1);
-               }
-               int input = Integer.valueOf(args[0]).intValue();                
-               int firstOutput = Integer.valueOf(args[1]).intValue();          
-               int lastOutput = Integer.valueOf(args[2]).intValue();           
-
-               int taskCount = 0;
-               int slavesCount = lastOutput - firstOutput + 1;
-               Msg.info("Receiving on 'slave_"+input+"'");
-               while(true) {
-                       Task task = Task.receive("slave_"+input);       
-
-                       if (task instanceof FinalizeTask) {
-                               Msg.info("Got a finalize task. Let's forward (asynchronously) that we're done, and then sleep 20 seconds so that nobody gets a message from a terminated process.");
-
-                               for (int cpt = firstOutput; cpt<=lastOutput; cpt++) {
-                                       Task tf = new FinalizeTask();
-                                       tf.dsend("slave_"+cpt);
-                               }
-                               waitFor(20);
-                               break;
-                       }
-                       int dest = firstOutput + (taskCount % slavesCount);
-
-                       Msg.info("Sending \"" + task.getName() + "\" to \"slave_" + dest + "\"");
-                       task.send("slave_"+dest);
-
-                       taskCount++;
-               }
-
-
-               Msg.info("I'm done. See you!");
-       }
+  public Forwarder(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    if (args.length < 3) {   
+      Msg.info("Forwarder needs 3 arguments (input mailbox, first output mailbox, last one)");
+      Msg.info("Got "+args.length+" instead");
+      System.exit(1);
+    }
+    int input = Integer.valueOf(args[0]).intValue();
+    int firstOutput = Integer.valueOf(args[1]).intValue();
+    int lastOutput = Integer.valueOf(args[2]).intValue();
+
+    int taskCount = 0;
+    int slavesCount = lastOutput - firstOutput + 1;
+    Msg.info("Receiving on 'slave_"+input+"'");
+    while(true) {
+      Task task = Task.receive("slave_"+input);
+
+      if (task instanceof FinalizeTask) {
+        Msg.info("Got a finalize task. Let's forward (asynchronously) that we're done, and then sleep 20 seconds"+
+                 " so that nobody gets a message from a terminated process.");
+
+        for (int cpt = firstOutput; cpt<=lastOutput; cpt++) {
+          Task tf = new FinalizeTask();
+          tf.dsend("slave_"+cpt);
+        }
+        waitFor(20);
+        break;
+      }
+      int dest = firstOutput + (taskCount % slavesCount);
+
+      Msg.info("Sending \"" + task.getName() + "\" to \"slave_" + dest + "\"");
+      task.send("slave_"+dest);
+
+      taskCount++;
+    }
+
+    Msg.info("I'm done. See you!");
+  }
 }
 
index 4960b75..19e66ea 100644 (file)
@@ -1,6 +1,4 @@
-/* Master of a basic master/slave example in Java */
-
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,63 +7,63 @@
 package async;
 import java.util.ArrayList;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Master extends Process {
-       public Master(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       public void main(String[] args) throws MsgException {
-               if (args.length < 4) {
-                       Msg.info("Master needs 4 arguments");
-                       System.exit(1);
-               }
+  public Master(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    if (args.length < 4) {
+      Msg.info("Master needs 4 arguments");
+      System.exit(1);
+    }
+
+    int tasksCount = Integer.valueOf(args[0]).intValue();    
+    double taskComputeSize = Double.valueOf(args[1]).doubleValue();    
+    double taskCommunicateSize = Double.valueOf(args[2]).doubleValue();
+
+    int slavesCount = Integer.valueOf(args[3]).intValue();
 
-               int tasksCount = Integer.valueOf(args[0]).intValue();           
-               double taskComputeSize = Double.valueOf(args[1]).doubleValue();         
-               double taskCommunicateSize = Double.valueOf(args[2]).doubleValue();
+    Msg.info("Hello! Got "+  slavesCount + " slaves and "+tasksCount+" tasks to process");
+    ArrayList<Comm> comms = new ArrayList<Comm>();
 
-               int slavesCount = Integer.valueOf(args[3]).intValue();
+    for (int i = 0; i < tasksCount; i++) {
+      Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); 
+      Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\"");
+      Comm comm = task.isend("slave_"+(i%slavesCount));
+      comms.add(comm);
+    }
 
-               Msg.info("Hello! Got "+  slavesCount + " slaves and "+tasksCount+" tasks to process");
-               ArrayList<Comm> comms = new ArrayList<Comm>();
-               
-               for (int i = 0; i < tasksCount; i++) {
-                       Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); 
-                       Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\"");
-                       //task.send("slave_"+(i%slavesCount));
-                       Comm comm = task.isend("slave_"+(i%slavesCount));
-                       comms.add(comm);
-               }
-               
-               while (comms.size() > 0) {
-                       for (int i = 0; i < comms.size(); i++) {
-                               try {
-                                       if (comms.get(i).test()) {
-                                               comms.remove(i);
-                                               i--;
-                                       }
-                               }
-                               catch (Exception e) {
-                                       e.printStackTrace();
-                               }
-                       }
-                       waitFor(1);
-               }
-               
-               Msg.info("All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over, and sleep 20s so that nobody gets a message from a terminated process.");
+    while (comms.size() > 0) {
+      for (int i = 0; i < comms.size(); i++) {
+        try {
+          if (comms.get(i).test()) {
+            comms.remove(i);
+            i--;
+          }
+        }
+        catch (Exception e) {
+          e.printStackTrace();
+        }
+      }
+      waitFor(1);
+    }
+    Msg.info("All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over,"+
+             " and sleep 20s so that nobody gets a message from a terminated process.");
 
-               for (int i = 0; i < slavesCount; i++) {
-                       FinalizeTask task = new FinalizeTask();
-                       task.dsend("slave_"+(i%slavesCount));
-               }
-               waitFor(20);
+    for (int i = 0; i < slavesCount; i++) {
+      FinalizeTask task = new FinalizeTask();
+      task.dsend("slave_"+(i%slavesCount));
+    }
+    waitFor(20);
 
-               Msg.info("Goodbye now!");
-       }
+    Msg.info("Goodbye now!");
+  }
 }
index 1d4f567..3d32d2a 100644 (file)
@@ -1,67 +1,64 @@
-/* Copyright (c) 2006-2007, 2010, 2013-2014. The SimGrid Team.
+/* Copyright (c) 2006-2007, 2010, 2013-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package async;
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.HostFailureException;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.Process;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.HostFailureException;
 import org.simgrid.msg.TaskCancelledException;
 import org.simgrid.msg.TimeoutException;
 import org.simgrid.msg.TransferFailureException;
 
 public class Slave extends Process {
-       public Slave(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
-               if (args.length < 1) {
-                       Msg.info("Slave needs 1 argument (its number)");
-                       System.exit(1);
-               }
+  public Slave(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+    if (args.length < 1) {
+      Msg.info("Slave needs 1 argument (its number)");
+      System.exit(1);
+    }
+    int num = Integer.valueOf(args[0]).intValue();
+    Comm comm = null;
+    boolean slaveFinished = false;
+    while(!slaveFinished) {  
+      try {
+        if (comm == null) {
+          Msg.info("Receiving on 'slave_" + num + "'");
+          comm = Task.irecv("slave_" + num);
+        } else {
+          if (comm.test()) {
+            Task task = comm.getTask();
 
-               int num = Integer.valueOf(args[0]).intValue();
-               Comm comm = null;
-               boolean slaveFinished = false;
-               while(!slaveFinished) {  
-                       try
-                       {
-                               if (comm == null) {
-                                       Msg.info("Receiving on 'slave_" + num + "'");
-                                       comm = Task.irecv("slave_" + num);
-                               }
-                               else {
-                                       if (comm.test()) {
-                                               Task task = comm.getTask();
-       
-                                               if (task instanceof FinalizeTask) {
-                                                       comm = null;
-                                                       break;
-                                               }
-                                               Msg.info("Received a task");
-                                               Msg.info("Received \"" + task.getName() +  "\". Processing it.");
-                                               try {
-                                                       task.execute();
-                                               } catch (TaskCancelledException e) {
-                                               
-                                               }
-                                               comm = null;                                                    
-                                       }
-                                       else {
-                                               waitFor(1);
-                                       }
-                               }
-                       }
-                       catch (Exception e) {
-                               e.printStackTrace();
-                       }
-               }
-               Msg.info("Received Finalize. I'm done. See you!");
-               waitFor(20);
-       }
+            if (task instanceof FinalizeTask) {
+              comm = null;
+              break;
+            }
+            Msg.info("Received a task");
+            Msg.info("Received \"" + task.getName() +  "\". Processing it.");
+            try {
+              task.execute();
+            } catch (TaskCancelledException e) {
+            
+            }
+            comm = null;
+          } else {
+            waitFor(1);
+          }
+        }
+      }
+      catch (Exception e) {
+        e.printStackTrace();
+      }
+    }
+    Msg.info("Received Finalize. I'm done. See you!");
+    waitFor(20);
+  }
 }
\ No newline at end of file
index 5b545d3..7ef4d13 100644 (file)
@@ -1,13 +1,13 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="async.Master">
      <argument value="5"/>     <!-- Amount of tasks to dispatch -->
      <argument value="50000"/> <!-- Computation size of each task -->
      <argument value="10"/>    <!-- Communication size of each one -->
      <argument value="7"/>     <!-- Amount of slaves waiting for orders -->
   </process>
-  
+
   <process host="Jackson" function="async.Forwarder">
      <argument value="0"/>  <!-- Input mailbox -->
      <argument value="7"/>  <!-- First output mailbox -->
@@ -18,7 +18,7 @@
      <argument value="9"/>  <!-- First output mailbox -->
      <argument value="10"/> <!-- Last output mailbox -->
   </process>
-  
+
   <process host="iRMX" function="async.Slave">
      <argument value="2"/>  <!-- Input mailbox -->
   </process>
index b488195..7478c3c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014,2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,21 +10,19 @@ import org.simgrid.msg.Msg;
 import org.simgrid.msg.MsgException;
 
 public class Bittorrent {
-       public static void main(String[] args) throws MsgException {
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-       if(args.length < 2) {
-               Msg.info("Usage   : Bittorrent platform_file deployment_file");
-               Msg.info("example : Bittorrent platform.xml deployment.xml");
-               System.exit(1);
-       }
-               
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-                       
-               /*  execute the simulation. */
-        Msg.run();             
-       }
+  public static void main(String[] args) throws MsgException {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Bittorrent platform_file deployment_file");
+      Msg.info("example : Bittorrent ../platforms/platform.xml bittorrent.xml");
+      System.exit(1);
+    }
 
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+        Msg.run();
+  }
 }
index 0b5b2f0..6d7c80e 100644 (file)
@@ -25,24 +25,16 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 1fe856e..2f030f3 100644 (file)
@@ -1,63 +1,36 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package bittorrent;
-/**
- * Common constants for use in the simulation
- */
-public class Common {  
-               
-       public static String TRACKER_MAILBOX = "tracker_mailbox";
-       
-       public static int FILE_SIZE = 5120;
-       public static int FILE_PIECE_SIZE = 512;
-       public static int FILE_PIECES = 10;
-       public static int PIECES_BLOCKS = 5;
-       
-       public static int BLOCKS_REQUESTED = 2;
-       
-       public static int PIECE_COMM_SIZE = 1;
-       /**
-        * Information message size
-        */
-       public static int MESSAGE_SIZE = 1;
-       /**
-        * Max number of pairs sent by the tracker to clients
-        */
-       public static int MAXIMUM_PEERS = 50;
-       /**
-        * Interval of time where the peer should send a request to the tracker
-        */
-       public static int TRACKER_QUERY_INTERVAL = 1000;
-       /**
-        * Communication size for a task to the tracker
-        */
-       public static double TRACKER_COMM_SIZE = 0.01;
-       /**
-        * Timeout for the get peers data
-        */
-       public static int GET_PEERS_TIMEOUT = 10000;
-       /**
-        * Timeout for "standard" messages.
-        */
-       public static int TIMEOUT_MESSAGE = 10;
-       /**
-        * Timeout for tracker receive.
-        */
-       public static int TRACKER_RECEIVE_TIMEOUT = 10;
-       /**
-        * Number of peers that can be unchocked at a given time
-        */
-       public static int MAX_UNCHOKED_PEERS = 4;
-       /**
-        * Interval between each update of the choked peers
-        */
-       public static int UPDATE_CHOKED_INTERVAL = 30;
-       /**
-        * Number of pieces the peer asks for simultaneously
-        */
-       public static int MAX_PIECES = 1;
+
+/* Common constants for use in the simulation */
+public class Common {
+  public static String TRACKER_MAILBOX = "tracker_mailbox";
+  public static int FILE_SIZE = 5120;
+  public static int FILE_PIECE_SIZE = 512;
+  public static int FILE_PIECES = 10;
+  public static int PIECES_BLOCKS = 5;
+  public static int BLOCKS_REQUESTED = 2;
+  public static int PIECE_COMM_SIZE = 1;
+  /* Information message size */
+  public static int MESSAGE_SIZE = 1;
+  /* Max number of peers sent by the tracker to clients */
+  public static int MAXIMUM_PEERS = 50;
+  /* Interval of time where the peer should send a request to the tracker */
+  public static int TRACKER_QUERY_INTERVAL = 1000;
+  /* Communication size for a task to the tracker */
+  public static double TRACKER_COMM_SIZE = 0.01;
+  /* Timeout for the get peers data */
+  public static int GET_PEERS_TIMEOUT = 10000;
+  public static int TIMEOUT_MESSAGE = 10;
+  public static int TRACKER_RECEIVE_TIMEOUT = 10;
+  /* Number of peers that can be unchocked at a given time */
+  public static int MAX_UNCHOKED_PEERS = 4;
+  /* Interval between each update of the choked peers */
+  public static int UPDATE_CHOKED_INTERVAL = 30;
+  /* Number of pieces the peer asks for simultaneously */
+  public static int MAX_PIECES = 1;
 }
index 4ca20fd..ff15fd3 100644 (file)
@@ -1,77 +1,44 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package bittorrent;
-
 import java.util.Arrays;
+
 public class Connection {
-       /**
-        * Remote peer id
-        */
-       public int id;
-       /**
-        * Remote peer bitfield.
-        */
-       public char bitfield[];
-       /**
-        * Remote peer mailbox
-        */
-       public String mailbox;
-       /**
-        * Indicates if we are interested in something this peer has
-        */
-       public boolean amInterested = false;
-       /**
-        * Indicates if the peer is interested in one of our pieces
-        */
-       public boolean interested = false;
-       /**
-        * Indicates if the peer is choked for the current peer
-        */
-       public boolean chokedUpload = true;
-       /**
-        * Indicates if the peer has choked the current peer
-        */
-       public boolean chokedDownload = true;
-       /**
-        * Number of messages we have received from the peer
-        */
-       public int messagesCount = 0;
-       /**
-        * Peer speed.
-        */
-       public double peerSpeed = 0;
-       /**
-        * Last time the peer was unchoked
-        */
-       public double lastUnchoke = 0;
-       /**
-        * Constructor
-        */
-       public Connection(int id) {
-               this.id = id;
-               this.mailbox = Integer.toString(id);
-       }
-       /**
-        * Add a new value to the peer speed average
-        */
-       public void addSpeedValue(double speed) {
-               peerSpeed = peerSpeed * 0.55 + speed * 0.45;
-               //              peerSpeed = (peerSpeed * messagesCount + speed) / (++messagesCount);            
-       }
-               
-       @Override
-       public String toString() {
-               return "Connection [id=" + id + ", bitfield="
-                               + Arrays.toString(bitfield) + ", mailbox=" + mailbox
-                               + ", amInterested=" + amInterested + ", interested="
-                               + interested + ", chokedUpload=" + chokedUpload
-                               + ", chokedDownload=" + chokedDownload + "]";
-       }
-       
-       
+  public int id;
+  public char bitfield[];
+  public String mailbox;
+  // Indicates if we are interested in something this peer has
+  public boolean amInterested = false;
+  // Indicates if the peer is interested in one of our pieces
+  public boolean interested = false;
+  // Indicates if the peer is choked for the current peer
+  public boolean chokedUpload = true;
+  // Indicates if the peer has choked the current peer
+  public boolean chokedDownload = true;
+  // Number of messages we have received from the peer
+  public int messagesCount = 0;
+  public double peerSpeed = 0;
+  public double lastUnchoke = 0;
+
+  public Connection(int id) {
+    this.id = id;
+    this.mailbox = Integer.toString(id);
+  }
+
+  // Add a new value to the peer speed average
+  public void addSpeedValue(double speed) {
+    peerSpeed = peerSpeed * 0.55 + speed * 0.45;
+    // peerSpeed = (peerSpeed * messagesCount + speed) / (++messagesCount);    
+  }
+
+  @Override
+  public String toString() {
+    return "Connection [id=" + id + ", bitfield=" + Arrays.toString(bitfield) + ", mailbox=" + mailbox
+        + ", amInterested=" + amInterested + ", interested=" + interested + ", chokedUpload=" + chokedUpload
+        + ", chokedDownload=" + chokedDownload + "]";
+  }
 }
\ No newline at end of file
index 3c98d15..b204ff9 100644 (file)
@@ -1,81 +1,65 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package bittorrent;
-
 import org.simgrid.msg.Task;
-/**
- * Tasks sent between peers
- */
+
 public class MessageTask extends Task {
-       public enum Type {
-               HANDSHAKE,
-               CHOKE,
-               UNCHOKE,
-               INTERESTED,
-               NOTINTERESTED,
-               HAVE,
-               BITFIELD,
-               REQUEST,
-               PIECE
-       };
-       public Type type;
-       public String issuerHostname;
-       public String mailbox;
-       public int peerId;
-       public char bitfield[];
-       public int index;
-       public int blockIndex;
-       public int blockLength;
-       public boolean stalled;
-       /**
-        * Constructor, builds a value-less message
-        * @param type
-        * @param issuerHostname
-        * @param mailbox
-        * @param peerId
-        */
-       public MessageTask(Type type, String issuerHostname, String mailbox, int peerId) {
-               this(type,issuerHostname,mailbox,peerId,-1,false,-1,-1);
-       }
-       /**
-        * Constructor, builds a new "have/request/piece" message
-        * @param type
-        * @param issuerHostname
-        * @param mailbox
-        * @param peerId
-        * @param index
-        */
-       public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index) {
-               this(type,issuerHostname,mailbox,peerId,index,false,-1,-1);
-       }
-       /**
-        * Constructor, builds a new bitfield message
-        */
-       public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, char bitfield[]) {
-               this(type,issuerHostname,mailbox,peerId,-1,false,-1,-1);
-               this.bitfield = bitfield;
-       }
-       /**
-        * Constructor, build a new "request"  message
-        */
-       public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index, int blockIndex, int blockLength) {
-               this(type,issuerHostname,mailbox,peerId,index,false,blockIndex,blockLength);
-       }
-       /**
-        * Constructor, build a new "piece" message
-        */
-       public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index, boolean stalled, int blockIndex, int blockLength) {
-               this.type = type;
-               this.issuerHostname = issuerHostname;
-               this.mailbox = mailbox;
-               this.peerId = peerId;
-               this.index = index;
-               this.stalled = stalled;
-               this.blockIndex = blockIndex;
-               this.blockLength = blockLength;
-       }       
+  public enum Type {
+    HANDSHAKE,
+    CHOKE,
+    UNCHOKE,
+    INTERESTED,
+    NOTINTERESTED,
+    HAVE,
+    BITFIELD,
+    REQUEST,
+    PIECE
+  };
+
+  public Type type;
+  public String issuerHostname;
+  public String mailbox;
+  public int peerId;
+  public char bitfield[];
+  public int index;
+  public int blockIndex;
+  public int blockLength;
+  public boolean stalled;
+
+  public MessageTask(Type type, String issuerHostname, String mailbox, int peerId) {
+    this(type,issuerHostname,mailbox,peerId,-1,false,-1,-1);
+  }
+
+  public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index) {
+    this(type,issuerHostname,mailbox,peerId,index,false,-1,-1);
+  }
+
+  // builds a new bitfield message
+  public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, char bitfield[]) {
+    this(type,issuerHostname,mailbox,peerId,-1,false,-1,-1);
+    this.bitfield = bitfield;
+  }
+
+  // build a new "request"  message
+  public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index, int blockIndex,
+                     int blockLength) {
+    this(type,issuerHostname,mailbox,peerId,index,false,blockIndex,blockLength);
+  }
+
+  // build a new "piece" message
+  public MessageTask(Type type, String issuerHostname, String mailbox, int peerId, int index, boolean stalled,
+                     int blockIndex, int blockLength) {
+    this.type = type;
+    this.issuerHostname = issuerHostname;
+    this.mailbox = mailbox;
+    this.peerId = peerId;
+    this.index = index;
+    this.stalled = stalled;
+    this.blockIndex = blockIndex;
+    this.blockLength = blockLength;
+  }
 }
index 569e8b8..53fe246 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -11,678 +11,621 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map.Entry;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.RngStream;
-import org.simgrid.msg.Task;
+import org.simgrid.msg.MsgException;
 
-/**
- * Main class for peers execution
- */
 public class Peer extends Process {
-       protected int round = 0;
-       
-       protected double beginReceiveTime;
-       protected double deadline;
-       
-       protected static RngStream stream = new RngStream();
-       
-       protected int id;
-       protected String mailbox;
-       protected String mailboxTracker;
-       protected String hostname;
-       protected int pieces = 0;
-       protected char[] bitfield = new char[Common.FILE_PIECES];
-       protected char[][] bitfieldBlocks = new char[Common.FILE_PIECES][Common.PIECES_BLOCKS];
-       
-       protected short[] piecesCount = new short[Common.FILE_PIECES];
-       
-       protected int piecesRequested = 0;
-       
-       protected ArrayList<Integer> currentPieces = new ArrayList<Integer>();
-       protected int currentPiece = -1;
-
-       protected HashMap<Integer, Connection> activePeers = new HashMap<Integer, Connection>();        
-       protected HashMap<Integer, Connection> peers = new HashMap<Integer, Connection>();
-       
-       protected Comm commReceived = null;
-
-       public Peer(Host host, String name, String[]args) {
-               super(host,name,args);
-       }       
-       
-       @Override
-       public void main(String[] args) throws MsgException {
-               //Check arguments
-               if (args.length != 3 && args.length != 2) {
-                       Msg.info("Wrong number of arguments");
-               }
-               if (args.length == 3) {
-                       init(Integer.valueOf(args[0]),true);
-               }
-               else {
-                       init(Integer.valueOf(args[0]),false);
-               }
-               //Retrieve the deadline
-               deadline = Double.valueOf(args[1]);
-               if (deadline < 0) {
-                       Msg.info("Wrong deadline supplied");
-                       return;
-               }
-               Msg.info("Hi, I'm joining the network with id " + id);
-               //Getting peer data from the tracker
-               if (getPeersData()) {
-                       Msg.debug("Got " + peers.size() + " peers from the tracker");
-                       Msg.debug("Here is my current status: " + getStatus());
-                       beginReceiveTime = Msg.getClock();                      
-                       if (hasFinished()) {
-                               pieces = Common.FILE_PIECES;
-                               sendHandshakeAll();
-                               seedLoop();
-                       }
-                       else {
-                               leechLoop();
-                               seedLoop();
-                       }
-               }
-               else {
-                       Msg.info("Couldn't contact the tracker.");
-               }
-               Msg.info("Here is my current status: " + getStatus());
-       }
-       /**
-        * Peer main loop when it is leeching.
-        */
-       private void leechLoop() {
-               double nextChokedUpdate = Msg.getClock() + Common.UPDATE_CHOKED_INTERVAL;
-               Msg.debug("Start downloading.");
-               /**
-                * Send a "handshake" message to all the peers it got
-                * (it couldn't have gotten more than 50 peers anyway)
-                */
-               sendHandshakeAll();
-               //Wait for at least one "bitfield" message.
-               waitForPieces();
-               Msg.debug("Starting main leech loop");
-               while (Msg.getClock() < deadline && pieces < Common.FILE_PIECES) {
-                       if (commReceived == null) {
-                               commReceived = Task.irecv(mailbox);
-                       }
-                       try {
-                               if (commReceived.test()) {
-                                       handleMessage(commReceived.getTask());
-                                       commReceived = null;
-                               }
-                               else {
-                                       //If the user has a pending interesting
-                                       if (currentPiece != -1) {
-                                               sendInterestedToPeers();
-                                       }
-                                       else {
-                                               if (currentPieces.size() < Common.MAX_PIECES) {
-                                                       updateCurrentPiece();
-                                               }
-                                       }
-                                       //We don't execute the choke algorithm if we don't already have a piece
-                                       if (Msg.getClock() >= nextChokedUpdate && pieces > 0) {
-                                               updateChokedPeers();
-                                               nextChokedUpdate += Common.UPDATE_CHOKED_INTERVAL;
-                                       }
-                                       else {
-                                               waitFor(1);
-                                       }
-                               }
-                       }
-                       catch (MsgException e) {
-                               commReceived = null;                            
-                       }
-               }
-       }
-       
-       /**
-        * Peer main loop when it is seeding
-        */
-       private void seedLoop() {
-               double nextChokedUpdate = Msg.getClock() + Common.UPDATE_CHOKED_INTERVAL;
-               Msg.debug("Start seeding.");
-               //start the main seed loop
-               while (Msg.getClock() < deadline) {
-                       if (commReceived == null) {
-                               commReceived = Task.irecv(mailbox);
-                       }
-                       try {
-                               if (commReceived.test()) {
-                                       handleMessage(commReceived.getTask());
-                                       commReceived = null;
-                               }
-                               else {
-                                       if (Msg.getClock() >= nextChokedUpdate) {
-                                               updateChokedPeers();
-                                               //TODO: Change the choked peer algorithm when seeding
-                                               nextChokedUpdate += Common.UPDATE_CHOKED_INTERVAL;
-                                       }
-                                       else {
-                                               waitFor(1);
-                                       }
-                               }
-                       }
-                       catch (MsgException e) {
-                               commReceived = null;                            
-                       }
-
-               }
-       }
-       
-       /**
-        * Initialize the various peer data
-        * @param id id of the peer to take in the network
-        * @param seed indicates if the peer is a seed
-        */
-       private void init(int id, boolean seed) {
-               this.id = id;
-               this.mailbox = Integer.toString(id);
-               this.mailboxTracker = "tracker_" + Integer.toString(id);
-               if (seed) {
-                       for (int i = 0; i < bitfield.length; i++) {
-                               bitfield[i] = '1';
-                               for (int j = 0; j < bitfieldBlocks[i].length; j++) {
-                                       bitfieldBlocks[i][j] = '1';
-                               }
-                       }
-               }
-               else {
-                       for (int i = 0; i < bitfield.length; i++) {
-                               bitfield[i] = '0';
-                               for (int j = 0; j < bitfieldBlocks[i].length; j++) {
-                                       bitfieldBlocks[i][j] = '0'      ;
-                               }
-                       }                       
-               }
-               this.hostname = getHost().getName();
-       }
-       /**
-        * Retrieves the peer list from the tracker
-        */
-       private boolean getPeersData() {
-               
-               boolean success = false, sendSuccess = false;
-               double timeout = Msg.getClock() + Common.GET_PEERS_TIMEOUT;
-               //Build the task to send to the tracker
-               TrackerTask taskSend = new TrackerTask(hostname, mailboxTracker, id);
-                       
-               while (!sendSuccess && Msg.getClock() < timeout) {
-                       try {
-                               Msg.debug("Sending a peer request to the tracker.");
-                               taskSend.send(Common.TRACKER_MAILBOX,Common.GET_PEERS_TIMEOUT);
-                               sendSuccess = true;
-                       }
-                       catch (MsgException e) {
-                               
-                       }
-               }
-               while (!success && Msg.getClock() < timeout) {
-                       commReceived = Task.irecv(this.mailboxTracker);
-                       try {
-                               commReceived.waitCompletion(Common.GET_PEERS_TIMEOUT);
-                               if (commReceived.getTask() instanceof TrackerTask) {
-                                       TrackerTask task = (TrackerTask)commReceived.getTask();
-                                       for (Integer peerId: task.peers) {
-                                               if (peerId != this.id) {
-                                                       peers.put(peerId, new Connection(peerId));
-                                               }       
-                                       }
-                                       success = true;
-                               }
-                       }
-                       catch (MsgException e) {
-                               
-                       }
-                       commReceived = null;
-               }
-               commReceived = null;
-               return success;
-       }
-       /**
-        * Handle a received message sent by another peer
-        * @param task task received.
-        */
-       void handleMessage(Task task) {
-               MessageTask message = (MessageTask)task;
-               Connection remotePeer = peers.get(message.peerId);
-               switch (message.type) {
-                       case HANDSHAKE:
-                               Msg.debug("Received a HANDSHAKE message from " + message.mailbox);
-                               //Check if the peer is in our connection list
-                               if (remotePeer == null) {
-                                       peers.put(message.peerId, new Connection(message.peerId));
-                                       sendHandshake(message.mailbox);
-                               }
-                               //Send our bitfield to the pair
-                               sendBitfield(message.mailbox);
-                       break;
-                       case BITFIELD:
-                               Msg.debug("Received a BITFIELD message from " + message.peerId + " (" + message.issuerHostname + ")");
-                               //update the pieces list
-                               updatePiecesCountFromBitfield(message.bitfield);
-                               //Update the current piece
-                               if (currentPiece == -1 && pieces < Common.FILE_PIECES && currentPieces.size() < Common.MAX_PIECES) {
-                                       updateCurrentPiece();
-                               }                               
-                               remotePeer.bitfield  = message.bitfield.clone();
-                       break;
-                       case INTERESTED:
-                               Msg.debug("Received an INTERESTED message from " + message.peerId + " (" + message.issuerHostname + ")");
-                               assert remotePeer != null;
-                               remotePeer.interested = true;
-                       break;
-                       case NOTINTERESTED:
-                               Msg.debug("Received a NOTINTERESTED message from " + message.peerId + " (" + message.issuerHostname + ")");
-                               assert remotePeer != null;
-                               remotePeer.interested = false;
-                       break;
-                       case UNCHOKE:
-                               Msg.debug("Received an UNCHOKE message from " + message.peerId + "(" + message.issuerHostname + ")");
-                               assert remotePeer != null;
-                               remotePeer.chokedDownload = false;
-                               activePeers.put(remotePeer.id,remotePeer);
-                               sendRequestsToPeer(remotePeer);
-                       break;
-                       case CHOKE:
-                               Msg.debug("Received a CHOKE message from " + message.peerId + " (" + message.issuerHostname + ")");
-                               assert remotePeer != null;
-                               remotePeer.chokedDownload = true;
-                               activePeers.remove(remotePeer.id);
-                       break;
-                       case HAVE:
-                               if (remotePeer.bitfield == null) {
-                                       return;
-                               }
-                               Msg.debug("Received a HAVE message from " + message.peerId + " (" + message.issuerHostname + ")");
-                               assert message.index >= 0 && message.index < Common.FILE_PIECES;
-                               assert remotePeer.bitfield != null;
-                               remotePeer.bitfield[message.index] = '1';
-                               piecesCount[message.index]++; 
-                               //Send interested message to the peer if he has what we want
-                               if (!remotePeer.amInterested && currentPieces.contains(message.index) ) {
-                                       remotePeer.amInterested = true;
-                                       sendInterested(remotePeer.mailbox);
-                               }
-                               
-                               if (currentPieces.contains(message.index)) {
-                                       int blockIndex = getFirstBlock(message.index);                  
-                                       int blockLength = Common.PIECES_BLOCKS - blockIndex ;
-                                       blockLength = blockLength > Common.BLOCKS_REQUESTED ? Common.BLOCKS_REQUESTED : blockLength;            
-                                       sendRequest(message.mailbox,message.index,blockIndex,blockLength);
-                               }
-                       break;
-                       case REQUEST:
-                               assert message.index >= 0 && message.index < Common.FILE_PIECES;
-                               if (!remotePeer.chokedUpload) {
-                                       Msg.debug("Received a REQUEST from " + message.peerId + "(" + message.issuerHostname + ") for " + message.peerId);
-                                       if (bitfield[message.index] == '1') {
-                                               sendPiece(message.mailbox,message.index,false,message.blockIndex,message.blockLength);  
-                                       }
-                                       else {
-                                               Msg.debug("Received a REQUEST from " + message.peerId + " (" + message.issuerHostname + ") but he is choked" );
-                                       }
-                               }
-                       break;
-                       case PIECE:
-                               if (message.stalled) {
-                                       Msg.debug("The received piece " + message.index + " from " + message.peerId + " (" + message.issuerHostname + ") is stalled");
-                               }
-                               else {
-                                       Msg.debug("Received piece " + message.index + " from " + message.peerId + " (" + message.issuerHostname + ")");
-                                       if (bitfield[message.index] == '0') {
-                                               updateBitfieldBlocks(message.index,message.blockIndex,message.blockLength);
-                                               if (pieceComplete(message.index)) {
-                                                       piecesRequested--;
-                                                       //Removing the piece from our piece list.
-                                                       if (!currentPieces.remove((Object)Integer.valueOf(message.index))) {
-                                                       }
-                                                       //Setting the fact that we have the piece
-                                                       bitfield[message.index] = '1';
-                                                       pieces++;
-                                                       Msg.debug("My status is now " + getStatus());
-                                                       //Sending the information to all the peers we are connected to
-                                                       sendHave(message.index);
-                                                       //sending UNINTERESTED to peers that doesn't have what we want.
-                                                       updateInterestedAfterReceive();
-                                               }
-                                       }
-                                       else {
-                                               Msg.debug("However, we already have it.");
-                                       }
-                               }
-                       break;
-               }
-               if (remotePeer != null) {
-                       remotePeer.addSpeedValue(1 / (Msg.getClock() - beginReceiveTime));
-               }
-               beginReceiveTime = Msg.getClock();
-       }
-       /**
-        * Wait for the node to receive interesting bitfield messages (ie: non empty)
-        * to be received
-        */
-       void waitForPieces() {
-               boolean finished = false;
-               while (Msg.getClock() < deadline && !finished) {
-                       if (commReceived == null) {
-                               commReceived = Task.irecv(mailbox);
-                       }
-                       try {
-                               commReceived.waitCompletion(Common.TIMEOUT_MESSAGE);
-                               handleMessage(commReceived.getTask());
-                               if (currentPiece != -1) {
-                                       finished = true;
-                               }
-                               commReceived = null;
-                       }
-                       catch (MsgException e) {
-                               commReceived = null;
-                       }
-               }
-       }
-       
-       private boolean hasFinished() {
-               for (int i = 0; i < bitfield.length; i++) {
-                       if (bitfield[i] == '1') {
-                               return true;
-                       }
-               }
-               return false;
-       }
-       /**
-        * Updates the list of who has a piece from a bitfield
-        * @param bitfield bitfield
-        */
-       private void updatePiecesCountFromBitfield(char bitfield[]) {
-               for (int i = 0; i < Common.FILE_PIECES; i++) {
-                       if (bitfield[i] == '1') {
-                               piecesCount[i]++;
-                       }
-               }
-       }
-       /**
-        * Update the piece the peer is currently interested in.
-        * There is two cases (as described in "Bittorrent Architecture Protocol", Ryan Toole :
-        * If the peer has less than 3 pieces, he chooses a piece at random.
-        * If the peer has more than pieces, he downloads the pieces that are the less
-        * replicated
-        */
-       void updateCurrentPiece() {
-               if (currentPieces.size() >= (Common.FILE_PIECES - pieces)) {
-                       return;
-               }
-               if (true || pieces < 3) {
-                       int peerPiece;
-                       do {
-                               currentPiece = stream.randInt(0,Common.FILE_PIECES - 1);
-                       } while (!(bitfield[currentPiece] == '0' && !currentPieces.contains(currentPiece)));
-               }
-               else {
-                       //trivial min algorithm.
-                       //TODO
-               }
-               currentPieces.add(currentPiece);
-               Msg.debug("New interested piece: " + currentPiece);
-               assert currentPiece >= 0 && currentPiece < Common.FILE_PIECES;
-       }
-       /**
-        * Update the list of current choked and unchoked peers, using the
-        * choke algorithm
-        */
-       private void updateChokedPeers() {
-               round = (round + 1) % 3;
-               if (peers.size() == 0) {
-                       return;
-               }
-               //remove a peer from the list
-               Iterator<Entry<Integer, Connection>> it = activePeers.entrySet().iterator();
-               if (it.hasNext()) {
-                       Entry<Integer,Connection> e = it.next();
-                       Connection peerChoked = e.getValue();
-                       peerChoked.chokedUpload = true;
-                       sendChoked(peerChoked.mailbox);
-                       activePeers.remove(e.getKey());
-               }
-               Connection peerChoosed = null;
-               //Separate the case from when the peer is seeding.
-               if (pieces == Common.FILE_PIECES) {
-                       //Find the last unchoked peer.
-                       double unchokeTime = deadline + 1;
-                       for (Connection connection : peers.values()) {
-                               if (connection.lastUnchoke < unchokeTime && connection.interested) {
-                                       peerChoosed = connection;
-                                       unchokeTime = connection.lastUnchoke;
-                               }
-                       }
-               }
-               else {
-                       //Random optimistic unchoking
-                       if (round == 0) {
-                               int j = 0, i;
-                               do {
-                                       i = 0;
-                                       int idChosen = stream.randInt(0,peers.size() - 1);
-                                       for (Connection connection : peers.values()) {
-                                               if (i == idChosen) {
-                                                       peerChoosed = connection;
-                                                       break;
-                                               }
-                                               i++;
-                                       } //TODO: Not really the best way ever
-                                       if (!peerChoosed.interested) {
-                                               peerChoosed = null;
-                                       }
-                                       j++;
-                               } while (peerChoosed == null && j < Common.MAXIMUM_PEERS);
-                       }
-                       else {
-                               Connection fastest = null;
-                               double fastestSpeed = 0;
-                               for (Connection c : peers.values()) {
-                                       if (c.peerSpeed > fastestSpeed && c.interested && c.chokedUpload) {
-                                               fastest = c;
-                                               fastestSpeed = c.peerSpeed;
-                                       }
-                               }
-                               peerChoosed = fastest;
-                       }
-               }
-               if (peerChoosed != null) {
-                       activePeers.put(peerChoosed.id,peerChoosed);
-                       peerChoosed.chokedUpload = false;
-                       peerChoosed.lastUnchoke = Msg.getClock();
-                       sendUnchoked(peerChoosed.mailbox);
-               }
-       }
-       /**     
-        * Updates our "interested" state about peers: send "not interested" to peers
-        * that don't have any more pieces we want.
-        */
-       private void updateInterestedAfterReceive() {
-               boolean interested;
-               for (Connection connection : peers.values()) {
-                       interested = false;
-                       if (connection.amInterested) {
-                               for (Integer piece : currentPieces) {
-                                       if (connection.bitfield[piece] == '1') {
-                                               interested = true;
-                                               break;
-                                       }
-                               }       
-                               if (!interested) {
-                                       connection.amInterested = false;
-                                       sendNotInterested(connection.mailbox);
-                               }
-                       }
-               }
-       }
-       private void updateBitfieldBlocks(int index, int blockIndex, int blockLength) {
-               for (int i = blockIndex; i < (blockIndex + blockLength); i++) {
-                       bitfieldBlocks[index][i] = '1';
-               }
-       }
-       /**
-        * Returns if a piece is complete in the peer's bitfield.
-        * @param index the index of the piece.
-        */
-       private boolean pieceComplete(int index) {
-               for (int i = 0; i < bitfieldBlocks[index].length; i++) {
-                       if (bitfieldBlocks[index][i] == '0') {
-                               return false;
-                       }
-               }
-               return true;
-       }
-       /**
-        * Returns the first block of a piece that we don't have. 
-        */
-       private int getFirstBlock(int piece) {
-               int blockIndex = -1;
-               for (int i = 0; i < Common.PIECES_BLOCKS; i++) {
-                       if (bitfieldBlocks[piece][i] == '0') {
-                               blockIndex = i;
-                               break;
-                       }
-               }       
-               return blockIndex;
-       }
-       /**
-        * Send request messages to a peer that have unchoked us
-        * @param remotePeer peer data to the peer we want to send the request
-        */
-       private void sendRequestsToPeer(Connection remotePeer) {
-               if (remotePeer.bitfield == null) {
-                       return;
-               }
-               for (Integer piece : currentPieces) {
-                       //Getting the block to send.    
-                       int blockIndex = -1, blockLength = 0;
-                       blockIndex = getFirstBlock(piece);                      
-                       blockLength = Common.PIECES_BLOCKS - blockIndex ;
-                       blockLength = blockLength > Common.BLOCKS_REQUESTED ? Common.BLOCKS_REQUESTED : blockLength;            
-                       if (remotePeer.bitfield[piece] == '1') {
-                               sendRequest(remotePeer.mailbox, piece, blockIndex, blockLength);
-                       }                       
-               }
-       }       
-       /**
-        * Find the peers that have the current interested piece and send them
-        * the "interested" message
-        */
-       private void sendInterestedToPeers() {
-               if (currentPiece == -1) {
-                       return;
-               }
-               for (Connection connection : peers.values()) {
-                       if (connection.bitfield != null && connection.bitfield[currentPiece] == '1' && !connection.amInterested) {
-                               connection.amInterested = true;                         
-                               MessageTask task = new MessageTask(MessageTask.Type.INTERESTED, hostname, this.mailbox, this.id);
-                               task.dsend(connection.mailbox);                         
-                       }
-               }
-               currentPiece = -1;
-               piecesRequested++;
-       }
-       /**
-        * Send a "interested" message to a peer.
-        */
-       private void sendInterested(String mailbox) {
-               MessageTask task = new MessageTask(MessageTask.Type.INTERESTED, hostname, this.mailbox, this.id);
-               task.dsend(mailbox);                                            
-       }
-       /**
-        * Send a "not interested" message to a peer
-        * @param mailbox mailbox destination mailbox
-        */
-       private void sendNotInterested(String mailbox) {
-               MessageTask task = new MessageTask(MessageTask.Type.NOTINTERESTED, hostname, this.mailbox, this.id);
-               task.dsend(mailbox);                            
-       }
-       /**
-        * Send a handshake message to all the peers the peer has.
-        * @param peer peer data
-        */
-       private void sendHandshakeAll() {
-               for (Connection remotePeer : peers.values()) {
-                       MessageTask task = new MessageTask(MessageTask.Type.HANDSHAKE, hostname, mailbox,
-                       id);
-                       task.dsend(remotePeer.mailbox);
-               }
-       }
-       /**
-        * Send a "handshake" message to an user
-        * @param mailbox mailbox where to we send the message
-        */
-       private void sendHandshake(String mailbox) {
-               Msg.debug("Sending a HANDSHAKE to " + mailbox);
-               MessageTask task = new MessageTask(MessageTask.Type.HANDSHAKE, hostname, this.mailbox, this.id);
-               task.dsend(mailbox);            
-       }
-       /**
-        * Send a "choked" message to a peer
-        */
-       private void sendChoked(String mailbox) {
-               Msg.debug("Sending a CHOKE to " + mailbox);
-               MessageTask task = new MessageTask(MessageTask.Type.CHOKE, hostname, this.mailbox, this.id);
-               task.dsend(mailbox);
-       }
-       /**
-        * Send a "unchoked" message to a peer
-        */
-       private void sendUnchoked(String mailbox) {
-               Msg.debug("Sending a UNCHOKE to " + mailbox);
-               MessageTask task = new MessageTask(MessageTask.Type.UNCHOKE, hostname, this.mailbox, this.id);
-               task.dsend(mailbox);
-       }
-       /**
-        * Send a "HAVE" message to all peers we are connected to
-        */
-       private void sendHave(int piece) {
-               Msg.debug("Sending HAVE message to all my peers");
-               for (Connection remotePeer : peers.values()) {
-                       MessageTask task = new MessageTask(MessageTask.Type.HAVE, hostname, this.mailbox, this.id, piece);
-                       task.dsend(remotePeer.mailbox);
-               }
-       }
-       /**
-        * Send a bitfield message to all the peers the peer has.
-        * @param peer peer data
-        */
-       private void sendBitfield(String mailbox) {
-               Msg.debug("Sending a BITFIELD to " + mailbox);
-               MessageTask task = new MessageTask(MessageTask.Type.BITFIELD, hostname, this.mailbox, this.id, this.bitfield);
-               task.dsend(mailbox);
-       }
-       /**
-        * Send a "request" message to a pair, containing a request for a piece
-        */
-       private void sendRequest(String mailbox, int piece, int blockIndex, int blockLength) {
-               Msg.debug("Sending a REQUEST to " + mailbox + " for piece " + piece + " and blocks " + blockIndex + "," + (blockIndex + blockLength));
-               MessageTask task = new MessageTask(MessageTask.Type.REQUEST, hostname, this.mailbox, this.id, piece, blockIndex, blockLength);
-               task.dsend(mailbox);
-       }
-       /**
-        * Send a "piece" message to a pair, containing a piece of the file
-        */
-       private void sendPiece(String mailbox, int piece, boolean stalled, int blockIndex, int blockLength) {
-               Msg.debug("Sending the PIECE " + piece + " to " + mailbox);
-               MessageTask task = new MessageTask(MessageTask.Type.PIECE, hostname, this.mailbox, this.id, piece, stalled, blockIndex, blockLength);
-               task.dsend(mailbox);
-       }
-       
-       private String getStatus() {
-               String s = "";
-               for (int i = 0; i < Common.FILE_PIECES; i++) {
-                       s = s + bitfield[i];
-               }
-               return s;
-       }
+  protected int round = 0;
+  protected double beginReceiveTime;
+  protected double deadline;
+  protected static RngStream stream = new RngStream();
+  protected int id;
+  protected String mailbox;
+  protected String mailboxTracker;
+  protected String hostname;
+  protected int pieces = 0;
+  protected char[] bitfield = new char[Common.FILE_PIECES];
+  protected char[][] bitfieldBlocks = new char[Common.FILE_PIECES][Common.PIECES_BLOCKS];
+  protected short[] piecesCount = new short[Common.FILE_PIECES];
+  protected int piecesRequested = 0;
+  protected ArrayList<Integer> currentPieces = new ArrayList<Integer>();
+  protected int currentPiece = -1;
+  protected HashMap<Integer, Connection> activePeers = new HashMap<Integer, Connection>();  
+  protected HashMap<Integer, Connection> peers = new HashMap<Integer, Connection>();
+  protected Comm commReceived = null;
+
+  public Peer(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  @Override
+  public void main(String[] args) throws MsgException {
+    //Check arguments
+    if (args.length != 3 && args.length != 2) {
+      Msg.info("Wrong number of arguments");
+    }
+    if (args.length == 3) {
+      init(Integer.valueOf(args[0]),true);
+    } else {
+      init(Integer.valueOf(args[0]),false);
+    }
+    //Retrieve the deadline
+    deadline = Double.valueOf(args[1]);
+    if (deadline < 0) {
+      Msg.info("Wrong deadline supplied");
+      return;
+    }
+    Msg.info("Hi, I'm joining the network with id " + id);
+    //Getting peer data from the tracker
+    if (getPeersData()) {
+      Msg.debug("Got " + peers.size() + " peers from the tracker");
+      Msg.debug("Here is my current status: " + getStatus());
+      beginReceiveTime = Msg.getClock();      
+      if (hasFinished()) {
+        pieces = Common.FILE_PIECES;
+        sendHandshakeAll();
+        seedLoop();
+      } else {
+        leechLoop();
+        seedLoop();
+      }
+    } else {
+      Msg.info("Couldn't contact the tracker.");
+    }
+    Msg.info("Here is my current status: " + getStatus());
+  }
+
+  private void leechLoop() {
+    double nextChokedUpdate = Msg.getClock() + Common.UPDATE_CHOKED_INTERVAL;
+    Msg.debug("Start downloading.");
+    // Send a "handshake" message to all the peers it got(it couldn't have gotten more than 50 peers anyway)
+    sendHandshakeAll();
+    //Wait for at least one "bitfield" message.
+    waitForPieces();
+    Msg.debug("Starting main leech loop");
+    while (Msg.getClock() < deadline && pieces < Common.FILE_PIECES) {
+      if (commReceived == null) {
+        commReceived = Task.irecv(mailbox);
+      }
+      try {
+        if (commReceived.test()) {
+          handleMessage(commReceived.getTask());
+          commReceived = null;
+        } else {
+          //If the user has a pending interesting
+          if (currentPiece != -1) {
+            sendInterestedToPeers();
+          } else {
+            if (currentPieces.size() < Common.MAX_PIECES) {
+              updateCurrentPiece();
+            }
+          }
+          //We don't execute the choke algorithm if we don't already have a piece
+          if (Msg.getClock() >= nextChokedUpdate && pieces > 0) {
+            updateChokedPeers();
+            nextChokedUpdate += Common.UPDATE_CHOKED_INTERVAL;
+          } else {
+            waitFor(1);
+          }
+        }
+      }
+      catch (MsgException e) {
+        commReceived = null;
+      }
+    }
+  }
+
+  private void seedLoop() {
+    double nextChokedUpdate = Msg.getClock() + Common.UPDATE_CHOKED_INTERVAL;
+    Msg.debug("Start seeding.");
+    //start the main seed loop
+    while (Msg.getClock() < deadline) {
+      if (commReceived == null) {
+        commReceived = Task.irecv(mailbox);
+      }
+      try {
+        if (commReceived.test()) {
+          handleMessage(commReceived.getTask());
+          commReceived = null;
+        } else {
+          if (Msg.getClock() >= nextChokedUpdate) {
+            updateChokedPeers();
+            //TODO: Change the choked peer algorithm when seeding
+            nextChokedUpdate += Common.UPDATE_CHOKED_INTERVAL;
+          } else {
+            waitFor(1);
+          }
+        }
+      }
+      catch (MsgException e) {
+        commReceived = null;
+      }
+    }
+  }
+
+  /**
+   * @brief Initialize the various peer data
+   * @param id id of the peer to take in the network
+   * @param seed indicates if the peer is a seed
+   */
+  private void init(int id, boolean seed) {
+    this.id = id;
+    this.mailbox = Integer.toString(id);
+    this.mailboxTracker = "tracker_" + Integer.toString(id);
+    if (seed) {
+      for (int i = 0; i < bitfield.length; i++) {
+        bitfield[i] = '1';
+        for (int j = 0; j < bitfieldBlocks[i].length; j++) {
+          bitfieldBlocks[i][j] = '1';
+        }
+      }
+    } else {
+      for (int i = 0; i < bitfield.length; i++) {
+        bitfield[i] = '0';
+        for (int j = 0; j < bitfieldBlocks[i].length; j++) {
+          bitfieldBlocks[i][j] = '0'  ;
+        }
+      }
+    }
+    this.hostname = getHost().getName();
+  }
+
+  private boolean getPeersData() {
+    boolean success = false, sendSuccess = false;
+    double timeout = Msg.getClock() + Common.GET_PEERS_TIMEOUT;
+    //Build the task to send to the tracker
+    TrackerTask taskSend = new TrackerTask(hostname, mailboxTracker, id);
+
+    while (!sendSuccess && Msg.getClock() < timeout) {
+      try {
+        Msg.debug("Sending a peer request to the tracker.");
+        taskSend.send(Common.TRACKER_MAILBOX,Common.GET_PEERS_TIMEOUT);
+        sendSuccess = true;
+      }
+      catch (MsgException e) {
+      }
+    }
+    while (!success && Msg.getClock() < timeout) {
+      commReceived = Task.irecv(this.mailboxTracker);
+      try {
+        commReceived.waitCompletion(Common.GET_PEERS_TIMEOUT);
+        if (commReceived.getTask() instanceof TrackerTask) {
+          TrackerTask task = (TrackerTask)commReceived.getTask();
+          for (Integer peerId: task.peers) {
+            if (peerId != this.id) {
+              peers.put(peerId, new Connection(peerId));
+            }
+          }
+          success = true;
+        }
+      }
+      catch (MsgException e) {}
+      commReceived = null;
+    }
+    commReceived = null;
+    return success;
+  }
+
+  void handleMessage(Task task) {
+    MessageTask message = (MessageTask)task;
+    Connection remotePeer = peers.get(message.peerId);
+    switch (message.type) {
+      case HANDSHAKE:
+        Msg.debug("Received a HANDSHAKE message from " + message.mailbox);
+        //Check if the peer is in our connection list
+        if (remotePeer == null) {
+          peers.put(message.peerId, new Connection(message.peerId));
+          sendHandshake(message.mailbox);
+        }
+        //Send our bitfield to the pair
+        sendBitfield(message.mailbox);
+      break;
+      case BITFIELD:
+        Msg.debug("Received a BITFIELD message from " + message.peerId + " (" + message.issuerHostname + ")");
+        //update the pieces list
+        updatePiecesCountFromBitfield(message.bitfield);
+        //Update the current piece
+        if (currentPiece == -1 && pieces < Common.FILE_PIECES && currentPieces.size() < Common.MAX_PIECES) {
+          updateCurrentPiece();
+        }
+        remotePeer.bitfield  = message.bitfield.clone();
+      break;
+      case INTERESTED:
+        Msg.debug("Received an INTERESTED message from " + message.peerId + " (" + message.issuerHostname + ")");
+        assert remotePeer != null;
+        remotePeer.interested = true;
+      break;
+      case NOTINTERESTED:
+        Msg.debug("Received a NOTINTERESTED message from " + message.peerId + " (" + message.issuerHostname + ")");
+        assert remotePeer != null;
+        remotePeer.interested = false;
+      break;
+      case UNCHOKE:
+        Msg.debug("Received an UNCHOKE message from " + message.peerId + "(" + message.issuerHostname + ")");
+        assert remotePeer != null;
+        remotePeer.chokedDownload = false;
+        activePeers.put(remotePeer.id,remotePeer);
+        sendRequestsToPeer(remotePeer);
+      break;
+      case CHOKE:
+        Msg.debug("Received a CHOKE message from " + message.peerId + " (" + message.issuerHostname + ")");
+        assert remotePeer != null;
+        remotePeer.chokedDownload = true;
+        activePeers.remove(remotePeer.id);
+      break;
+      case HAVE:
+        if (remotePeer.bitfield == null) {
+          return;
+        }
+        Msg.debug("Received a HAVE message from " + message.peerId + " (" + message.issuerHostname + ")");
+        assert message.index >= 0 && message.index < Common.FILE_PIECES;
+        assert remotePeer.bitfield != null;
+        remotePeer.bitfield[message.index] = '1';
+        piecesCount[message.index]++; 
+        //Send interested message to the peer if he has what we want
+        if (!remotePeer.amInterested && currentPieces.contains(message.index) ) {
+          remotePeer.amInterested = true;
+          sendInterested(remotePeer.mailbox);
+        }
+        
+        if (currentPieces.contains(message.index)) {
+          int blockIndex = getFirstBlock(message.index);      
+          int blockLength = Common.PIECES_BLOCKS - blockIndex ;
+          blockLength = blockLength > Common.BLOCKS_REQUESTED ? Common.BLOCKS_REQUESTED : blockLength;    
+          sendRequest(message.mailbox,message.index,blockIndex,blockLength);
+        }
+      break;
+      case REQUEST:
+        assert message.index >= 0 && message.index < Common.FILE_PIECES;
+        if (!remotePeer.chokedUpload) {
+          Msg.debug("Received a REQUEST from " + message.peerId + "(" + message.issuerHostname + ") for " 
+                    + message.peerId);
+          if (bitfield[message.index] == '1') {
+            sendPiece(message.mailbox,message.index,false,message.blockIndex,message.blockLength);  
+          } else {
+            Msg.debug("Received a REQUEST from " + message.peerId + " (" + message.issuerHostname 
+                      + ") but he is choked" );
+          }
+        }
+      break;
+      case PIECE:
+        if (message.stalled) {
+          Msg.debug("The received piece " + message.index + " from " + message.peerId + " (" + message.issuerHostname 
+                    + ") is stalled");
+        } else {
+          Msg.debug("Received piece " + message.index + " from " + message.peerId + " (" 
+                    + message.issuerHostname + ")");
+          if (bitfield[message.index] == '0') {
+            updateBitfieldBlocks(message.index,message.blockIndex,message.blockLength);
+            if (pieceComplete(message.index)) {
+              piecesRequested--;
+              //Removing the piece from our piece list.
+              currentPieces.remove((Object)Integer.valueOf(message.index));
+              //Setting the fact that we have the piece
+              bitfield[message.index] = '1';
+              pieces++;
+              Msg.debug("My status is now " + getStatus());
+              //Sending the information to all the peers we are connected to
+              sendHave(message.index);
+              //sending UNINTERESTED to peers that doesn't have what we want.
+              updateInterestedAfterReceive();
+            }
+          } else {
+            Msg.debug("However, we already have it.");
+          }
+        }
+      break;
+    }
+    if (remotePeer != null) {
+      remotePeer.addSpeedValue(1 / (Msg.getClock() - beginReceiveTime));
+    }
+    beginReceiveTime = Msg.getClock();
+  }
+
+  void waitForPieces() {
+    boolean finished = false;
+    while (Msg.getClock() < deadline && !finished) {
+      if (commReceived == null) {
+        commReceived = Task.irecv(mailbox);
+      }
+      try {
+        commReceived.waitCompletion(Common.TIMEOUT_MESSAGE);
+        handleMessage(commReceived.getTask());
+        if (currentPiece != -1) {
+          finished = true;
+        }
+        commReceived = null;
+      }
+      catch (MsgException e) {
+        commReceived = null;
+      }
+    }
+  }
+
+  private boolean hasFinished() {
+    for (int i = 0; i < bitfield.length; i++) {
+      if (bitfield[i] == '1') {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  /**
+   * @brief Updates the list of who has a piece from a bitfield
+   * @param bitfield bitfield
+   */
+  private void updatePiecesCountFromBitfield(char bitfield[]) {
+    for (int i = 0; i < Common.FILE_PIECES; i++) {
+      if (bitfield[i] == '1') {
+        piecesCount[i]++;
+      }
+    }
+  }
+
+  /**
+   * Update the piece the peer is currently interested in.
+   * There is two cases (as described in "Bittorrent Architecture Protocol", Ryan Toole :
+   * If the peer has less than 3 pieces, he chooses a piece at random.
+   * If the peer has more than pieces, he downloads the pieces that are the less
+   * replicated
+   */
+  void updateCurrentPiece() {
+    if (currentPieces.size() >= (Common.FILE_PIECES - pieces)) {
+      return;
+    }
+    if (true || pieces < 3) {
+      int peerPiece;
+      do {
+        currentPiece = stream.randInt(0,Common.FILE_PIECES - 1);
+      } while (!(bitfield[currentPiece] == '0' && !currentPieces.contains(currentPiece)));
+    }
+    else {
+      //trivial min algorithm.
+      //TODO
+    }
+    currentPieces.add(currentPiece);
+    Msg.debug("New interested piece: " + currentPiece);
+    assert currentPiece >= 0 && currentPiece < Common.FILE_PIECES;
+  }
+
+  // Update the list of current choked and unchoked peers, using the choke algorithm
+  private void updateChokedPeers() {
+    round = (round + 1) % 3;
+    if (peers.size() == 0) {
+      return;
+    }
+    //remove a peer from the list
+    Iterator<Entry<Integer, Connection>> it = activePeers.entrySet().iterator();
+    if (it.hasNext()) {
+      Entry<Integer,Connection> e = it.next();
+      Connection peerChoked = e.getValue();
+      peerChoked.chokedUpload = true;
+      sendChoked(peerChoked.mailbox);
+      activePeers.remove(e.getKey());
+    }
+    Connection peerChoosed = null;
+    //Separate the case from when the peer is seeding.
+    if (pieces == Common.FILE_PIECES) {
+      //Find the last unchoked peer.
+      double unchokeTime = deadline + 1;
+      for (Connection connection : peers.values()) {
+        if (connection.lastUnchoke < unchokeTime && connection.interested) {
+          peerChoosed = connection;
+          unchokeTime = connection.lastUnchoke;
+        }
+      }
+    } else {
+      //Random optimistic unchoking
+      if (round == 0) {
+        int j = 0, i;
+        do {
+          i = 0;
+          int idChosen = stream.randInt(0,peers.size() - 1);
+          for (Connection connection : peers.values()) {
+            if (i == idChosen) {
+              peerChoosed = connection;
+              break;
+            }
+            i++;
+          } //TODO: Not really the best way ever
+          if (!peerChoosed.interested) {
+            peerChoosed = null;
+          }
+          j++;
+        } while (peerChoosed == null && j < Common.MAXIMUM_PEERS);
+      } else {
+        Connection fastest = null;
+        double fastestSpeed = 0;
+        for (Connection c : peers.values()) {
+          if (c.peerSpeed > fastestSpeed && c.interested && c.chokedUpload) {
+            fastest = c;
+            fastestSpeed = c.peerSpeed;
+          }
+        }
+        peerChoosed = fastest;
+      }
+    }
+    if (peerChoosed != null) {
+      activePeers.put(peerChoosed.id,peerChoosed);
+      peerChoosed.chokedUpload = false;
+      peerChoosed.lastUnchoke = Msg.getClock();
+      sendUnchoked(peerChoosed.mailbox);
+    }
+  }
+
+  // Updates our "interested" state about peers: send "not interested" to peers that don't have any more pieces we want.
+  private void updateInterestedAfterReceive() {
+    boolean interested;
+    for (Connection connection : peers.values()) {
+      interested = false;
+      if (connection.amInterested) {
+        for (Integer piece : currentPieces) {
+          if (connection.bitfield[piece] == '1') {
+            interested = true;
+            break;
+          }
+        }
+        if (!interested) {
+          connection.amInterested = false;
+          sendNotInterested(connection.mailbox);
+        }
+      }
+    }
+  }
+
+  private void updateBitfieldBlocks(int index, int blockIndex, int blockLength) {
+    for (int i = blockIndex; i < (blockIndex + blockLength); i++) {
+      bitfieldBlocks[index][i] = '1';
+    }
+  }
+
+  // Returns if a piece is complete in the peer's bitfield.
+  private boolean pieceComplete(int index) {
+    for (int i = 0; i < bitfieldBlocks[index].length; i++) {
+      if (bitfieldBlocks[index][i] == '0') {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  // Returns the first block of a piece that we don't have. 
+  private int getFirstBlock(int piece) {
+    int blockIndex = -1;
+    for (int i = 0; i < Common.PIECES_BLOCKS; i++) {
+      if (bitfieldBlocks[piece][i] == '0') {
+        blockIndex = i;
+        break;
+      }
+    }
+    return blockIndex;
+  }
+
+  /**
+   * @brief Send request messages to a peer that have unchoked us
+   * @param remotePeer peer data to the peer we want to send the request
+   */
+  private void sendRequestsToPeer(Connection remotePeer) {
+    if (remotePeer.bitfield == null) {
+      return;
+    }
+    for (Integer piece : currentPieces) {
+      //Getting the block to send.  
+      int blockIndex = -1, blockLength = 0;
+      blockIndex = getFirstBlock(piece);      
+      blockLength = Common.PIECES_BLOCKS - blockIndex ;
+      blockLength = blockLength > Common.BLOCKS_REQUESTED ? Common.BLOCKS_REQUESTED : blockLength;    
+      if (remotePeer.bitfield[piece] == '1') {
+        sendRequest(remotePeer.mailbox, piece, blockIndex, blockLength);
+      }
+    }
+  }
+
+  // Find the peers that have the current interested piece and send them the "interested" message
+  private void sendInterestedToPeers() {
+    if (currentPiece == -1) {
+      return;
+    }
+    for (Connection connection : peers.values()) {
+      if (connection.bitfield != null && connection.bitfield[currentPiece] == '1' && !connection.amInterested) {
+        connection.amInterested = true;        
+        MessageTask task = new MessageTask(MessageTask.Type.INTERESTED, hostname, this.mailbox, this.id);
+        task.dsend(connection.mailbox);        
+      }
+    }
+    currentPiece = -1;
+    piecesRequested++;
+  }
+
+  // Send a "interested" message to a peer.
+  private void sendInterested(String mailbox) {
+    MessageTask task = new MessageTask(MessageTask.Type.INTERESTED, hostname, this.mailbox, this.id);
+    task.dsend(mailbox);
+  }
+
+  /**
+   * @brief Send a "not interested" message to a peer
+   * @param mailbox mailbox destination mailbox
+   */
+  private void sendNotInterested(String mailbox) {
+    MessageTask task = new MessageTask(MessageTask.Type.NOTINTERESTED, hostname, this.mailbox, this.id);
+    task.dsend(mailbox);
+  }
+
+  // Send a handshake message to all the peers the peer has.
+  private void sendHandshakeAll() {
+    for (Connection remotePeer : peers.values()) {
+      MessageTask task = new MessageTask(MessageTask.Type.HANDSHAKE, hostname, mailbox, id);
+      task.dsend(remotePeer.mailbox);
+    }
+  }
+
+  /**
+   * @brief Send a "handshake" message to an user
+   * @param mailbox mailbox where to we send the message
+   */
+  private void sendHandshake(String mailbox) {
+    Msg.debug("Sending a HANDSHAKE to " + mailbox);
+    MessageTask task = new MessageTask(MessageTask.Type.HANDSHAKE, hostname, this.mailbox, this.id);
+    task.dsend(mailbox);
+  }
+
+  // Send a "choked" message to a peer
+  private void sendChoked(String mailbox) {
+    Msg.debug("Sending a CHOKE to " + mailbox);
+    MessageTask task = new MessageTask(MessageTask.Type.CHOKE, hostname, this.mailbox, this.id);
+    task.dsend(mailbox);
+  }
+
+  // Send a "unchoked" message to a peer
+  private void sendUnchoked(String mailbox) {
+    Msg.debug("Sending a UNCHOKE to " + mailbox);
+    MessageTask task = new MessageTask(MessageTask.Type.UNCHOKE, hostname, this.mailbox, this.id);
+    task.dsend(mailbox);
+  }
+
+  // Send a "HAVE" message to all peers we are connected to
+  private void sendHave(int piece) {
+    Msg.debug("Sending HAVE message to all my peers");
+    for (Connection remotePeer : peers.values()) {
+      MessageTask task = new MessageTask(MessageTask.Type.HAVE, hostname, this.mailbox, this.id, piece);
+      task.dsend(remotePeer.mailbox);
+    }
+  }
+  // Send a bitfield message to all the peers the peer has.
+  private void sendBitfield(String mailbox) {
+    Msg.debug("Sending a BITFIELD to " + mailbox);
+    MessageTask task = new MessageTask(MessageTask.Type.BITFIELD, hostname, this.mailbox, this.id, this.bitfield);
+    task.dsend(mailbox);
+  }
+  // Send a "request" message to a peer, containing a request for a piece
+  private void sendRequest(String mailbox, int piece, int blockIndex, int blockLength) {
+    Msg.debug("Sending a REQUEST to " + mailbox + " for piece " + piece + " and blocks " + blockIndex + ","
+              + (blockIndex + blockLength));
+    MessageTask task = new MessageTask(MessageTask.Type.REQUEST, hostname, this.mailbox, this.id, piece, blockIndex, 
+                                       blockLength);
+    task.dsend(mailbox);
+  }
+
+  // Send a "piece" message to a peer, containing a piece of the file
+  private void sendPiece(String mailbox, int piece, boolean stalled, int blockIndex, int blockLength) {
+    Msg.debug("Sending the PIECE " + piece + " to " + mailbox);
+    MessageTask task = new MessageTask(MessageTask.Type.PIECE, hostname, this.mailbox, this.id, piece, stalled,
+                                       blockIndex, blockLength);
+    task.dsend(mailbox);
+  }
+
+  private String getStatus() {
+    String s = "";
+    for (int i = 0; i < Common.FILE_PIECES; i++) {
+      s = s + bitfield[i];
+    }
+    return s;
+  }
 }
-       
index 338b763..6af9eb2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2026. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,87 +7,74 @@
 package bittorrent;
 import java.util.ArrayList;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.RngStream;
-import org.simgrid.msg.Task;
-/**
- * Tracker, handle requests from peers.
- */
+import org.simgrid.msg.MsgException;
+
 public class Tracker extends Process {
-       protected RngStream stream;
-       /**
-        * Peers list
-        */
-       protected ArrayList<Integer> peersList;
-       /**
-        * End time for the simulation
-        */
-       protected double deadline;
-       /**
-        * Current comm received
-        */
-       protected Comm commReceived = null;
-       
-       public Tracker(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       
-       @Override
-       public void main(String[] args) throws MsgException {
-               if (args.length != 1) {
-                       Msg.info("Wrong number of arguments for the tracker.");
-                       return;
-               }
-               //Build the RngStream object for randomness
-               stream = new RngStream("tracker");
-               //Retrieve the end time
-               deadline = Double.valueOf(args[0]);
-               //Building peers array
-               peersList = new ArrayList<Integer>();
-               
-               Msg.info("Tracker launched.");          
-               while (Msg.getClock() < deadline) {
-                       if (commReceived == null) {
-                               commReceived = Task.irecv(Common.TRACKER_MAILBOX);
-                       }
-                       try {
-                               if (commReceived.test()) {
-                                       Task task = commReceived.getTask();
-                                       if (task instanceof TrackerTask) {
-                                               TrackerTask tTask = (TrackerTask)task;
-                                               //Sending peers to the peer
-                                               int nbPeers = 0;
-                                               while (nbPeers < Common.MAXIMUM_PEERS && nbPeers < peersList.size()) {
-                                                       int nextPeer;
-                                                       do {
-                                                               nextPeer = stream.randInt(0, peersList.size() - 1);
-                                                       } while (tTask.peers.contains(nextPeer));
-                                                       tTask.peers.add(peersList.get(nextPeer));
-                                                       nbPeers++;
-                                               }
-                                               //Adding the peer to our list
-                                               peersList.add(tTask.peerId);
-                                               tTask.type = TrackerTask.Type.ANSWER;
-                                               //Setting the interval
-                                               tTask.interval = Common.TRACKER_QUERY_INTERVAL;
-                                               //Sending the task back to the peer
-                                               tTask.dsend(tTask.mailbox);
-                                       }
-                                       commReceived = null;
-                               }
-                               else {
-                                       waitFor(1);
-                               }
-                       }
-                       catch (MsgException e) {
-                               commReceived = null;                            
-                       }
-               }
-               Msg.info("Tracker is leaving");
-       }
+  protected RngStream stream;
+  protected ArrayList<Integer> peersList;
+  protected double deadline;
+  protected Comm commReceived = null;
+
+  public Tracker(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  @Override
+  public void main(String[] args) throws MsgException {
+    if (args.length != 1) {
+      Msg.info("Wrong number of arguments for the tracker.");
+      return;
+    }
+    //Build the RngStream object for randomness
+    stream = new RngStream("tracker");
+    //Retrieve the end time
+    deadline = Double.valueOf(args[0]);
+    //Building peers array
+    peersList = new ArrayList<Integer>();
 
+    Msg.info("Tracker launched.");    
+    while (Msg.getClock() < deadline) {
+      if (commReceived == null) {
+        commReceived = Task.irecv(Common.TRACKER_MAILBOX);
+      }
+      try {
+        if (commReceived.test()) {
+          Task task = commReceived.getTask();
+          if (task instanceof TrackerTask) {
+            TrackerTask tTask = (TrackerTask)task;
+            //Sending peers to the peer
+            int nbPeers = 0;
+            while (nbPeers < Common.MAXIMUM_PEERS && nbPeers < peersList.size()) {
+              int nextPeer;
+              do {
+                nextPeer = stream.randInt(0, peersList.size() - 1);
+              } while (tTask.peers.contains(nextPeer));
+              tTask.peers.add(peersList.get(nextPeer));
+              nbPeers++;
+            }
+            //Adding the peer to our list
+            peersList.add(tTask.peerId);
+            tTask.type = TrackerTask.Type.ANSWER;
+            //Setting the interval
+            tTask.interval = Common.TRACKER_QUERY_INTERVAL;
+            //Sending the task back to the peer
+            tTask.dsend(tTask.mailbox);
+          }
+          commReceived = null;
+        } else {
+          waitFor(1);
+        }
+      }
+      catch (MsgException e) {
+        commReceived = null;
+      }
+    }
+    Msg.info("Tracker is leaving");
+  }
 }
index beaf7b8..8e4158d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,41 +9,36 @@ import java.util.ArrayList;
 
 import org.simgrid.msg.Task;
 
-/**
- * Task exchanged between the tracker
- * and the peers. 
- */
+/* Task exchanged between the tracker and the peers. */
 public class TrackerTask extends Task {
-       /**
-        * Type of the tasks
-        */
-       public enum Type {
-               REQUEST,
-               ANSWER
-       };
-       public Type type;
-       public String hostname;
-       public String mailbox;
-       public int peerId;
-       public int uploaded;
-       public int downloaded;
-       public int left;
-       public double interval;
-       public ArrayList<Integer> peers;
-       
-       public TrackerTask(String hostname, String mailbox, int peerId) {
-               this(hostname, mailbox, peerId, 0, 0, Common.FILE_SIZE);
-       }       
-       public TrackerTask(String hostname, String mailbox, int peerId, int uploaded, int downloaded, int left) {
-               super("", 0, Common.TRACKER_COMM_SIZE);
-               this.type = Type.REQUEST;
-               this.hostname = hostname;
-               this.mailbox = mailbox;
-               this.peerId = peerId;
-               this.uploaded = uploaded;
-               this.downloaded = downloaded;
-               this.left = left;
-               this.peers = new ArrayList<Integer>();
-       }
-       
+  public enum Type {
+    REQUEST,
+    ANSWER
+  };
+
+  public Type type;
+  public String hostname;
+  public String mailbox;
+  public int peerId;
+  public int uploaded;
+  public int downloaded;
+  public int left;
+  public double interval;
+  public ArrayList<Integer> peers;
+
+  public TrackerTask(String hostname, String mailbox, int peerId) {
+    this(hostname, mailbox, peerId, 0, 0, Common.FILE_SIZE);
+  }
+
+  public TrackerTask(String hostname, String mailbox, int peerId, int uploaded, int downloaded, int left) {
+    super("", 0, Common.TRACKER_COMM_SIZE);
+    this.type = Type.REQUEST;
+    this.hostname = hostname;
+    this.mailbox = mailbox;
+    this.peerId = peerId;
+    this.uploaded = uploaded;
+    this.downloaded = downloaded;
+    this.left = left;
+    this.peers = new ArrayList<Integer>();
+  }
 }
index 0699cac..7d0459b 100644 (file)
@@ -1,39 +1,37 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="bittorrent.Tracker">
-    <argument value="3000" />                  
+    <argument value="3000" />
   </process>
 
   <process host="Boivin" function="bittorrent.Peer">
-    <argument value="00000002"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
-    <argument value="1" />                     <!-- indicates if the bittorrent.Peer is a seed at the begining of the simulation -->   
+    <argument value="00000002"/>      <!-- my id -->
+    <argument value="5000" />      <!-- end time -->
+    <argument value="1" />     <!-- indicates if the bittorrent.Peer is a seed at the begining of the simulation -->
   </process>
   <process host="Jean_Yves" function="bittorrent.Peer">
-    <argument value="00000003"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000003"/>         <!-- my id -->
+    <argument value="5000" />         <!-- end time -->
   </process>
   <process host="TeX" function="bittorrent.Peer">
-    <argument value="00000004"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000004"/>   <!-- my id -->
+    <argument value="5000" />   <!-- end time -->
   </process>
   <process host="Geoff" function="bittorrent.Peer">
-    <argument value="00000005"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000005"/>     <!-- my id -->
+    <argument value="5000" />     <!-- end time -->
   </process>
   <process host="Disney" function="bittorrent.Peer">
-    <argument value="00000006"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000006"/>      <!-- my id -->
+    <argument value="5000" />      <!-- end time -->
   </process>
   <process host="iRMX" function="bittorrent.Peer">
-    <argument value="00000007"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000007"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time -->
   </process>
   <process host="McGee" function="bittorrent.Peer">
-    <argument value="00000008"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+    <argument value="00000008"/>     <!-- my id -->
+    <argument value="5000" />     <!-- end time -->
   </process>
-
 </platform>
index 155957f..d416c5f 100755 (executable)
 # Usage: python generate.py nb_nodes nb_bits end_date percentage
 # Example: python generate.py 10000 5000
 
-import sys, random
+import sys
+import random
 
 if len(sys.argv) != 4:
-       print("Usage: python generate.py nb_nodes end_date seed_percentage > deployment_file.xml")
-       sys.exit(1)
+    print(
+        "Usage: python generate.py nb_nodes end_date seed_percentage > deployment_file.xml")
+    sys.exit(1)
 
 nb_nodes = int(sys.argv[1])
 end_date = int(sys.argv[2])
-seed_percentage = int(sys.argv[3]);
+seed_percentage = int(sys.argv[3])
 
 nb_bits = 24
 max_id = 2 ** nb_bits - 1
 all_ids = [42]
 
 sys.stdout.write("<?xml version='1.0'?>\n"
-"<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
-"<platform version=\"3\">\n"
-"  <process host=\"c-0.me\" function=\"bittorrent.Tracker\"><argument value=\"%d\"/></process>\n" % end_date)
+                 "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
+                 "<platform version=\"3\">\n"
+                 "  <process host=\"c-0.me\" function=\"bittorrent.Tracker\"><argument value=\"%d\"/></process>\n" % end_date)
 
 for i in range(1, nb_nodes):
 
-  ok = False
-  while not ok:
-    my_id = random.randint(0, max_id)
-    ok = not my_id in all_ids
-  start_date = i * 10
-  line = "  <process host=\"c-%d.me\" function=\"bittorrent.Peer\"><argument value=\"%d\" /><argument value=\"%d\" />" % (i, my_id, end_date)
-  if random.randint(0,100) < seed_percentage:
-    line += "<argument value=\"1\" />"
-  line += "</process>\n";
-  sys.stdout.write(line)
-  all_ids.append(my_id)
+    ok = False
+    while not ok:
+        my_id = random.randint(0, max_id)
+        ok = not my_id in all_ids
+    start_date = i * 10
+    line = "  <process host=\"c-%d.me\" function=\"bittorrent.Peer\"><argument value=\"%d\" /><argument value=\"%d\" />" % (
+        i, my_id, end_date)
+    if random.randint(0, 100) < seed_percentage:
+        line += "<argument value=\"1\" />"
+    line += "</process>\n"
+    sys.stdout.write(line)
+    all_ids.append(my_id)
 sys.stdout.write("</platform>")
-
index 72a0909..f56a6da 100644 (file)
@@ -27,23 +27,18 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/chord.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/chord.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 2f3d7fa..954b50f 100644 (file)
@@ -9,19 +9,18 @@ package chord;
 import org.simgrid.msg.Msg;
 
 public class Chord {
-       public static void main(String[] args) {
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-       if(args.length < 2) {
-               Msg.info("Usage   : Chord platform_file deployment_file");
-               Msg.info("example : Chord platform.xml deployment.xml");
-               System.exit(1);
-       }
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-                       
-               /*  execute the simulation. */
-        Msg.run();             
-       }
+  public static void main(String[] args) {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Chord platform_file deployment_file");
+      Msg.info("example : Chord ../platforms/platform.xml chord.xml");
+      System.exit(1);
+    }
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index b10940c..b78bb8f 100644 (file)
@@ -6,21 +6,18 @@
 
 package chord;
 
+import chord.Common;
 import org.simgrid.msg.Task;
 
-import chord.Common;
-/**
- * Base class for all Tasks in Chord.
- */
 public class ChordTask extends Task {
-       public String issuerHostName;
-       public String answerTo;
-       public ChordTask() {
-               this(null,null);
-       }
-       public ChordTask(String issuerHostName, String answerTo) {
-               super(null, Common.COMP_SIZE, Common.COMM_SIZE);
-               this.issuerHostName = issuerHostName;
-               this.answerTo = answerTo;
-       }
+  public String issuerHostName;
+  public String answerTo;
+  public ChordTask() {
+    this(null,null);
+  }
+  public ChordTask(String issuerHostName, String answerTo) {
+    super(null, Common.COMP_SIZE, Common.COMM_SIZE);
+    this.issuerHostName = issuerHostName;
+    this.answerTo = answerTo;
+  }
 }
index 7031c23..2bda081 100644 (file)
@@ -5,19 +5,17 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package chord;
-/**
- * Common constants used over the simulation
- */
+
 public class Common {
-       public final static int COMM_SIZE = 10;
-       public final static int COMP_SIZE = 0;
-       
-       public final static int NB_BITS = 24;
-       public final static int NB_KEYS = 16777216;
-       public final static int TIMEOUT = 50;
-       public final static int MAX_SIMULATION_TIME = 1000;
-       public final static int PERIODIC_STABILIZE_DELAY = 20;
-       public final static int PERIODIC_FIX_FINGERS_DELAY = 120;
-       public final static int PERIODIC_CHECK_PREDECESSOR_DELAY = 120;
-       public final static int PERIODIC_LOOKUP_DELAY = 10;
+  public final static int COMM_SIZE = 10;
+  public final static int COMP_SIZE = 0;
+  
+  public final static int NB_BITS = 24;
+  public final static int NB_KEYS = 16777216;
+  public final static int TIMEOUT = 50;
+  public final static int MAX_SIMULATION_TIME = 1000;
+  public final static int PERIODIC_STABILIZE_DELAY = 20;
+  public final static int PERIODIC_FIX_FINGERS_DELAY = 120;
+  public final static int PERIODIC_CHECK_PREDECESSOR_DELAY = 120;
+  public final static int PERIODIC_LOOKUP_DELAY = 10;
 }
index a740872..5dee45f 100644 (file)
@@ -7,10 +7,10 @@
 package chord;
 
 public class FindSuccessorAnswerTask extends ChordTask {
-       public int answerId;
+  public int answerId;
 
-       public FindSuccessorAnswerTask(String issuerHostname, String answerTo, int answerId) {
-               super(issuerHostname,answerTo);
-               this.answerId = answerId;
-       }
+  public FindSuccessorAnswerTask(String issuerHostname, String answerTo, int answerId) {
+    super(issuerHostname,answerTo);
+    this.answerId = answerId;
+  }
 }
index db77027..b8f84c2 100644 (file)
@@ -7,10 +7,10 @@
 package chord;
 
 public class FindSuccessorTask extends ChordTask {
-       public int requestId;
-       
-       public FindSuccessorTask(String issuerHostname, String answerTo,  int requestId) {
-               super(issuerHostname, answerTo);
-               this.requestId = requestId;
-       }
+  public int requestId;
+  
+  public FindSuccessorTask(String issuerHostname, String answerTo,  int requestId) {
+    super(issuerHostname, answerTo);
+    this.requestId = requestId;
+  }
 }
index ac1b142..d8a9a9a 100644 (file)
@@ -7,9 +7,9 @@
 package chord;
 
 public class GetPredecessorAnswerTask extends ChordTask {
-       public int answerId;
-       public GetPredecessorAnswerTask(String issuerHostname, String answerTo, int answerId) {
-               super(issuerHostname,answerTo);
-               this.answerId = answerId;
-       }
+  public int answerId;
+  public GetPredecessorAnswerTask(String issuerHostname, String answerTo, int answerId) {
+    super(issuerHostname,answerTo);
+    this.answerId = answerId;
+  }
 }
index 38fecab..6320d7a 100644 (file)
@@ -7,7 +7,7 @@
 package chord;
 
 public class GetPredecessorTask extends ChordTask {
-       public GetPredecessorTask(String issuerHostName, String answerTo) {
-               super(issuerHostName, answerTo);
-       }
+  public GetPredecessorTask(String issuerHostName, String answerTo) {
+    super(issuerHostName, answerTo);
+  }
 }
index 9309923..6456b6b 100644 (file)
 
 package chord;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.TimeoutException;
-/**
- * Node data
- */
 public class Node extends Process {
-       /**
-        * Node id
-        */
-       protected int id;
-       /**
-        * Node mailbox
-        */
-       protected String mailbox;
-       /**
-        * Predecessor id
-        */
-       protected int predId;
-       /**
-        * Predecessor mailbox
-        */
-       protected String predMailbox;
-       /**
-        * Index of the next finger to fix
-        */
-       protected int nextFingerToFix;
-       /**
-        * Current communication
-        */
-       protected Comm commReceive;
-       /**
-        * Last time I changed a finger or my predecessor
-        */
-       protected double lastChangeDate;
-       /**
-        * Node fingers
-        */
-       int fingers[];
-       /**
-        * Constructor
-        */
-       public Node(Host host, String name, String[] args) {
-               super(host,name,args);
-       }
-       @Override
-       public void main(String[] args) throws MsgException {
-               if (args.length != 2 && args.length != 4) {
-                       Msg.info("You need to provide 2 or 4 arguments.");
-                       return; 
-               }
-               double initTime = Msg.getClock();
-               int i;
-               boolean joinSuccess = false;
-               double deadline;
-               
-               double nextStabilizeDate = initTime + Common.PERIODIC_STABILIZE_DELAY;
-               double nextFixFingersDate = initTime + Common.PERIODIC_FIX_FINGERS_DELAY;
-               double nextCheckPredecessorDate = initTime + Common.PERIODIC_CHECK_PREDECESSOR_DELAY;
-               double nextLookupDate = initTime + Common.PERIODIC_LOOKUP_DELAY;
-               
-               id = Integer.valueOf(args[0]);
-               mailbox = Integer.toString(id);
-
-               fingers = new int[Common.NB_BITS];
-               for (i = 0; i < Common.NB_BITS; i++) {
-                       fingers[i] = -1;
-                       setFinger(i,this.id);
-               }
-               
-               //First node
-               if (args.length == 2) {
-                       deadline = Integer.valueOf(args[1]);
-                       create();
-                       joinSuccess = true;
-               }
-               else {
-                       int knownId = Integer.valueOf(args[1]);
-                       deadline = Integer.valueOf(args[3]);
-                       //Msg.info("Hey! Let's join the system with the id " + id + ".");
-                       
-                       joinSuccess = join(knownId);
-               }
-               if (joinSuccess) {
-                       double currentClock = Msg.getClock();
-                       while (currentClock < (initTime + deadline) && currentClock < Common.MAX_SIMULATION_TIME) {
-                               if (commReceive == null) {
-                                       commReceive = Task.irecv(this.mailbox);
-                               }
-                               try {
-                                       if (!commReceive.test()) {
-                                               if (currentClock >= nextStabilizeDate) {
-                                                       stabilize();
-                                                       nextStabilizeDate = Msg.getClock() + Common.PERIODIC_STABILIZE_DELAY;
-                                               }
-                                               else if (currentClock >= nextFixFingersDate) {
-                                                       fixFingers();
-                                                       nextFixFingersDate = Msg.getClock() + Common.PERIODIC_FIX_FINGERS_DELAY;
-                                               }
-                                               else if (currentClock >= nextCheckPredecessorDate) {
-                                                       this.checkPredecessor();
-                                                       nextCheckPredecessorDate = Msg.getClock() + Common.PERIODIC_CHECK_PREDECESSOR_DELAY;
-                                               }
-                                               else if (currentClock >= nextLookupDate) {
-                                                       this.randomLookup();
-                                                       nextLookupDate = Msg.getClock() + Common.PERIODIC_LOOKUP_DELAY;
-                                               }
-                                               else {
-                                                       waitFor(5);
-                                               }
-                                               currentClock = Msg.getClock();
-                                       }
-                                       else {
-                                               handleTask(commReceive.getTask());
-                                               currentClock = Msg.getClock();
-                                               commReceive = null;
-                                               
-                                       }
-                               }
-                               catch (Exception e) {
-                                       currentClock = Msg.getClock();
-                                       commReceive = null;
-                               }
-                               
-                       }
-                       leave();
-                       if (commReceive != null) {
-                               commReceive = null;
-                       }
-               }
-               else {
-                       Msg.info("I couldn't join the ring");
-               }
-       }
-       void handleTask(Task task) {
-               if (task instanceof FindSuccessorTask) {
-                       FindSuccessorTask fTask = (FindSuccessorTask)task;
-                       Msg.debug("Receiving a 'Find Successor' request from " + fTask.issuerHostName + " for id " + fTask.requestId);
-                       // is my successor the successor?
-                       if (isInInterval(fTask.requestId, this.id + 1, fingers[0])) {
-                               //Msg.info("Send the request to " + fTask.answerTo + " with answer " + fingers[0]);
-                               FindSuccessorAnswerTask answer = new FindSuccessorAnswerTask(getHost().getName(), mailbox, fingers[0]);
-                               answer.dsend(fTask.answerTo);
-                       }
-                       else {
-                       // otherwise, forward the request to the closest preceding finger in my table
-                               int closest = closestPrecedingNode(fTask.requestId);
-                               //Msg.info("Forward the request to " + closest);
-                               fTask.dsend(Integer.toString(closest));
-                       }
-               }
-               else if (task instanceof GetPredecessorTask) {
-                       GetPredecessorTask gTask = (GetPredecessorTask)(task);
-                       Msg.debug("Receiving a 'Get Predecessor' request from " + gTask.issuerHostName);
-                       GetPredecessorAnswerTask answer = new GetPredecessorAnswerTask(getHost().getName(), mailbox, predId);
-                       answer.dsend(gTask.answerTo);
-               }
-               else if (task instanceof NotifyTask) {
-                       NotifyTask nTask = (NotifyTask)task;
-                       notify(nTask.requestId);
-               }
-               else {
-                       Msg.debug("Ignoring unexpected task of type:" + task);
-               }
-       }
-       /**
-        * @brief Makes the current node quit the system
-        */
-       void leave() {
-               Msg.debug("Well Guys! I Think it's time for me to quit ;)");
-               quitNotify(1); //Notify my successor
-               quitNotify(-1); //Notify my predecessor.
-               // TODO ...
-       }
-       /**
-        * @brief Notifies the successor or the predecessor of the current node
-        * of the departure
-        * @param to 1 to notify the successor, -1 to notify the predecessor
-        */
-       static void quitNotify( int to) {
-               //TODO
-       }
-       /**
-      * @brief Initializes the current node as the first one of the system.
-        */
-       void create() {
-               Msg.debug("Create a new Chord ring...");
-               setPredecessor(-1);
-               
-       }
-       /**
-        * Makes the current node join the ring, knowing the id of a node
-        * already in the ring 
-        */
-       boolean join(int knownId) {
-               Msg.info("Joining the ring with id " + this.id + " knowing node " + knownId);
-               setPredecessor(-1);
-               int successorId = remoteFindSuccessor(knownId, this.id);
-               if (successorId == -1) {
-                       Msg.info("Cannot join the ring.");
-               }
-               else {
-                       setFinger(0, successorId);
-               }
-               return successorId != -1;
-       }
-       
-       /**
-        * Sets the node predecessor
-        */
-       void setPredecessor(int predecessorId) {
-               if (predecessorId != predId) {
-                       predId = predecessorId;
-                       if (predecessorId != -1) {
-                               predMailbox = Integer.toString(predId);
-                       }
-                       lastChangeDate = Msg.getClock();
-               }
-       }
-       /**
-        * @brief Asks another node its predecessor.
-        * @param askTo the node to ask to
-        * @return the id of its predecessor node, or -1 if the request failed
-        * (or if the node does not know its predecessor)
-        */
-       int remoteGetPredecessor(int askTo) {
-               int predecessorId = -1;
-               boolean stop = false;
-               Msg.debug("Sending a 'Get Predecessor' request to " + askTo);
-               String mailboxTo = Integer.toString(askTo);
-               GetPredecessorTask sendTask = new GetPredecessorTask(getHost().getName(), this.mailbox);
-               try {
-                       sendTask.send(mailboxTo, Common.TIMEOUT);                       
-                       try {
-                               do {
-                                       if (commReceive == null) {
-                                               commReceive = Task.irecv(this.mailbox);
-                                       }
-                                       commReceive.waitCompletion(Common.TIMEOUT);
-                                       Task taskReceived = commReceive.getTask();
-                                       if (taskReceived instanceof GetPredecessorAnswerTask) {
-                                               predecessorId = ((GetPredecessorAnswerTask) taskReceived).answerId;
-                                               stop = true;
-                                       }
-                                       else {
-                                               handleTask(taskReceived);
-                                       }
-                                       commReceive = null;                                     
-                               } while (!stop);
-               
-                       }
-                       catch (MsgException e) {
-                               commReceive = null;     
-                               stop = true;
-                       }
-               }
-               catch (MsgException e) {
-                       Msg.debug("Failed to send the Get Predecessor request");
-               }
-               
-               
-               return predecessorId;
-       }
-       /**
-        * @brief Makes the current node find the successor node of an id.
-        * @param node the current node
-        * @param id the id to find
-        * @return the id of the successor node, or -1 if the request failed
-        */
-       int findSuccessor(int id) {
-               if (isInInterval(id, this.id + 1, fingers[0])) {
-                       return fingers[0];
-               }
-               
-               int closest = this.closestPrecedingNode(id);
-               return remoteFindSuccessor(closest, id);
-       }
-       /**
-        * @brief Asks another node the successor node of an id.
-        */
-       int remoteFindSuccessor(int askTo, int id) {
-               int successor = -1;
-               boolean stop = false;
-               String mailbox = Integer.toString(askTo);
-               Task sendTask = new FindSuccessorTask(getHost().getName(), this.mailbox, id);
-               Msg.debug("Sending a 'Find Successor' request to " + mailbox + " for id " + id);
-               try {
-                       sendTask.send(mailbox, Common.TIMEOUT);
-                       do {
-                               if (commReceive == null) {
-                                       commReceive = Task.irecv(this.mailbox);
-                               }
-                               try {
-                                       commReceive.waitCompletion(Common.TIMEOUT);
-                                       Task task = commReceive.getTask();
-                                       if (task instanceof FindSuccessorAnswerTask) {
-                                               //TODO: Check if this this our answer.
-                                               FindSuccessorAnswerTask fTask = (FindSuccessorAnswerTask) task;
-                                               stop = true;
-                                               successor = fTask.answerId;
-                                       }
-                                       else {
-                                               handleTask(task);
-                                       }
-                                       commReceive = null;
-                               }
-                               catch (TimeoutException e) {
-                                       stop = true;
-                                       commReceive = null;
-                               }
-                       } while (!stop);
-               }
-               catch (TimeoutException e) {
-                       Msg.debug("Failed to send the 'Find Successor' request");
-               }
-               catch (MsgException e) {
-                       Msg.debug("Failed to receive Find Successor");
-               }
-               
-               return successor;
-
-       }
-       /**
-        * @brief This function is called periodically. It checks the immediate
-        * successor of the current node.
-        */
-       void stabilize() {
-               Msg.debug("Stabilizing node");
-               int candidateId;
-               int successorId = fingers[0];
-               if (successorId != this.id){
-                       candidateId = remoteGetPredecessor(successorId);
-               }
-               else {
-                       candidateId = predId;
-               }
-               //This node is a candidate to become my new successor
-               if (candidateId != -1 && isInInterval(candidateId, this.id + 1, successorId - 1)) {
-                       setFinger(0, candidateId);
-               }
-               if (successorId != this.id) {
-                       remoteNotify(successorId, this.id);
-               }
-               
-       }
-       /**
-        * \brief Notifies the current node that its predecessor may have changed.
-        * \param candidate_id the possible new predecessor
-        */
-       void notify(int predecessorCandidateId) {
-               if (predId == -1 || isInInterval(predecessorCandidateId, predId + 1, this.id - 1 )) {
-                       setPredecessor(predecessorCandidateId);
-               }
-               else {
-                       //Don't have to change the predecessor.
-               }
-       }
-       /**
-        * \brief Notifies a remote node that its predecessor may have changed.
-        * \param notify_id id of the node to notify
-        * \param candidate_id the possible new predecessor
-        */     
-       void remoteNotify(int notifyId, int predecessorCandidateId) {
-               Msg.debug("Sending a 'Notify' request to " + notifyId);
-               Task sentTask = new NotifyTask(getHost().getName(), this.mailbox, predecessorCandidateId);
-               sentTask.dsend(Integer.toString(notifyId));
-       }
-       /**
-        * \brief This function is called periodically.
-        * It refreshes the finger table of the current node.
-        */
-       void fixFingers() {
-               Msg.debug("Fixing fingers");
-               int i = this.nextFingerToFix;
-               int id = this.findSuccessor(this.id + (int)Math.pow(2,i)); //FIXME: SLOW
-               if (id != -1) {
-                       if (id != fingers[i]) {
-                               setFinger(i, id);
-                       }
-                       nextFingerToFix = (i + 1) % Common.NB_BITS;
-               }
-       }
-       /**
-        * \brief This function is called periodically.
-        * It checks whether the predecessor has failed
-        */
-       void checkPredecessor() {
-               //TODO
-       }
-       /**
-        * \brief Performs a find successor request to a random id.
-        */
-       void randomLookup() {
-               int id = 1337;
-               //Msg.info("Making a lookup request for id " + id);
-               findSuccessor(id);
-       }
-       
-       
-
-       /**
-        * @brief Returns the closest preceding finger of an id
-        * with respect to the finger table of the current node.
-        * @param id the id to find
-        * \return the closest preceding finger of that id
-        */
-       int closestPrecedingNode(int id) {
-               int i;
-               for (i = Common.NB_BITS - 1; i >= 0; i--) {
-                       if (isInInterval(fingers[i], this.id + 1, id - 1)) {
-                               return fingers[i];
-                       }
-               }               
-               return this.id;
-       }
-       /**
-        * @brief Returns whether an id belongs to the interval [start, end].
-        *
-        * The parameters are noramlized to make sure they are between 0 and nb_keys - 1).
-        * 1 belongs to [62, 3]
-        * 1 does not belong to [3, 62]
-        * 63 belongs to [62, 3]
-        * 63 does not belong to [3, 62]
-        * 24 belongs to [21, 29]
-        * 24 does not belong to [29, 21]
-        *
-        * \param id id to check
-        * \param start lower bound
-        * \param end upper bound
-        * \return a non-zero value if id in in [start, end]
-        */
-       static boolean isInInterval(int id, int start, int end) {
-               id = normalize(id);
-               start = normalize(start);
-               end = normalize(end);
-               
-               // make sure end >= start and id >= start
-               if (end < start) {
-                       end += Common.NB_KEYS;
-               }
-               if (id < start) {
-                       id += Common.NB_KEYS;
-               }
-               return (id <= end);
-       
-       }
-       /**
-        * @brief Turns an id into an equivalent id in [0, nb_keys).
-        * @param id an id
-        * @return the corresponding normalized id
-        */
-       static int normalize(int id) {
-               return id & (Common.NB_KEYS - 1);
-       }
-       /**
-        * \brief Sets a finger of the current node.
-        * \param finger_index index of the finger to set (0 to nb_bits - 1)
-        * \param id the id to set for this finger
-        */
-       void setFinger(int fingerIndex, int id) {
-               if (id != fingers[fingerIndex]) {
-                       fingers[fingerIndex] = id;
-                       lastChangeDate = Msg.getClock();
-               }
-       }
+  protected int id;
+  protected String mailbox;
+  protected int predId;
+  protected String predMailbox;
+  protected int nextFingerToFix;
+  protected Comm commReceive;
+  ///Last time I changed a finger or my predecessor
+  protected double lastChangeDate;
+  int fingers[];
+
+  public Node(Host host, String name, String[] args) {
+    super(host,name,args);
+  }
+
+  @Override
+  public void main(String[] args) throws MsgException {
+    if (args.length != 2 && args.length != 4) {
+      Msg.info("You need to provide 2 or 4 arguments.");
+      return;
+    }
+    double initTime = Msg.getClock();
+    int i;
+    boolean joinSuccess = false;
+    double deadline;
+
+    double nextStabilizeDate = initTime + Common.PERIODIC_STABILIZE_DELAY;
+    double nextFixFingersDate = initTime + Common.PERIODIC_FIX_FINGERS_DELAY;
+    double nextCheckPredecessorDate = initTime + Common.PERIODIC_CHECK_PREDECESSOR_DELAY;
+    double nextLookupDate = initTime + Common.PERIODIC_LOOKUP_DELAY;
+
+    id = Integer.valueOf(args[0]);
+    mailbox = Integer.toString(id);
+
+    fingers = new int[Common.NB_BITS];
+    for (i = 0; i < Common.NB_BITS; i++) {
+      fingers[i] = -1;
+      setFinger(i,this.id);
+    }
+
+    //First node
+    if (args.length == 2) {
+      deadline = Integer.valueOf(args[1]);
+      create();
+      joinSuccess = true;
+    } else {
+      int knownId = Integer.valueOf(args[1]);
+      deadline = Integer.valueOf(args[3]);
+      //Msg.info("Hey! Let's join the system with the id " + id + ".");
+
+      joinSuccess = join(knownId);
+    }
+    if (joinSuccess) {
+      double currentClock = Msg.getClock();
+      while (currentClock < (initTime + deadline) && currentClock < Common.MAX_SIMULATION_TIME) {
+        if (commReceive == null) {
+          commReceive = Task.irecv(this.mailbox);
+        }
+        try {
+          if (!commReceive.test()) {
+            if (currentClock >= nextStabilizeDate) {
+              stabilize();
+              nextStabilizeDate = Msg.getClock() + Common.PERIODIC_STABILIZE_DELAY;
+            } else if (currentClock >= nextFixFingersDate) {
+              fixFingers();
+              nextFixFingersDate = Msg.getClock() + Common.PERIODIC_FIX_FINGERS_DELAY;
+            } else if (currentClock >= nextCheckPredecessorDate) {
+              this.checkPredecessor();
+              nextCheckPredecessorDate = Msg.getClock() + Common.PERIODIC_CHECK_PREDECESSOR_DELAY;
+            } else if (currentClock >= nextLookupDate) {
+              this.randomLookup();
+              nextLookupDate = Msg.getClock() + Common.PERIODIC_LOOKUP_DELAY;
+            } else {
+              waitFor(5);
+            }
+            currentClock = Msg.getClock();
+          } else {
+            handleTask(commReceive.getTask());
+            currentClock = Msg.getClock();
+            commReceive = null;
+          }
+        }
+        catch (Exception e) {
+          currentClock = Msg.getClock();
+          commReceive = null;
+        }
+      }
+      leave();
+      if (commReceive != null) {
+        commReceive = null;
+      }
+    } else {
+      Msg.info("I couldn't join the ring");
+    }
+  }
+
+  void handleTask(Task task) {
+    if (task instanceof FindSuccessorTask) {
+      FindSuccessorTask fTask = (FindSuccessorTask)task;
+      Msg.debug("Receiving a 'Find Successor' request from " + fTask.issuerHostName + " for id " + fTask.requestId);
+      // is my successor the successor?
+      if (isInInterval(fTask.requestId, this.id + 1, fingers[0])) {
+        //Msg.info("Send the request to " + fTask.answerTo + " with answer " + fingers[0]);
+        FindSuccessorAnswerTask answer = new FindSuccessorAnswerTask(getHost().getName(), mailbox, fingers[0]);
+        answer.dsend(fTask.answerTo);
+      } else {
+        // otherwise, forward the request to the closest preceding finger in my table
+        int closest = closestPrecedingNode(fTask.requestId);
+        //Msg.info("Forward the request to " + closest);
+        fTask.dsend(Integer.toString(closest));
+      }
+    } else if (task instanceof GetPredecessorTask) {
+      GetPredecessorTask gTask = (GetPredecessorTask)(task);
+      Msg.debug("Receiving a 'Get Predecessor' request from " + gTask.issuerHostName);
+      GetPredecessorAnswerTask answer = new GetPredecessorAnswerTask(getHost().getName(), mailbox, predId);
+      answer.dsend(gTask.answerTo);
+    } else if (task instanceof NotifyTask) {
+      NotifyTask nTask = (NotifyTask)task;
+      notify(nTask.requestId);
+    } else {
+      Msg.debug("Ignoring unexpected task of type:" + task);
+    }
+  }
+
+  void leave() {
+    Msg.debug("Well Guys! I Think it's time for me to quit ;)");
+    quitNotify(1); //Notify my successor
+    quitNotify(-1); //Notify my predecessor.
+  }
+
+  /**
+   * @brief Notifies the successor or the predecessor of the current node of the departure
+   * @param to 1 to notify the successor, -1 to notify the predecessor
+   */
+  static void quitNotify( int to) {
+    //TODO
+  }
+
+  /**
+   * @brief Initializes the current node as the first one of the system.
+   */
+  void create() {
+    Msg.debug("Create a new Chord ring...");
+    setPredecessor(-1);
+  }
+
+  // Makes the current node join the ring, knowing the id of a node already in the ring 
+  boolean join(int knownId) {
+    Msg.info("Joining the ring with id " + this.id + " knowing node " + knownId);
+    setPredecessor(-1);
+    int successorId = remoteFindSuccessor(knownId, this.id);
+    if (successorId == -1) {
+      Msg.info("Cannot join the ring.");
+    } else {
+      setFinger(0, successorId);
+    }
+    return successorId != -1;
+  }
+
+  void setPredecessor(int predecessorId) {
+    if (predecessorId != predId) {
+      predId = predecessorId;
+      if (predecessorId != -1) {
+        predMailbox = Integer.toString(predId);
+      }
+      lastChangeDate = Msg.getClock();
+    }
+  }
+
+  /**
+   * @brief Asks another node its predecessor.
+   * @param askTo the node to ask to
+   * @return the id of its predecessor node, or -1 if the request failed(or if the node does not know its predecessor)
+   */
+  int remoteGetPredecessor(int askTo) {
+    int predecessorId = -1;
+    boolean stop = false;
+    Msg.debug("Sending a 'Get Predecessor' request to " + askTo);
+    String mailboxTo = Integer.toString(askTo);
+    GetPredecessorTask sendTask = new GetPredecessorTask(getHost().getName(), this.mailbox);
+    try {
+      sendTask.send(mailboxTo, Common.TIMEOUT);
+      try {
+        do {
+          if (commReceive == null) {
+            commReceive = Task.irecv(this.mailbox);
+          }
+          commReceive.waitCompletion(Common.TIMEOUT);
+          Task taskReceived = commReceive.getTask();
+          if (taskReceived instanceof GetPredecessorAnswerTask) {
+            predecessorId = ((GetPredecessorAnswerTask) taskReceived).answerId;
+            stop = true;
+          } else {
+            handleTask(taskReceived);
+          }
+          commReceive = null;
+        } while (!stop);
+      }
+      catch (MsgException e) {
+        commReceive = null;
+        stop = true;
+      }
+    }
+    catch (MsgException e) {
+      Msg.debug("Failed to send the Get Predecessor request");
+    }
+    return predecessorId;
+  }
+
+  /**
+   * @brief Makes the current node find the successor node of an id.
+   * @param node the current node
+   * @param id the id to find
+   * @return the id of the successor node, or -1 if the request failed
+   */
+  int findSuccessor(int id) {
+    if (isInInterval(id, this.id + 1, fingers[0])) {
+      return fingers[0];
+    }
+
+    int closest = this.closestPrecedingNode(id);
+    return remoteFindSuccessor(closest, id);
+  }
+
+  // Asks another node the successor node of an id.
+  int remoteFindSuccessor(int askTo, int id) {
+    int successor = -1;
+    boolean stop = false;
+    String mailbox = Integer.toString(askTo);
+    Task sendTask = new FindSuccessorTask(getHost().getName(), this.mailbox, id);
+    Msg.debug("Sending a 'Find Successor' request to " + mailbox + " for id " + id);
+    try {
+      sendTask.send(mailbox, Common.TIMEOUT);
+      do {
+        if (commReceive == null) {
+          commReceive = Task.irecv(this.mailbox);
+        }
+        try {
+          commReceive.waitCompletion(Common.TIMEOUT);
+          Task task = commReceive.getTask();
+          if (task instanceof FindSuccessorAnswerTask) {
+            //TODO: Check if this this our answer.
+            FindSuccessorAnswerTask fTask = (FindSuccessorAnswerTask) task;
+            stop = true;
+            successor = fTask.answerId;
+          } else {
+            handleTask(task);
+          }
+          commReceive = null;
+        }
+        catch (TimeoutException e) {
+          stop = true;
+          commReceive = null;
+        }
+      } while (!stop);
+    }
+    catch (TimeoutException e) {
+      Msg.debug("Failed to send the 'Find Successor' request");
+    }
+    catch (MsgException e) {
+      Msg.debug("Failed to receive Find Successor");
+    }
+
+    return successor;
+  }
+
+  // This function is called periodically. It checks the immediate successor of the current node.
+  void stabilize() {
+    Msg.debug("Stabilizing node");
+    int candidateId;
+    int successorId = fingers[0];
+    if (successorId != this.id){
+      candidateId = remoteGetPredecessor(successorId);
+    } else {
+      candidateId = predId;
+    }
+    //This node is a candidate to become my new successor
+    if (candidateId != -1 && isInInterval(candidateId, this.id + 1, successorId - 1)) {
+      setFinger(0, candidateId);
+    }
+    if (successorId != this.id) {
+      remoteNotify(successorId, this.id);
+    }
+  }
+
+  /**
+   * @brief Notifies the current node that its predecessor may have changed.
+   * @param candidate_id the possible new predecessor
+   */
+  void notify(int predecessorCandidateId) {
+    if (predId == -1 || isInInterval(predecessorCandidateId, predId + 1, this.id - 1 )) {
+      setPredecessor(predecessorCandidateId);
+    }
+  }
+
+  /**
+   * @brief Notifies a remote node that its predecessor may have changed.
+   * @param notify_id id of the node to notify
+   * @param candidate_id the possible new predecessor
+   */
+  void remoteNotify(int notifyId, int predecessorCandidateId) {
+    Msg.debug("Sending a 'Notify' request to " + notifyId);
+    Task sentTask = new NotifyTask(getHost().getName(), this.mailbox, predecessorCandidateId);
+    sentTask.dsend(Integer.toString(notifyId));
+  }
+
+  // This function is called periodically.
+  // It refreshes the finger table of the current node.
+  void fixFingers() {
+    Msg.debug("Fixing fingers");
+    int i = this.nextFingerToFix;
+    int id = this.findSuccessor(this.id + (int)Math.pow(2,i)); //FIXME: SLOW
+    if (id != -1) {
+      if (id != fingers[i]) {
+        setFinger(i, id);
+      }
+      nextFingerToFix = (i + 1) % Common.NB_BITS;
+    }
+  }
+
+  // This function is called periodically.
+  // It checks whether the predecessor has failed
+  void checkPredecessor() {
+    //TODO
+  }
+
+  // Performs a find successor request to a random id.
+  void randomLookup() {
+    int id = 1337;
+    //Msg.info("Making a lookup request for id " + id);
+    findSuccessor(id);
+  }
+
+  /**
+   * @brief Returns the closest preceding finger of an id with respect to the finger table of the current node.
+   * @param id the id to find
+   * @return the closest preceding finger of that id
+   */
+  int closestPrecedingNode(int id) {
+    int i;
+    for (i = Common.NB_BITS - 1; i >= 0; i--) {
+      if (isInInterval(fingers[i], this.id + 1, id - 1)) {
+        return fingers[i];
+      }
+    }
+    return this.id;
+  }
+
+  /**
+   * @brief Returns whether an id belongs to the interval [start, end].
+   *
+   * The parameters are noramlized to make sure they are between 0 and nb_keys - 1).
+   * 1 belongs to [62, 3]
+   * 1 does not belong to [3, 62]
+   * 63 belongs to [62, 3]
+   * 63 does not belong to [3, 62]
+   * 24 belongs to [21, 29]
+   * 24 does not belong to [29, 21]
+   *
+   * @param id id to check
+   * @param start lower bound
+   * @param end upper bound
+   * @return a non-zero value if id in in [start, end]
+   */
+  static boolean isInInterval(int id, int start, int end) {
+    id = normalize(id);
+    start = normalize(start);
+    end = normalize(end);
+
+    // make sure end >= start and id >= start
+    if (end < start) {
+      end += Common.NB_KEYS;
+    }
+    if (id < start) {
+      id += Common.NB_KEYS;
+    }
+    return (id <= end);
+  }
+
+  /**
+   * @brief Turns an id into an equivalent id in [0, nb_keys).
+   * @param id an id
+   * @return the corresponding normalized id
+   */
+  static int normalize(int id) {
+    return id & (Common.NB_KEYS - 1);
+  }
+
+  /**
+   * @brief Sets a finger of the current node.
+   * @param finger_index index of the finger to set (0 to nb_bits - 1)
+   * @param id the id to set for this finger
+   */
+  void setFinger(int fingerIndex, int id) {
+    if (id != fingers[fingerIndex]) {
+      fingers[fingerIndex] = id;
+      lastChangeDate = Msg.getClock();
+    }
+  }
 }
index b36c4ca..b7b6919 100644 (file)
@@ -7,9 +7,9 @@
 package chord;
 
 public class NotifyTask extends ChordTask {
-       public int requestId;
-       public NotifyTask(String issuerHostname, String answerTo, int requestId) {
-               super(issuerHostname, answerTo);
-               this.requestId = requestId;
-       }
+  public int requestId;
+  public NotifyTask(String issuerHostname, String answerTo, int requestId) {
+    super(issuerHostname, answerTo);
+    this.requestId = requestId;
+  }
 }
index f04ba2d..6aa3bdf 100644 (file)
@@ -1,59 +1,50 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Gatien" function="chord.Node">
     <argument value="48"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="400"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="McGee" function="chord.Node">
     <argument value="42"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="300"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="iRMX" function="chord.Node">
     <argument value="38"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="200"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Geoff" function="chord.Node">
     <argument value="32"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="100"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="TeX" function="chord.Node">
     <argument value="21"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="40"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Jean_Yves" function="chord.Node">
     <argument value="14"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="16"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-  
   <process host="Boivin" function="chord.Node">
     <argument value="8"/>         <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="1"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Jacquelin" function="chord.Node">
     <argument value="1"/>         <!-- my id -->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
 </platform>
index 9a0b708..9a64392 100644 (file)
@@ -22,22 +22,11 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/cloud.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 9848bc3..f5f2cd9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,35 +6,34 @@
 
 package cloud;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
-/**
- * Example showing the use of the new experimental Cloud API.
- */
+
 public class Cloud {
-       public static final double task_comp_size = 10;
-       public static final double task_comm_size = 10;
-       public static final int hostNB = 2 ; 
-       public static void main(String[] args) throws MsgException {       
-           Msg.init(args); 
-           
-           if (args.length < 1) {
-               Msg.info("Usage  : Cloud platform_file");
-               Msg.info("Usage  : Cloud platform.xml");
-               System.exit(1);
-           }
-           /* Construct the platform */
-               Msg.createEnvironment(args[0]);
-               Host[] hosts = Host.all();
-               if (hosts.length < hostNB+1) {
-                       Msg.info("I need at least "+ (hostNB+1) +"  hosts in the platform file, but " + args[0] + " contains only " + hosts.length + " hosts");
-                       System.exit(42);
-               }
-               Msg.info("Start"+ hostNB +"  hosts");
-               new Master(hosts[0],"Master",hosts).start();
-               /* Execute the simulation */
-               Msg.run();
-               
+  public static final double task_comp_size = 10;
+  public static final double task_comm_size = 10;
+  public static final int hostNB = 2 ; 
+  public static void main(String[] args) throws MsgException {
+    Msg.init(args); 
+
+    if (args.length < 1) {
+      Msg.info("Usage   : Cloud platform_file");
+      Msg.info("Usage  : Cloud ../platforms/platform.xml");
+      System.exit(1);
+    }
+
+    /* Construct the platform */
+    Msg.createEnvironment(args[0]);
+    Host[] hosts = Host.all();
+    if (hosts.length < hostNB+1) {
+      Msg.info("I need at least "+ (hostNB+1) +"  hosts in the platform file, but " + args[0] + " contains only "
+               + hosts.length + " hosts");
+      System.exit(42);
     }
+    Msg.info("Start"+ hostNB +"  hosts");
+    new Master(hosts[0],"Master",hosts).start();
+    /* Execute the simulation */
+    Msg.run();
+  }
 }
index b710b2f..d0cebd0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014,2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,7 +9,7 @@ package cloud;
 import org.simgrid.msg.Task;
 
 public class FinalizeTask extends Task {
-       public FinalizeTask(double compSize, double commSize) {
-               super("Finalize",compSize,commSize);
-       }
+  public FinalizeTask(double compSize, double commSize) {
+    super("Finalize",compSize,commSize);
+  }
 }
\ No newline at end of file
index d3606c9..c1e1373 100644 (file)
@@ -8,88 +8,87 @@ package cloud;
 
 import java.util.ArrayList;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
-import org.simgrid.msg.Task;
 import org.simgrid.msg.VM;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Master extends Process {
-       private Host[] hosts;
-       
-       public Master(Host host, String name, Host[] hosts) {
-               super(host,name,null);
-               this.hosts = hosts;
-       }
-       public void main(String[] args) throws MsgException {
-               int slavesCount = Cloud.hostNB;
-               
-               ArrayList<VM> vms = new ArrayList<VM>();
-               
-               // Create one VM per host and bind a process inside each one. 
-               for (int i = 0; i < slavesCount; i++) {
-                       Msg.info("create VM0"+i);       
-                       VM vm = new VM(hosts[i+1],"VM0"+i);
-                       vm.start();
-                       vms.add(vm);
-                       Slave slave = new Slave(vm,i);
-                       Msg.info("Put Worker "+slave.getName()+ " on "+vm.getName());
-                       slave.start();
-       
-               }
-               Msg.info("Launched " + vms.size() + " VMs");
-               
-               Msg.info("Send a first batch of work to everyone");
-               workBatch(slavesCount);
-               
-               Msg.info("Suspend all VMs");
-               for (int i = 0; i < vms.size(); i++) {
-                       Msg.info("Suspend "+vms.get(i).getName());
-                       vms.get(i).suspend();
-               }
-               
-               Msg.info("Wait a while");
-               waitFor(2);
-               
-               Msg.info("Resume all VMs.");
-               for (int i = 0; i < vms.size(); i++) {
-                       vms.get(i).resume();
-               }
-               
-               Msg.info("Sleep long enough for everyone to be done with previous batch of work");
-               waitFor(1000 - Msg.getClock());
-               
-/*             Msg.info("Add one more process per VM.");
-               for (int i = 0; i < vms.size(); i++) {
-                       VM vm = vms.get(i);
-                       Slave slave = new Slave(vm,i + vms.size());
-                       slave.start();
-               }
-       
-               workBatch(slavesCount * 2);
+  private Host[] hosts;
+
+  public Master(Host host, String name, Host[] hosts) {
+    super(host,name,null);
+    this.hosts = hosts;
+  }
+
+  public void main(String[] args) throws MsgException {
+    int slavesCount = Cloud.hostNB;
+    ArrayList<VM> vms = new ArrayList<VM>();
+
+    // Create one VM per host and bind a process inside each one. 
+    for (int i = 0; i < slavesCount; i++) {
+      Msg.info("create VM0"+i);  
+      VM vm = new VM(hosts[i+1],"VM0"+i);
+      vm.start();
+      vms.add(vm);
+      Slave slave = new Slave(vm,i);
+      Msg.info("Put Worker "+slave.getName()+ " on "+vm.getName());
+      slave.start();
+    }
+
+    Msg.info("Launched " + vms.size() + " VMs");
+
+    Msg.info("Send a first batch of work to everyone");
+    workBatch(slavesCount);
+
+    Msg.info("Suspend all VMs");
+    for (int i = 0; i < vms.size(); i++) {
+      Msg.info("Suspend "+vms.get(i).getName());
+      vms.get(i).suspend();
+    }
+
+    Msg.info("Wait a while");
+    waitFor(2);
+
+    Msg.info("Resume all VMs.");
+    for (int i = 0; i < vms.size(); i++) {
+      vms.get(i).resume();
+    }
+
+    Msg.info("Sleep long enough for everyone to be done with previous batch of work");
+    waitFor(1000 - Msg.getClock());
+
+/*    Msg.info("Add one more process per VM.");
+    for (int i = 0; i < vms.size(); i++) {
+      VM vm = vms.get(i);
+      Slave slave = new Slave(vm,i + vms.size());
+      slave.start();
+    }
+
+    workBatch(slavesCount * 2);
 */
 
-               Msg.info("Migrate everyone to "+hosts[3].getName());
-               for (int i = 0; i < vms.size(); i++) {
-                       Msg.info("Migrate "+vms.get(i).getName()+"from"+hosts[i+1].getName()+"to "+hosts[3].getName());
-                       vms.get(i).migrate(hosts[3]);
-               }
-               
-               
-               Msg.info("Let's shut down the simulation and kill everyone.");
-               
-               for (int i = 0; i < vms.size(); i++) {
-                       vms.get(i).shutdown();
-               }                               
-               Msg.info("Master done.");
-       }
-       
-       public void workBatch(int slavesCount) throws MsgException {
-               for (int i = 0; i < slavesCount; i++) {
-                       Task task = new Task("Task0" + i, Cloud.task_comp_size, Cloud.task_comm_size);
-                       Msg.info("Sending to WRK0" + i);
-                       task.send("MBOX:WRK0" + i);
-               }
-       }
+    Msg.info("Migrate everyone to "+hosts[3].getName());
+    for (int i = 0; i < vms.size(); i++) {
+      Msg.info("Migrate "+vms.get(i).getName()+"from"+hosts[i+1].getName()+"to "+hosts[3].getName());
+      vms.get(i).migrate(hosts[3]);
+    }
+
+    Msg.info("Let's shut down the simulation and kill everyone.");
+
+    for (int i = 0; i < vms.size(); i++) {
+      vms.get(i).shutdown();
+    }
+    Msg.info("Master done.");
+  }
+
+  public void workBatch(int slavesCount) throws MsgException {
+    for (int i = 0; i < slavesCount; i++) {
+      Task task = new Task("Task0" + i, Cloud.task_comp_size, Cloud.task_comm_size);
+      Msg.info("Sending to WRK0" + i);
+      task.send("MBOX:WRK0" + i);
+    }
+  }
 }
index d97b0be..b8b3728 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,41 +6,39 @@
 
 package cloud;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Slave extends Process {
-       private int number;
-       public Slave(Host host, int number) {
-               super(host,"WRK0" + number,null);
-               this.number = number;
-       }
-       public void main(String[] args) throws MsgException {
-               Msg.info(this.getName() +" is listenning on MBOX:WRK0"+ number);
-               while(true) {                   
-                       Task task;
-                        try {
-                                task = Task.receive("MBOX:WRK0"+number);
-                        } catch (MsgException e) {
-                                Msg.debug("Received failed. I'm done. See you!");
-                                break;
-                        }
-                       if (task instanceof FinalizeTask) {
-                                Msg.info("Received Finalize. I'm done. See you!");
-                               break;
-                       }
-                       Msg.info("Received \"" + task.getName() +  "\". Processing it.");
-                       try {
-                               task.execute();
-                       } catch (MsgException e) {
-
-                       }
-                       Msg.info(this.getName() +" executed task (" + task.getName()+")");
-               }
+  private int number;
+  public Slave(Host host, int number) {
+    super(host,"WRK0" + number,null);
+    this.number = number;
+  }
 
-               
-       }
+  public void main(String[] args) throws MsgException {
+    Msg.info(this.getName() +" is listenning on MBOX:WRK0"+ number);
+    while(true) {
+      Task task;
+      try {
+        task = Task.receive("MBOX:WRK0"+number);
+      } catch (MsgException e) {
+        Msg.debug("Received failed. I'm done. See you!");
+        break;
+      }
+      if (task instanceof FinalizeTask) {
+        Msg.info("Received Finalize. I'm done. See you!");
+        break;
+      }
+      Msg.info("Received \"" + task.getName() +  "\". Processing it.");
+      try {
+        task.execute();
+      } catch (MsgException e) {
+      }
+      Msg.info(this.getName() +" executed task (" + task.getName()+")");
+    }
+  }
 }
index 5736279..b02fcf6 100644 (file)
@@ -20,22 +20,11 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f967fa1..17d8e09 100644 (file)
@@ -8,63 +8,64 @@ package cloud.energy;
 import org.simgrid.msg.*;
 import org.simgrid.msg.Process;
 
-/* This class is a process in charge of running the test. It creates and starts the VMs, and fork processes within the VMs */
+/* This class is a process in charge of running the test. It creates and starts the VMs, and fork processes within VMs */
 public class EnergyVMRunner extends Process {
 
-       public class DummyProcess extends Process {
-               public  DummyProcess (Host host, String name) {
-                       super(host, name); 
-               }
-
-               public void main(String[] args) {               
-                       Task  task = new Task(this.getHost().getName()+"-task", 300E6 , 0);
-                       try {
-                               task.execute();   
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       } 
-                       Msg.info("This worker is done."); 
-               }
-       }
-
-       EnergyVMRunner(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
-               super(host, name, args);
-       }
-
-       public void main(String[] strings) throws MsgException, HostNotFoundException {
-               double startTime = 0;
-               double endTime = 0;
-
-               /* get hosts */
-               Host host1 = Host.getByName("MyHost1");
-               Host host2 = Host.getByName("MyHost2");
-               Host host3 = Host.getByName("MyHost3");
-
-               Msg.info("Creating and starting two VMs");
-               VM vmHost1 = new VM(host1, "vmHost1", 4, 2048, 100, null, 1024 * 20, 10,50);
-               vmHost1.start();
-
-               VM vmHost3 = new VM(host3, "vmHost3", 4, 2048, 100, null, 1024 * 20, 10,50);
-               vmHost3.start();
-
-               Msg.info("Create two tasks on Host1: one inside a VM, the other directly on the host");
-               new DummyProcess (vmHost1, "p11"); 
-               new DummyProcess (host1, "p12"); 
-
-               Msg.info("Create two tasks on Host2: both directly on the host");
-               new DummyProcess (host2, "p21"); 
-               new DummyProcess (host2, "p22"); 
-
-               Msg.info("Create two tasks on Host3: both inside a VM");
-               new DummyProcess (vmHost3, "p31"); 
-               new DummyProcess (vmHost3, "p312"); 
-
-               Msg.info("Wait 5 seconds. The tasks are still running (they run for 3 seconds, but 2 tasks are co-located, so they run for 6 seconds)"); 
-               waitFor(5); 
-               Msg.info("Wait another 5 seconds. The tasks stop at some point in between"); 
-               waitFor(5); 
-
-               vmHost1.shutdown(); 
-               vmHost3.shutdown(); 
-       }
+  public class DummyProcess extends Process {
+    public  DummyProcess (Host host, String name) {
+      super(host, name); 
+    }
+
+    public void main(String[] args) {    
+      Task  task = new Task(this.getHost().getName()+"-task", 300E6 , 0);
+      try {
+        task.execute();   
+      } catch (Exception e) {
+        e.printStackTrace();
+      } 
+      Msg.info("This worker is done."); 
+    }
+  }
+
+  EnergyVMRunner(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
+    super(host, name, args);
+  }
+
+  public void main(String[] strings) throws MsgException, HostNotFoundException {
+    double startTime = 0;
+    double endTime = 0;
+
+    /* get hosts */
+    Host host1 = Host.getByName("MyHost1");
+    Host host2 = Host.getByName("MyHost2");
+    Host host3 = Host.getByName("MyHost3");
+
+    Msg.info("Creating and starting two VMs");
+    VM vmHost1 = new VM(host1, "vmHost1", 4, 2048, 100, null, 1024 * 20, 10,50);
+    vmHost1.start();
+
+    VM vmHost3 = new VM(host3, "vmHost3", 4, 2048, 100, null, 1024 * 20, 10,50);
+    vmHost3.start();
+
+    Msg.info("Create two tasks on Host1: one inside a VM, the other directly on the host");
+    new DummyProcess (vmHost1, "p11"); 
+    new DummyProcess (host1, "p12"); 
+
+    Msg.info("Create two tasks on Host2: both directly on the host");
+    new DummyProcess (host2, "p21"); 
+    new DummyProcess (host2, "p22"); 
+
+    Msg.info("Create two tasks on Host3: both inside a VM");
+    new DummyProcess (vmHost3, "p31"); 
+    new DummyProcess (vmHost3, "p312"); 
+
+    Msg.info("Wait 5 seconds. The tasks are still running (they run for 3 seconds, but 2 tasks are co-located, "
+             + "so they run for 6 seconds)"); 
+    waitFor(5); 
+    Msg.info("Wait another 5 seconds. The tasks stop at some point in between"); 
+    waitFor(5); 
+
+    vmHost1.shutdown(); 
+    vmHost3.shutdown(); 
+  }
 }
index 931d2fd..1913e4d 100644 (file)
@@ -5,29 +5,28 @@
 
 package cloud.energy;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 public class Main {
 
-       public static void main(String[] args) throws NativeException, HostNotFoundException {
-               /* Init. internal values */
-               Msg.energyInit();
-               Msg.init(args);
+  public static void main(String[] args) throws NativeException, HostNotFoundException {
+    Msg.energyInit();
+    Msg.init(args);
 
-               if (args.length < 1) {
-                       Msg.info("Usage: Main platform_file.xml");
-                       System.exit(1);
-               }
+    if (args.length < 1) {
+      Msg.info("Usage: Main ../platforms/energy_platform_file.xml");
+      System.exit(1);
+    }
 
-               /* construct the platform */
-               Msg.createEnvironment(args[0]);
-               
-               /* Create and start a runner for the experiment */
-               new EnergyVMRunner(Host.all()[0],"energy VM runner",null).start();
+    /* construct the platform */
+    Msg.createEnvironment(args[0]);
+    
+    /* Create and start a runner for the experiment */
+    new EnergyVMRunner(Host.all()[0],"energy VM runner",null).start();
 
-               Msg.run();
-       }
+    Msg.run();
+  }
 }
index 113327a..4cd57c4 100644 (file)
@@ -23,24 +23,16 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/migration.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deploy_simple.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/README
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index cd0a6ae..df35b64 100644 (file)
@@ -6,37 +6,34 @@
 
 package cloud.migration;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 public class Main {
-    private static boolean endOfTest = false;
-
-    public static void setEndOfTest(){
-        endOfTest=true;
-    }
+  private static boolean endOfTest = false;
 
-    public static boolean isEndOfTest(){
-        return endOfTest;
-    }
-
-    public static void main(String[] args) throws NativeException {
-       /* Init. internal values */
-        Msg.init(args);
+  public static void setEndOfTest(){
+    endOfTest=true;
+  }
 
-        if (args.length < 2) {
-            Msg.info("Usage  : Main platform_file.xml dployment_file.xml");
-            System.exit(1);
-        }
+  public static boolean isEndOfTest(){
+    return endOfTest;
+  }
 
-       /* construct the platform and deploy the application */
-        Msg.createEnvironment(args[0]);
-        Msg.deployApplication(args[1]);
+  public static void main(String[] args) throws NativeException {
+    Msg.init(args);
 
-        Msg.run();
+    if (args.length < 2) {
+      Msg.info("Usage  : Main platform_file.xml dployment_file.xml");
+      System.exit(1);
+    }
 
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
 
-    }
+    Msg.run();
+  }
 }
index b697049..e67b32c 100644 (file)
-/* Copyright (c) 2014. The SimGrid Team.
+/* Copyright (c) 2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package cloud.migration;
+import java.util.ArrayList;
+import java.util.List;
+
 
 import org.simgrid.msg.*;
 import org.simgrid.msg.Process;
-import java.util.ArrayList;
-import java.util.List;
 
 public class Test extends Process{
 
-    Test(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
-        super(host, name, args);
+  Test(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
+    super(host, name, args);
+  }
+
+  public void main(String[] strings) throws MsgException {
+    double startTime = 0;
+    double endTime = 0;
+
+    /* get hosts 1 and 2*/
+    Host host0 = null;
+    Host host1 = null;
+
+    try {
+      host0 = Host.getByName("host0");
+      host1 = Host.getByName("host1");
+    }catch (HostNotFoundException e) {
+      e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
     }
 
-    public void main(String[] strings) throws MsgException {
-
-       double startTime = 0;
-       double endTime = 0;
-
-       /* get hosts 1 and 2*/
-        Host host0 = null;
-        Host host1 = null;
-
-        try {
-            host0 = Host.getByName("host0");
-            host1 = Host.getByName("host1");
-        }catch (HostNotFoundException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        List<VM> vms = new ArrayList<VM>();
-
-      /* Create VM1 */
-        int dpRate = 70;
-        int load1 = 90;
-        int load2 = 80;
-
-
-                 Msg.info("This example evaluates the migration time of a VM in presence of collocated VMs on the source and the dest nodes");
-                 Msg.info("The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% \"(see cloudcom 2013 paper \"Adding a Live Migration Model Into SimGrid\" for further information) ");
-
-                 Msg.info("Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see whether it impacts or not the migration time");
-        XVM vm1 = null;
-        vm1 = new XVM(
-                host0,
-                "vm0",
-                1, // Nb of vcpu
-                2048, // Ramsize,
-                125, // Net Bandwidth
-                null, //VM disk image
-                -1,   //size of disk image,
-                125, // Net bandwidth,
-                dpRate // Memory intensity
+    List<VM> vms = new ArrayList<VM>();
+
+    /* Create VM1 */
+    int dpRate = 70;
+    int load1 = 90;
+    int load2 = 80;
+
+    Msg.info("This example evaluates the migration time of a VM in presence of collocated VMs on the source and "
+             + "the dest nodes");
+    Msg.info("The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% \" "
+             +"(see cloudcom 2013 paper \"Adding a Live Migration Model Into SimGrid\" for further information) ");
+
+    Msg.info("Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see "
+             + "whether it impacts or not the migration time");
+    XVM vm1 = null;
+    vm1 = new XVM(host0, "vm0",
+        1, // Nb of vcpu
+        2048, // Ramsize,
+        125, // Net Bandwidth
+        null, //VM disk image
+        -1,   //size of disk image,
+        125, // Net bandwidth,
+        dpRate // Memory intensity
         );
-        vms.add(vm1);
-        vm1.start();
-
-        /* Collocated VMs */
-        int collocatedSrc = 6;
-        int vmSrcLoad[] = {
-                80,
-                0,
-                90,
-                40,
-                30,
-                90,
-        };
-
-        XVM tmp = null;
-        for (int i=1 ; i<= collocatedSrc ; i++){
-            tmp = new XVM(
-                    host0,
-                    "vm"+i,
-                    1, // Nb of vcpu
-                    2048, // Ramsize,
-                    125, // Net Bandwidth
-                    null, //VM disk image
-                    -1,   //size of disk image,
-                    125, // Net bandwidth,
-                    dpRate // Memory intensity
-            );
-            vms.add(tmp);
-            tmp.start();
-            tmp.setLoad(vmSrcLoad[i-1]);
-        }
-
-        int collocatedDst = 6;
-        int vmDstLoad[] = {
-                0,
-                40,
-                90,
-                100,
-                0,
-                80,
-        };
-
-        for (int i=1 ; i <= collocatedDst ; i++){
-            tmp = new XVM(
-                    host1,
-                    "vm"+(i+collocatedSrc),
-                    1, // Nb of vcpu
-                    2048, // Ramsize,
-                    125, // Net Bandwidth
-                    null, //VM disk image
-                    -1,   //size of disk image,
-                    125, // Net bandwidth,
-                    dpRate // Memory intensity
-            );
-            vms.add(tmp);
-            tmp.start();
-            tmp.setLoad(vmDstLoad[i-1]);
-        }
-
-        Msg.info("Round trip of VM1 (load "+load1+"%)");
-        vm1.setLoad(load1);
-        Msg.info("     - Launch migration from host 0 to host 1");
-        startTime = Msg.getClock();
-        vm1.migrate(host1);
-        endTime = Msg.getClock();
-        Msg.info("     - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")");
-        Msg.info("     - Launch migration from host 1 to host 0");
-        startTime = Msg.getClock();
-        vm1.migrate(host0);
-        endTime = Msg.getClock();
-        Msg.info("     - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")");
-
-
-        Msg.info("\n \n \nRound trip of VM1 (load "+load2+"%)");
-        vm1.setLoad(load2);
-        Msg.info("     - Launch migration from host 0 to host 1");
-        startTime = Msg.getClock();
-        vm1.migrate(host1);
-        endTime = Msg.getClock();
-        Msg.info("     - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")");
-        Msg.info("     - Launch migration from host 1 to host 0");
-        startTime = Msg.getClock();
-        vm1.migrate(host0);
-        endTime = Msg.getClock();
-        Msg.info("     - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")");
-
-        Main.setEndOfTest();
-        Msg.info("Forcefully destroy VMs");
-        for (VM vm: vms)
-         vm.finalize();
-       
+    vms.add(vm1);
+    vm1.start();
+
+    /* Collocated VMs */
+    int collocatedSrc = 6;
+    int vmSrcLoad[] = {
+        80,
+        0,
+        90,
+        40,
+        30,
+        90,
+    };
+
+    XVM tmp = null;
+    for (int i=1 ; i<= collocatedSrc ; i++){
+      tmp = new XVM(host0, "vm"+i,
+          1, // Nb of vcpu
+          2048, // Ramsize,
+          125, // Net Bandwidth
+          null, //VM disk image
+          -1,   //size of disk image,
+          125, // Net bandwidth,
+          dpRate // Memory intensity
+          );
+      vms.add(tmp);
+      tmp.start();
+      tmp.setLoad(vmSrcLoad[i-1]);
     }
+
+    int collocatedDst = 6;
+    int vmDstLoad[] = {
+        0,
+        40,
+        90,
+        100,
+        0,
+        80,
+    };
+
+    for (int i=1 ; i <= collocatedDst ; i++){
+      tmp = new XVM(host1, "vm"+(i+collocatedSrc),
+          1, // Nb of vcpu
+          2048, // Ramsize,
+          125, // Net Bandwidth
+          null, //VM disk image
+          -1,   //size of disk image,
+          125, // Net bandwidth,
+          dpRate // Memory intensity
+          );
+      vms.add(tmp);
+      tmp.start();
+      tmp.setLoad(vmDstLoad[i-1]);
+    }
+
+    Msg.info("Round trip of VM1 (load "+load1+"%)");
+    vm1.setLoad(load1);
+    Msg.info("     - Launch migration from host 0 to host 1");
+    startTime = Msg.getClock();
+    vm1.migrate(host1);
+    endTime = Msg.getClock();
+    Msg.info("     - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")");
+    Msg.info("     - Launch migration from host 1 to host 0");
+    startTime = Msg.getClock();
+    vm1.migrate(host0);
+    endTime = Msg.getClock();
+    Msg.info("     - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")");
+
+    Msg.info("");
+    Msg.info("");
+    Msg.info("Round trip of VM1 (load "+load2+"%)");
+    vm1.setLoad(load2);
+    Msg.info("     - Launch migration from host 0 to host 1");
+    startTime = Msg.getClock();
+    vm1.migrate(host1);
+    endTime = Msg.getClock();
+    Msg.info("     - End of Migration from host 0 to host 1 (duration:"+(endTime-startTime)+")");
+    Msg.info("     - Launch migration from host 1 to host 0");
+    startTime = Msg.getClock();
+    vm1.migrate(host0);
+    endTime = Msg.getClock();
+    Msg.info("     - End of Migration from host 1 to host 0 (duration:"+(endTime-startTime)+")");
+
+    Main.setEndOfTest();
+    Msg.info("Forcefully destroy VMs");
+    for (VM vm: vms)
+      vm.finalize();
+  }
 }
index 47467bd..a564bb9 100644 (file)
 
 package cloud.migration;
 
-import org.simgrid.msg.*;
-import org.simgrid.msg.Process;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random; 
 
-// This test aims at validating that the migration process is robust in face of host turning off either on the SRC node or on the DST node. 
+import org.simgrid.msg.*;
+import org.simgrid.msg.Process;
 
+// This test aims at validating that the migration process is robust in face of host turning off either on the SRC 
+// node or on the DST node. 
 public class TestHostOnOff extends Process{    
 
-       public static Host host0 = null;
-        public static Host host1 = null;
-       public static Host host2 = null;
-     
+  public static Host host0 = null;
+  public static Host host1 = null;
+  public static Host host2 = null;
 
-    TestHostOnOff(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
-        super(host, name, args);
-    }
 
-    public void main(String[] strings) throws MsgException {
+  TestHostOnOff(Host host, String name, String[] args) throws HostNotFoundException, NativeException {
+    super(host, name, args);
+  }
 
-       double startTime = 0;
-       double endTime = 0;
+  public void main(String[] strings) throws MsgException {
+    double startTime = 0;
+    double endTime = 0;
 
-       /* get hosts 1 and 2*/
-       try {
-            host0 = Host.getByName("host0");
-            host1 = Host.getByName("host1");
-            host1 = Host.getByName("host2");
-        }catch (HostNotFoundException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-       
-        // Robustness on the SRC node
-       //for (int i =0 ; i < 55000 ; i++)
-        //  test_vm_migrate(host1, i);
-
-        // Robustness on the DST node
-       //for (int i =0 ; i < 55000 ; i++)
-        //  test_vm_migrate(host2, i);
-
-       /* End of Tests */
-        Msg.info("Nor more tests, Bye Bye !");
-        Main.setEndOfTest();
+    /* get hosts 1 and 2*/
+    try {
+      host0 = Host.getByName("host0");
+      host1 = Host.getByName("host1");
+      host1 = Host.getByName("host2");
+    }catch (HostNotFoundException e) {
+      e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
     }
 
-      public static void test_vm_migrate (Host hostToKill, long killAt) throws MsgException {
-        Msg.info("**** **** **** ***** ***** Test Migrate with host shutdown ***** ***** **** **** ****");
-        Msg.info("Turn on one host, assign a VM on this host, launch a process inside the VM, migrate the VM and turn off either the SRC or DST");
-
-        host1.off();
-        host2.off();
-        host1.on();
-        host2.on();
-
-        // Create VM0
-        int dpRate = 70;
-        XVM vm0 = null;
-        vm0 = new XVM(
-                host1,
-                "vm0",
-                1, // Nb of vcpu
-                2048, // Ramsize,
-                125, // Net Bandwidth
-                null, //VM disk image
-                -1,   //size of disk image,
-                125, // Net bandwidth,
-                dpRate // Memory intensity
+    // Robustness on the SRC node
+    //for (int i =0 ; i < 55000 ; i++)
+    //  test_vm_migrate(host1, i);
+
+    // Robustness on the DST node
+    //for (int i =0 ; i < 55000 ; i++)
+    //  test_vm_migrate(host2, i);
+
+    /* End of Tests */
+    Msg.info("Nor more tests, Bye Bye !");
+    Main.setEndOfTest();
+  }
+
+  public static void test_vm_migrate (Host hostToKill, long killAt) throws MsgException {
+    Msg.info("**** **** **** ***** ***** Test Migrate with host shutdown ***** ***** **** **** ****");
+    Msg.info("Turn on one host, assign a VM on this host, launch a process inside the VM, migrate the VM and "
+             + "turn off either the SRC or DST");
+
+    host1.off();
+    host2.off();
+    host1.on();
+    host2.on();
+
+    // Create VM0
+    int dpRate = 70;
+    XVM vm0 = null;
+    vm0 = new XVM(host1, "vm0",
+        1, // Nb of vcpu
+        2048, // Ramsize,
+        125, // Net Bandwidth
+        null, //VM disk image
+        -1,   //size of disk image,
+        125, // Net bandwidth,
+        dpRate // Memory intensity
         );
-        vm0.start();
-        vm0.setLoad(90);
-
-        String[] args = new String[3];
-
-        args[0] = "vm0";
-        args[1] = "host1";
-        args[2] = "host2";
-        new Process(host1, "Migrate-" + new Random().nextDouble(), args) {
-            public void main(String[] args) {
-                Host destHost = null;
-                Host sourceHost = null;
-
-                try {
-                    sourceHost = Host.getByName(args[1]);
-                    destHost = Host.getByName(args[2]);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    System.err.println("You are trying to migrate from/to a non existing node");
-                }
-                if (destHost != null) {
-                    if (sourceHost.isOn() && destHost.isOn()) {
-
-                        try {
-                            Msg.info("Migrate vm "+args[0]+" to node "+destHost.getName());
-                            VM.getVMByName(args[0]).migrate(destHost);
-                        } catch (HostFailureException e) {
-                            e.printStackTrace();
-                            Msg.info("Something occurs during the migration that cannot validate the operation");
-                        }
-                    }
-                }
-
+    vm0.start();
+    vm0.setLoad(90);
+
+    String[] args = new String[3];
+
+    args[0] = "vm0";
+    args[1] = "host1";
+    args[2] = "host2";
+    new Process(host1, "Migrate-" + new Random().nextDouble(), args) {
+      public void main(String[] args) {
+        Host destHost = null;
+        Host sourceHost = null;
+
+        try {
+          sourceHost = Host.getByName(args[1]);
+          destHost = Host.getByName(args[2]);
+        } catch (Exception e) {
+          e.printStackTrace();
+          System.err.println("You are trying to migrate from/to a non existing node");
+        }
+        if (destHost != null) {
+          if (sourceHost.isOn() && destHost.isOn()) {
+            try {
+              Msg.info("Migrate vm "+args[0]+" to node "+destHost.getName());
+              VM.getVMByName(args[0]).migrate(destHost);
+            } catch (HostFailureException e) {
+              e.printStackTrace();
+              Msg.info("Something occurs during the migration that cannot validate the operation");
             }
-        }.start();
-        
-       // Wait killAt ms before killing thehost
-       Process.sleep(killAt);
-        hostToKill.off();
-        Process.sleep(5);
-        Msg.info("The migration process should be stopped and we should catch an exception\n");
-        Process.sleep(5);
-
-        Process.sleep(50000);
-        Msg.info("Destroy VMs");
-        vm0.shutdown();
-        Process.sleep(20000);
-    }
-
-
-    public static void test_vm_shutdown_destroy () throws HostFailureException {
-
-        Msg.info("**** **** **** ***** ***** Test shutdown a VM ***** ***** **** **** ****");
-        Msg.info("Turn on host1, assign a VM on host1, launch a process inside the VM, and turn off the vm, " +
-                "and check whether you can reallocate the same VM");
-
-
-        // Create VM0
-        int dpRate = 70;
-        XVM vm0 = null;
-        vm0 = new XVM(
-                host1,
-                "vm0",
-                1, // Nb of vcpu
-                2048, // Ramsize,
-                125, // Net Bandwidth
-                null, //VM disk image
-                -1,   //size of disk image,
-                125, // Net bandwidth,
-                dpRate // Memory intensity
+          }
+        }
+      }
+    }.start();
+
+    // Wait killAt ms before killing thehost
+    Process.sleep(killAt);
+    hostToKill.off();
+    Process.sleep(5);
+    Msg.info("The migration process should be stopped and we should catch an exception\n");
+    Process.sleep(5);
+
+    Process.sleep(50000);
+    Msg.info("Destroy VMs");
+    vm0.shutdown();
+    Process.sleep(20000);
+  }
+
+  public static void test_vm_shutdown_destroy () throws HostFailureException {
+    Msg.info("**** **** **** ***** ***** Test shutdown a VM ***** ***** **** **** ****");
+    Msg.info("Turn on host1, assign a VM on host1, launch a process inside the VM, and turn off the vm, " +
+        "and check whether you can reallocate the same VM");
+
+    // Create VM0
+    int dpRate = 70;
+    XVM vm0 = null;
+    vm0 = new XVM(host1, "vm0",
+        1, // Nb of vcpu
+        2048, // Ramsize,
+        125, // Net Bandwidth
+        null, //VM disk image
+        -1,   //size of disk image,
+        125, // Net bandwidth,
+        dpRate // Memory intensity
         );
-        Msg.info("Start VM0");
-        vm0.start();
-        vm0.setLoad(90);
-
-        Process.sleep(5000);
-
-        Msg.info("Shutdown VM0");
-        vm0.shutdown();
-        Process.sleep(5000);
-
-        Msg.info("Restart VM0");
-        vm0 = new XVM(
-                host1,
-                "vm0",
-                1, // Nb of vcpu
-                2048, // Ramsize,
-                125, // Net Bandwidth
-                null, //VM disk image
-                -1,   //size of disk image,
-                125, // Net bandwidth,
-                dpRate // Memory intensity
+    Msg.info("Start VM0");
+    vm0.start();
+    vm0.setLoad(90);
+
+    Process.sleep(5000);
+
+    Msg.info("Shutdown VM0");
+    vm0.shutdown();
+    Process.sleep(5000);
+
+    Msg.info("Restart VM0");
+    vm0 = new XVM(host1, "vm0",
+        1, // Nb of vcpu
+        2048, // Ramsize,
+        125, // Net Bandwidth
+        null, //VM disk image
+        -1,   //size of disk image,
+        125, // Net bandwidth,
+        dpRate // Memory intensity
         );
-        vm0.start();
-        vm0.setLoad(90);
-    
-       Msg.info("You suceed to recreate and restart a VM without generating any exception ! Great the Test is ok");
-               
-        Process.sleep(5000);
-        vm0.shutdown();
-    }
-
-}
-
-
+    vm0.start();
+    vm0.setLoad(90);
 
+    Msg.info("You suceed to recreate and restart a VM without generating any exception ! Great the Test is ok");
 
+    Process.sleep(5000);
+    vm0.shutdown();
+  }
+}
index 6e3671e..f34da08 100644 (file)
@@ -6,77 +6,71 @@
 
 package cloud.migration;
 
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.VM;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.HostFailureException;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.VM;
 
-/**
- * A stupid VM extension to associate a daemon to the VM
- */
 public class XVM extends VM {
+  private int dpIntensity;
+  private int netBW;
+  private int ramsize;
+  private int currentLoad;
 
+  private Daemon daemon;
 
-    private int dpIntensity;
-    private int netBW;
-    private int ramsize;
-    private int currentLoad;
-
-    private Daemon daemon;
-
-    public XVM(Host host, String name,
-               int nbCores, int ramsize, int netBW, String diskPath, int diskSize, int migNetBW, int dpIntensity){
-        super(host, name, nbCores, ramsize, netBW, diskPath, diskSize, (int)(migNetBW*0.9), dpIntensity);
-        this.currentLoad = 0;
-        this.netBW = netBW ;
-        this. dpIntensity = dpIntensity ;
-        this.ramsize= ramsize;
-        this.daemon = new Daemon(this, 100);
+  public XVM(Host host, String name,
+    int nbCores, int ramsize, int netBW, String diskPath, int diskSize, int migNetBW, int dpIntensity){
+    super(host, name, nbCores, ramsize, netBW, diskPath, diskSize, (int)(migNetBW*0.9), dpIntensity);
+    this.currentLoad = 0;
+    this.netBW = netBW ;
+    this. dpIntensity = dpIntensity ;
+    this.ramsize= ramsize;
+    this.daemon = new Daemon(this, 100);
+  }
 
+  public void setLoad(int load){  
+    if (load >0) {
+      this.setBound(load);
+      //    this.getDaemon().setLoad(load);
+      daemon.resume();
+    } else{
+      daemon.suspend();
     }
+    currentLoad = load ;
+  }
 
-    public void setLoad(int load){  
-        if (load >0) {
-            this.setBound(load);
-        //    this.getDaemon().setLoad(load);
-            daemon.resume();
-        }
-        else{
-            daemon.suspend();
-        }
-        currentLoad = load ;
+  public void start(){
+    super.start();
+    try {
+      daemon.start();
+    } catch (HostNotFoundException e) {
+      e.printStackTrace();
     }
+    this.setLoad(0);
+  }
 
-    public void start(){
-        super.start();
-         try {
-            daemon.start();
-        } catch (HostNotFoundException e) {
-            e.printStackTrace();
-        }
-        this.setLoad(0);
+  public Daemon getDaemon(){
+    return this.daemon;
+  }
 
-    }
-    public Daemon getDaemon(){
-        return this.daemon;
-    }
-    public int getLoad(){
-       System.out.println("Remaining comp:" + this.daemon.getRemaining());
-        return this.currentLoad;
-    }
+  public int getLoad(){
+    System.out.println("Remaining comp:" + this.daemon.getRemaining());
+    return this.currentLoad;
+  }
 
-    public void migrate(Host host) throws HostFailureException {
-        Msg.info("Start migration of VM " + this.getName() + " to " + host.getName());
-        Msg.info("    currentLoad:" + this.currentLoad + "/ramSize:" + this.ramsize + "/dpIntensity:" + this.dpIntensity 
-                       + "/remaining:" + String.format(java.util.Locale.US, "%.2E",this.daemon.getRemaining()));
-        try{
-               super.migrate(host);
-       } catch (Exception e){
-               Msg.info("Something wrong during the live migration of VM "+this.getName());
-               throw new HostFailureException(); 
-        }
-        this.setLoad(this.currentLoad); //Fixed the fact that setBound is not propagated to the new node.
-        Msg.info("End of migration of VM " + this.getName() + " to node " + host.getName());
+  public void migrate(Host host) throws HostFailureException {
+    Msg.info("Start migration of VM " + this.getName() + " to " + host.getName());
+    Msg.info("    currentLoad:" + this.currentLoad + "/ramSize:" + this.ramsize + "/dpIntensity:" + this.dpIntensity 
+        + "/remaining:" + String.format(java.util.Locale.US, "%.2E",this.daemon.getRemaining()));
+    try{
+      super.migrate(host);
+    } catch (Exception e){
+      Msg.info("Something wrong during the live migration of VM "+this.getName());
+      throw new HostFailureException(); 
     }
+    this.setLoad(this.currentLoad); //Fixed the fact that setBound is not propagated to the new node.
+    Msg.info("End of migration of VM " + this.getName() + " to node " + host.getName());
+  }
 }
index 707963d..0b5dffa 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-    <process host="host0" function="cloud/migration/Test">
-    </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="host0" function="cloud/migration/Test"/>
 </platform>
index 34b2b21..fd5c496 100644 (file)
@@ -3,7 +3,7 @@
 $ java -classpath ${classpath:=.} cloud/migration/Main ${srcdir:=.}/../platforms/two_hosts_platform.xml ${srcdir:=.}/cloud/migration/deploy_simple.xml
 > [0.000000] [jmsg/INFO] Using regular java threads.
 > [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] This example evaluates the migration time of a VM in presence of collocated VMs on the source and the dest nodes
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% "(see cloudcom 2013 paper "Adding a Live Migration Model Into SimGrid" for further information) 
+> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% " (see cloudcom 2013 paper "Adding a Live Migration Model Into SimGrid" for further information) 
 > [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see whether it impacts or not the migration time
 > [0.000000] [surf_vm/INFO] Create VM(vm0)@PM(host0) with 0 mounted disks
 > [0.000000] [surf_vm/INFO] Create VM(vm1)@PM(host0) with 0 mounted disks
@@ -32,9 +32,8 @@ $ java -classpath ${classpath:=.} cloud/migration/Main ${srcdir:=.}/../platforms
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] End of migration of VM vm0 to node host0
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]      - End of Migration from host 1 to host 0 (duration:32.46684874546391)
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] 
->  
->  
-> Round trip of VM1 (load 80%)
+> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] 
+> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] Round trip of VM1 (load 80%)
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]      - Launch migration from host 0 to host 1
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] Start migration of VM vm0 to host1
 > [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]     currentLoad:80/ramSize:2048/dpIntensity:70/remaining:4.64E+11
index b148630..5014ac6 100644 (file)
@@ -22,24 +22,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/commtime.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/commTimeDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 417aa27..46bf24c 100644 (file)
@@ -9,28 +9,21 @@ import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 public class CommTimeTest {
-       
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-   
-    public static void main(String[] args) throws NativeException {
-       
-       /* initialize the MSG simulation. Must be done before anything else (even logging). */
-       Msg.init(args);
+  public static void main(String[] args) throws NativeException {
 
-       if(args.length < 2) {                   
-         Msg.info("Usage   : CommTime platform_file deployment_file");
-         Msg.info("example : CommTime comm_time_platform.xml comm_time_deployment.xml");
-         System.exit(1);
-       }
-       
-       /* construct the platform and deploy the application */
-       Msg.createEnvironment(args[0]);
-       Msg.deployApplication(args[1]);
-               
-       /*  execute the simulation. */
-        Msg.run();
+    Msg.init(args);
+
+    if(args.length < 2) {
+      Msg.info("Usage   : CommTime platform_file deployment_file");
+      Msg.info("example : CommTime ../platforms/platform.xml commTimeDeployment.xml");
+      System.exit(1);
     }
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index f5dcc18..f11da75 100644 (file)
@@ -7,9 +7,8 @@
 package commTime;
 import org.simgrid.msg.*;
 
-public class FinalizeTask extends Task {       
-   public FinalizeTask() {
-      super("",0,0);
-   }
+public class FinalizeTask extends Task {
+  public FinalizeTask() {
+    super("",0,0);
+  }
 }
-    
\ No newline at end of file
index 9193702..37da768 100644 (file)
@@ -1,5 +1,3 @@
-/* Master of a basic master/slave example in Java */
-
 /* Copyright (c) 2006-2014. The SimGrid Team.
  * All rights reserved.                                                     */
 
@@ -15,37 +13,37 @@ import org.simgrid.msg.Process;
 import org.simgrid.msg.Task;
 
 public class Master extends Process {
-       public Master(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws MsgException {
-      if (args.length < 4) {
-        Msg.info("Master needs 4 arguments");
-        System.exit(1);
-      }
-      
-      int tasksCount = Integer.valueOf(args[0]).intValue();            
-      double taskComputeSize = Double.valueOf(args[1]).doubleValue();          
-      double taskCommunicateSize = Double.valueOf(args[2]).doubleValue();
-      
-      int slavesCount = Integer.valueOf(args[3]).intValue();
-      
-      Msg.info("Hello! Got "+  slavesCount + " slaves and "+tasksCount+" tasks to process");
-      
-      for (int i = 0; i < tasksCount; i++) {
-        Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize);
-        if (i%1000==0)
-          Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\"");
-        task.send("slave_"+(i%slavesCount));
-      }
-      
-      Msg.info("All tasks have been dispatched. Let's tell everybody the computation is over.");
-      
-      for (int i = 0; i < slavesCount; i++) {
-        FinalizeTask task = new FinalizeTask();
-        task.send("slave_"+(i%slavesCount));
-      }
-      
-      Msg.info("Goodbye now!");
+  public Master(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    if (args.length < 4) {
+      Msg.info("Master needs 4 arguments");
+      System.exit(1);
+    }
+
+    int tasksCount = Integer.valueOf(args[0]).intValue();    
+    double taskComputeSize = Double.valueOf(args[1]).doubleValue();    
+    double taskCommunicateSize = Double.valueOf(args[2]).doubleValue();
+
+    int slavesCount = Integer.valueOf(args[3]).intValue();
+
+    Msg.info("Hello! Got "+  slavesCount + " slaves and "+tasksCount+" tasks to process");
+
+    for (int i = 0; i < tasksCount; i++) {
+      Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize);
+      if (i%1000==0)
+         Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\"");
+         task.send("slave_"+(i%slavesCount));
+       }
+
+    Msg.info("All tasks have been dispatched. Let's tell everybody the computation is over.");
+
+    for (int i = 0; i < slavesCount; i++) {
+      FinalizeTask task = new FinalizeTask();
+      task.send("slave_"+(i%slavesCount));
     }
+    Msg.info("Goodbye now!");
+  }
 }
diff --git a/examples/java/commTime/README b/examples/java/commTime/README
deleted file mode 100644 (file)
index 6512acd..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory is almost exactly the same example than the
-master/slave, the only differences are:
- * there is no forwarder here
- * the outputs are a bit less verbose
- * the example give a lot more work to do (this is used for benchmarking)
\ No newline at end of file
index c90ad64..7711a92 100644 (file)
@@ -5,31 +5,28 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package commTime;
-
 import org.simgrid.msg.*;
 
 public class Slave extends org.simgrid.msg.Process {
-       public Slave(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws MsgException {
-      if (args.length < 1) {
-        Msg.info("Slave needs 1 argument (its number)");
-        System.exit(1);
-      }
+  public Slave(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+  public void main(String[] args) throws MsgException {
+    if (args.length < 1) {
+       Msg.info("Slave needs 1 argument (its number)");
+       System.exit(1);
+    }
 
-      int num = Integer.valueOf(args[0]).intValue();
-      Msg.info("Receiving on 'slave_"+num+"'");
-      
-      while(true) { 
-        Task task = Task.receive("slave_"+num);        
-        
-        if (task instanceof FinalizeTask) {
-           break;
-        }
-        task.execute();
-       }
-       
-      Msg.info("Received Finalize. I'm done. See you!");
+    int num = Integer.valueOf(args[0]).intValue();
+    Msg.info("Receiving on 'slave_"+num+"'");
+
+    while(true) { 
+      Task task = Task.receive("slave_"+num);  
+      if (task instanceof FinalizeTask) {
+        break;
+      }
+      task.execute();
     }
+    Msg.info("Received Finalize. I'm done. See you!");
+  }
 }
\ No newline at end of file
index 828c403..a229c37 100644 (file)
@@ -1,55 +1,32 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="commTime.Master">
      <argument value="5000"/>  <!-- Amount of tasks to dispatch -->
      <argument value="50000"/> <!-- Computation size of each task -->
      <argument value="10"/>    <!-- Communication size of each one -->
      <argument value="21"/>    <!-- Amount of commTime.Slaves waiting for orders -->
   </process>
-  
-  <process host="iRMX" function="commTime.Slave">
-     <argument value="0"/>  <!-- Input mailbox -->
-  </process>
-  
-  <process host="Bousquet" function="commTime.Slave">
-     <argument value="1"/></process>
-  <process host="Soucy" function="commTime.Slave">
-     <argument value="2"/></process>
-  <process host="Casavant" function="commTime.Slave">
-     <argument value="3"/></process>
-  <process host="Jackson" function="commTime.Slave">
-     <argument value="4"/></process>
-  <process host="Geoff" function="commTime.Slave">
-     <argument value="5"/></process>
-  <process host="Disney" function="commTime.Slave">
-     <argument value="6"/></process>
-  <process host="McGee" function="commTime.Slave">
-     <argument value="7"/></process>
-  <process host="Gatien" function="commTime.Slave">
-     <argument value="8"/></process>
-  <process host="Laroche" function="commTime.Slave">
-     <argument value="9"/></process>
-  <process host="Tanguay" function="commTime.Slave">
-     <argument value="10"/></process>
-  <process host="Morin" function="commTime.Slave">
-     <argument value="11"/></process>
-  <process host="Ethernet" function="commTime.Slave">
-     <argument value="12"/></process>
-  <process host="Bellemarre" function="commTime.Slave">
-     <argument value="13"/></process>
-  <process host="Harry" function="commTime.Slave">
-     <argument value="14"/></process>
-  <process host="Olivier" function="commTime.Slave">
-     <argument value="15"/></process>
-  <process host="Boucherville" function="commTime.Slave">
-     <argument value="16"/></process>
-  <process host="Pointe_Claire" function="commTime.Slave">
-     <argument value="17"/></process>
-  <process host="Kansas" function="commTime.Slave">
-     <argument value="18"/></process>
-  <process host="King" function="commTime.Slave">
-     <argument value="19"/></process>
-  <process host="Lapointe" function="commTime.Slave">
-     <argument value="20"/></process>
+
+  <process host="iRMX" function="commTime.Slave">          <argument value="0"/>  <!-- Input mailbox --></process>
+  <process host="Bousquet" function="commTime.Slave">      <argument value="1"/></process>
+  <process host="Soucy" function="commTime.Slave">         <argument value="2"/></process>
+  <process host="Casavant" function="commTime.Slave">      <argument value="3"/></process>
+  <process host="Jackson" function="commTime.Slave">       <argument value="4"/></process>
+  <process host="Geoff" function="commTime.Slave">         <argument value="5"/></process>
+  <process host="Disney" function="commTime.Slave">        <argument value="6"/></process>
+  <process host="McGee" function="commTime.Slave">         <argument value="7"/></process>
+  <process host="Gatien" function="commTime.Slave">        <argument value="8"/></process>
+  <process host="Laroche" function="commTime.Slave">       <argument value="9"/></process>
+  <process host="Tanguay" function="commTime.Slave">       <argument value="10"/></process>
+  <process host="Morin" function="commTime.Slave">         <argument value="11"/></process>
+  <process host="Ethernet" function="commTime.Slave">      <argument value="12"/></process>
+  <process host="Bellemarre" function="commTime.Slave">    <argument value="13"/></process>
+  <process host="Harry" function="commTime.Slave">         <argument value="14"/></process>
+  <process host="Olivier" function="commTime.Slave">       <argument value="15"/></process>
+  <process host="Boucherville" function="commTime.Slave">  <argument value="16"/></process>
+  <process host="Pointe_Claire" function="commTime.Slave"> <argument value="17"/></process>
+  <process host="Kansas" function="commTime.Slave">        <argument value="18"/></process>
+  <process host="King" function="commTime.Slave">          <argument value="19"/></process>
+  <process host="Lapointe" function="commTime.Slave">      <argument value="20"/></process>
 </platform>
index c7ea0f8..2ad4d43 100644 (file)
@@ -20,22 +20,11 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8f70b7b..5d6884d 100644 (file)
@@ -6,36 +6,34 @@
 
 package energy;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
-/**
- * Example showing the use of the new experimental Cloud API.
- */
+
 public class Energy {
-       public static final double task_comp_size = 10;
-       public static final double task_comm_size = 10;
-       public static final int hostNB = 2 ; 
-       public static void main(String[] args) throws MsgException {  
-               Msg.energyInit(); 
-           Msg.init(args); 
-           
-           if (args.length < 1) {
-               Msg.info("Usage  : Cloud platform_file");
-               Msg.info("Usage  : Cloud platform.xml");
-               System.exit(1);
-           }
-           /* Construct the platform */
-               Msg.createEnvironment(args[0]);
-               Host[] hosts = Host.all();
-               if (hosts.length < 1) {
-                       Msg.info("I need at least one host in the platform file, but " + args[0] + " contains only " + hosts.length + " hosts");
-                       System.exit(42);
-               }
-               /* Instanciate a process */
-               new EnergyConsumer(hosts[0],"energyConsumer",null).start();
-               /* Execute the simulation */
-               Msg.run();
-               
+  public static final double task_comp_size = 10;
+  public static final double task_comm_size = 10;
+  public static final int hostNB = 2 ; 
+
+  public static void main(String[] args) throws MsgException {  
+    Msg.energyInit(); 
+    Msg.init(args); 
+
+    if (args.length < 1) {
+      Msg.info("Usage   : Energy platform_file");
+      Msg.info("Usage  : Energy ../platforms/energy_platform.xml");
+      System.exit(1);
+    }
+    /* Construct the platform */
+    Msg.createEnvironment(args[0]);
+    Host[] hosts = Host.all();
+    if (hosts.length < 1) {
+      Msg.info("I need at least one host in the platform file, but " + args[0] + " has no host at all");
+      System.exit(42);
     }
+    /* Instanciate a process */
+    new EnergyConsumer(hosts[0],"energyConsumer",null).start();
+    /* Execute the simulation */
+    Msg.run();
+  }
 }
index 50b6ea8..bf3be52 100644 (file)
@@ -6,24 +6,25 @@
 
 package energy;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.Comm;
 import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.TimeoutException;
 
 public class EnergyConsumer extends Process {
-       public EnergyConsumer(Host host, String name, String[] args) {
-               super(host,name,args);
-       }
-       @Override
-       public void main(String[] args) throws MsgException {
-          Msg.info("Currently consumed energy: "+getHost().getConsumedEnergy());
-          this.waitFor(10);
-          Msg.info("Currently consumed energy after sleeping 10 sec: "+getHost().getConsumedEnergy());
-          new Task(null, 1E9, 0).execute();
-          Msg.info("Currently consumed energy after executing 1E9 flops: "+getHost().getConsumedEnergy());        
-       }
+  public EnergyConsumer(Host host, String name, String[] args) {
+    super(host,name,args);
+  }
+
+  @Override
+  public void main(String[] args) throws MsgException {
+     Msg.info("Currently consumed energy: "+getHost().getConsumedEnergy());
+     this.waitFor(10);
+     Msg.info("Currently consumed energy after sleeping 10 sec: "+getHost().getConsumedEnergy());
+     new Task(null, 1E9, 0).execute();
+     Msg.info("Currently consumed energy after executing 1E9 flops: "+getHost().getConsumedEnergy());
+  }
 }
index 07f5b09..c761d3b 100644 (file)
@@ -21,22 +21,12 @@ endif()
 
 set(tesh_files
   ${tesh_files}
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage.tesh
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b8d718f..fdddde7 100644 (file)
 
 package io;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Process;
-import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Storage;
+import org.simgrid.msg.HostNotFoundException;
+import org.simgrid.msg.MsgException;
 
 public class Client extends Process {
-  
   public Client(Host host, int number) throws HostNotFoundException {
     super(host, Integer.toString(number), null);
   }
-  
+
   public void main(String[] args) throws MsgException {
-    
-       // Retrieve all mount points of current host
+   // Retrieve all mount points of current host
     Storage[] storages = getHost().getMountedStorage();
-    
-       for (int i = 0; i < storages.length; i++) {
-               // For each disk mounted on host
-               Msg.info("------------------------------------");
-               Msg.info("Disk name: "+storages[i].getName());
-               Msg.info("Size: "+storages[i].getSize()+" bytes.");
-               Msg.info("Free Size: "+storages[i].getFreeSize()+" bytes.");
-               Msg.info("Used Size: "+storages[i].getUsedSize()+" bytes.");
-               
-       }
-       
-       Storage st = Storage.getByName("Disk2");
-       Msg.info("Disk name: "+st.getName());
-       Msg.info("Attached to host:"+st.getHost());
-       
-       
-       st.setProperty("key","Pierre");
-       Msg.info("Property key: "+st.getProperty("key"));
-       
-       Host h = Host.currentHost();
-       h.setProperty("key2","Pierre");
-       Msg.info("Property key2: "+h.getProperty("key"));
-       
-       
-       String[] attach = h.getAttachedStorage();
-       for (int j = 0; j < attach.length; j++) {
-               Msg.info("Disk attached: "+attach[j]);
-       }
-       
-       Msg.info("**************** ALL *************************");
-       
-       Storage[] stos = Storage.all();
-       for (int i = 0; i < stos.length; i++) {
-               Msg.info("Disk: "+ stos[i].getName());
-       }
-       
-       
+
+    for (int i = 0; i < storages.length; i++) {
+      // For each disk mounted on host
+      Msg.info("------------------------------------");
+      Msg.info("Disk name: "+storages[i].getName());
+      Msg.info("Size: "+storages[i].getSize()+" bytes.");
+      Msg.info("Free Size: "+storages[i].getFreeSize()+" bytes.");
+      Msg.info("Used Size: "+storages[i].getUsedSize()+" bytes.");
+    }
+
+    Storage st = Storage.getByName("Disk2");
+    Msg.info("Disk name: "+st.getName());
+    Msg.info("Attached to host:"+st.getHost());
+
+    st.setProperty("key","Pierre");
+    Msg.info("Property key: "+st.getProperty("key"));
+
+    Host h = Host.currentHost();
+    h.setProperty("key2","Pierre");
+    Msg.info("Property key2: "+h.getProperty("key2"));
+
+    String[] attach = h.getAttachedStorage();
+    for (int j = 0; j < attach.length; j++) {
+      Msg.info("Disk attached: "+attach[j]);
+    }
+
+    Msg.info("**************** ALL *************************");
+    Storage[] stos = Storage.all();
+    for (int i = 0; i < stos.length; i++) {
+      Msg.info("Disk: "+ stos[i].getName());
+    }
   }
 }
\ No newline at end of file
index 4c94dcf..f9de388 100644 (file)
@@ -6,31 +6,28 @@
 
 package io;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
-/**
- * This example demonstrates of how to use the other
- * kind of resources, such as disk or GPU. These resources are quite
- * experimental for now, but here we go anyway.
- */
+
 public class IO {
-    public static void main(String[] args) throws MsgException {       
-               Msg.init(args);
-               if(args.length < 1) {
-                       Msg.info("Usage   : IO platform_file ");
-               Msg.info("example : IO platform.xml ");
-               System.exit(1);
-           }    
-               Msg.createEnvironment(args[0]);
-               
-               Host[] hosts = Host.all();
-               
-               Msg.info("Number of hosts:" + hosts.length);
-               for (int i = 0; i < hosts.length && i < 4; i++) {
-                       new io.Node(hosts[i],i).start();
-               }
-               
-               Msg.run();              
+  public static void main(String[] args) throws MsgException {
+    Msg.init(args);
+    if(args.length < 1) {
+      Msg.info("Usage   : IO platform_file ");
+      Msg.info("example : IO ../platforms/storage/storage.xml ");
+      System.exit(1);
+    }
+
+    Msg.createEnvironment(args[0]);
+
+    Host[] hosts = Host.all();
+
+    Msg.info("Number of hosts:" + hosts.length);
+    for (int i = 0; i < hosts.length && i < 4; i++) {
+      new io.Node(hosts[i],i).start();
     }
+
+    Msg.run();
+  }
 }
\ No newline at end of file
index 4a139b7..42e84b8 100644 (file)
@@ -6,59 +6,61 @@
 
 package io;
 
+import org.simgrid.msg.Msg;
 import org.simgrid.msg.File;
 import org.simgrid.msg.Host;
+import org.simgrid.msg.Process;
 import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.Msg;
 import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
 
 public class Node extends Process {
-       private static String FILENAME1 = "/doc/simgrid/examples/platforms/g5k.xml";
-       private static String FILENAME2 = "\\Windows\\setupact.log";
-       private static String FILENAME3 = "/doc/simgrid/examples/platforms/g5k_cabinets.xml";
-       private static String FILENAME4 = "/doc/simgrid/examples/platforms/nancy.xml";
-                       
-       protected int number;
-               
-       public Node(Host host, int number) throws HostNotFoundException {
-               super(host, Integer.toString(number), null);
-               this.number = number;
-       }       
-       public void main(String[] args) throws MsgException {
-               String mount = "";
-               String filename;
-               switch (number) {
-                       case 0:
-                mount = "/home";
-                               filename = mount + FILENAME1;
-                       break;
-                       case 1:
-                mount = "c:";
-                               filename = mount + FILENAME2;
-                       break;
-                       case 2:
-                mount = "/home";
-                               filename = mount + FILENAME3;
-                       break;
-                       case 3:
-                mount = "/home";
-                               filename = mount + FILENAME4;
-                       break;
-                       default:
-                mount = "/home";
-                               filename = mount + FILENAME1;
-               }
-               Msg.info("Open file " + filename);
-               File file = new File(filename);
+  private static String FILENAME1 = "/doc/simgrid/examples/platforms/g5k.xml";
+  private static String FILENAME2 = "\\Windows\\setupact.log";
+  private static String FILENAME3 = "/doc/simgrid/examples/platforms/g5k_cabinets.xml";
+  private static String FILENAME4 = "/doc/simgrid/examples/platforms/nancy.xml";
+
+  protected int number;
+
+  public Node(Host host, int number) throws HostNotFoundException {
+    super(host, Integer.toString(number), null);
+    this.number = number;
+  }
+
+  public void main(String[] args) throws MsgException {
+    String mount = "";
+    String filename;
+    switch (number) {
+      case 0:
+        mount = "/home";
+        filename = mount + FILENAME1;
+      break;
+      case 1:
+        mount = "c:";
+        filename = mount + FILENAME2;
+      break;
+      case 2:
+        mount = "/home";
+        filename = mount + FILENAME3;
+      break;
+      case 3:
+        mount = "/home";
+        filename = mount + FILENAME4;
+      break;
+      default:
+        mount = "/home";
+        filename = mount + FILENAME1;
+    }
+
+    Msg.info("Open file " + filename);
+    File file = new File(filename);
+
+    long read = file.read(10000000,1);
+    Msg.info("Having read " + read + " on " + filename);
 
-               long read = file.read(10000000,1);
-               Msg.info("Having read " + read + " on " + filename);
-               
-               long write = file.read(100000,1);
-               Msg.info("Having write " + write + " on " + filename);
+    long write = file.read(100000,1);
+    Msg.info("Having write " + write + " on " + filename);
 
-               read = file.read(10000000,1);
-               Msg.info("Having read " + read + " on " + filename);    
-       }
+    read = file.read(10000000,1);
+    Msg.info("Having read " + read + " on " + filename);  
+  }
 }
index dc2c9e6..ae2488d 100644 (file)
@@ -4,29 +4,25 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-
-
 package io;
-
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
 
+public class Storage {
+  public static void main(String[] args) throws MsgException {      
+    Msg.init(args);
+    if(args.length < 1) {
+      Msg.info("Usage   : Storage platform_file ");
+      Msg.info("example : Storage ../platforms/storage/storage.xml ");
+      System.exit(1);
+    }
 
+    Msg.createEnvironment(args[0]);
 
-public class Storage {
-  public static void main(String[] args) throws MsgException {         
-               Msg.init(args);
-               if(args.length < 1) {
-                       Msg.info("Usage   : storage platform_file ");
-               Msg.info("example : storage platform.xml ");
-               System.exit(1);
-           }    
-               Msg.createEnvironment(args[0]);
-               
-               Host[] hosts = Host.all();              
-               new io.Client(hosts[0],0).start();
+    Host[] hosts = Host.all();
+    new io.Client(hosts[0],0).start();
 
-               Msg.run();              
+    Msg.run();
     }
 }
diff --git a/examples/java/io/storage.tesh b/examples/java/io/storage.tesh
new file mode 100644 (file)
index 0000000..f8d9db4
--- /dev/null
@@ -0,0 +1,46 @@
+#! tesh
+
+$ java -classpath ${classpath:=.} io/Storage ${srcdir:=.}/../platforms/storage/storage.xml
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [denise:0:(1) 0.000000] [jmsg/INFO] ------------------------------------
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk name: Disk2
+> [denise:0:(1) 0.000000] [jmsg/INFO] Size: 536870912000 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] Free Size: 534479374867 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] Used Size: 2391537133 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] ------------------------------------
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk name: Disk4
+> [denise:0:(1) 0.000000] [jmsg/INFO] Size: 536870912000 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] Free Size: 536857690006 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] Used Size: 13221994 bytes.
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk name: Disk2
+> [denise:0:(1) 0.000000] [jmsg/INFO] Attached to host:alice
+> [denise:0:(1) 0.000000] [jmsg/INFO] Property key: Pierre
+> [denise:0:(1) 0.000000] [jmsg/INFO] Property key2: Pierre
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk attached: Disk4
+> [denise:0:(1) 0.000000] [jmsg/INFO] **************** ALL *************************
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk: Disk1
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk: Disk2
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk: Disk3
+> [denise:0:(1) 0.000000] [jmsg/INFO] Disk: Disk4
+> [0.000000] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
+
+$ java -classpath ${classpath:=.} io/IO ${srcdir:=.}/../platforms/storage/storage.xml
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [0.000000] [jmsg/INFO] Number of hosts:4
+> [denise:0:(1) 0.000000] [jmsg/INFO] Open file /home/doc/simgrid/examples/platforms/g5k.xml
+> [alice:1:(2) 0.000000] [jmsg/INFO] Open file c:\Windows\setupact.log
+> [carl:2:(3) 0.000000] [jmsg/INFO] Open file /home/doc/simgrid/examples/platforms/g5k_cabinets.xml
+> [bob:3:(4) 0.000000] [jmsg/INFO] Open file /home/doc/simgrid/examples/platforms/nancy.xml
+> [bob:3:(4) 0.000040] [jmsg/INFO] Having read 4028 on /home/doc/simgrid/examples/platforms/nancy.xml
+> [bob:3:(4) 0.000040] [jmsg/INFO] Having write 0 on /home/doc/simgrid/examples/platforms/nancy.xml
+> [bob:3:(4) 0.000040] [jmsg/INFO] Having read 0 on /home/doc/simgrid/examples/platforms/nancy.xml
+> [denise:0:(1) 0.000085] [jmsg/INFO] Having read 17028 on /home/doc/simgrid/examples/platforms/g5k.xml
+> [denise:0:(1) 0.000085] [jmsg/INFO] Having write 0 on /home/doc/simgrid/examples/platforms/g5k.xml
+> [denise:0:(1) 0.000085] [jmsg/INFO] Having read 0 on /home/doc/simgrid/examples/platforms/g5k.xml
+> [carl:2:(3) 0.000226] [jmsg/INFO] Having read 22645 on /home/doc/simgrid/examples/platforms/g5k_cabinets.xml
+> [carl:2:(3) 0.000226] [jmsg/INFO] Having write 0 on /home/doc/simgrid/examples/platforms/g5k_cabinets.xml
+> [carl:2:(3) 0.000226] [jmsg/INFO] Having read 0 on /home/doc/simgrid/examples/platforms/g5k_cabinets.xml
+> [alice:1:(2) 0.000508] [jmsg/INFO] Having read 101663 on c:\Windows\setupact.log
+> [alice:1:(2) 0.000508] [jmsg/INFO] Having write 0 on c:\Windows\setupact.log
+> [alice:1:(2) 0.000508] [jmsg/INFO] Having read 0 on c:\Windows\setupact.log
+> [0.000508] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
index ff0a25b..24164a4 100644 (file)
@@ -1,98 +1,73 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package kademlia;
-
 import java.util.ArrayList;
 import java.util.Collections;
 
-/**
- * Answer to a "FIND_NODE" query. Contains the nodes closest to
- * an id given.
- */
+/* Answer to a "FIND_NODE" query. Contains the nodes closest to an id given */
 public class Answer {
-       /**
-        * Id of the node we're trying to find
-        */
-       private int destinationId;
-       /**
-        * Closest nodes in the answer.
-        */
-       private ArrayList<Contact> nodes;
-       
-       /**
-        * Constructor
-        */
-       public Answer(int destinationId) {
-               this.destinationId = destinationId;
-               nodes = new ArrayList<Contact>();
-       }
-       /**
-        * Returns the destination id
-        */
-       int getDestinationId() {
-               return destinationId;
-       }
-       /**
-        * Returns the list of the nodes in the answer
-        */
-       ArrayList<Contact> getNodes() {
-               return nodes;
-       }
-       /**
-        * Returns the answer array size
-        */
-       int size() {
-               return nodes.size();
-       }
-       /**
-        * Remove an element from the answer.
-        */
-       public void remove(int index) {
-               nodes.remove(index);
-       }
-       /**
-        * Add a contact to the answer.
-        */
-       public void add(Contact contact) {
-               nodes.add(contact);
-       }
-       /**
-        * Merge the contents of this answer with another answer
-        */
-       public int merge(Answer answer) {
-               int nbAdded = 0;
-               
-               for (Contact c: answer.getNodes()) {
-                       if (!nodes.contains(c)) {
-                               nbAdded++;
-                               nodes.add(c);
-                       }
-               }
-               Collections.sort(nodes);
-               //Trim the list
-               while (answer.size() > Common.BUCKET_SIZE) {
-                       answer.remove(answer.size() - 1);
-               }
-               return nbAdded;
-       }
-       /**
-        * Returns if the destination has been found
-        */
-       public boolean destinationFound() {
-               if (nodes.size() < 1) {
-                       return false;
-               }
-               Contact tail = nodes.get(0);
-               return tail.getDistance() == 0;
-       }
-       @Override
-       public String toString() {
-               return "Answer [destinationId=" + destinationId + ", nodes=" + nodes
-                               + "]";
-       }
-       
+  private int destinationId;
+  /* Closest nodes in the answer. */
+  private ArrayList<Contact> nodes;
+
+  public Answer(int destinationId) {
+    this.destinationId = destinationId;
+    nodes = new ArrayList<Contact>();
+  }
+
+  int getDestinationId() {
+    return destinationId;
+  }
+
+  ArrayList<Contact> getNodes() {
+    return nodes;
+  }
+
+  int size() {
+    return nodes.size();
+  }
+
+  public void remove(int index) {
+    nodes.remove(index);
+  }
+
+  public void add(Contact contact) {
+    nodes.add(contact);
+  }
+
+  /* Merge the contents of this answer with another answer */
+  public int merge(Answer answer) {
+    int nbAdded = 0;
+
+    for (Contact c: answer.getNodes()) {
+      if (!nodes.contains(c)) {
+        nbAdded++;
+        nodes.add(c);
+      }
+    }
+    Collections.sort(nodes);
+    //Trim the list
+    while (answer.size() > Common.BUCKET_SIZE) {
+      answer.remove(answer.size() - 1);
+    }
+    return nbAdded;
+  }
+
+  /* Returns if the destination has been found */
+  public boolean destinationFound() {
+    if (nodes.size() < 1) {
+      return false;
+    }
+    Contact tail = nodes.get(0);
+    return tail.getDistance() == 0;
+  }
+
+  @Override
+  public String toString() {
+    return "Answer [destinationId=" + destinationId + ", nodes=" + nodes + "]";
+  }
 }
index 8ad2326..41d391d 100644 (file)
@@ -1,77 +1,58 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package kademlia;
-
 import java.util.ArrayList;
 
-/**
- * Stores the information held in a bucket
- */
 public class Bucket {
-       private ArrayList<Integer> nodes;
-       private int id;
-       
-       /**
-        * Constructor
-        */
-       public Bucket(int id) {
-               this.nodes = new ArrayList<Integer>();
-               this.id = id;
-       }
-       /**
-        * Returns the bucket's id.
-        */
-       public int getId() {
-               return this.id;
-       }
-       /**
-        * Returns how many nodes there is in the bucket
-        */
-       public int size() {
-               return nodes.size();
-       }
-       /**
-        * Returns if the bucket contains the element
-        */
-       public boolean contains(int id) {
-               return nodes.contains(id);
-       }
-       /**
-        * Add an to the front of the bucket
-        */
-       public void add(int id) {
-               nodes.add(0,id);
-       }
-       /**
-        * Pushs an element into the front of a bucket.
-        */
-       public void pushToFront(int id) {
-               int i = nodes.indexOf(id);
-               nodes.remove(i);
-               nodes.add(0, id);
-       }
-       /**
-        * Returns a node
-        */
-       public int getNode(int id) {
-               return nodes.get(id);
-       }
-       /**
-        * Adds the content of the bucket into a answer object.
-        */
-       public void addToAnswer(Answer answer, int destination) {
-               for (int id : this.nodes) {
-                       answer.getNodes().add(new Contact(id,id ^ destination));
-               }
-       }
-       
-       @Override
-       public String toString() {
-               return "Bucket [id= " + id + " nodes=" + nodes + "]";
-       }
-       
+  private ArrayList<Integer> nodes;
+  private int id;
+
+  public Bucket(int id) {
+    this.nodes = new ArrayList<Integer>();
+    this.id = id;
+  }
+
+  public int getId() {
+    return this.id;
+  }
+
+  public int size() {
+    return nodes.size();
+  }
+
+  public boolean contains(int id) {
+    return nodes.contains(id);
+  }
+
+  /* Add a node to the front of the bucket */
+  public void add(int id) {
+    nodes.add(0,id);
+  }
+
+  /* Push a node to the front of a bucket */
+  public void pushToFront(int id) {
+    int i = nodes.indexOf(id);
+    nodes.remove(i);
+    nodes.add(0, id);
+  }
+
+  public int getNode(int id) {
+    return nodes.get(id);
+  }
+
+  /* Add the content of the bucket into a answer object. */
+  public void addToAnswer(Answer answer, int destination) {
+    for (int id : this.nodes) {
+      answer.getNodes().add(new Contact(id,id ^ destination));
+    }
+  }
+
+  @Override
+  public String toString() {
+    return "Bucket [id= " + id + " nodes=" + nodes + "]";
+  }
 }
index 9fdbd0d..5767cd2 100644 (file)
@@ -30,23 +30,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 7df08e7..0c3d425 100644 (file)
@@ -1,46 +1,32 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package kademlia;
-/**
- * Common constants used all over the simulation
- */
+
 public class Common {
-       public final static int COMM_SIZE = 1;
-       public final static int COMP_SIZE = 0;
-       
-       public final static int RANDOM_LOOKUP_INTERVAL = 100;
-       
-       public final static int alpha = 3;
-       /**
-        * Size of the nodes identifier
-        */
-       public final static int IDENTIFIER_SIZE = 32;
-       /**
-        * Maximum size of the buckets
-        */
-       public final static int BUCKET_SIZE = 20;
-       /**
-        * Maximum number of trial for the "JOIN" request
-        */
-       public final static int MAX_JOIN_TRIALS = 4;
-       /**
-        * Timeout for a "FIND_NODE" request to a node
-        */
-       public final static int FIND_NODE_TIMEOUT = 10;
-       /**
-        * Global timeout for a FIND_NODE.
-        */
-       public final static int FIND_NODE_GLOBAL_TIMEOUT = 50;
-       /**
-        * Timeout for a "PING" request
-        */
-       public final static int PING_TIMEOUT = 35;
-       
-       public final static int MAX_STEPS = 10;
+  /* Common constants used all over the simulation */
+  public final static int COMM_SIZE = 1;
+  public final static int COMP_SIZE = 0;
+
+  public final static int RANDOM_LOOKUP_INTERVAL = 100;
+
+  public final static int alpha = 3;
+
+  public final static int IDENTIFIER_SIZE = 32;
+  /* Maximum size of the buckets */
+  public final static int BUCKET_SIZE = 20;
+  /* Maximum number of trials for the "JOIN" request */
+  public final static int MAX_JOIN_TRIALS = 4;
+  /* Timeout for a "FIND_NODE" request to a node */
+  public final static int FIND_NODE_TIMEOUT = 10;
+  /* Global timeout for a FIND_NODE request */
+  public final static int FIND_NODE_GLOBAL_TIMEOUT = 50;
+  /* Timeout for a "PING" request */
+  public final static int PING_TIMEOUT = 35;
 
-       public final static int JOIN_BUCKETS_QUERIES = 1;
+  public final static int MAX_STEPS = 10;
+  public final static int JOIN_BUCKETS_QUERIES = 1;
 }
index 16d3906..76e155b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,47 +6,43 @@
 
 package kademlia;
 
-/**
- * Contains the information about a foreign node according to
- * a node we are trying to find.
- */
 public class Contact implements Comparable<Object> {
-       private int id;
-       private int distance;
-       
-       public Contact(int id, int distance) {
-               this.id = id;
-               this.distance = distance;
-       }
-
-       public int getId() {
-               return id;
-       }
-
-       public int getDistance() {
-               return distance;
-       }
-       
-       public boolean equals(Object x) {
-               return x.equals(id) ;
-       }
-
-       public int compareTo(Object o) {
-               Contact c = (Contact)o;
-               if (distance < c.distance) {
-                       return -1;
-               }
-               else if (distance == c.distance) {
-                       return 0;
-               }
-               else {
-                       return 1;
-               }
-       }
-
-       @Override
-       public String toString() {
-               return "Contact [id=" + id + ", distance=" + distance + "]";
-       }
-       
+  private int id;
+  private int distance;
+
+  public Contact(int id, int distance) {
+    this.id = id;
+    this.distance = distance;
+  }
+
+  public int getId() {
+    return id;
+  }
+
+  public int getDistance() {
+    return distance;
+  }
+
+  public boolean equals(Object x) {
+    return x.equals(id) ;
+  }
+
+  public int compareTo(Object o) {
+    Contact c = (Contact)o;
+    if (distance < c.distance) {
+      return -1;
+    }
+    else if (distance == c.distance) {
+      return 0;
+    }
+    else {
+      return 1;
+    }
+  }
+
+  @Override
+  public String toString() {
+    return "Contact [id=" + id + ", distance=" + distance + "]";
+  }
+
 }
\ No newline at end of file
index cb036da..b4cad24 100644 (file)
@@ -1,35 +1,25 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package kademlia;
-
 import kademlia.Answer;
 
 public class FindNodeAnswerTask extends KademliaTask {
-       /**
-        * Destination id
-        */
-       protected int destinationId;
-       /**
-        * Answer to the FIND_NODE query.
-        */
-       protected Answer answer;
-       /**
-        * Constructor
-        */
-       public FindNodeAnswerTask(int senderId, int destinationId, Answer answer) {
-               super(senderId);
-               this.destinationId = destinationId;
-               this.answer = answer;
-       }
-       public int getDestinationId() {
-               return destinationId;
-       }
-       public Answer getAnswer() {
-               return answer;
-       }
-       
+  protected int destinationId;
+  protected Answer answer;
+
+  public FindNodeAnswerTask(int senderId, int destinationId, Answer answer) {
+    super(senderId);
+    this.destinationId = destinationId;
+    this.answer = answer;
+  }
+  public int getDestinationId() {
+    return destinationId;
+  }
+  public Answer getAnswer() {
+    return answer;
+  }
 }
index 9ee53a9..f2020aa 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,27 +7,19 @@
 package kademlia;
 
 /**
- * @brief Find node tasks sent by a node to another
- * "Find Node" task sent by a node to another. Ask him for
- * its closest nodes from a destination.
+ * @brief Find node tasks sent by a node to another "Find Node" task sent by a node to another. Ask him for its closest
+ * nodes from a destination.
  */
 public class FindNodeTask extends KademliaTask {
-       /**
-        * Id of the node we are trying to find: the destination
-        */
-       private int destination;
-       /**
-        * Constructor
-        */
-       public FindNodeTask(int senderId, int destination) {
-               super(senderId);        
-               this.destination = destination;
-       }
+  /* Id of the node we are trying to find: the destination */
+  private int destination;
 
+  public FindNodeTask(int senderId, int destination) {
+    super(senderId);  
+    this.destination = destination;
+  }
 
-
-       public int getDestination() {
-               return destination;
-       }
-       
+  public int getDestination() {
+    return destination;
+  }
 }
index a9c05c4..01fcef2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,24 +7,21 @@
 package kademlia;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.MsgException;
-/**
- * Main class of the simulation. Launch the simulation.
- */
+
 public class Kademlia {
-       public static void main(String[] args) throws MsgException {
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : Kademlia platform_file deployment_file");
-                       Msg.info("example : Kademlia platform.xml deployment.xml");
-                       System.exit(1);
-               }
-               
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-                       
-               /*  execute the simulation. */
-        Msg.run();             
-       }
+  public static void main(String[] args) throws MsgException {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Kademlia platform_file deployment_file");
+      Msg.info("example : Kademlia ../platforms/platform.xml kademlia.xml");
+      System.exit(1);
+    }
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index 9ca0c5f..0a549b4 100644 (file)
@@ -1,32 +1,23 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package kademlia;
-
 import kademlia.Common;
 
 import org.simgrid.msg.Task;
 
-/**
- * @brief Base class for all the tasks related to Kademlia.
- */
 public class KademliaTask extends Task {
-       /**
-        * Sender id
-        */
-       protected int senderId;
-       
-       /**
-        * Constructor
-        */
-       public KademliaTask(int senderId) {
-               super("kademliatask",Common.COMP_SIZE,Common.COMM_SIZE);
-               this.senderId = senderId;
-       }
-       public int getSenderId() {
-               return senderId;
-       }
+  protected int senderId;
+
+  public KademliaTask(int senderId) {
+    super("kademliatask",Common.COMP_SIZE,Common.COMM_SIZE);
+    this.senderId = senderId;
+  }
+
+  public int getSenderId() {
+    return senderId;
+  }
 }
index 0a94781..5dd2ae2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,345 +8,312 @@ package kademlia;
 
 import org.simgrid.msg.Host;
 
-import org.simgrid.msg.Comm;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Process;
+import org.simgrid.msg.Comm;
 import org.simgrid.msg.Task;
-/**
- * Main class of the simulation, contains the logic of a node.
- */
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+
 public class Node extends Process {
-       /**
-         * Id in the network.
-        */
-       protected int id;
-       /**
-        * Routing table
-        */
-       protected RoutingTable table;
-       /**
-        * Deadline
-        */
-       protected int deadline;
-       /**
-        * FIND_NODE which have succeeded.
-        */
-       protected int findNodeSuccedded = 0;
-       /**
-        * FIND_NODE which have failed
-        */
-       protected int findNodeFailed = 0;
-       
-       protected Comm comm;
+  protected int id;
+  protected RoutingTable table;
+  protected int deadline;
+  protected int findNodeSuccedded = 0;
+  protected int findNodeFailed = 0;
+  protected Comm comm;
+
+  public Node(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  @Override
+  public void main(String[] args) throws MsgException {
+    //Check the number of arguments.
+    if (args.length != 2 && args.length != 3) {
+      Msg.info("Wrong argument count.");
+      return;
+    }
+    this.id = Integer.valueOf(args[0]);
+    this.table = new RoutingTable(this.id);
+
+    if (args.length == 3) {
+      this.deadline = Integer.valueOf(args[2]).intValue();
+      Msg.info("Hi, I'm going to join the network with the id " + id + "!");
+      if (joinNetwork(Integer.valueOf(args[1]))) {
+        this.mainLoop();
+      }
+      else {
+        Msg.info("I couldn't join the network :(");
+      }
+    }
+    else {
+      this.deadline = Integer.valueOf(args[1]).intValue();
+      Msg.info("Hi, I'm going to create the network with the id " + id + "!");
+      table.update(this.id);
+      this.mainLoop();
+    }
+    Msg.debug("I'm leaving the network");
+    Msg.debug("Here is my routing table:" + table);
+  }
+
+  public void mainLoop() {
+    double next_lookup_time = Msg.getClock() + Common.RANDOM_LOOKUP_INTERVAL;
+    while (Msg.getClock() < this.deadline) {
+      try {
+        if (comm == null) {
+          comm = Task.irecv(Integer.toString(id));
+        }
+        if (!comm.test()) {
+          if (Msg.getClock() >= next_lookup_time) {
+            randomLookup();
+            next_lookup_time += Common.RANDOM_LOOKUP_INTERVAL;
+          } else {
+            waitFor(1);
+          }
+        } else {
+          Task task = comm.getTask();
+          handleTask(task);
+          comm = null;
+        }
+      }
+      catch (Exception e) {
+      }
+    }
+    Msg.info(findNodeSuccedded + "/"  + (findNodeSuccedded + findNodeFailed) + " FIND_NODE have succedded.");
+  }
+
+  /**
+   * @brief Try to make the node join the network
+   * @param idKnown Id of someone we know in the system
+   */
+  public boolean joinNetwork(int idKnown) {
+    boolean answerGot = false;
+    double timeBegin = Msg.getClock();
+    Msg.debug("Joining the network knowing " + idKnown);
+    //Add ourselves and the node we know to our routing table
+    table.update(this.id);
+    table.update(idKnown);
+    //Send a "FIND_NODE" to the node we know.
+    sendFindNode(idKnown,this.id);
+    //Wait for the answer.
+    int trials = 0;
+
+    do {
+      try {
+        if (comm == null) {
+          comm = Task.irecv(Integer.toString(id));
+        }
+        if (comm != null) {
+          if (!comm.test()) {
+            waitFor(1);
+          } else {
+            Task task = comm.getTask();
+            if (task instanceof FindNodeAnswerTask) {
+              answerGot = true;
+              //Retrieve the node list and ping them
+              FindNodeAnswerTask answerTask = (FindNodeAnswerTask)task;
+              Answer answer = answerTask.getAnswer();
+              answerGot = true;
+              //answersGotten++;
+              if (answer.getDestinationId() == this.id) {
+                //Ping everyone in the list
+                for (Contact c : answer.getNodes()) {
+                  table.update(c.getId());
+                }
+              }
+            } else {
+              handleTask(task);
+            }
+            comm = null;
+          }
+        }
+      }
+      catch (Exception ex) {
+        trials++;
+        Msg.info("FIND_NODE failed");
+      }
+    } while (!answerGot && trials < Common.MAX_JOIN_TRIALS);
+    /* Second step: Send a FIND_NODE in a node in each bucket */
+    int bucketId = table.findBucket(idKnown).getId();
+    for (int i = 0; ((bucketId - i) > 0 || 
+       (bucketId + i) <= Common.IDENTIFIER_SIZE) && 
+       i < Common.JOIN_BUCKETS_QUERIES; i++) {
+      if (bucketId - i > 0) {
+        int idInBucket = table.getIdInPrefix(this.id,bucketId - i);
+        this.findNode(idInBucket,false);
+      }
+      if (bucketId + i <= Common.IDENTIFIER_SIZE) {
+        int idInBucket = table.getIdInPrefix(this.id,bucketId + i);
+        findNode(idInBucket,false);
+      }
+    }
+    Msg.debug("Time spent:" + (Msg.getClock() - timeBegin));
+    return answerGot;
+  }
+
+  /* Send a request to find a node in the node's routing table. */
+  public boolean findNode(int destination, boolean counts) {
+    int queries, answers;
+    int nodesAdded = 0;
+    boolean destinationFound = false;
+    int steps = 0;
+    double timeBeginReceive;
+    double timeout, globalTimeout = Msg.getClock() + Common.FIND_NODE_GLOBAL_TIMEOUT;
+    //Build a list of the closest nodes we already know.
+    Answer nodeList = table.findClosest(destination);
+    Msg.verb("Doing a FIND_NODE on " + destination);
+    do {
+      timeBeginReceive = Msg.getClock();
+      answers = 0;
+      queries = this.sendFindNodeToBest(nodeList);
+      nodesAdded = 0;
+      timeout = Msg.getClock() + Common.FIND_NODE_TIMEOUT;
+      steps++;
+      do {
+        try {
+          if (comm == null) {
+            comm = Task.irecv(Integer.toString(id));
+          }
+          if (!comm.test()) {
+            waitFor(1);
+          } else {
+            Task task = comm.getTask();  
+            if (task instanceof FindNodeAnswerTask) {
+              FindNodeAnswerTask answerTask = (FindNodeAnswerTask)task;
+              //Check if we received what we are looking for.
+              if (answerTask.getDestinationId() == destination) {
+                table.update(answerTask.getSenderId());
+                //Add the answer to our routing table
+                for (Contact c: answerTask.getAnswer().getNodes()) {
+                  table.update(c.getId());
+                }
+                answers++;
+                
+                nodesAdded = nodeList.merge(answerTask.getAnswer());
+              } else {
+              /* If it's not our answer, we answer to the node that has queried us anyway */
+                handleTask(task);
+                //Update the timeout if it's not our answer.
+                timeout += Msg.getClock() - timeBeginReceive;
+                timeBeginReceive = Msg.getClock();
+              }
+            } else {
+              handleTask(task);
+              timeout += Msg.getClock() - timeBeginReceive;
+              timeBeginReceive = Msg.getClock();
+            }
+            comm = null;
+          }
+        }
+        catch (Exception e) {
+          comm = null;
+        }
+      } while (answers < queries && Msg.getClock() < timeout);
+      destinationFound = nodeList.destinationFound();
+    } while (!destinationFound && (nodesAdded > 0 || answers == 0) && Msg.getClock() < globalTimeout 
+             && steps < Common.MAX_STEPS);
+
+    if (destinationFound) {
+      if (counts) {
+        findNodeSuccedded++;
+      }
+      Msg.debug("Find node on " + destination + " succedded");
+    } else {
+      Msg.debug("Find node on " + destination + " failed");
+      Msg.debug("Queried " + queries + " nodes to find "  + destination);
+      Msg.debug(nodeList.toString());
+      if (counts) {
+        findNodeFailed++;
+      }
+    }
+    return destinationFound;
+  }
+
+  /**
+   * @brief Sends a "PING" request to a node
+   * @param destination Ping destination id.
+   */
+  public void ping(int destination) {
+    boolean destinationFound = false;
+    double timeout = Msg.getClock() + Common.PING_TIMEOUT;
+    PingTask pingTask = new PingTask(this.id);
+    /* Sending the ping task */
+    pingTask.dsend(Integer.toString(destination));
+    do {
+      try {
+        Task task = Task.receive(Integer.toString(this.id),Common.PING_TIMEOUT);
+        if (task instanceof PingAnswerTask) {
+          PingAnswerTask answerTask = (PingAnswerTask)task;
+          if (answerTask.getSenderId() == destination) {
+            this.table.update(destination);
+            destinationFound = true;
+          } else {
+            handleTask(task);
+          }
+        } else {
+          handleTask(task);
+        }
+        waitFor(1);
+      }
+      catch (Exception ex) {
+      }
+    } while (Msg.getClock() < timeout && !destinationFound);
+  }
+
+  /**
+   * @brief Sends a "FIND_NODE" request (task) to a node we know.
+   * @param id Id of the node we are querying
+   * @param destination id of the node we are trying to find.
+   */
+  public void sendFindNode(int id, int destination) {
+    Msg.debug("Sending a FIND_NODE to " + Integer.toString(id) + " to find " + destination  );
+    FindNodeTask task = new FindNodeTask(this.id,destination);
+    task.dsend(Integer.toString(id));
+  }
+
+  /** Sends a "FIND_NODE" request to the best "alpha" nodes in a node list */
+  public int sendFindNodeToBest(Answer nodeList) {
+    int destination = nodeList.getDestinationId();
+    int i;
+    for (i = 0; i < Common.alpha && i < nodeList.size(); i++) {
+      Contact node = nodeList.getNodes().get(i);
+      if (node.getId() != this.id) {
+        this.sendFindNode(node.getId(),destination);
+      }
+    }
+    return i;
+  }
+
+  public void randomLookup() {
+    findNode(0,true);
+  }
 
-       public Node(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       
-       @Override
-       public void main(String[] args) throws MsgException {
-               //Check the number of arguments.
-               if (args.length != 2 && args.length != 3) {
-                       Msg.info("Wrong argument count.");
-                       return;
-               }
-               this.id = Integer.valueOf(args[0]);
-               this.table = new RoutingTable(this.id);
-               
-               if (args.length == 3) {
-                       this.deadline = Integer.valueOf(args[2]).intValue();
-                       Msg.info("Hi, I'm going to join the network with the id " + id + "!");
-                       if (joinNetwork(Integer.valueOf(args[1]))) {
-                               this.mainLoop();
-                       } 
-                       else {
-                               Msg.info("I couldn't join the network :(");
-                       }
-               }
-               else {
-                       this.deadline = Integer.valueOf(args[1]).intValue();
-                       Msg.info("Hi, I'm going to create the network with the id " + id + "!");
-                       table.update(this.id);
-                       this.mainLoop();
-               }               
-               Msg.debug("I'm leaving the network");
-               Msg.debug("Here is my routing table:" + table);
-       }
-       /**
-        * Node main loop
-        */
-       public void mainLoop() {
-               double next_lookup_time = Msg.getClock() + Common.RANDOM_LOOKUP_INTERVAL;
-               while (Msg.getClock() < this.deadline) {
-                       try {
-                               if (comm == null) {
-                                       comm = Task.irecv(Integer.toString(id));
-                               }
-                               if (!comm.test()) {
-                                       if (Msg.getClock() >= next_lookup_time) {
-                                               randomLookup();
-                                               next_lookup_time += Common.RANDOM_LOOKUP_INTERVAL;
-                                       }
-                                       else {
-                                               waitFor(1);
-                                       }                                               
-                               }
-                               else {
-                                       Task task = comm.getTask();
-                                       handleTask(task);
-                                       comm = null;
-                               }
-                       }
-                       catch (Exception e) {
-                               
-                       }
-               }
-               Msg.info(findNodeSuccedded + "/"  + (findNodeSuccedded + findNodeFailed) + " FIND_NODE have succedded.");
-       }
-       /**
-        * @brief Try to make the node join the network
-        * @param idKnown Id of someone we know in the system
-        */
-       public boolean joinNetwork(int idKnown) {
-               boolean answerGot = false;
-               double timeBegin = Msg.getClock();
-               Msg.debug("Joining the network knowing " + idKnown);
-               //Add ourselves and the node we know to our routing table
-               table.update(this.id);
-               table.update(idKnown);
-               //Send a "FIND_NODE" to the node we know.
-               sendFindNode(idKnown,this.id);
-               //Wait for the answer.
-               int trials = 0;
+  /**
+   * @brief Handles an incomming task
+   * @param task The task we need to handle
+   */
+  public void handleTask(Task task) {
+    if (task instanceof KademliaTask) {
+      table.update(((KademliaTask) task).getSenderId());
+      if (task instanceof FindNodeTask) {
+        handleFindNode((FindNodeTask)task);
+      }
+      else if (task instanceof PingTask) {
+        handlePing((PingTask)task);
+      }
+    }
+  }
 
-               do {
-                       try {
-                               if (comm == null) {
-                                       comm = Task.irecv(Integer.toString(id));
-                               }
-                               if (comm != null) {
-                                       if (!comm.test()) {
-                                               waitFor(1);
-                                       }
-                                       else {
-                                               Task task = comm.getTask();
-                                               if (task instanceof FindNodeAnswerTask) {
-                                                       answerGot = true;
-                                                       //Retrieve the node list and ping them
-                                                       FindNodeAnswerTask answerTask = (FindNodeAnswerTask)task;
-                                                       Answer answer = answerTask.getAnswer();
-                                                       answerGot = true;
-                                                       //answersGotten++;
-                                                       if (answer.getDestinationId() == this.id) {
-                                                               //Ping everyone in the list
-                                                               for (Contact c : answer.getNodes()) {
-                                                                       table.update(c.getId());
-                                                               }                                               
-                                                       }
-                                               }
-                                               else {
-                                                       handleTask(task);
-                                               }
-                                               comm = null;
-                                       }
-                               }
+  public void handleFindNode(FindNodeTask task) {
+    Msg.debug("Received a FIND_NODE from " + task.getSenderId());
+    Answer answer = table.findClosest(task.getDestination());
+    FindNodeAnswerTask taskToSend = new FindNodeAnswerTask(this.id,task.getDestination(),answer);
+    taskToSend.dsend(Integer.toString(task.getSenderId()));
+  }
 
-                       }
-                       catch (Exception ex) {
-                               trials++;
-                               Msg.info("FIND_NODE failed");
-                       }
-               } while (!answerGot && trials < Common.MAX_JOIN_TRIALS);
-               /* Second step: Send a FIND_NODE in a node in each bucket */
-               int bucketId = table.findBucket(idKnown).getId();
-               for (int i = 0; ((bucketId - i) > 0 || 
-                        (bucketId + i) <= Common.IDENTIFIER_SIZE) && 
-                        i < Common.JOIN_BUCKETS_QUERIES; i++) {
-                       if (bucketId - i > 0) {
-                               int idInBucket = table.getIdInPrefix(this.id,bucketId - i);
-                               this.findNode(idInBucket,false);
-                       }
-                       if (bucketId + i <= Common.IDENTIFIER_SIZE) {
-                               int idInBucket = table.getIdInPrefix(this.id,bucketId + i);                             
-                               findNode(idInBucket,false);
-                       }
-               }
-               Msg.debug("Time spent:" + (Msg.getClock() - timeBegin));
-               return answerGot;
-       }
-       /**
-        * Send a request to find a node in the node's routing table.
-        */
-       public boolean findNode(int destination, boolean counts) {
-               int queries, answers;
-               int nodesAdded = 0;
-               boolean destinationFound = false;
-               int steps = 0;
-               double timeBeginReceive;
-               double timeout, globalTimeout = Msg.getClock() + Common.FIND_NODE_GLOBAL_TIMEOUT;
-               //Build a list of the closest nodes we already know.
-               Answer nodeList = table.findClosest(destination);
-               Msg.verb("Doing a FIND_NODE on " + destination);
-               do {
-                       timeBeginReceive = Msg.getClock();
-                       answers = 0;
-                       queries = this.sendFindNodeToBest(nodeList);
-                       nodesAdded = 0;
-                       timeout = Msg.getClock() + Common.FIND_NODE_TIMEOUT;
-                       steps++;
-                       do {
-                               try {
-                                       if (comm == null) {
-                                               comm = Task.irecv(Integer.toString(id));
-                                       }
-                                       if (!comm.test()) {
-                                               waitFor(1);
-                                       }
-                                       else {
-                                               Task task = comm.getTask();     
-                                               if (task instanceof FindNodeAnswerTask) {
-                                                       FindNodeAnswerTask answerTask = (FindNodeAnswerTask)task;
-                                                       //Check if we received what we are looking for.
-                                                       if (answerTask.getDestinationId() == destination) {
-                                                               table.update(answerTask.getSenderId());
-                                                               //Add the answer to our routing table
-                                                               for (Contact c: answerTask.getAnswer().getNodes()) {
-                                                                       table.update(c.getId());
-                                                               }
-                                                               answers++;
-                                                               
-                                                               nodesAdded = nodeList.merge(answerTask.getAnswer());                                                    
-                                                       }
-                                                       /* If it's not our answer, we answer to the node that
-                                                        * has queried us anyway
-                                                        */
-                                                       else {
-                                                               handleTask(task);
-                                                               //Update the timeout if it's not our answer.
-                                                               timeout += Msg.getClock() - timeBeginReceive;
-                                                               timeBeginReceive = Msg.getClock();
-                                                       }
-                                               }
-                                               else {
-                                                       handleTask(task);
-                                                       timeout += Msg.getClock() - timeBeginReceive;
-                                                       timeBeginReceive = Msg.getClock();
-                                               }
-                                               comm = null;
-                                       }
-                               }
-                               catch (Exception e) {
-                                       comm = null;
-                               }
-                       } while (answers < queries && Msg.getClock() < timeout);
-                       destinationFound = nodeList.destinationFound();
-               } while (!destinationFound && (nodesAdded > 0 || answers == 0) && Msg.getClock() < globalTimeout && steps < Common.MAX_STEPS);
-               
-               if (destinationFound) {
-                       if (counts) {
-                               findNodeSuccedded++;
-                       }
-                       Msg.debug("Find node on " + destination + " succedded");
-               }
-               else {
-                       Msg.debug("Find node on " + destination + " failed");
-                       Msg.debug("Queried " + queries + " nodes to find "  + destination);
-                       Msg.debug(nodeList.toString());
-                       if (counts) {
-                               findNodeFailed++;
-                       }
-               }
-               return destinationFound;
-       }
-       /**
-        * Sends a "PING" request to a node
-        * @param destination Ping destination id.
-        */
-       public void ping(int destination) {
-               boolean destinationFound = false;
-               double timeout = Msg.getClock() + Common.PING_TIMEOUT;
-               PingTask pingTask = new PingTask(this.id);
-               /* Sending the ping task */
-               pingTask.dsend(Integer.toString(destination));
-               do
-               {
-                       try {
-                               Task task = Task.receive(Integer.toString(this.id),Common.PING_TIMEOUT);
-                               if (task instanceof PingAnswerTask) {
-                                       PingAnswerTask answerTask = (PingAnswerTask)task;
-                                       if (answerTask.getSenderId() == destination) {
-                                               this.table.update(destination);
-                                               destinationFound = true;
-                                       }
-                                       else {
-                                               handleTask(task);
-                                       }
-                               }
-                               else {
-                                       handleTask(task);
-                               }
-                               waitFor(1);
-                       }
-                       catch (Exception ex) {
-                       }
-               } while (Msg.getClock() < timeout && !destinationFound);
-       }
-       /**
-        * Sends a "FIND_NODE" request (task) to a node we know.
-        * @brief id Id of the node we are querying
-        * @brief destination id of the node we are trying to find.
-        */
-       public void sendFindNode(int id, int destination) {
-               Msg.debug("Sending a FIND_NODE to " + Integer.toString(id) + " to find " + destination  );
-               FindNodeTask task = new FindNodeTask(this.id,destination);
-               task.dsend(Integer.toString(id));
-       }
-       /**
-        * Sends a "FIND_NODE" request to the best "alpha" nodes in a node
-        * list
-        */
-       public int sendFindNodeToBest(Answer nodeList) {
-               int destination = nodeList.getDestinationId();
-               int i;
-               for (i = 0; i < Common.alpha && i < nodeList.size(); i++) {
-                       Contact node = nodeList.getNodes().get(i);
-                       if (node.getId() != this.id) {
-                               this.sendFindNode(node.getId(),destination);
-                       }
-               }
-               return i;
-       }
-       /**
-        * Does a random lookup
-        */
-       public void randomLookup() {
-               findNode(0,true);
-       }
-       /**
-        * Handles an incomming task
-        * @param task The task we need to handle
-        */
-       public void handleTask(Task task) {
-               if (task instanceof KademliaTask) {
-                       table.update(((KademliaTask) task).getSenderId());
-                       if (task instanceof FindNodeTask) {
-                               handleFindNode((FindNodeTask)task);
-                       }
-                       else if (task instanceof PingTask) {
-                               handlePing((PingTask)task);
-                       }
-               }
-       }
-       public void handleFindNode(FindNodeTask task) {
-               Msg.debug("Received a FIND_NODE from " + task.getSenderId());
-               Answer answer = table.findClosest(task.getDestination());
-               FindNodeAnswerTask taskToSend = new FindNodeAnswerTask(this.id,task.getDestination(),answer);
-               taskToSend.dsend(Integer.toString(task.getSenderId()));
-       }
-       public void handlePing(PingTask task) {
-               Msg.debug("Received a PING from " + task.getSenderId());
-               PingAnswerTask taskToSend = new PingAnswerTask(this.id);
-               taskToSend.dsend(Integer.toString(task.getSenderId()));
-       }
+  public void handlePing(PingTask task) {
+    Msg.debug("Received a PING from " + task.getSenderId());
+    PingAnswerTask taskToSend = new PingAnswerTask(this.id);
+    taskToSend.dsend(Integer.toString(task.getSenderId()));
+  }
 }
index 46f2fd8..d6dd4a0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,10 +7,7 @@
 package kademlia;
 
 public class PingAnswerTask extends KademliaTask {
-       /**
-        * Constructor
-        */
-       public PingAnswerTask(int senderId) {
-               super(senderId);
-       }
+  public PingAnswerTask(int senderId) {
+    super(senderId);
+  }
 }
index 3b08c93..eacfb1d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,14 +6,8 @@
 
 package kademlia;
 
-/**
- * @brief "PING" task sent by a node to another to see if it is still alive
- */
 public class PingTask extends KademliaTask {
-       /**
-        * Constructor
-        */
-       public PingTask(int senderId) {
-               super(senderId);
-       }
+  public PingTask(int senderId) {
+    super(senderId);
+  }
 }
index ca136a0..961d38f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,125 +9,105 @@ import java.util.Collections;
 import java.util.Vector;
 
 import org.simgrid.msg.Msg;
-/**
- * @brief Contains the various data of a routing table.
- */
+
 public class RoutingTable {
-       /**
-        * Bucket list
-        */
-       private Vector<Bucket> buckets;
-       /**
-        * Id of the routing table owner
-        */
-       private int id;
-       /**
-        * Constructor
-        */
-       public RoutingTable(int id) {
-               this.id = id;
-               buckets = new Vector<Bucket>();
-               for (int i = 0; i < Common.IDENTIFIER_SIZE + 1; i++) {
-                       buckets.add(new Bucket(i));
-               }               
-       }
-       /**
-        * Returns an identifier which is in a specific bucket of a routing table
-        * @brief id id of the routing table owner
-        * @brief prefix id of the bucket where we want that identifier to be
-        */
-       public int getIdInPrefix(int id, int prefix) {
-               if (prefix == 0) {
-                       return 0;
-               }
-               int identifier = 1;
-               identifier = identifier << (prefix - 1);
-               identifier = identifier ^ id;
-               return identifier;
-       }
-       /**
-        * Returns the corresponding node prefix for a given id
-        */
-       public int getNodePrefix(int id) {
-               for (int j = 0; j < 32; j++) {
-                       if ((id >> (32 - 1 - j) & 0x1) != 0) {
-                               return 32 - j;
-                       }
-               }
-               return 0;
-       }
-       /**
-         * Fins the corresponding bucket in a routing table for a given identifier
-         */
-       public Bucket findBucket(int id) {
-               int xorNumber = id ^ this.id;
-//             Msg.info("Number:" + xorNumber.toString(16));
-               int prefix = this.getNodePrefix(xorNumber);                             
-               
-               return buckets.get(prefix);
-       }
-       /**
-        * Updates the routing table with a new value.
-        */
-       public void update(int id) {
+  /* Bucket list */
+  private Vector<Bucket> buckets;
+  /* Id of the routing table owner */
+  private int id;
+
+  public RoutingTable(int id) {
+    this.id = id;
+    buckets = new Vector<Bucket>();
+    for (int i = 0; i < Common.IDENTIFIER_SIZE + 1; i++) {
+      buckets.add(new Bucket(i));
+    }
+  }
+
+  /**
+   * @brief Returns an identifier which is in a specific bucket of a routing table
+   * @param id id of the routing table owner
+   * @param prefix id of the bucket where we want that identifier to be
+   */
+  public int getIdInPrefix(int id, int prefix) {
+    if (prefix == 0) {
+      return 0;
+    }
+    int identifier = 1;
+    identifier = identifier << (prefix - 1);
+    identifier = identifier ^ id;
+    return identifier;
+  }
+
+  /* Returns the corresponding node prefix for a given id */
+  public int getNodePrefix(int id) {
+    for (int j = 0; j < 32; j++) {
+      if ((id >> (32 - 1 - j) & 0x1) != 0) {
+        return 32 - j;
+      }
+    }
+    return 0;
+  }
+
+  /* Finds the corresponding bucket in a routing table for a given identifier */
+  public Bucket findBucket(int id) {
+    int xorNumber = id ^ this.id;
+    int prefix = this.getNodePrefix(xorNumber);
+    return buckets.get(prefix);
+  }
+
+  /* Updates the routing table with a new value. */
+  public void update(int id) {
+    Bucket bucket = this.findBucket(id);
+    if (bucket.contains(id)) {
+      Msg.debug("Updating " + Integer.toString(id) + " in my routing table");
+      //If the element is already in the bucket, we update it.
+      bucket.pushToFront(id);
+    } else {
+      Msg.debug("Adding " + id + " to my routing table");
+      bucket.add(id);
+      if (bucket.size() > Common.BUCKET_SIZE)  {
+        //TODO: Ping the least seen guy and remove him if he is offline.
+      }
+    }
+  }
 
-               Bucket bucket = this.findBucket(id);
-               if (bucket.contains(id)) {
-                       Msg.debug("Updating " + Integer.toString(id) + " in my routing table");
-                       //If the element is already in the bucket, we update it.
-                       bucket.pushToFront(id);
-               }
-               else {
-                       Msg.debug("Adding " + id + " to my routing table");
-                       bucket.add(id);
-                       if (bucket.size() > Common.BUCKET_SIZE)  {
-                               //TODO: Ping the least seen guy and remove him if he is offline.
-                       }
-               }
-       }
-       /**
-        * Returns the closest notes we know to a given id 
-        */
-       public Answer findClosest(int destinationId) {
-               Answer answer = new Answer(destinationId);
+  /* Returns the closest notes we know to a given id */
+  public Answer findClosest(int destinationId) {
+    Answer answer = new Answer(destinationId);
+    Bucket bucket = this.findBucket(destinationId);
+    bucket.addToAnswer(answer,destinationId);
 
-               
-               Bucket bucket = this.findBucket(destinationId);
-               bucket.addToAnswer(answer,destinationId);
-               
-               for (int i = 1; answer.size() < Common.BUCKET_SIZE && 
-               ((bucket.getId() - i) >= 0 ||
-               (bucket.getId() + i) <= Common.IDENTIFIER_SIZE); i++) {
-                       //Check the previous buckets
-                       if (bucket.getId() - i >= 0) {
-                               Bucket bucketP = this.buckets.get(bucket.getId() - i);
-                               bucketP.addToAnswer(answer,destinationId);
-                       }
-                       //Check the next buckets
-                       if (bucket.getId() + i <= Common.IDENTIFIER_SIZE) {
-                               Bucket bucketN = this.buckets.get(bucket.getId() + i);
-                               bucketN.addToAnswer(answer, destinationId);
-                       }
-               }
-               //We sort the list
-               Collections.sort(answer.getNodes());
-               //We trim the list
-               while (answer.size() > Common.BUCKET_SIZE) {
-                       answer.remove(answer.size() - 1); //TODO: Not the best thing.
-               }
-               
-               return answer;
-       }
-       
-       @Override
-       public String toString() {
-               String string = "RoutingTable [ id=" + id + " " ;
-               for (int i = 0; i < buckets.size(); i++) {
-                       if (buckets.get(i).size() > 0) {
-                               string += buckets.get(i) + " ";
-                       }
-               }
-               return string;
-       }
+    for (int i = 1; answer.size() < Common.BUCKET_SIZE && ((bucket.getId() - i) >= 0 ||
+                                    (bucket.getId() + i) <= Common.IDENTIFIER_SIZE); i++) {
+      //Check the previous buckets
+      if (bucket.getId() - i >= 0) {
+        Bucket bucketP = this.buckets.get(bucket.getId() - i);
+        bucketP.addToAnswer(answer,destinationId);
+      }
+      //Check the next buckets
+      if (bucket.getId() + i <= Common.IDENTIFIER_SIZE) {
+        Bucket bucketN = this.buckets.get(bucket.getId() + i);
+        bucketN.addToAnswer(answer, destinationId);
+      }
+    }
+    //We sort the list
+    Collections.sort(answer.getNodes());
+    //We trim the list
+    while (answer.size() > Common.BUCKET_SIZE) {
+      answer.remove(answer.size() - 1); //TODO: Not the best thing.
+    }
+    return answer;
+  }
 
+  @Override
+  public String toString() {
+    String string = "RoutingTable [ id=" + id + " " ;
+    for (int i = 0; i < buckets.size(); i++) {
+      if (buckets.get(i).size() > 0) {
+        string += buckets.get(i) + " ";
+      }
+    }
+    return string;
+  }
 }
index a6eeaaa..4ea6551 100644 (file)
@@ -1,28 +1,23 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="kademlia.Node">
     <argument value="0"/>        <!-- my id -->
-    <argument value ="900"/>           <!-- deadline -->
+    <argument value ="900"/>     <!-- deadline -->
   </process>
-
   <process host="Boivin" function="kademlia.Node">
     <argument value="1"/>        <!-- my id -->
-    <argument value="0"/>         <!-- known id -->
-    <argument value ="900"/>           <!-- deadline -->
+    <argument value="0"/>        <!-- known id -->
+    <argument value ="900"/>     <!-- deadline -->
   </process>
-
   <process host="Jean_Yves" function="kademlia.Node">
     <argument value="2"/>        <!-- my id -->
-    <argument value="0"/>         <!-- known id -->
-    <argument value ="900"/>           <!-- deadline -->
+    <argument value="0"/>        <!-- known id -->
+    <argument value ="900"/>     <!-- deadline -->
   </process>
-
   <process host="TeX" function="kademlia.Node">
     <argument value="4"/>        <!-- my id -->
-    <argument value="0"/>         <!-- known id -->
-    <argument value ="900"/>           <!-- deadline -->  
+    <argument value="0"/>        <!-- known id -->
+    <argument value ="900"/>     <!-- deadline -->  
   </process>
-
 </platform>
index f50080a..7ed961f 100644 (file)
@@ -22,22 +22,17 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bypass.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 40e26e6..1018e94 100644 (file)
@@ -6,6 +6,7 @@
 
 package master_slave_bypass;
 
+import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.MsgException;
 import org.simgrid.msg.NativeException;
@@ -17,19 +18,14 @@ public class MsBypass {
     * which also contains such a launcher
     */
 
-    public static void main(String[] args) throws NativeException {
+    public static void main(String[] args) throws NativeException,HostNotFoundException {
 
     /* initialize the MSG simulation. Must be done before anything else (even logging). */
     Msg.init(args);
     Msg.createEnvironment(args[0]);
 
     /* bypass deployment */
-    try {
-       new Master("Boivin","process1").start();
-    }
-    catch (MsgException e){
-       System.out.println("Create processes failed!");
-    }
+    new Master("Boivin","process1").start();
 
        /*  execute the simulation. */
     Msg.run();
index 5934665..1c6971f 100644 (file)
@@ -22,22 +22,17 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/kill.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index e63b2ef..3dabea0 100644 (file)
@@ -23,25 +23,17 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deploy.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslaveDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 70f120b..d355b13 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
 
   <process host="Jacquelin" function="masterslave.Master">
index 6c01ac0..5f249f1 100644 (file)
@@ -1,13 +1,13 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="masterslave.Master">
      <argument value="5"/>     <!-- Amount of tasks to dispatch -->
      <argument value="50000"/> <!-- Computation size of each task -->
      <argument value="10"/>    <!-- Communication size of each one -->
      <argument value="7"/>     <!-- Amount of slaves waiting for orders -->
   </process>
-  
+
   <process host="Jackson" function="masterslave.Forwarder">
      <argument value="0"/>  <!-- Input mailbox -->
      <argument value="7"/>  <!-- First output mailbox -->
      <argument value="9"/>  <!-- First output mailbox -->
      <argument value="10"/> <!-- Last output mailbox -->
   </process>
-  
-  <process host="iRMX" function="masterslave.Slave">
-     <argument value="2"/>  <!-- Input mailbox -->
-  </process>
-  <process host="Bousquet" function="masterslave.Slave">
-     <argument value="3"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Soucy" function="masterslave.Slave">
-     <argument value="4"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Kuenning" function="masterslave.Slave">
-     <argument value="5"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Browne" function="masterslave.Slave">
-     <argument value="6"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Stephen" function="masterslave.Slave">
-     <argument value="7"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Robert" function="masterslave.Slave">
-     <argument value="8"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Sirois" function="masterslave.Slave">
-     <argument value="9"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Monique" function="masterslave.Slave">
-     <argument value="10"/>  <!-- Input mailbox -->
-  </process>  
+
+  <process host="iRMX" function="masterslave.Slave">      <argument value="2"/>  <!-- Input mailbox --> </process>
+  <process host="Bousquet" function="masterslave.Slave">  <argument value="3"/>  <!-- Input mailbox --> </process>
+  <process host="Soucy" function="masterslave.Slave">     <argument value="4"/>  <!-- Input mailbox --> </process>
+  <process host="Kuenning" function="masterslave.Slave">  <argument value="5"/>  <!-- Input mailbox --> </process>
+  <process host="Browne" function="masterslave.Slave">    <argument value="6"/>  <!-- Input mailbox --> </process>
+  <process host="Stephen" function="masterslave.Slave">   <argument value="7"/>  <!-- Input mailbox --> </process>
+  <process host="Robert" function="masterslave.Slave">    <argument value="8"/>  <!-- Input mailbox --> </process>
+  <process host="Sirois" function="masterslave.Slave">    <argument value="9"/>  <!-- Input mailbox --> </process>
+  <process host="Monique" function="masterslave.Slave">   <argument value="10"/> <!-- Input mailbox --> </process>
 </platform>
index 77ee4e0..27a2553 100644 (file)
@@ -21,23 +21,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/migration.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/migrationDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5fda9f5..1946306 100644 (file)
@@ -1,42 +1,42 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package migration;
-
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Emigrant extends Process {
-       public Emigrant(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       public void main(String[] args) throws MsgException {           
-               Migration.mutex.acquire();
-               
-               Msg.info("I'll look for a new job on another machine where the grass is greener.");
-               migrate(Host.getByName("Boivin"));
-               
-               Msg.info("Yeah, found something to do");
-               Task task = new Task("job", 98095000, 0);
-               task.execute();
-               waitFor(2);
-               
-               Msg.info("Moving back to home after work");
-               migrate(Host.getByName("Jacquelin"));
-               migrate(Host.getByName("Boivin"));
-               waitFor(4);
-               
-               Migration.processToMigrate = this;
-               Migration.mutex.release();              
-               suspend();
-                       
-               Msg.info("I've been moved on this new host:" + getHost().getName());
-               Msg.info("Uh, nothing to do here. Stopping now");
-       }
+  public Emigrant(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {    
+    Migration.mutex.acquire();
+    
+    Msg.info("I'll look for a new job on another machine where the grass is greener.");
+    migrate(Host.getByName("Boivin"));
+
+    Msg.info("Yeah, found something to do");
+    Task task = new Task("job", 98095000, 0);
+    task.execute();
+    waitFor(2);
+
+    Msg.info("Moving back to home after work");
+    migrate(Host.getByName("Jacquelin"));
+    migrate(Host.getByName("Boivin"));
+    waitFor(4);
+
+    Migration.processToMigrate = this;
+    Migration.mutex.release();
+    suspend();
+
+    Msg.info("I've been moved on this new host:" + getHost().getName());
+    Msg.info("Uh, nothing to do here. Stopping now");
+  }
 }
\ No newline at end of file
index 97aa53b..37509a0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,37 +7,28 @@
 package migration;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Mutex;
-import org.simgrid.msg.NativeException;
 import org.simgrid.msg.Process;
-/**
- * Demonstrates the use of Task.setPriority to change
- * the computation priority of a task
- */ 
-public class Migration  {
-       public static Mutex mutex;
-       public static Process processToMigrate = null;
-       
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-    
-    public static void main(String[] args) throws NativeException {            
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : Priority platform_file deployment_file");
-               Msg.info("example : Priority ping_pong_platform.xml ping_pong_deployment.xml");
-               System.exit(1);
-               }
-               /* Create the mutex */
-               mutex = new Mutex();            
-               
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-               
-               /*  execute the simulation. */
-           Msg.run();
+import org.simgrid.msg.NativeException;
+
+public class Migration {
+  public static Mutex mutex;
+  public static Process processToMigrate = null;
+
+  public static void main(String[] args) throws NativeException {      
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Migration platform_file deployment_file");
+      Msg.info("example : Migration ../platforms/platform.xml migrationDeployment.xml");
+      System.exit(1);
     }
+    /* Create the mutex */
+    mutex = new Mutex();
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index 664dd33..3d4cfb4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,26 +6,26 @@
 
 package migration;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Policeman extends Process {
-       public Policeman(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
+  public Policeman(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
 
-       @Override
-       public void main(String[] args) throws MsgException {
-               waitFor(1);
-               
-               Msg.info("Wait a bit before migrating the emigrant.");
-               
-               Migration.mutex.acquire();
-               
-               Migration.processToMigrate.migrate(Host.getByName("Jacquelin"));
-               Msg.info("I moved the emigrant");
-               Migration.processToMigrate.resume();
-       }
+  @Override
+  public void main(String[] args) throws MsgException {
+    waitFor(1);
+    
+    Msg.info("Wait a bit before migrating the emigrant.");
+    
+    Migration.mutex.acquire();
+    
+    Migration.processToMigrate.migrate(Host.getByName("Jacquelin"));
+    Msg.info("I moved the emigrant");
+    Migration.processToMigrate.resume();
+  }
 }
\ No newline at end of file
index db7c6c0..78aba8c 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="migration.Emigrant"/>
   <process host="Boivin" function="migration.Policeman"/>
 </platform>
index 3ec0b1f..02048a8 100644 (file)
@@ -24,23 +24,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/mutualexclusion.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/mutex_centralized_deployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 7a0e0a6..f605279 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,45 +7,44 @@
 package mutualExclusion;
 import java.util.LinkedList;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
+public class Coordinator extends Process {
+  public Coordinator(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+  LinkedList<RequestTask> waitingQueue=new LinkedList<RequestTask>();
+  int CsToServe;
 
-public class Coordinator extends Process  {
-    public Coordinator(Host host, String name, String[]args) {
-               super(host,name,args);
-    } 
-       LinkedList<RequestTask> waitingQueue=new LinkedList<RequestTask>();
-       int CsToServe;
-               
-       public void main(String[] args) throws MsgException {
-               CsToServe = Integer.parseInt(args[0]);
-               Task task;
-               while (CsToServe >0) {
-                       task = Task.receive("coordinator");
-                       if (task instanceof RequestTask) {
-                               RequestTask t = (RequestTask) task;
-                               if (waitingQueue.isEmpty()) {
-                                  Msg.info("Got a request from "+t.from+". Queue empty: grant it");
-                                       GrantTask tosend =  new GrantTask();
-                                       tosend.send(t.from);
-                               } else {
-                                       waitingQueue.addFirst(t);
-                               }
-                       } else if (task instanceof ReleaseTask) {
-                               if (!waitingQueue.isEmpty()) {
-                                       RequestTask req = waitingQueue.removeLast();
-                                       GrantTask tosend = new GrantTask();
-                                       tosend.send(req.from);
-                               }
-                               CsToServe--;
-                               if (waitingQueue.isEmpty() && CsToServe==0) {
-                                       Msg.info("we should shutdown the simulation now");
-                               }
-                       }
-               }
-       }
+  public void main(String[] args) throws MsgException {
+    CsToServe = Integer.parseInt(args[0]);
+    Task task;
+    while (CsToServe >0) {
+      task = Task.receive("coordinator");
+      if (task instanceof RequestTask) {
+        RequestTask t = (RequestTask) task;
+        if (waitingQueue.isEmpty()) {
+          Msg.info("Got a request from "+t.from+". Queue empty: grant it");
+          GrantTask tosend =  new GrantTask();
+          tosend.send(t.from);
+        } else {
+          waitingQueue.addFirst(t);
+        }
+      } else if (task instanceof ReleaseTask) {
+        if (!waitingQueue.isEmpty()) {
+          RequestTask req = waitingQueue.removeLast();
+          GrantTask tosend = new GrantTask();
+          tosend.send(req.from);
+        }
+        CsToServe--;
+        if (waitingQueue.isEmpty() && CsToServe==0) {
+          Msg.info("we should shutdown the simulation now");
+        }
+      }
+    }
+  }
 }
index 79e19d0..fb405a9 100644 (file)
@@ -1,12 +1,8 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package mutualExclusion;
-import org.simgrid.msg.Task;
-
-
-public class GrantTask extends Task {
-}
+public class GrantTask extends org.simgrid.msg.Task {}
index d5da381..ef1fc02 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,29 +10,21 @@ import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 public class MutexCentral {
-
-       /* This only contains the launcher. If you do nothing more than than you can run 
-        *   java simgrid.msg.Msg
-        * which also contains such a launcher
-        */
-
-       public static void main(String[] args) throws NativeException {
-
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-
-               if(args.length < 2) {
-                       Msg.info("Usage: Basic platform_file deployment_file");
-                       Msg.info("Fallback to default values");
-                       Msg.createEnvironment("../ring3.xml");
-                       Msg.deployApplication("mutex_centralized_deployment.xml");
-               } else {
-                       /* construct the platform and deploy the application */
-                       Msg.createEnvironment(args[0]);
-                       Msg.deployApplication(args[1]);
-               }
-               
-               /*  execute the simulation. */
-               Msg.run();
-       }
+  public static void main(String[] args) throws NativeException {
+    Msg.init(args);
+
+    if(args.length < 2) {
+      Msg.info("Usage: MutexCentral platform_file deployment_file");
+      Msg.info("Fallback to default values");
+      Msg.createEnvironment("../platform/small_platform.xml");
+      Msg.deployApplication("mutex_centralized_deployment.xml");
+    } else {
+      /* construct the platform and deploy the application */
+      Msg.createEnvironment(args[0]);
+      Msg.deployApplication(args[1]);
+    }
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index 55d91e3..353dfd7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,29 +6,29 @@
 
 package mutualExclusion;
 
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Node extends Process {
-    public Node(Host host, String name, String[]args) {
-               super(host,name,args);
-    } 
-       public void request(double CStime) throws MsgException {
-               RequestTask req = new RequestTask(getName());
-          Msg.info("Send a request to the coordinator");
-               req.send("coordinator");
-          Msg.info("Wait for a grant from the coordinator");
-               Task.receive(getName()); // FIXME: ensure that this is a grant
-               Task compute = new Task("CS", CStime, 0);
-               compute.execute();
-               ReleaseTask release = new ReleaseTask();
-               release.send("coordinator");
-       }
-       
-       public void main(String[] args) throws MsgException {
-               request(Double.parseDouble(args[1]));
-       }
+  public Node(Host host, String name, String[]args) {
+   super(host,name,args);
+  }
+  public void request(double CStime) throws MsgException {
+    RequestTask req = new RequestTask(getName());
+    Msg.info("Send a request to the coordinator");
+    req.send("coordinator");
+    Msg.info("Wait for a grant from the coordinator");
+    Task.receive(getName()); // FIXME: ensure that this is a grant
+    Task compute = new Task("CS", CStime, 0);
+    compute.execute();
+    ReleaseTask release = new ReleaseTask();
+    release.send("coordinator");
+  }
+
+  public void main(String[] args) throws MsgException {
+    request(Double.parseDouble(args[1]));
+  }
 }
\ No newline at end of file
index 6348116..2a0e020 100644 (file)
@@ -1,9 +1,8 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package mutualExclusion;
-public class ReleaseTask extends org.simgrid.msg.Task {
-}
+public class ReleaseTask extends org.simgrid.msg.Task {}
index 225d16b..1b86e4b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,9 +8,9 @@ package mutualExclusion;
 import org.simgrid.msg.Task;
 
 public class RequestTask extends Task {
-       String from;
-       public RequestTask(String name) {
-               super();
-               from=name;
-       }
+  String from;
+  public RequestTask(String name) {
+    super();
+    from=name;
+  }
 }
index 97a8fa0..0f92c30 100644 (file)
@@ -1,15 +1,15 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="mutualExclusion.Coordinator">
-      <argument value="2"/> <!-- Amount of CS to serve -->
+    <argument value="2"/> <!-- Amount of CS to serve -->
   </process>
   <process host="Jupiter" function="mutualExclusion.Node">
-      <argument value="2"/> <!-- initial sleep time -->
-      <argument value="5"/> <!-- CS time -->
+    <argument value="2"/> <!-- initial sleep time -->
+    <argument value="5"/> <!-- CS time -->
   </process>
   <process host="Fafard" function="mutualExclusion.Node">
-      <argument value="2"/> <!-- initial sleep time -->
-      <argument value="5"/> <!-- CS time -->
+    <argument value="2"/> <!-- initial sleep time -->
+    <argument value="5"/> <!-- CS time -->
   </process>
 </platform>
index 5bc1856..1132494 100644 (file)
@@ -22,24 +22,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pingpong.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pingPongDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 76f7fff..17f2bed 100644 (file)
@@ -1,31 +1,29 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package pingPong;
-import org.simgrid.msg.NativeException;
 import org.simgrid.msg.Task;
+import org.simgrid.msg.NativeException;
 
 public class PingPongTask extends Task {
-   
-   private double timeVal;
-   
-   public PingPongTask() throws NativeException {
-      this.timeVal = 0;
-   }
-   
-   public PingPongTask(String name, double computeDuration, double messageSize) throws NativeException {      
-      super(name,computeDuration,messageSize);         
-   }
-   
-   public void setTime(double timeVal){
-      this.timeVal = timeVal;
-   }
-   
-   public double getTime() {
-      return this.timeVal;
-   }
+  private double timeVal;
+
+  public PingPongTask() throws NativeException {
+    this.timeVal = 0;
+  }
+
+  public PingPongTask(String name, double computeDuration, double messageSize) throws NativeException {
+    super(name,computeDuration,messageSize);
+  }
+
+  public void setTime(double timeVal) {
+    this.timeVal = timeVal;
+  }
+
+  public double getTime() {
+    return this.timeVal;
+  }
 }
-    
\ No newline at end of file
index 04f71d9..cb7ef02 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,27 +8,20 @@ package pingPong;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
  
-public class PingPongTest  {
+public class PingPongTest {
+  public static void main(String[] args) throws NativeException {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : PingPongTest platform_file deployment_file");
+      Msg.info("example : PingPongTest ../platforms/platform.xml pingPongDeployment.xml");
+      System.exit(1);
+    }
 
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java simgrid.msg.Msg
-    * which also contains such a launcher
-    */
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
     
-    public static void main(String[] args) throws NativeException {            
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : PingPong platform_file deployment_file");
-               Msg.info("example : PingPong ping_pong_platform.xml ping_pong_deployment.xml");
-               System.exit(1);
-               }
-       
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-               
-               /*  execute the simulation. */
-           Msg.run();
-    }
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
diff --git a/examples/java/pingPong/README b/examples/java/pingPong/README
deleted file mode 100644 (file)
index aa16de9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a stupid ping/pong example. The processes exchange a simple
-task and time them.
\ No newline at end of file
index 57e69cf..0d6f1ce 100644 (file)
@@ -5,41 +5,38 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package pingPong;
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Receiver extends Process {
-   public Receiver(Host host, String name, String[]args) {
-               super(host,name,args);
-   } 
-   final double commSizeLat = 1;
-   final double commSizeBw = 100000000;
-    
-   public void main(String[] args) throws MsgException {
-        
-      Msg.info("hello!");
-      double communicationTime=0;
-
-      double time = Msg.getClock();
-    
-      Msg.info("try to get a task");
-        
-      PingPongTask task = (PingPongTask)Task.receive(getHost().getName());
-      double timeGot = Msg.getClock();
-      double timeSent = task.getTime();
-            
-      Msg.info("Got at time "+ timeGot);
-      Msg.info("Was sent at time "+timeSent);
-      time=timeSent;
-            
-      communicationTime=timeGot - time;
-      Msg.info("Communication time : " + communicationTime);
-            
-      Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
-            
-      Msg.info("goodbye!");
-    }
+  final double commSizeLat = 1;
+  final double commSizeBw = 100000000;
+  public Receiver(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("hello!");
+    double communicationTime=0;
+
+    double time = Msg.getClock();
+
+    Msg.info("try to get a task");
+
+    PingPongTask task = (PingPongTask)Task.receive(getHost().getName());
+    double timeGot = Msg.getClock();
+    double timeSent = task.getTime();
+
+    Msg.info("Got at time "+ timeGot);
+    Msg.info("Was sent at time "+timeSent);
+    time=timeSent;
+
+    communicationTime=timeGot - time;
+    Msg.info("Communication time : " + communicationTime);
+    Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
+    Msg.info("goodbye!");
+  }
 }
\ No newline at end of file
index 52fbab1..530b67a 100644 (file)
@@ -1,55 +1,55 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package pingPong;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+import org.simgrid.msg.HostNotFoundException;
 
 public class Sender extends Process {
-       public Sender(Host host, String name, String[] args) {
-               super(host,name,args);
-       }
-    private final double commSizeLat = 1;
-    final double commSizeBw = 100000000;
-   
-    public void main(String[] args) throws MsgException {
-       
-       Msg.info("hello!");
-        
-       int hostCount = args.length;
-        
-       Msg.info("host count: " + hostCount);
-       String mailboxes[] = new String[hostCount]; 
-       double time;
-       double computeDuration = 0;
-       PingPongTask task;
-        
-       for(int pos = 0; pos < args.length ; pos++) {
-         try {
-            mailboxes[pos] = Host.getByName(args[pos]).getName();
-         } catch (HostNotFoundException e) {
-            Msg.info("Invalid deployment file: " + e.toString());           
-            System.exit(1);
-         }
-        }
-        
-        for (int pos = 0; pos < hostCount; pos++) { 
-          time = Msg.getClock(); 
-            
-          Msg.info("sender time: " + time);
-          
-          task = new PingPongTask("no name",computeDuration,commSizeLat);
-          task.setTime(time);
-            
-          task.send(mailboxes[pos]);
-        } 
-        
-        Msg.info("goodbye!");
+  private final double commSizeLat = 1;
+  final double commSizeBw = 100000000;
+
+  public Sender(Host host, String name, String[] args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("hello!");
+
+    int hostCount = args.length;
+
+    Msg.info("host count: " + hostCount);
+    String mailboxes[] = new String[hostCount]; 
+    double time;
+    double computeDuration = 0;
+    PingPongTask task;
+
+    for(int pos = 0; pos < args.length ; pos++) {
+      try {
+        mailboxes[pos] = Host.getByName(args[pos]).getName();
+      } catch (HostNotFoundException e) {
+        Msg.info("Invalid deployment file: " + e.toString());
+        System.exit(1);
+      }
+    }
+
+    for (int pos = 0; pos < hostCount; pos++) { 
+      time = Msg.getClock(); 
+
+      Msg.info("sender time: " + time);
+
+      task = new PingPongTask("no name",computeDuration,commSizeLat);
+      task.setTime(time);
+
+      task.send(mailboxes[pos]);
     }
+
+    Msg.info("goodbye!");
+  }
 }
\ No newline at end of file
index 575b343..c7eec34 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="pingPong.Sender">
-      <argument value="Boivin"/>
+    <argument value="Boivin"/>
   </process>
-<process host="Boivin" function="pingPong.Receiver"/>
+  <process host="Boivin" function="pingPong.Receiver"/>
 </platform>
index c1f9d0e..1eb9ee4 100644 (file)
@@ -20,23 +20,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/priority.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/priorityDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 2462ca0..10fa76a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,31 +7,22 @@
 package priority;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
-/**
- * Demonstrates the use of Task.setPriority to change
- * the computation priority of a task
- */ 
-public class Priority  {
 
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-    
-    public static void main(String[] args) throws NativeException {            
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : Priority platform_file deployment_file");
-               Msg.info("example : Priority ping_pong_platform.xml ping_pong_deployment.xml");
-               System.exit(1);
-               }
-       
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-               
-               /*  execute the simulation. */
-           Msg.run();
+/* Demonstrates the use of Task.setPriority to change the computation priority of a task */ 
+public class Priority  {
+  public static void main(String[] args) throws NativeException {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Priority platform_file deployment_file");
+      Msg.info("example : Priority ../platforms/platform.xml priorityDeployment.xml");
+      System.exit(1);
     }
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index 14370f3..8fb44d3 100644 (file)
@@ -1,34 +1,35 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package priority;
-import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
 
 public class Test extends Process {
-       public Test(Host host, String name, String[]args) {
-               super(host,name,args);
-       }
-       public void main(String[] args) throws MsgException {   
-               double computationAmount = 1.0;
-               double priority = 1.0;
-               
-               computationAmount = Double.valueOf(args[0]);
-               priority = Double.valueOf(args[1]);
-               
-               Msg.info("Hello! Running a task of size " + computationAmount + " with priority " + priority);
-               
-               Task task = new Task("Task", computationAmount, 0);
-               task.setPriority(priority);
-               
-               task.execute();
-               
-               Msg.info("Goodbye now!");
-       }
+  public Test(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {  
+    double computationAmount = 1.0;
+    double priority = 1.0;
+
+    computationAmount = Double.valueOf(args[0]);
+    priority = Double.valueOf(args[1]);
+
+    Msg.info("Hello! Running a task of size " + computationAmount + " with priority " + priority);
+
+    Task task = new Task("Task", computationAmount, 0);
+    task.setPriority(priority);
+
+    task.execute();
+
+    Msg.info("Goodbye now!");
+  }
 }
index 78c4958..ddf55b5 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Fafard" function="priority.Test">
        <argument value="76296000"/>
        <argument value="1.0"/>
index b373904..1a1bdc5 100644 (file)
@@ -21,26 +21,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/startKillTime.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_kill.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start_kill.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 270c4a6..593e39a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -14,13 +14,13 @@ import org.simgrid.msg.TransferFailureException;
 
 
 public class Master extends Process {
-       public Master(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
-               Msg.info("Hello!");
-               waitFor(10.0);
-               Msg.info("OK, goodbye now.");
-       
+  public Master(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+    Msg.info("Hello!");
+    waitFor(10.0);
+    Msg.info("OK, goodbye now.");
   }
 }
index 0018b6e..d8feef4 100644 (file)
@@ -1,33 +1,28 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package startKillTime;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostFailureException;
 import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Process;
-import org.simgrid.msg.TimeoutException;
-import org.simgrid.msg.TransferFailureException;
+import org.simgrid.msg.MsgException;
 
-/**
- * Lazy Guy Slave, suspends itself ASAP
- */
+/* Lazy Guy Slave, suspends itself ASAP */
 public class Slave extends Process {
-       public Slave(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
-               Msg.info("Hello!");
-                try {
-                        waitFor(10.0);
-                        Msg.info("OK, goodbye now.");
-                } catch (MsgException e) {
-                        Msg.debug("Wait cancelled.");
-                }
-       
+  public Slave(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("Hello!");
+    try {
+      waitFor(10.0);
+      Msg.info("OK, goodbye now.");
+    } catch (MsgException e) {
+      Msg.debug("Wait cancelled.");
+    }
   }
 }
index 8daffbe..b7240b3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,28 +7,20 @@
 package startKillTime;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
-public class StartKillTime  {
 
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java org.simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-    
-    public static void main(String[] args) throws NativeException {            
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : StartKilltime platform_file deployment_file");
-               Msg.info("example : StartKilltime platform.xml startKilltime.xml");
-               System.exit(1);
-               }
-       
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-               
-               /*  execute the simulation. */
-           Msg.run();
+public class StartKillTime {
+  public static void main(String[] args) throws NativeException {      
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : StartKilltime platform_file deployment_file");
+      Msg.info("example : StartKilltime ../platforms/platform.xml deployment_start_kill.xml");
+      System.exit(1);
     }
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
diff --git a/examples/java/startKillTime/deployment.xml b/examples/java/startKillTime/deployment.xml
deleted file mode 100644 (file)
index 8afa3fd..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-   <process host="Jacquelin" function="startKillTime.Master"/>
-  <process host="Boivin" function="startKillTime.Slave"/>
-       <process host="Jean_Yves" function="startKillTime.Slave"/>
-       <process host="TeX" function="startKillTime.Slave"/>
-       <process host="Geoff" function="startKillTime.Slave"/>
-       <process host="Disney" function="startKillTime.Slave"/>
-</platform>
diff --git a/examples/java/startKillTime/deployment_kill.xml b/examples/java/startKillTime/deployment_kill.xml
deleted file mode 100644 (file)
index 0d7e003..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-   <process host="Jacquelin" function="startKillTime.Master"/>
-  <process host="Boivin" function="startKillTime.Slave"  kill_time="5"/>
-       <process host="Jean_Yves" function="startKillTime.Slave" kill_time="6"/>
-       <process host="TeX" function="startKillTime.Slave"  kill_time="7"/>
-       <process host="Geoff" function="startKillTime.Slave" kill_time="8"/>
-       <process host="Disney" function="startKillTime.Slave" kill_time="9"/>
-</platform>
diff --git a/examples/java/startKillTime/deployment_start.xml b/examples/java/startKillTime/deployment_start.xml
deleted file mode 100644 (file)
index dbf6de6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <process host="Jacquelin" function="startKillTime.Master"/>
-  <process host="Boivin" function="startKillTime.Slave" start_time="1" />
-       <process host="Jean_Yves" function="startKillTime.Slave" start_time="2"/>
-       <process host="TeX" function="startKillTime.Slave" start_time="3"/>
-       <process host="Geoff" function="startKillTime.Slave" start_time="4"/>
-       <process host="Disney" function="startKillTime.Slave" start_time="5"/>
-</platform>
index d7fd058..d449286 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-   <process host="Jacquelin" function="startKillTime.Master"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Jacquelin" function="startKillTime.Master"/>
   <process host="Boivin" function="startKillTime.Slave" start_time="1" kill_time="5"/>
-       <process host="Jean_Yves" function="startKillTime.Slave" start_time="2" kill_time="6"/>
-       <process host="TeX" function="startKillTime.Slave" start_time="3" kill_time="7"/>
-       <process host="Geoff" function="startKillTime.Slave" start_time="4" kill_time="8"/>
-       <process host="Disney" function="startKillTime.Slave" start_time="5" kill_time="9"/>
+  <process host="Jean_Yves" function="startKillTime.Slave" start_time="2" kill_time="6"/>
+  <process host="TeX" function="startKillTime.Slave" start_time="3" kill_time="7"/>
+  <process host="Geoff" function="startKillTime.Slave" start_time="4" kill_time="8"/>
+  <process host="Disney" function="startKillTime.Slave" start_time="5" kill_time="9"/>
 </platform>
index 80ac4e0..d978b49 100644 (file)
@@ -21,23 +21,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/suspend.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/suspendDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8dff985..6469b5a 100644 (file)
@@ -5,23 +5,24 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package suspend;
-
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
+
 public class DreamMaster extends Process {
-       public DreamMaster(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws MsgException {
-               Msg.info("Let's create a lazy guy.");
-               Process lazyGuy = new LazyGuy(getHost(),"Lazy",null);
-               lazyGuy.start();
-               Msg.info("Let's wait a little bit...");
-               waitFor(10);
-               Msg.info("Let's wake the lazy guy up! >:) BOOOOOUUUHHH!!!!");
-               lazyGuy.resume();
-               Msg.info("OK, goodbye now.");
-       }
+  public DreamMaster(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("Let's create a lazy guy.");
+    Process lazyGuy = new LazyGuy(getHost(),"Lazy",null);
+    lazyGuy.start();
+    Msg.info("Let's wait a little bit...");
+    waitFor(10);
+    Msg.info("Let's wake the lazy guy up! >:) BOOOOOUUUHHH!!!!");
+    lazyGuy.resume();
+    Msg.info("OK, goodbye now.");
+  }
 }
\ No newline at end of file
index ffad084..74231fe 100644 (file)
@@ -1,23 +1,24 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package suspend;
-
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
+
 public class LazyGuy extends Process {
-       public LazyGuy(Host host, String name, String[]args) {
-               super(host,name,args);
-       } 
-       public void main(String[] args) throws MsgException {
-               Msg.info("Nobody's watching me ? Let's go to sleep.");
-               suspend();
-               Msg.info("Uuuh ? Did somebody call me ?");
-               Msg.info("Mmmh, goodbye now.");
-       }
+  public LazyGuy(Host host, String name, String[]args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("Nobody's watching me ? Let's go to sleep.");
+    suspend();
+    Msg.info("Uuuh ? Did somebody call me ?");
+    Msg.info("Mmmh, goodbye now.");
+  }
 }
\ No newline at end of file
index 027ed8e..f6c19e0 100644 (file)
@@ -1,27 +1,25 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package suspend;
-
 import org.simgrid.msg.Msg;
 
 public class Suspend {
-       public static void main(String[] args) {
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-       if(args.length < 2) {
-               Msg.info("Usage   : Suspend platform_file deployment_file");
-               Msg.info("example : Suspend platform.xml deployment.xml");
-               System.exit(1);
-       }
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
-                       
-               /*  execute the simulation. */
-        Msg.run();             
-       }
+  public static void main(String[] args) {
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : Suspend platform_file deployment_file");
+      Msg.info("example : Suspend ../platforms/platform.xml suspendDeployment.xml");
+      System.exit(1);
+    }
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
+
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index af3d363..448cec5 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="suspend.DreamMaster"/>
 </platform>
index 55720c7..e21c754 100644 (file)
@@ -22,24 +22,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPong.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPongDeployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f43b69e..22ee817 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,23 +9,22 @@ import org.simgrid.msg.NativeException;
 import org.simgrid.msg.Task;
 
 public class PingPongTask extends Task {
-   
-   private double timeVal;
-   
-   public PingPongTask() throws NativeException {
-      this.timeVal = 0;
-   }
-   
-   public PingPongTask(String name, double computeDuration, double messageSize) throws NativeException {      
-      super(name,computeDuration,messageSize);         
-   }
-   
-   public void setTime(double timeVal){
-      this.timeVal = timeVal;
-   }
-   
-   public double getTime() {
-      return this.timeVal;
-   }
+  private double timeVal;
+
+  public PingPongTask() throws NativeException {
+    this.timeVal = 0;
+  }
+
+  public PingPongTask(String name, double computeDuration, double messageSize) throws NativeException {
+    super(name,computeDuration,messageSize);
+  }
+
+  public void setTime(double timeVal){
+    this.timeVal = timeVal;
+  }
+
+  public double getTime() {
+    return this.timeVal;
+  }
 }
-    
+
diff --git a/examples/java/tracing/README b/examples/java/tracing/README
deleted file mode 100644 (file)
index aa16de9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a stupid ping/pong example. The processes exchange a simple
-task and time them.
\ No newline at end of file
index 0cd91d4..d3d0a1a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2007, 2012-2014. The SimGrid Team.
+/* Copyright (c) 2006-2007, 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -13,49 +13,47 @@ import org.simgrid.msg.Process;
 import org.simgrid.trace.Trace;
 
 public class Receiver extends Process {
-  
-       private  final double commSizeLat = 1;
+  private  final double commSizeLat = 1;
   private final double commSizeBw = 100000000;
-                
-       public Receiver(Host host, String name, String[]args) {
-               super(host,name,args);
-   } 
-   
-   public void main(String[] args) throws MsgException {
-        
-      Msg.info("hello!");
-      Trace.hostPushState (getHost().getName(), "PM_STATE", "waitingPing");
-                       double communicationTime=0;
-
-      double time = Msg.getClock();
-    
-                       /* Wait for the ping */ 
-      Msg.info("try to get a task");
-        
-      PingPongTask ping = (PingPongTask)Task.receive(getHost().getName());
-      double timeGot = Msg.getClock();
-      double timeSent = ping.getTime();
-            
-      Msg.info("Got at time "+ timeGot);
-      Msg.info("Was sent at time "+timeSent);
-      time=timeSent;
-            
-      communicationTime=timeGot - time;
-      Msg.info("Communication time : " + communicationTime);
-            
-      Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
-      
-                       /* Send the pong */
-               Trace.hostPushState (getHost().getName(), "PM_STATE", "sendingPong");
-                       double computeDuration = 0;
-                       PingPongTask pong = new PingPongTask("no name",computeDuration,commSizeLat);
-                       pong.setTime(time);
-                       pong.send(ping.getSource().getName());
-
-               /* Pop the two states */
-      Trace.hostPopState (getHost().getName(), "PM_STATE");
-      Trace.hostPopState (getHost().getName(), "PM_STATE");
-  
-               Msg.info("goodbye!");
-    }
+
+  public Receiver(Host host, String name, String[]args) {
+    super(host,name,args);
+  } 
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("hello!");
+    Trace.hostPushState (getHost().getName(), "PM_STATE", "waitingPing");
+    double communicationTime=0;
+
+    double time = Msg.getClock();
+
+    /* Wait for the ping */ 
+    Msg.info("try to get a task");
+
+    PingPongTask ping = (PingPongTask)Task.receive(getHost().getName());
+    double timeGot = Msg.getClock();
+    double timeSent = ping.getTime();
+
+    Msg.info("Got at time "+ timeGot);
+    Msg.info("Was sent at time "+timeSent);
+    time=timeSent;
+
+    communicationTime=timeGot - time;
+    Msg.info("Communication time : " + communicationTime);
+
+    Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
+
+    /* Send the pong */
+    Trace.hostPushState (getHost().getName(), "PM_STATE", "sendingPong");
+    double computeDuration = 0;
+    PingPongTask pong = new PingPongTask("no name",computeDuration,commSizeLat);
+    pong.setTime(time);
+    pong.send(ping.getSource().getName());
+
+    /* Pop the two states */
+    Trace.hostPopState (getHost().getName(), "PM_STATE");
+    Trace.hostPopState (getHost().getName(), "PM_STATE");
+
+    Msg.info("goodbye!");
+  }
 }
index 82930bd..8d9206b 100644 (file)
@@ -1,77 +1,74 @@
-/* Sender of basic ping/pong example */
-
-/* Copyright (c) 2006-2014. The SimGrid Team.
+/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 package tracing;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
-import org.simgrid.msg.MsgException;
 import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.trace.Trace;
 
 public class Sender extends Process {
-       
-                               private final double commSizeLat = 1;
-                               private final double commSizeBw = 100000000;
+  private final double commSizeLat = 1;
+  private final double commSizeBw = 100000000;
+
+  public Sender(Host host, String name, String[] args) {
+    super(host,name,args);
+  }
+
+  public void main(String[] args) throws MsgException {
+    Msg.info("hello !"); 
+    Trace.hostPushState (getHost().getName(), "PM_STATE", "sendingPing");
+
+    int hostCount = args.length;
+    Msg.info("host count: " + hostCount);
+    String mailboxes[] = new String[hostCount]; 
+    double time;
+    double computeDuration = 0;
+    PingPongTask ping, pong;
+
+    for(int pos = 0; pos < args.length ; pos++) {
+      try {
+        mailboxes[pos] = Host.getByName(args[pos]).getName();
+      } catch (HostNotFoundException e) {
+        Msg.info("Invalid deployment file: " + e.toString());
+        System.exit(1);
+      }
+    }
+
+    for (int pos = 0; pos < hostCount; pos++) { 
+      time = Msg.getClock(); 
+      Msg.info("sender time: " + time);
+      ping = new PingPongTask("no name",computeDuration,commSizeLat);
+      ping.setTime(time);
+      ping.send(mailboxes[pos]);
+
+      Trace.hostPushState (getHost().getName(), "PM_STATE", "waitingPong");
+      pong = (PingPongTask)Task.receive(getHost().getName());
+      double timeGot = Msg.getClock();
+      double timeSent = ping.getTime();
+      double communicationTime=0;
+
+      Msg.info("Got at time "+ timeGot);
+      Msg.info("Was sent at time "+timeSent);
+      time=timeSent;
+
+      communicationTime=timeGot - time;
+      Msg.info("Communication time : " + communicationTime);
+
+      Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
 
-                               public Sender(Host host, String name, String[] args) {
-                                                               super(host,name,args);
-                               }
-                               
-                               public void main(String[] args) throws MsgException {
-                                                               Msg.info("hello !"); 
-                                                               Trace.hostPushState (getHost().getName(), "PM_STATE", "sendingPing");
-                                                               
-                                                               int hostCount = args.length;
-                                                               Msg.info("host count: " + hostCount);
-                                                               String mailboxes[] = new String[hostCount]; 
-                                                               double time;
-                                                               double computeDuration = 0;
-                                                               PingPongTask ping, pong;
-                                                               
-                                                               for(int pos = 0; pos < args.length ; pos++) {
-                                                                                               try {
-                                                                                                                               mailboxes[pos] = Host.getByName(args[pos]).getName();
-                                                                                               } catch (HostNotFoundException e) {
-                                                                                                                               Msg.info("Invalid deployment file: " + e.toString());
-                                                                                                                               System.exit(1);
-                                                                                               }
-                                                               }
-                                                               
-                                                               for (int pos = 0; pos < hostCount; pos++) { 
-                                                                                               time = Msg.getClock(); 
-                                                                                               Msg.info("sender time: " + time);
-                                                                                               ping = new PingPongTask("no name",computeDuration,commSizeLat);
-                                                                                               ping.setTime(time);
-                                                                                               ping.send(mailboxes[pos]);
-                                                               
-                                                                                               Trace.hostPushState (getHost().getName(), "PM_STATE", "waitingPong");
-                                                                                               pong = (PingPongTask)Task.receive(getHost().getName());
-                                                                       double timeGot = Msg.getClock();
-                                                                       double timeSent = ping.getTime();
-                                                       double communicationTime=0;
-                                                                       
-                                                                                               Msg.info("Got at time "+ timeGot);
-                                                                       Msg.info("Was sent at time "+timeSent);
-                                                                       time=timeSent;
-            
-                                                                       communicationTime=timeGot - time;
-                                                                       Msg.info("Communication time : " + communicationTime);
-            
-                                                                       Msg.info(" --- bw "+ commSizeBw/communicationTime + " ----");
-      
-                                                                                               /* Pop the last state (going back to sending ping) */   
-                                                                                               Trace.hostPopState (getHost().getName(), "PM_STATE");
+      /* Pop the last state (going back to sending ping) */  
+      Trace.hostPopState (getHost().getName(), "PM_STATE");
+    }
 
-                                                               }
-                                                          /* Pop the sendingPong state */      
-                                                               Trace.hostPopState (getHost().getName(), "PM_STATE");
-                                                               Msg.info("goodbye!");
-                               }
+    /* Pop the sendingPong state */  
+    Trace.hostPopState (getHost().getName(), "PM_STATE");
+    Msg.info("goodbye!");
+  }
 }
index b8453bd..5a033e3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2006-2007, 2012-2014. The SimGrid Team.
+/* Copyright (c) 2006-2007, 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,35 +8,28 @@ package tracing;
 import org.simgrid.msg.Msg;
 import org.simgrid.trace.Trace;
 import org.simgrid.msg.NativeException;
+
 public class TracingTest  {
+  public static void main(String[] args) throws NativeException {      
+    Msg.init(args);
+    if(args.length < 2) {
+      Msg.info("Usage   : TracingTest platform_file deployment_file");
+      Msg.info("example : TracingTest ../platforms/platform.xml tracingPingPongDeployment.xml");
+      System.exit(1);
+    }
 
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   java simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-    
-    public static void main(String[] args) throws NativeException {            
-               /* initialize the MSG simulation. Must be done before anything else (even logging). */
-               Msg.init(args);
-               if(args.length < 2) {
-                       Msg.info("Usage   : PingPong platform_file deployment_file");
-               Msg.info("example : PingPong ping_pong_platform.xml ping_pong_deployment.xml");
-               System.exit(1);
-               }
-       
-               /* construct the platform and deploy the application */
-               Msg.createEnvironment(args[0]);
-               Msg.deployApplication(args[1]);
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Msg.deployApplication(args[1]);
 
-               /* Initialize some state for the hosts */
-               Trace.hostStateDeclare ("PM_STATE"); 
-               Trace.hostStateDeclareValue ("PM_STATE", "waitingPing", "0 0 1");
-               Trace.hostStateDeclareValue ("PM_STATE", "sendingPong", "0 1 0");
-               Trace.hostStateDeclareValue ("PM_STATE", "sendingPing", "0 1 1");
-               Trace.hostStateDeclareValue ("PM_STATE", "waitingPong", "1 0 0");
+    /* Initialize some state for the hosts */
+    Trace.hostStateDeclare ("PM_STATE"); 
+    Trace.hostStateDeclareValue ("PM_STATE", "waitingPing", "0 0 1");
+    Trace.hostStateDeclareValue ("PM_STATE", "sendingPong", "0 1 0");
+    Trace.hostStateDeclareValue ("PM_STATE", "sendingPing", "0 1 1");
+    Trace.hostStateDeclareValue ("PM_STATE", "waitingPong", "1 0 0");
 
-               /*  execute the simulation. */
-           Msg.run();
-    }
+    /*  execute the simulation. */
+    Msg.run();
+  }
 }
index c9703f5..ed7db68 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="tracing.Sender">
-      <argument value="Boivin"/>
-      <argument value="Marcel"/>
+    <argument value="Boivin"/>
+    <argument value="Marcel"/>
   </process>
-<process host="Boivin" function="tracing.Receiver"/>
-<process host="Marcel" function="tracing.Receiver"/>
+  <process host="Boivin" function="tracing.Receiver"/>
+  <process host="Marcel" function="tracing.Receiver"/>
 </platform>
index cd08b29..36c39cc 100644 (file)
@@ -1,19 +1,3 @@
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bourassa_state.trace
@@ -24,5 +8,4 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/link4_state.trace
   ${CMAKE_CURRENT_SOURCE_DIR}/link5_state.trace
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index a4a8332..071af06 100644 (file)
@@ -2,32 +2,24 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(actions actions.c)
 add_executable(storage_actions storage_actions.c)
 
-### Add definitions for compile
 target_link_libraries(actions simgrid)
 target_link_libraries(storage_actions simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/actions.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_split.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/storage_deployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/actions.c
   ${CMAKE_CURRENT_SOURCE_DIR}/storage_actions.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/actions_io.txt
@@ -39,6 +31,4 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/actions_split_p1.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/actions.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/actions_with_isend.txt
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
diff --git a/examples/msg/actions/NAS_LU_S_4/deploy_MPI_4.xml b/examples/msg/actions/NAS_LU_S_4/deploy_MPI_4.xml
deleted file mode 100644 (file)
index 47c880a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <process host="bordereau-1.bordeaux.grid5000.fr" function="p0">
-      <argument value="simgrid0.txt"/>
-   </process>
-  <process host="bordereau-2.bordeaux.grid5000.fr" function="p1">
-      <argument value="simgrid1.txt"/>
-   </process>
-  <process host="bordereau-3.bordeaux.grid5000.fr" function="p2">
-      <argument value="simgrid2.txt"/>
-   </process>
-  <process host="bordereau-4.bordeaux.grid5000.fr" function="p3">
-      <argument value="simgrid3.txt"/>
-   </process>
-</platform>
diff --git a/examples/msg/actions/NAS_LU_S_4/instr_actions.tesh b/examples/msg/actions/NAS_LU_S_4/instr_actions.tesh
deleted file mode 100644 (file)
index 4b9dd45..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# A little tesh file testing most MPI-related actions
-
-$ ../actions --cfg=tracing:yes --cfg=tracing/smpi:yes --log=surf_config.thresh:critical --cfg=network/model:SMPI platform.xml deploy_MPI_4.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
-> [0.095453] [actions/INFO] Simulation time 0.095453
diff --git a/examples/msg/actions/NAS_LU_S_4/simgrid0.txt b/examples/msg/actions/NAS_LU_S_4/simgrid0.txt
deleted file mode 100644 (file)
index 99e7374..0000000
+++ /dev/null
@@ -1,4630 +0,0 @@
-p0 init
-p0 compute 4449
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65112
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 128762
-p0 comm_size 4
-p0 allReduce 40 86
-p0 compute 123
-p0 comm_size 4
-p0 barrier
-p0 compute 32904
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31569
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31548
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31572
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20243
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29189
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29178
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29153
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16092
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65122
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161481
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31550
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31601
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16084
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65093
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161361
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29190
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29181
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16083
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65090
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161361
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31561
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20183
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29179
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29181
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16085
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65105
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161375
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31569
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31573
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29171
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16088
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65090
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161361
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31587
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29158
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16085
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65102
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161366
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31571
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16083
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65105
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161367
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31562
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31554
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31546
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20154
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29155
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29149
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29145
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29154
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65090
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161357
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20189
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29157
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29200
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29145
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16084
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65121
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161390
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31557
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31578
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65093
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161364
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31577
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31561
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20191
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29157
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16082
-p0 send p1 5760
-p0 compute 56
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65084
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161361
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31567
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31558
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16084
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65078
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161416
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31562
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31583
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29149
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16083
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65102
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161387
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31560
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31573
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16093
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65081
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161390
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29157
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16090
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65107
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161420
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31562
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31558
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20150
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29154
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29154
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16089
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65090
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161395
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65081
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161391
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20182
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29176
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16090
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65090
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161384
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31591
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31557
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29173
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65082
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161398
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31545
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20190
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29171
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16081
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161386
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31584
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20186
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29193
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16093
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65117
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161375
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31563
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20193
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65115
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161369
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31559
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16091
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161384
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31592
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31565
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20194
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29181
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29208
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29207
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16085
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65100
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161355
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31569
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31571
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20173
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65115
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161368
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29145
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29181
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16085
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65115
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161391
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29153
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16083
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65100
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161371
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31569
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29148
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65097
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161360
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31547
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31574
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161380
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31598
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16084
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65095
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161365
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31616
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31604
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65098
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161356
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65095
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161346
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31575
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65111
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161375
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31550
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29188
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65098
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161357
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31546
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161366
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31560
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29191
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161365
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31574
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 59
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20184
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16082
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65112
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161363
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31557
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 60
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29167
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65095
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161375
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31557
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31554
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161384
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29171
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29154
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29145
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29178
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29158
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16090
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65125
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161463
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31567
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20227
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29148
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16089
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65098
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161399
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31598
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31559
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31564
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16088
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161363
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29144
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16089
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65095
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161365
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31565
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31577
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31592
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29147
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65098
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161369
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31585
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20189
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29186
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161383
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31551
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29149
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29169
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16087
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161367
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31552
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31576
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20150
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29188
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65116
-p0 send p2 5760
-p0 compute 56
-p0 Irecv p2
-p0 compute 56
-p0 wait
-p0 compute 161370
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31556
-p0 send p1 200
-p0 compute 56
-p0 send p2 200
-p0 compute 31562
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 55
-p0 recv p2
-p0 compute 16084
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65113
-p0 send p2 5760
-p0 compute 56
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161378
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31554
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31595
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20146
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 16086
-p0 send p1 5760
-p0 compute 55
-p0 Irecv p1
-p0 compute 55
-p0 wait
-p0 compute 65114
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 161383
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31571
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31589
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31543
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 31544
-p0 send p1 200
-p0 compute 55
-p0 send p2 200
-p0 compute 20216
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29171
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 29143
-p0 recv p1
-p0 compute 56
-p0 recv p2
-p0 compute 11662
-p0 comm_size 4
-p0 allReduce 40 94
-p0 compute 4542
-p0 send p1 5760
-p0 compute 56
-p0 Irecv p1
-p0 compute 56
-p0 wait
-p0 compute 65114
-p0 send p2 5760
-p0 compute 55
-p0 Irecv p2
-p0 compute 55
-p0 wait
-p0 compute 128802
-p0 comm_size 4
-p0 allReduce 40 92
-p0 compute 234
-p0 comm_size 4
-p0 allReduce 8 84
-p0 compute 112
-p0 finalize
diff --git a/examples/msg/actions/NAS_LU_S_4/simgrid1.txt b/examples/msg/actions/NAS_LU_S_4/simgrid1.txt
deleted file mode 100644 (file)
index 690c63c..0000000
+++ /dev/null
@@ -1,4631 +0,0 @@
-p1 init
-p1 compute 4448
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 55
-p1 send p0 5760
-p1 compute 65080
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 128751
-p1 comm_size 4
-p1 allReduce 40 95
-p1 compute 126
-p1 comm_size 4
-p1 barrier
-p1 compute 23883
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22558
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22604
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9063
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20193
-p1 recv p3
-p1 compute 9110
-p1 send p0 200
-p1 compute 20148
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20203
-p1 recv p3
-p1 compute 9090
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20184
-p1 recv p3
-p1 compute 9071
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9081
-p1 send p0 200
-p1 compute 20184
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7088
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65099
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152421
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22565
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22586
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9071
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22552
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20148
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9055
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20177
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7080
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65081
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152399
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9070
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22562
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9100
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20196
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20150
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20180
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 7093
-p1 Irecv p0
-p1 compute 56
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65081
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152405
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20184
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20203
-p1 recv p3
-p1 compute 9111
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9085
-p1 send p0 200
-p1 compute 20203
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65080
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152402
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22563
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9107
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9062
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20183
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20204
-p1 recv p3
-p1 compute 9082
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9087
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65081
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152448
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9062
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 20157
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9094
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20212
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20196
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7088
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65081
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152391
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22582
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9091
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20157
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7080
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65081
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152381
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22576
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22593
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22579
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20153
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20183
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65141
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152391
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22601
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22564
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9054
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20182
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7080
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152406
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22559
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9069
-p1 send p3 200
-p1 compute 22549
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9078
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152411
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22601
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20149
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20178
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20148
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20200
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7082
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65110
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152398
-p1 recv p0
-p1 compute 9061
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9096
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7087
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65093
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152385
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22576
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22563
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20193
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20153
-p1 recv p3
-p1 compute 9055
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9115
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 7086
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152391
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22557
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22552
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20197
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20184
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20187
-p1 recv p3
-p1 compute 9074
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20176
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65106
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152404
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22599
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9070
-p1 send p3 200
-p1 compute 22588
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20174
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20203
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20205
-p1 recv p3
-p1 compute 9054
-p1 send p0 200
-p1 compute 7090
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152430
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22599
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22553
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9072
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9066
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9063
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20171
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20194
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20215
-p1 recv p3
-p1 compute 9097
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20153
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152407
-p1 recv p0
-p1 compute 9061
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9084
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9066
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9054
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7091
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65111
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22582
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22580
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9085
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22592
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20154
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20203
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20202
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20198
-p1 recv p3
-p1 compute 9060
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20178
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7083
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65109
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22594
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22594
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20199
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20185
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20183
-p1 recv p3
-p1 compute 9055
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20179
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7082
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65098
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22589
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9071
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20213
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20173
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20189
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152408
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22591
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9079
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9079
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9069
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20192
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20195
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152412
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22576
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9065
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20166
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20179
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20180
-p1 recv p3
-p1 compute 9091
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152390
-p1 recv p0
-p1 compute 9061
-p1 send p3 200
-p1 compute 22553
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9075
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20180
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20177
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20152
-p1 recv p3
-p1 compute 9075
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7086
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152382
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9076
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9071
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20192
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65098
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9060
-p1 send p3 200
-p1 compute 22580
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9080
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20191
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20198
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 7090
-p1 Irecv p0
-p1 compute 56
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65093
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152380
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9077
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9060
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9060
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20189
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20190
-p1 recv p3
-p1 compute 9070
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65098
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152361
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20187
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20202
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7089
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152374
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22596
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22595
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9073
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9072
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20148
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20175
-p1 recv p3
-p1 compute 9081
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152389
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22561
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9059
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9087
-p1 send p3 200
-p1 compute 20157
-p1 recv p3
-p1 compute 9054
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20193
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65094
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152407
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22593
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22557
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9069
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22590
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20169
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 7086
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65093
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152403
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22594
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22584
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22553
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9081
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20196
-p1 recv p3
-p1 compute 9091
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9065
-p1 send p0 200
-p1 compute 20186
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 7096
-p1 Irecv p0
-p1 compute 56
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 57
-p1 wait
-p1 compute 152385
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9103
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9072
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20154
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20177
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20197
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9054
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20204
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152392
-p1 recv p0
-p1 compute 9061
-p1 send p3 200
-p1 compute 22594
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9075
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9063
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9071
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9076
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9073
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20172
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20185
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9062
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20154
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 7086
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 57
-p1 send p0 5760
-p1 compute 65111
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152387
-p1 recv p0
-p1 compute 9058
-p1 send p3 200
-p1 compute 22563
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9087
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9080
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9070
-p1 send p0 200
-p1 compute 20185
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20149
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9057
-p1 send p0 200
-p1 compute 20198
-p1 recv p3
-p1 compute 9061
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20194
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152387
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22594
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20154
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20159
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7087
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22589
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9062
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20180
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20195
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20190
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7082
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152398
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22550
-p1 recv p0
-p1 compute 9075
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20185
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7087
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152395
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22563
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22597
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20189
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20178
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7083
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65099
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152410
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9074
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9079
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9069
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20187
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20202
-p1 recv p3
-p1 compute 9091
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9073
-p1 send p0 200
-p1 compute 20189
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7083
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152402
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22573
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9084
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9067
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9055
-p1 send p3 200
-p1 compute 22553
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20180
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20194
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9073
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152394
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22570
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9064
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9076
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20159
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20199
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20181
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7081
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152395
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22549
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22559
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9077
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9080
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20190
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7081
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152383
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22563
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9096
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 20176
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20187
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9070
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9053
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152400
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22582
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9074
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9080
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20182
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20194
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9065
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20178
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7082
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65111
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152357
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22592
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22582
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9082
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9065
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20152
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20183
-p1 recv p3
-p1 compute 9090
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 7089
-p1 Irecv p0
-p1 compute 56
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152389
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 22571
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22550
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9094
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9082
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20183
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20182
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20200
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7085
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65125
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152403
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22558
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20152
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20173
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20148
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7088
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65096
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152397
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22565
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22560
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20188
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20193
-p1 recv p3
-p1 compute 9073
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20171
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7087
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65093
-p1 send p3 5760
-p1 compute 55
-p1 Irecv p3
-p1 compute 55
-p1 wait
-p1 compute 152411
-p1 recv p0
-p1 compute 9057
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22555
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22553
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9053
-p1 send p3 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9066
-p1 send p0 200
-p1 compute 20153
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20147
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9093
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 20146
-p1 recv p3
-p1 compute 9052
-p1 send p0 200
-p1 compute 7084
-p1 Irecv p0
-p1 compute 55
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65099
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 152410
-p1 recv p0
-p1 compute 9060
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22554
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22556
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22548
-p1 recv p0
-p1 compute 9068
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9054
-p1 send p3 200
-p1 compute 22546
-p1 recv p0
-p1 compute 9052
-p1 send p3 200
-p1 compute 22547
-p1 recv p0
-p1 compute 9056
-p1 send p3 200
-p1 compute 20169
-p1 recv p3
-p1 compute 9070
-p1 send p0 200
-p1 compute 20154
-p1 recv p3
-p1 compute 9070
-p1 send p0 200
-p1 compute 20202
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20202
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20155
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20193
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 20156
-p1 recv p3
-p1 compute 9088
-p1 send p0 200
-p1 compute 20204
-p1 recv p3
-p1 compute 9056
-p1 send p0 200
-p1 compute 2668
-p1 comm_size 4
-p1 allReduce 40 99
-p1 compute 4536
-p1 Irecv p0
-p1 compute 56
-p1 wait
-p1 compute 56
-p1 send p0 5760
-p1 compute 65097
-p1 send p3 5760
-p1 compute 56
-p1 Irecv p3
-p1 compute 56
-p1 wait
-p1 compute 128748
-p1 comm_size 4
-p1 allReduce 40 94
-p1 compute 232
-p1 comm_size 4
-p1 allReduce 8 81
-p1 compute 110
-p1 finalize
-
diff --git a/examples/msg/actions/NAS_LU_S_4/simgrid2.txt b/examples/msg/actions/NAS_LU_S_4/simgrid2.txt
deleted file mode 100644 (file)
index 1154e64..0000000
+++ /dev/null
@@ -1,4630 +0,0 @@
-p2 init
-p2 compute 4444
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65089
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 57
-p2 send p0 5760
-p2 compute 128713
-p2 comm_size 4
-p2 allReduce 40 94
-p2 compute 121
-p2 comm_size 4
-p2 barrier
-p2 compute 23851
-p2 recv p0
-p2 compute 9053
-p2 send p3 200
-p2 compute 22560
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22561
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22549
-p2 recv p0
-p2 compute 9059
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9053
-p2 send p3 200
-p2 compute 22577
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20159
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20167
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7087
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65085
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152342
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22570
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9086
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20186
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65085
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152344
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22549
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22586
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22603
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22557
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20179
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20178
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152337
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9081
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9066
-p2 send p3 200
-p2 compute 22612
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22564
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22614
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9074
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7089
-p2 send p3 5760
-p2 compute 56
-p2 Irecv p3
-p2 compute 56
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152287
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22559
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20164
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9086
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9059
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152356
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22593
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9063
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22561
-p2 recv p0
-p2 compute 9066
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9103
-p2 send p3 200
-p2 compute 22601
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22596
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9071
-p2 send p0 200
-p2 compute 20158
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22613
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22604
-p2 recv p0
-p2 compute 9072
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22594
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22607
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9058
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20203
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22610
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22599
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9074
-p2 send p3 200
-p2 compute 22594
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9068
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9093
-p2 send p0 200
-p2 compute 20197
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20200
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152318
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22604
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9074
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22610
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9103
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9065
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7081
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152285
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22586
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20181
-p2 recv p3
-p2 compute 9075
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9081
-p2 send p0 200
-p2 compute 20158
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7084
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22601
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20171
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9110
-p2 send p0 200
-p2 compute 20162
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7081
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152324
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22583
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22589
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20193
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20202
-p2 recv p3
-p2 compute 9074
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7087
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152338
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9058
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9107
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7077
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152340
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22603
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22557
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22586
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22615
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9071
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 7087
-p2 send p3 5760
-p2 compute 56
-p2 Irecv p3
-p2 compute 56
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152322
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22582
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9084
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9095
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22588
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20164
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9071
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20187
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22606
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22560
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22602
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9071
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20187
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152287
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22598
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22591
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22603
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20165
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20183
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20159
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9078
-p2 send p0 200
-p2 compute 20186
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7078
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65114
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152323
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22610
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22582
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22572
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9069
-p2 send p3 200
-p2 compute 22569
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22589
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22590
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9078
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9074
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20188
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7084
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152289
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22586
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9089
-p2 send p3 200
-p2 compute 22599
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22588
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22585
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9087
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20182
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152328
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20195
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7088
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9074
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22602
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20213
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9079
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7086
-p2 send p3 5760
-p2 compute 56
-p2 Irecv p3
-p2 compute 56
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22549
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22579
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9085
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20173
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20176
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9061
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9065
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20191
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152310
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22553
-p2 recv p0
-p2 compute 9061
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9064
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9077
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20200
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7078
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152335
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22564
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22596
-p2 recv p0
-p2 compute 9068
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9097
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22604
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20181
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20160
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20147
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7089
-p2 send p3 5760
-p2 compute 56
-p2 Irecv p3
-p2 compute 56
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152326
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22604
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22603
-p2 recv p0
-p2 compute 9073
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9106
-p2 send p3 200
-p2 compute 22596
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22564
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20201
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20192
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22596
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22598
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20188
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20192
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152340
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22553
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22599
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22579
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20175
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20158
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22606
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9065
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9069
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20200
-p2 recv p3
-p2 compute 9072
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9085
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152328
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22614
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22589
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22575
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9074
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20178
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65080
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152355
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22603
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20198
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20157
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9070
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9079
-p2 send p0 200
-p2 compute 20193
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20199
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7077
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152333
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22558
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9065
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9066
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22580
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9080
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7077
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9057
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22547
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22594
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9057
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9060
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7084
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152341
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22589
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22606
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22580
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20189
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20199
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9054
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22590
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22553
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152323
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22593
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22549
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22599
-p2 recv p0
-p2 compute 9063
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22602
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20181
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20197
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9080
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7081
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152329
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9065
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9078
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22596
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22598
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20187
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20154
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152312
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22589
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22598
-p2 recv p0
-p2 compute 9066
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9078
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22588
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9064
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20193
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152408
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22585
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22590
-p2 recv p0
-p2 compute 9069
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9064
-p2 send p3 200
-p2 compute 22594
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20188
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20188
-p2 recv p3
-p2 compute 9079
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20203
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152282
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22549
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22577
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9074
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9090
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20195
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7078
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152336
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22618
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22595
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22553
-p2 recv p0
-p2 compute 9062
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9072
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22585
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20200
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9077
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9065
-p2 send p0 200
-p2 compute 20187
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22552
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22588
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20190
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20192
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20162
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7080
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152325
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22590
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9055
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20186
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9081
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9073
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20200
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7085
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22593
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22597
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20183
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20167
-p2 recv p3
-p2 compute 9093
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9071
-p2 send p0 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20192
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7081
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152286
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22602
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22585
-p2 recv p0
-p2 compute 9068
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22564
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20183
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20199
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7077
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152330
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22593
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9082
-p2 send p3 200
-p2 compute 22601
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20174
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9087
-p2 send p0 200
-p2 compute 20199
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20199
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 7082
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65078
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152334
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22592
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9075
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22564
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20183
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9079
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9086
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20185
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7079
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152341
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22548
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22590
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22594
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9067
-p2 send p0 200
-p2 compute 20194
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20158
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20148
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 7091
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65081
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152325
-p2 recv p0
-p2 compute 9057
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22550
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22574
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22611
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22600
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9054
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9057
-p2 send p0 200
-p2 compute 20198
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20183
-p2 recv p3
-p2 compute 9065
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7086
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65077
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152340
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22599
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22587
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22554
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22601
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20155
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9062
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9081
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9064
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20152
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20149
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 7083
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65079
-p2 Irecv p0
-p2 compute 55
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 152296
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22555
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22593
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22546
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 22551
-p2 recv p0
-p2 compute 9080
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9093
-p2 send p3 200
-p2 compute 22582
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22556
-p2 recv p0
-p2 compute 9056
-p2 send p3 200
-p2 compute 22605
-p2 recv p0
-p2 compute 9052
-p2 send p3 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9055
-p2 send p0 200
-p2 compute 20187
-p2 recv p3
-p2 compute 9063
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9053
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20151
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20150
-p2 recv p3
-p2 compute 9066
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9097
-p2 send p0 200
-p2 compute 20156
-p2 recv p3
-p2 compute 9056
-p2 send p0 200
-p2 compute 20153
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 20146
-p2 recv p3
-p2 compute 9052
-p2 send p0 200
-p2 compute 2666
-p2 comm_size 4
-p2 allReduce 40 89
-p2 compute 4525
-p2 send p3 5760
-p2 compute 55
-p2 Irecv p3
-p2 compute 55
-p2 wait
-p2 compute 65082
-p2 Irecv p0
-p2 compute 56
-p2 wait
-p2 compute 56
-p2 send p0 5760
-p2 compute 128650
-p2 comm_size 4
-p2 allReduce 40 94
-p2 compute 224
-p2 comm_size 4
-p2 allReduce 8 78
-p2 compute 110
-p2 finalize
diff --git a/examples/msg/actions/NAS_LU_S_4/simgrid3.txt b/examples/msg/actions/NAS_LU_S_4/simgrid3.txt
deleted file mode 100644 (file)
index e4ff832..0000000
+++ /dev/null
@@ -1,4630 +0,0 @@
-p3 init
-p3 compute 4436
-p3 Irecv p2
-p3 compute 58
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65085
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 55
-p3 send p1 5760
-p3 compute 128794
-p3 comm_size 4
-p3 allReduce 40 91
-p3 compute 121
-p3 comm_size 4
-p3 barrier
-p3 compute 23878
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31580
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38216
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29154
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29144
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7092
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152363
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31626
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31607
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38141
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29175
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7094
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152342
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31591
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31549
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31626
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31570
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38141
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29155
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29151
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29181
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152353
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31562
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31559
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29179
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31577
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31559
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152342
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31624
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31554
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31608
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31597
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65081
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152325
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31582
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31562
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31594
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29206
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152333
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29157
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152325
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31560
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31600
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31571
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29149
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7092
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152299
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31550
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38187
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29166
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31574
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31601
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29200
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152325
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31566
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31554
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31599
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29181
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7093
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152313
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29154
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29158
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7077
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152328
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31594
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29171
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7094
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152354
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 59
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31551
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31568
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31556
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31559
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29181
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7095
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31598
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31600
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31594
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29159
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29172
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31575
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31598
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31572
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29184
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152322
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 58
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152334
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29162
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 7087
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152324
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31561
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31563
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152353
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31546
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31577
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29167
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29168
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7087
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65110
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152344
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31571
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31591
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31577
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31584
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7093
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152346
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31565
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31575
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 59
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31616
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31554
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7093
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152336
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31551
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29150
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29164
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29207
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29164
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31566
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31574
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31572
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31546
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31601
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29166
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152307
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31545
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31597
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31560
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31554
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31572
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29144
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7093
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152345
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31610
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29177
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29155
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7087
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152326
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31599
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31597
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31557
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29170
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29145
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 56
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31545
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31594
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31636
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65090
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152340
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31556
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29159
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7096
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 57
-p3 send p2 5760
-p3 compute 65081
-p3 Irecv p1
-p3 compute 56
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31545
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31584
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 59
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29145
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7088
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152349
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31563
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31573
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31598
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31591
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29179
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31573
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31587
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31564
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31560
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29148
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29149
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29175
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152336
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31604
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31559
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31575
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29189
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29144
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29184
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152311
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31548
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29155
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65081
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31554
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31567
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29157
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7087
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152328
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31599
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31546
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29190
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29187
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29157
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29155
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152337
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31553
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31567
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31601
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31595
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31587
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29157
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7093
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152338
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31571
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31591
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31610
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31561
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31551
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31596
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152305
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31559
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31550
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29199
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29164
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29190
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152345
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31553
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31582
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 58
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29171
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29144
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7087
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65087
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152346
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31569
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31600
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31601
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31585
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29146
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 56
-p3 send p1 200
-p3 compute 29158
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29164
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7083
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152343
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31575
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31591
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31562
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31592
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31600
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65093
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152330
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31604
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31574
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31600
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31593
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29175
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152358
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31605
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31589
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31562
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31568
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31579
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31581
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31571
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31590
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31549
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38141
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29163
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7089
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65078
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152345
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31577
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31578
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31586
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31576
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29149
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7091
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65077
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152321
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31583
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31599
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31548
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31572
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 31588
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31570
-p3 recv p2
-p3 compute 57
-p3 recv p1
-p3 compute 38156
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29153
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29166
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 7090
-p3 Irecv p2
-p3 compute 58
-p3 wait
-p3 compute 56
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 152293
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31552
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31544
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31551
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31551
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 31543
-p3 recv p2
-p3 compute 56
-p3 recv p1
-p3 compute 38140
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29183
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 58
-p3 send p1 200
-p3 compute 29148
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 29143
-p3 send p2 200
-p3 compute 55
-p3 send p1 200
-p3 compute 2667
-p3 comm_size 4
-p3 allReduce 40 89
-p3 compute 4533
-p3 Irecv p2
-p3 compute 55
-p3 wait
-p3 compute 57
-p3 send p2 5760
-p3 compute 65079
-p3 Irecv p1
-p3 compute 55
-p3 wait
-p3 compute 56
-p3 send p1 5760
-p3 compute 128662
-p3 comm_size 4
-p3 allReduce 40 86
-p3 compute 226
-p3 comm_size 4
-p3 allReduce 8 80
-p3 compute 111
-p3 finalize
index bd5a62a..81ef04e 100644 (file)
@@ -230,8 +230,8 @@ static void action_barrier(const char *const *action)
 
   processes_arrived_sofar--;
   if (!processes_arrived_sofar) {
-    simcall_cond_destroy(cond);
-    simcall_mutex_destroy(mutex);
+    SIMIX_cond_destroy(cond);
+    SIMIX_mutex_destroy(mutex);
     mutex = NULL;
   }
 }
@@ -482,17 +482,17 @@ int main(int argc, char *argv[])
   MSG_action_init();
 
   xbt_assert(argc > 2,
-            "Usage: %s platform_file deployment_file [action_files]\n"
-            "\t# if all actions are in the same file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml actions\n"
-            "\t# if actions are in separate files, specified in deployment\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml ",
-            argv[0],argv[0],argv[0]);
+       "Usage: %s platform_file deployment_file [action_files]\n"
+       "\t# if all actions are in the same file\n"
+       "\tExample: %s msg_platform.xml msg_deployment.xml actions\n"
+       "\t# if actions are in separate files, specified in deployment\n"
+       "\tExample: %s msg_platform.xml msg_deployment.xml ",
+       argv[0],argv[0],argv[0]);
 
   printf("WARNING: THIS BINARY IS KINDA DEPRECATED\n"
-        "This example is still relevant if you want to learn about MSG-based trace replay, "
-        "but if you want to simulate MPI-like traces, you should use the newer version "
-        "that is in the examples/smpi/replay directory instead.\n");
+   "This example is still relevant if you want to learn about MSG-based trace replay, "
+   "but if you want to simulate MPI-like traces, you should use the newer version "
+   "that is in the examples/smpi/replay directory instead.\n");
    
   /*  Simulation setting */
   MSG_create_environment(argv[1]);
index 1a6379c..8a5602e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="p0"/>
   <process host="Ruby" function="p1"/>
   <process host="Perl" function="p2"/>
index 86ea19c..f028595 100644 (file)
@@ -1,12 +1,10 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<!-- Example file of how to use trace replay, with actions split in
-     separate files, one per process.
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- Example file of how to use trace replay, with actions split in separate files, one per process.
      Launch it like this:
+         ./actions homogeneous_3_hosts.xml deployment_split.xml  -->
 
-  ./actions homogeneous_3_hosts.xml deployment_split.xml
--->
-<platform version="3">
   <process host="Tremblay" function="p0">
     <argument value="actions_split_p0.txt"/>
   </process>
index 17758e4..aa1ef5b 100644 (file)
@@ -58,7 +58,7 @@ static void action_open(const char *const *action) {
   double clock = MSG_get_clock();       /* this "call" is free thanks to inlining */
 
   sprintf(full_name, "%s:%s", MSG_process_get_name(MSG_process_self()), 
-         file_name);
+    file_name);
 
   ACT_DEBUG("Entering Open: %s (filename: %s)", NAME, file_name);
   file = MSG_file_open(file_name, NULL);
index 96d3d5f..d2eb682 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="denise" function="p0"/>
 </platform>
index f4c0b9c..ef1d6ec 100644 (file)
@@ -1,28 +1,21 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
-add_executable(bittorrent
-  "bittorrent.c" "messages.c" "peer.c" "tracker.c" "connection.c")
-add_executable(bittorrent_platfgen
-  "bittorrent_platfgen.c" "messages.c" "peer.c" "tracker.c" "connection.c")
+add_executable(bittorrent "bittorrent.c" "messages.c" "peer.c" "tracker.c" "connection.c")
 
 ### Add definitions for compile
 target_link_libraries(bittorrent simgrid )
-target_link_libraries(bittorrent_platfgen simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent_platfgen.c
   ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent.h
   ${CMAKE_CURRENT_SOURCE_DIR}/connection.c
   ${CMAKE_CURRENT_SOURCE_DIR}/connection.h
@@ -32,14 +25,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/peer.h
   ${CMAKE_CURRENT_SOURCE_DIR}/tracker.c
   ${CMAKE_CURRENT_SOURCE_DIR}/tracker.h
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c7157b6..4fc3fb1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -10,9 +10,7 @@
 #include <simgrid/msg.h>
 #include <xbt/RngStream.h>
 
-/**
- * Bittorrent example launcher
- */
+/** Bittorrent example launcher */
 int main(int argc, char *argv[])
 {
   xbt_dynar_t host_list;
@@ -22,10 +20,7 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   /* Check the arguments */
-  if (argc < 3) {
-    printf("Usage: %s platform_file deployment_file \n", argv[0]);
-    return -1;
-  }
+  xbt_assert (argc > 2, "Usage: %s platform_file deployment_file", argv[0]);
 
   const char *platform_file = argv[1];
   const char *deployment_file = argv[2];
index 01a80ee..b45d688 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -7,51 +7,22 @@
 #ifndef BITTORRENT_BITTORRENT_H_
 #define BITTORRENT_BITTORRENT_H_
 
-/**
- * Size of mailboxes
- */
 #define MAILBOX_SIZE 40
-/**
- * Mailbox used to communicate with the tracker.
- */
 #define TRACKER_MAILBOX "tracker_mailbox"
-/**
- * Max number of pairs sent by the tracker to clients
- */
+/** Max number of pairs sent by the tracker to clients */
 #define MAXIMUM_PAIRS 50
-/**
- * Interval of time where the peer should send a request to the tracker
- */
+/** Interval of time where the peer should send a request to the tracker */
 #define TRACKER_QUERY_INTERVAL 1000
-/**
- * Communication size for a task to the tracker
- */
+/** Communication size for a task to the tracker */
 #define TRACKER_COMM_SIZE 0.01
-/**
- * Timeout for the get peers data
- */
 #define GET_PEERS_TIMEOUT 10000
-/**
- * Timeout for "standard" messages.
- */
 #define TIMEOUT_MESSAGE 10
-/**
- * Timeout for tracker receive.
- */
 #define TRACKER_RECEIVE_TIMEOUT 10
-/**
- * Number of peers that can be unchocked at a given time
- */
+/** Number of peers that can be unchocked at a given time */
 #define MAX_UNCHOKED_PEERS 4
-
-/**
- * Interval between each update of the choked peers
- */
+/** Interval between each update of the choked peers */
 #define UPDATE_CHOKED_INTERVAL 30
-
-/**
- * Number of pieces the peer asks for simultaneously
- */
+/** Number of pieces the peer asks for simultaneously */
 #define MAX_PIECES 1
 
 #endif                          /* BITTORRENT_BITTORRENT_H_ */
index 651b01d..fbe1fc2 100755 (executable)
@@ -4,20 +4,20 @@ p Testing the Bittorrent implementation with MSG
 
 ! timeout 10
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/bittorrent ${srcdir:=.}/../../platforms/platform.xml ${srcdir:=.}/bittorrent.xml "--log=root.fmt:[%12.6r]%e(%i:%P@%h)%e%m%n"
-> [    0.000000] (1:tracker@Jacquelin) Tracker launched.
-> [    0.000000] (2:peer@Boivin) Hi, I'm joining the network with id 2
-> [    0.000000] (3:peer@Jean_Yves) Hi, I'm joining the network with id 3
-> [    0.000000] (4:peer@TeX) Hi, I'm joining the network with id 4
-> [    0.000000] (5:peer@Geoff) Hi, I'm joining the network with id 5
-> [    0.000000] (6:peer@Disney) Hi, I'm joining the network with id 6
-> [    0.000000] (7:peer@iRMX) Hi, I'm joining the network with id 7
-> [    0.000000] (8:peer@McGee) Hi, I'm joining the network with id 8
-> [ 3000.000000] (1:tracker@Jacquelin) Tracker is leaving
-> [ 5000.005340] (5:peer@Geoff) Here is my current status: 1111111111
-> [ 5000.043658] (7:peer@iRMX) Here is my current status: 1111111111
-> [ 5000.048881] (2:peer@Boivin) Here is my current status: 1111111111
-> [ 5000.812587] (4:peer@TeX) Here is my current status: 1111111111
-> [ 5000.823538] (6:peer@Disney) Here is my current status: 1111111111
-> [ 5000.888352] (8:peer@McGee) Here is my current status: 1111111111
-> [ 5000.925088] (3:peer@Jean_Yves) Here is my current status: 1111111111
+$ $SG_TEST_EXENV ${bindir:=.}/bittorrent ${srcdir:=.}/../../platforms/cluster.xml ${srcdir:=.}/bittorrent.xml "--log=root.fmt:[%12.6r]%e(%i:%P@%h)%e%m%n"
+> [    0.000000] (1:tracker@node-0.acme.org) Tracker launched.
+> [    0.000000] (2:peer@node-1.acme.org) Hi, I'm joining the network with id 2
+> [    0.000000] (3:peer@node-2.acme.org) Hi, I'm joining the network with id 3
+> [    0.000000] (4:peer@node-3.acme.org) Hi, I'm joining the network with id 4
+> [    0.000000] (5:peer@node-4.acme.org) Hi, I'm joining the network with id 5
+> [    0.000000] (6:peer@node-5.acme.org) Hi, I'm joining the network with id 6
+> [    0.000000] (7:peer@node-6.acme.org) Hi, I'm joining the network with id 7
+> [    0.000000] (8:peer@node-7.acme.org) Hi, I'm joining the network with id 8
+> [ 3000.000000] (1:tracker@node-0.acme.org) Tracker is leaving
+> [ 5000.007806] (2:peer@node-1.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (3:peer@node-2.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (4:peer@node-3.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (5:peer@node-4.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (6:peer@node-5.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (7:peer@node-6.acme.org) Here is my current status: 1111111111
+> [ 5000.007806] (8:peer@node-7.acme.org) Here is my current status: 1111111111
index 58627ee..3836bde 100644 (file)
@@ -1,40 +1,39 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
-  <process host="Jacquelin" function="tracker">
-    <argument value="3000" />                  
+  <process host="node-0.acme.org" function="tracker">
+    <argument value="3000" />
   </process>
 
-  <process host="Boivin" function="peer">
-    <argument value="00000002"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
-    <argument value="1" />                     <!-- indicates if the peer is a seed at the begining of the simulation -->      
+  <process host="node-1.acme.org" function="peer">
+    <argument value="00000002"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
+    <argument value="1" />       <!-- indicates if the peer is a seed at the beginning of the simulation --> 
   </process>
-  <process host="Jean_Yves" function="peer">
-    <argument value="00000003"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+  <process host="node-2.acme.org" function="peer">
+    <argument value="00000003"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
   </process>
-  <process host="TeX" function="peer">
-    <argument value="00000004"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+  <process host="node-3.acme.org" function="peer">
+    <argument value="00000004"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
   </process>
-  <process host="Geoff" function="peer">
-    <argument value="00000005"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
-    <argument value="1" />                     <!-- indicates if the peer is a seed at the begining of the simulation -->      
+  <process host="node-4.acme.org" function="peer">
+    <argument value="00000005"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
+    <argument value="1" />       <!-- indicates if the peer is a seed at the beginning of the simulation --> 
   </process>
-  <process host="Disney" function="peer">
-    <argument value="00000006"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+  <process host="node-5.acme.org" function="peer">
+    <argument value="00000006"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
   </process>
-  <process host="iRMX" function="peer">
-    <argument value="00000007"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+  <process host="node-6.acme.org" function="peer">
+    <argument value="00000007"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
   </process>
-  <process host="McGee" function="peer">
-    <argument value="00000008"/>        <!-- my id -->
-    <argument value="5000" />                  <!-- end time -->       
+  <process host="node-7.acme.org" function="peer">
+    <argument value="00000008"/>    <!-- my id -->
+    <argument value="5000" />    <!-- end time --> 
   </process>
-
 </platform>
diff --git a/examples/msg/bittorrent/bittorrent_platfgen.c b/examples/msg/bittorrent/bittorrent_platfgen.c
deleted file mode 100644 (file)
index 16c0e65..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "bittorrent.h"
-#include "peer.h"
-#include "tracker.h"
-#include <simgrid/msg.h>
-#include <simgrid/platf_generator.h>
-/**
- * Bittorrent example launcher, using a generated platform
- */
-
-static RngStream rng_stream;
-
-void promoter(context_node_t node);
-void labeler(context_edge_t edge);
-void create_environment(int node_count);
-void dispatch_jobs(double tracker_deadline, double peer_deadline,
-                   double seed_percentage);
-
-void promoter(context_node_t node)
-{
-  s_sg_platf_host_cbarg_t host_parameters;
-
-  if (node->degree == 1) {
-    //We promote only the leaf; as we use a star topology, all the nodes
-    //will be promoted except the first one, which will be a router with
-    //every hosts connected on.
-    host_parameters.id = NULL;
-
-    //Power from 3,000,000 to 10,000,000
-    host_parameters.speed_peak = xbt_dynar_new(sizeof(double), NULL);
-    xbt_dynar_push_as(host_parameters.speed_peak, double,
-               7000000 * RngStream_RandU01(rng_stream) + 3000000.0);
-    host_parameters.core_amount = 1;
-    host_parameters.speed_scale = 1;
-    host_parameters.speed_trace = NULL;
-    host_parameters.initiallyOn = 1;
-    host_parameters.state_trace = NULL;
-    host_parameters.coord = NULL;
-    host_parameters.properties = NULL;
-
-    platf_graph_promote_to_host(node, &host_parameters);
-  }
-}
-
-void labeler(context_edge_t edge)
-{
-
-  s_sg_platf_link_cbarg_t link_parameters;
-  link_parameters.id = NULL;
-
-  //bandwidth from 3,000,000 to 10,000,000
-  link_parameters.bandwidth = 7000000 * RngStream_RandU01(rng_stream) + 3000000;
-  link_parameters.bandwidth_trace = NULL;
-
-  //Latency from 0ms to 100ms
-  link_parameters.latency = RngStream_RandU01(rng_stream) / 10.0;
-  link_parameters.latency_trace = NULL;
-  link_parameters.initiallyOn = 1;
-  link_parameters.state_trace = NULL;
-  link_parameters.policy = SURF_LINK_SHARED;
-  link_parameters.properties = NULL;
-
-  platf_graph_link_label(edge, &link_parameters);
-}
-
-void create_environment(int node_count)
-{
-
-  platf_graph_uniform(node_count);
-
-  //every nodes are connected to the first one
-  platf_graph_interconnect_star();
-  //No need to check if the graph is connected, the star topology implies it.
-
-  //register promoter and labeler
-  platf_graph_promoter(promoter);
-  platf_graph_labeler(labeler);
-
-  //promoting and labeling
-  platf_do_promote();
-  platf_do_label();
-
-  //Put the platform into the simulator
-  platf_generate();
-}
-
-void dispatch_jobs(double tracker_deadline, double peer_deadline,
-                   double seed_percentage)
-{
-
-  xbt_dynar_t available_nodes = MSG_hosts_as_dynar();
-  msg_host_t host;
-  unsigned int i;
-
-  char **arguments_tracker;
-  char **arguments_peer;
-
-  unsigned int seed_count =
-      (seed_percentage / 100.0) * xbt_dynar_length(available_nodes);
-
-  xbt_dynar_foreach(available_nodes, i, host) {
-    if (i == 0) {
-      //The fisrt node is the tracker
-      arguments_tracker = xbt_malloc0(sizeof(char *) * 2);
-      arguments_tracker[0] = xbt_strdup("tracker");
-      arguments_tracker[1] = bprintf("%f", tracker_deadline);
-      MSG_process_create_with_arguments("tracker", tracker, NULL, host, 2,
-                                        arguments_tracker);
-    } else {
-      //Other nodes are peers
-      int argument_size;
-      arguments_peer = xbt_malloc0(sizeof(char *) * 4);
-      arguments_peer[0] = xbt_strdup("peer");
-      arguments_peer[1] = bprintf("%d", i);
-      arguments_peer[2] = bprintf("%f", peer_deadline);
-
-      //The first peers will be seeders
-      if (seed_count > 0) {
-        seed_count--;
-        arguments_peer[3] = xbt_strdup("1");
-        argument_size = 4;
-      } else {
-        //Other ars leechers
-        arguments_peer[3] = NULL;
-        argument_size = 3;
-      }
-      MSG_process_create_with_arguments("peer", peer, NULL, host,
-                                        argument_size, arguments_peer);
-    }
-  }
-}
-
-int main(int argc, char *argv[])
-{
-  MSG_init(&argc, argv);
-
-  rng_stream = RngStream_CreateStream(NULL);
-
-  //Maybe these parameters should be set from the command line...
-  //create_environment(<node_count>)
-  create_environment(20);
-
-  //dispatch_jobs(<tracker_deadline>, <peer_deadline>, <seed_percentage>)
-  dispatch_jobs(2000, 2000, 10);
-
-  MSG_main();
-
-  return 0;
-}
index 418b638..057e3d8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,9 +6,8 @@
 
 #ifndef BITTORRENT_CONNECTION_H_
 #define BITTORRENT_CONNECTION_H_
-/**
- * Contains the connection data of a peer.
- */
+
+/**  Contains the connection data of a peer. */
 typedef struct s_connection {
   int id;                       //Peer id
   char *bitfield;               //Fields
@@ -22,19 +21,16 @@ typedef struct s_connection {
   int choked_upload:1;          //Indicates if the peer is choked for the current peer
   int choked_download:1;        //Indicates if the peer has choked the current peer
 } s_connection_t, *connection_t;
-/**
- * Build a new connection object from the peer id.
- * @param id id of the peer
+
+/** @brief Build a new connection object from the peer id.
+ *  @param id id of the peer
  */
 connection_t connection_new(int id);
-/**
- * Add a new value to the peer speed average
- * @param connection connection data
- * @param speed speed to add to the speed average
+/** @brief Add a new value to the peer speed average
+ *  @param connection connection data
+ *  @param speed speed to add to the speed average
  */
 void connection_add_speed_value(connection_t connection, double speed);
-/**
- * Frees a connection object
- */
+/** Frees a connection object */
 void connection_free(void *data);
 #endif                          /* BITTORRENT_CONNECTION_H_ */
index 7f0d6d4..f1d2b54 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Copyright (c) 2012, 2014. The SimGrid Team.
+# Copyright (c) 2012, 2014, 2016. The SimGrid Team.
 # All rights reserved.
 
 # This program is free software; you can redistribute it and/or modify it
 # Usage: python generate.py nb_nodes nb_bits end_date percentage
 # Example: python generate.py 10000 5000
 
-import sys, random
+import sys
+import random
 
 if len(sys.argv) != 4:
-       print("Usage: python generate.py nb_nodes end_date seed_percentage > deployment_file.xml")
-       sys.exit(1)
+    print(
+        "Usage: python generate.py nb_nodes end_date seed_percentage > deployment_file.xml")
+    sys.exit(1)
 
 nb_nodes = int(sys.argv[1])
 end_date = int(sys.argv[2])
-seed_percentage = int(sys.argv[3]);
+seed_percentage = int(sys.argv[3])
 
 nb_bits = 24
 max_id = 2 ** nb_bits - 1
 all_ids = [42]
 
 sys.stdout.write("<?xml version='1.0'?>\n"
-"<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
-"<platform version=\"3\">\n"
-"  <process host=\"c-0.me\" function=\"tracker\"><argument value=\"%d\"/></process>\n" % end_date)
+                 "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\">\n"
+                 "<platform version=\"4\">\n"
+                 "  <process host=\"node-0.acme.org\" function=\"tracker\">\n"
+                 "    <argument value=\"%d\"/>\n  </process>\n" % end_date)
 
 for i in range(1, nb_nodes):
 
-  ok = False
-  while not ok:
-    my_id = random.randint(0, max_id)
-    ok = not my_id in all_ids
-  start_date = i * 10
-  line = "  <process host=\"c-%d.me\" function=\"peer\"><argument value=\"%d\" /><argument value=\"%d\" />" % (i, my_id, end_date)
-  if random.randint(0,100) < seed_percentage:
-    line += "<argument value=\"1\" />"
-  line += "</process>\n";
-  sys.stdout.write(line)
-  all_ids.append(my_id)
+    ok = False
+    while not ok:
+        my_id = random.randint(0, max_id)
+        ok = not my_id in all_ids
+    start_date = i * 10
+    line = "  <process host=\"node-%d.acme.org\" function=\"peer\">\n" % i
+    line += "    <argument value=\"%d\"/>\n    <argument value=\"%d\"/>\n" % (
+        my_id, end_date)
+    if random.randint(0, 100) < seed_percentage:
+        line += "    <argument value=\"1\"/>\n"
+    line += "  </process>\n"
+    sys.stdout.write(line)
+    all_ids.append(my_id)
 sys.stdout.write("</platform>")
-
index bfe1ea4..a0cfe07 100644 (file)
@@ -12,16 +12,15 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_messages,
 
 #define BITS_TO_BYTES(x) ((x / 8) + (x % 8) ? 1 : 0)
 
-/**
- * Build a new empty message
+/** @brief Build a new empty message
  * @param type type of the message
- * @param issuer_host_name hostname of the issuer, for debuging purposes
+ * @param issuer_host_name hostname of the issuer, for debugging purposes
  * @param mailbox mailbox where the peer should answer
  * @param peer_id id of the issuer
  * @param size message size in bytes
  */
-msg_task_t task_message_new(e_message_type type, const char *issuer_host_name,
-                            const char *mailbox, int peer_id, int size)
+msg_task_t task_message_new(e_message_type type, const char *issuer_host_name, const char *mailbox, int peer_id,
+                            int size)
 {
   message_t message = xbt_new(s_message_t, 1);
   message->issuer_host_name = issuer_host_name;
@@ -33,57 +32,41 @@ msg_task_t task_message_new(e_message_type type, const char *issuer_host_name,
   return task;
 }
 
-/**
- * Builds a message containing an index.
- */
-msg_task_t task_message_index_new(e_message_type type,
-                                  const char *issuer_host_name,
-                                  const char *mailbox, int peer_id,
+/** Builds a message containing an index. */
+msg_task_t task_message_index_new(e_message_type type, const char *issuer_host_name, const char *mailbox, int peer_id,
                                   int index, int varsize)
 {
-  msg_task_t task = task_message_new(type, issuer_host_name, mailbox, peer_id,
-                                     task_message_size(type) + varsize);
+  msg_task_t task = task_message_new(type, issuer_host_name, mailbox, peer_id, task_message_size(type) + varsize);
   message_t message = MSG_task_get_data(task);
   message->index = index;
   return task;
 }
 
-msg_task_t task_message_bitfield_new(const char *issuer_host_name,
-                                     const char *mailbox, int peer_id,
-                                     char *bitfield, int bitfield_size)
+msg_task_t task_message_bitfield_new(const char *issuer_host_name, const char *mailbox, int peer_id, char *bitfield,
+                                     int bitfield_size)
 {
-  msg_task_t task =
-      task_message_new(MESSAGE_BITFIELD, issuer_host_name, mailbox, peer_id,
-                       task_message_size(MESSAGE_BITFIELD) +
-                       /* Size of bitfield in bytes */
-                       BITS_TO_BYTES(bitfield_size));
+  msg_task_t task = task_message_new(MESSAGE_BITFIELD, issuer_host_name, mailbox, peer_id,
+                                     task_message_size(MESSAGE_BITFIELD) + BITS_TO_BYTES(bitfield_size));
   message_t message = MSG_task_get_data(task);
   message->bitfield = bitfield;
   return task;
 }
 
-msg_task_t task_message_request_new(const char *issuer_host_name,
-                                    const char *mailbox, int peer_id,
-                                    int index, int block_index,
-                                    int block_length)
+msg_task_t task_message_request_new(const char *issuer_host_name, const char *mailbox, int peer_id, int index,
+                                    int block_index, int block_length)
 {
-  msg_task_t task =
-      task_message_index_new(MESSAGE_REQUEST, issuer_host_name, mailbox,
-                             peer_id, index, 0);
+  msg_task_t task = task_message_index_new(MESSAGE_REQUEST, issuer_host_name, mailbox, peer_id, index, 0);
   message_t message = MSG_task_get_data(task);
   message->block_index = block_index;
   message->block_length = block_length;
   return task;
 }
 
-msg_task_t task_message_piece_new(const char *issuer_host_name,
-                                  const char *mailbox, int peer_id, int index,
-                                  int block_index,
-                                  int block_length, int block_size)
+msg_task_t task_message_piece_new(const char *issuer_host_name, const char *mailbox, int peer_id, int index,
+                                  int block_index, int block_length, int block_size)
 {
-  msg_task_t task =
-      task_message_index_new(MESSAGE_PIECE, issuer_host_name, mailbox, peer_id,
-                             index, block_length * block_size);
+  msg_task_t task = task_message_index_new(MESSAGE_PIECE, issuer_host_name, mailbox, peer_id, index,
+                                           block_length * block_size);
   message_t message = MSG_task_get_data(task);
   message->block_index = block_index;
   message->block_length = block_length;
index 5e266aa..98f140a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,8 +8,7 @@
 #define BITTORRENT_MESSAGES_H_
 #include <simgrid/msg.h>
 
-/**
- * Message sizes
+/** Message sizes
  * Sizes based on report by A. Legout et al, Understanding BitTorrent: An Experimental Perspective
  * http://hal.inria.fr/inria-00000156/en
  */
@@ -24,9 +23,7 @@
 #define MESSAGE_PIECE_SIZE 13
 #define MESSAGE_CANCEL_SIZE 17
 
-/**
- * Types of messages exchanged between two peers.
- */
+/** Types of messages exchanged between two peers. */
 typedef enum {
   MESSAGE_HANDSHAKE,
   MESSAGE_CHOKE,
@@ -40,9 +37,7 @@ typedef enum {
   MESSAGE_CANCEL
 } e_message_type;
 
-/**
- * Message data
- */
+/** Message data */
 typedef struct s_message {
   e_message_type type;
   const char *mailbox;
@@ -53,44 +48,24 @@ typedef struct s_message {
   int block_index;
   int block_length;
 } s_message_t, *message_t;
-/**
- * Builds a new value-less message
- */
-msg_task_t task_message_new(e_message_type type,
-                            const char *issuer_host_name,
-                            const char *mailbox, int peer_id, int size);
-/**
- * Builds a new "have/piece" message
- */
-msg_task_t task_message_index_new(e_message_type type,
-                                  const char *issuer_host_name,
-                                  const char *mailbox, int peer_id,
-                                  int index, int varsize);
-/**
- * Builds a new bitfield message
- */
-msg_task_t task_message_bitfield_new(const char *issuer_host_name,
-                                     const char *mailbox, int peer_id,
-                                     char *bitfield, int bitfield_size);
-/**
- * Builds a new "request" message
- */
-msg_task_t task_message_request_new(const char *issuer_host_name,
-                                    const char *mailbox, int peer_id,
-                                    int index, int block_index,
-                                    int block_length);
 
-/**
- * Build a new "piece" message
- */
-msg_task_t task_message_piece_new(const char *issuer_host_name,
-                                  const char *mailbox, int peer_id, int index,
-                                  int block_index,
-                                  int block_length, int block_size);
-/**
- * Free a message task
- */
+/** Builds a new value-less message */
+msg_task_t task_message_new(e_message_type type, const char *issuer_host_name, const char *mailbox, int peer_id,
+                            int size);
+/** Builds a new "have/piece" message */
+msg_task_t task_message_index_new(e_message_type type, const char *issuer_host_name, const char *mailbox, int peer_id,
+                                  int index, int varsize);
+/** Builds a new bitfield message */
+msg_task_t task_message_bitfield_new(const char *issuer_host_name, const char *mailbox, int peer_id, char *bitfield,
+                                     int bitfield_size);
+/** Builds a new "request" message */
+msg_task_t task_message_request_new(const char *issuer_host_name, const char *mailbox, int peer_id, int index,
+                                    int block_index, int block_length);
+/** Build a new "piece" message */
+msg_task_t task_message_piece_new(const char *issuer_host_name, const char *mailbox, int peer_id, int index,
+                                  int block_index, int block_length, int block_size);
+/** Free a message task */
 void task_message_free(void *);
-
 int task_message_size(e_message_type type);
+
 #endif                          /* BITTORRENT_MESSAGES_H_ */
index 4382710..372194b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -26,20 +26,14 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_peers, "Messages specific for the peers");
 #define BLOCK_SIZE  16384
 #define ENABLE_END_GAME_MODE 1
 
-/**
- *  Number of blocks asked by each request
- */
+/** Number of blocks asked by each request */
 #define BLOCKS_REQUESTED 2
 
-
 static const unsigned long int FILE_SIZE = FILE_PIECES * PIECES_BLOCKS * BLOCK_SIZE;
 
-
 #define SLEEP_DURATION 1
 
-  /**
- * Peer main function
- */
+/** Peer main function */
 int peer(int argc, char *argv[])
 {
   s_peer_t peer;
@@ -47,12 +41,12 @@ int peer(int argc, char *argv[])
   xbt_assert(argc == 3 || argc == 4, "Wrong number of arguments");
   //Build peer object
   if (argc == 4) {
-    peer_init(&peer, atoi(argv[1]), 1);
+    peer_init(&peer, xbt_str_parse_int(argv[1],"Invalid ID: %s"), 1);
   } else {
-    peer_init(&peer, atoi(argv[1]), 0);
+    peer_init(&peer, xbt_str_parse_int(argv[1],"Invalid ID: %s"), 0);
   }
   //Retrieve deadline
-  double deadline = atof(argv[2]);
+  double deadline = xbt_str_parse_double(argv[2],"Invalid deadline: %s");
   xbt_assert(deadline > 0, "Wrong deadline supplied");
   XBT_INFO("Hi, I'm joining the network with id %d", peer.id);
   //Getting peer data from the tracker.
@@ -82,10 +76,9 @@ int peer(int argc, char *argv[])
   return 0;
 }
 
-/**
- * Peer main loop when it is leeching.
- * @param peer peer data
- * @param deadline time at which the peer has to leave
+/** @brief Peer main loop when it is leeching.
+ *  @param peer peer data
+ *  @param deadline time at which the peer has to leave
  */
 void leech_loop(peer_t peer, double deadline)
 {
@@ -125,10 +118,9 @@ void leech_loop(peer_t peer, double deadline)
 
 }
 
-/**
- * Peer main loop when it is seeding
- * @param peer peer data
- * @param deadline time when the peer will leave
+/** @brief Peer main loop when it is seeding
+ *  @param peer peer data
+ *  @param deadline time when the peer will leave
  */
 void seed_loop(peer_t peer, double deadline)
 {
@@ -159,26 +151,23 @@ void seed_loop(peer_t peer, double deadline)
   }
 }
 
-/**
- * Retrieves the peer list from the tracker
- * @param peer current peer data
+/** @brief Retrieves the peer list from the tracker
+ *  @param peer current peer data
  */
 int get_peers_data(peer_t peer)
 {
   int success = 0, send_success = 0;
   double timeout = MSG_get_clock() + GET_PEERS_TIMEOUT;
   //Build the task to send to the tracker
-  tracker_task_data_t data =
-      tracker_task_data_new(MSG_host_get_name(MSG_host_self()),
-                            peer->mailbox_tracker, peer->id, 0, 0, FILE_SIZE);
+  tracker_task_data_t data = tracker_task_data_new(MSG_host_get_name(MSG_host_self()), peer->mailbox_tracker,
+                                                   peer->id, 0, 0, FILE_SIZE);
   //Build the task to send.
   msg_task_t task_send = MSG_task_create(NULL, 0, TRACKER_COMM_SIZE, data);
   msg_task_t task_received = NULL;
   msg_comm_t comm_received;
   while (!send_success && MSG_get_clock() < timeout) {
     XBT_DEBUG("Sending a peer request to the tracker.");
-    msg_error_t status = MSG_task_send_with_timeout(task_send, TRACKER_MAILBOX,
-                                                    GET_PEERS_TIMEOUT);
+    msg_error_t status = MSG_task_send_with_timeout(task_send, TRACKER_MAILBOX, GET_PEERS_TIMEOUT);
     if (status == MSG_OK) {
       send_success = 1;
     }
@@ -193,8 +182,7 @@ int get_peers_data(peer_t peer)
       //Add the peers the tracker gave us to our peer list.
       xbt_dynar_foreach(data->peers, i, peer_id) {
         if (peer_id != peer->id)
-          xbt_dict_set_ext(peer->peers, (char *) &peer_id, sizeof(int),
-                           connection_new(peer_id), NULL);
+          xbt_dict_set_ext(peer->peers, (char *) &peer_id, sizeof(int), connection_new(peer_id), NULL);
       }
       success = 1;
       //free the communication and the task
@@ -208,11 +196,10 @@ int get_peers_data(peer_t peer)
   return success;
 }
 
-/**
- * Initialize the peer data.
- * @param peer peer data
- * @param id id of the peer to take in the network
- * @param seed indicates if the peer is a seed.
+/** @brief Initialize the peer data.
+ *  @param peer peer data
+ *  @param id id of the peer to take in the network
+ *  @param seed indicates if the peer is a seed.
  */
 void peer_init(peer_t peer, int id, int seed)
 {
@@ -227,12 +214,10 @@ void peer_init(peer_t peer, int id, int seed)
   peer->bitfield_blocks = xbt_new(char, (FILE_PIECES) * (PIECES_BLOCKS) + 1);
   if (seed) {
     memset(peer->bitfield, '1', sizeof(char) * (FILE_PIECES + 1));
-    memset(peer->bitfield_blocks, '1',
-           sizeof(char) * FILE_PIECES * (PIECES_BLOCKS));
+    memset(peer->bitfield_blocks, '1', sizeof(char) * FILE_PIECES * (PIECES_BLOCKS));
   } else {
     memset(peer->bitfield, '0', sizeof(char) * (FILE_PIECES + 1));
-    memset(peer->bitfield_blocks, '0',
-           sizeof(char) * FILE_PIECES * (PIECES_BLOCKS));
+    memset(peer->bitfield_blocks, '0', sizeof(char) * FILE_PIECES * (PIECES_BLOCKS));
   }
 
   peer->bitfield[FILE_PIECES] = '\0';
@@ -242,17 +227,13 @@ void peer_init(peer_t peer, int id, int seed)
 
   peer->current_pieces = xbt_dynar_new(sizeof(int), NULL);
 
-  peer->stream =
-    (RngStream)MSG_host_get_property_value(MSG_host_self(), "stream");
+  peer->stream = (RngStream)MSG_host_get_property_value(MSG_host_self(), "stream");
   peer->comm_received = NULL;
 
   peer->round = 0;
-
 }
 
-/**
- * Destroys a poor peer object.
- */
+/** Destroys a poor peer object. */
 void peer_free(peer_t peer)
 {
   char *key;
@@ -269,9 +250,8 @@ void peer_free(peer_t peer)
   xbt_free(peer->bitfield_blocks);
 }
 
-/**
- * Returns if a peer has finished downloading the file
- * @param bitfield peer bitfield
+/** @brief Returns if a peer has finished downloading the file
+ *  @param bitfield peer bitfield
  */
 int has_finished(char *bitfield)
 {
@@ -291,20 +271,16 @@ int nb_interested_peers(peer_t peer)
   return nb;
 }
 
-
 void update_active_peers_set(peer_t peer, connection_t remote_peer)
 {
-
   if (remote_peer->interested && !remote_peer->choked_upload) {
     //add in the active peers set
-    xbt_dict_set_ext(peer->active_peers, (char *) &remote_peer->id,
-                     sizeof(int), remote_peer, NULL);
+    xbt_dict_set_ext(peer->active_peers, (char *) &remote_peer->id, sizeof(int), remote_peer, NULL);
   } else {
     //remove
     xbt_ex_t e;
     TRY {
-      xbt_dict_remove_ext(peer->active_peers, (char *) &remote_peer->id,
-                          sizeof(int));
+      xbt_dict_remove_ext(peer->active_peers, (char *) &remote_peer->id, sizeof(int));
     }
     CATCH(e) {
       xbt_ex_free(e);
@@ -312,9 +288,7 @@ void update_active_peers_set(peer_t peer, connection_t remote_peer)
   }
 }
 
-
-/**
- * Handle a received message sent by another peer
+/** @brief Handle a received message sent by another peer
  * @param peer Peer data
  * @param task task received.
  */
@@ -322,59 +296,46 @@ void handle_message(peer_t peer, msg_task_t task)
 {
   message_t message = MSG_task_get_data(task);
   connection_t remote_peer;
-  remote_peer =
-      xbt_dict_get_or_null_ext(peer->peers, (char *) &message->peer_id,
-                               sizeof(int));
+  remote_peer = xbt_dict_get_or_null_ext(peer->peers, (char *) &message->peer_id, sizeof(int));
   switch (message->type) {
-
   case MESSAGE_HANDSHAKE:
-    XBT_DEBUG("Received a HANDSHAKE from %s (%s)", message->mailbox,
-              message->issuer_host_name);
+    XBT_DEBUG("Received a HANDSHAKE from %s (%s)", message->mailbox, message->issuer_host_name);
     //Check if the peer is in our connection list.
     if (!remote_peer) {
-      xbt_dict_set_ext(peer->peers, (char *) &message->peer_id, sizeof(int),
-                       connection_new(message->peer_id), NULL);
+      xbt_dict_set_ext(peer->peers, (char *) &message->peer_id, sizeof(int), connection_new(message->peer_id), NULL);
       send_handshake(peer, message->mailbox);
     }
     //Send our bitfield to the peer
     send_bitfield(peer, message->mailbox);
     break;
   case MESSAGE_BITFIELD:
-    XBT_DEBUG("Recieved a BITFIELD message from %s (%s)", message->mailbox,
-              message->issuer_host_name);
+    XBT_DEBUG("Recieved a BITFIELD message from %s (%s)", message->mailbox, message->issuer_host_name);
     //Update the pieces list
     update_pieces_count_from_bitfield(peer, message->bitfield);
     //Store the bitfield
     remote_peer->bitfield = xbt_strdup(message->bitfield);
-    xbt_assert(!remote_peer->am_interested,
-               "Should not be interested at first");
+    xbt_assert(!remote_peer->am_interested, "Should not be interested at first");
     if (is_interested(peer, remote_peer)) {
       remote_peer->am_interested = 1;
       send_interested(peer, message->mailbox);
     }
     break;
   case MESSAGE_INTERESTED:
-    XBT_DEBUG("Recieved an INTERESTED message from %s (%s)", message->mailbox,
-              message->issuer_host_name);
-    xbt_assert((remote_peer != NULL),
-               "A non-in-our-list peer has sent us a message. WTH ?");
+    XBT_DEBUG("Recieved an INTERESTED message from %s (%s)", message->mailbox, message->issuer_host_name);
+    xbt_assert((remote_peer != NULL), "A non-in-our-list peer has sent us a message. WTH ?");
     //Update the interested state of the peer.
     remote_peer->interested = 1;
     update_active_peers_set(peer, remote_peer);
     break;
   case MESSAGE_NOTINTERESTED:
-    XBT_DEBUG("Received a NOTINTERESTED message from %s (%s)",
-              message->mailbox, message->issuer_host_name);
-    xbt_assert((remote_peer != NULL),
-               "A non-in-our-list peer has sent us a message. WTH ?");
+    XBT_DEBUG("Received a NOTINTERESTED message from %s (%s)", message->mailbox, message->issuer_host_name);
+    xbt_assert((remote_peer != NULL), "A non-in-our-list peer has sent us a message. WTH ?");
     remote_peer->interested = 0;
     update_active_peers_set(peer, remote_peer);
     break;
   case MESSAGE_UNCHOKE:
-    xbt_assert((remote_peer != NULL),
-               "A non-in-our-list peer has sent us a message. WTH ?");
-    XBT_DEBUG("Received a UNCHOKE message from %s (%s)", message->mailbox,
-              message->issuer_host_name);
+    xbt_assert((remote_peer != NULL), "A non-in-our-list peer has sent us a message. WTH ?");
+    XBT_DEBUG("Received a UNCHOKE message from %s (%s)", message->mailbox, message->issuer_host_name);
     xbt_assert(remote_peer->choked_download, "WTF !!!");
     remote_peer->choked_download = 0;
     //Send requests to the peer, since it has unchoked us
@@ -382,21 +343,17 @@ void handle_message(peer_t peer, msg_task_t task)
       request_new_piece_to_peer(peer, remote_peer);
     break;
   case MESSAGE_CHOKE:
-    xbt_assert((remote_peer != NULL),
-               "A non-in-our-list peer has sent us a message. WTH ?");
-    XBT_DEBUG("Received a CHOKE message from %s (%s)", message->mailbox,
-              message->issuer_host_name);
+    xbt_assert((remote_peer != NULL), "A non-in-our-list peer has sent us a message. WTH ?");
+    XBT_DEBUG("Received a CHOKE message from %s (%s)", message->mailbox, message->issuer_host_name);
     xbt_assert(!remote_peer->choked_download, "WTF !!!");
     remote_peer->choked_download = 1;
     remove_current_piece(peer, remote_peer, remote_peer->current_piece);
     break;
   case MESSAGE_HAVE:
-    XBT_DEBUG("Received a HAVE message from %s (%s) of piece %d",
-              message->mailbox, message->issuer_host_name, message->index);
+    XBT_DEBUG("Received a HAVE message from %s (%s) of piece %d", message->mailbox, message->issuer_host_name,
+              message->index);
     xbt_assert(remote_peer->bitfield, "bitfield not received");
-    xbt_assert((message->index >= 0
-                && message->index < FILE_PIECES),
-               "Wrong HAVE message received");
+    xbt_assert((message->index >= 0 && message->index < FILE_PIECES), "Wrong HAVE message received");
     remote_peer->bitfield[message->index] = '1';
     peer->pieces_count[message->index]++;
     //If the piece is in our pieces, we tell the peer that we are interested.
@@ -410,36 +367,30 @@ void handle_message(peer_t peer, msg_task_t task)
   case MESSAGE_REQUEST:
     xbt_assert(remote_peer->interested, "WTF !!!");
 
-    xbt_assert((message->index >= 0
-                && message->index < FILE_PIECES), "Wrong request received");
+    xbt_assert((message->index >= 0 && message->index < FILE_PIECES), "Wrong request received");
     if (!remote_peer->choked_upload) {
-      XBT_DEBUG("Received a REQUEST from %s (%s) for %d (%d,%d)",
-                message->mailbox, message->issuer_host_name, message->index,
-                message->block_index,
-                message->block_index + message->block_length);
+      XBT_DEBUG("Received a REQUEST from %s (%s) for %d (%d,%d)", message->mailbox, message->issuer_host_name,
+                message->index, message->block_index, message->block_index + message->block_length);
       if (peer->bitfield[message->index] == '1') {
-        send_piece(peer, message->mailbox, message->index,
-                   message->block_index, message->block_length);
+        send_piece(peer, message->mailbox, message->index, message->block_index, message->block_length);
       }
     } else {
-      XBT_DEBUG("Received a REQUEST from %s (%s) for %d but he is choked.",
-                message->mailbox, message->issuer_host_name, message->peer_id);
+      XBT_DEBUG("Received a REQUEST from %s (%s) for %d but he is choked.", message->mailbox,
+                message->issuer_host_name, message->peer_id);
     }
     break;
   case MESSAGE_PIECE:
-    XBT_DEBUG("Received piece %d (%d,%d) from %s (%s)", message->index,
-              message->block_index,
-              message->block_index + message->block_length,
-              message->mailbox, message->issuer_host_name);
+    XBT_DEBUG("Received piece %d (%d,%d) from %s (%s)", message->index, message->block_index,
+              message->block_index + message->block_length, message->mailbox, message->issuer_host_name);
     xbt_assert(!remote_peer->choked_download, "WTF !!!");
-    xbt_assert(remote_peer->am_interested || ENABLE_END_GAME_MODE, "Can't received a piece if I'm not interested wihtout end-game mode! piece (%d) bitfield(%s) remote bitfield(%s)", message->index, peer->bitfield, remote_peer->bitfield);
+    xbt_assert(remote_peer->am_interested || ENABLE_END_GAME_MODE,
+               "Can't received a piece if I'm not interested wihtout end-game mode!"
+               "piece (%d) bitfield(%s) remote bitfield(%s)", message->index, peer->bitfield, remote_peer->bitfield);
     xbt_assert(remote_peer->choked_download != 1, "Can't received a piece if I'm choked !");
-    xbt_assert((message->index >= 0
-                && message->index < FILE_PIECES), "Wrong piece received");
+    xbt_assert((message->index >= 0 && message->index < FILE_PIECES), "Wrong piece received");
     //TODO: Execute Ã  computation.
       if (peer->bitfield[message->index] == '0') {
-        update_bitfield_blocks(peer, message->index, message->block_index,
-                               message->block_length);
+        update_bitfield_blocks(peer, message->index, message->block_index, message->block_length);
         if (piece_complete(peer, message->index)) {
           //Removing the piece from our piece list
           remove_current_piece(peer, remote_peer, message->index);
@@ -461,24 +412,19 @@ void handle_message(peer_t peer, msg_task_t task)
       }
     break;
   case MESSAGE_CANCEL:
-    XBT_DEBUG("The received CANCEL from %s (%s)",
-              message->mailbox, message->issuer_host_name);
+    XBT_DEBUG("The received CANCEL from %s (%s)", message->mailbox, message->issuer_host_name);
     break;
   }
   //Update the peer speed.
   if (remote_peer) {
-    connection_add_speed_value(remote_peer,
-                               1.0 / (MSG_get_clock() -
-                                      peer->begin_receive_time));
+    connection_add_speed_value(remote_peer, 1.0 / (MSG_get_clock() - peer->begin_receive_time));
   }
   peer->begin_receive_time = MSG_get_clock();
 
   task_message_free(task);
 }
 
-/**
- * Selects the appropriate piece to download and requests it to the remote_peer
- */
+/** Selects the appropriate piece to download and requests it to the remote_peer */
 void request_new_piece_to_peer(peer_t peer, connection_t remote_peer)
 {
   int piece = select_piece_to_download(peer, remote_peer);
@@ -488,11 +434,8 @@ void request_new_piece_to_peer(peer_t peer, connection_t remote_peer)
   }
 }
 
-/**
- * remove current_piece from the list of currently downloaded pieces.
- */
-void remove_current_piece(peer_t peer, connection_t remote_peer,
-                          int current_piece)
+/** remove current_piece from the list of currently downloaded pieces. */
+void remove_current_piece(peer_t peer, connection_t remote_peer, int current_piece)
 {
   int piece_index = -1, piece;
   unsigned int i;
@@ -507,10 +450,9 @@ void remove_current_piece(peer_t peer, connection_t remote_peer,
   remote_peer->current_piece = -1;
 }
 
-/**
- * Updates the list of who has a piece from a bitfield
- * @param peer peer we want to update the list
- * @param bitfield bitfield
+/** @brief Updates the list of who has a piece from a bitfield
+ *  @param peer peer we want to update the list
+ *  @param bitfield bitfield
  */
 void update_pieces_count_from_bitfield(peer_t peer, char *bitfield)
 {
@@ -522,15 +464,11 @@ void update_pieces_count_from_bitfield(peer_t peer, char *bitfield)
   }
 }
 
-
-
-/**
- * Return the piece to be downloaded
+/** @brief Return the piece to be downloaded
  * There are two cases (as described in "Bittorrent Architecture Protocol", Ryan Toole :
  * If a piece is partially downloaded, this piece will be selected prioritarily
  * If the peer has strictly less than 4 pieces, he chooses a piece at random.
- * If the peer has more than pieces, he downloads the pieces that are the less
- * replicated (rarest policy).
+ * If the peer has more than pieces, he downloads the pieces that are the less replicated (rarest policy).
  * If all pieces have been downloaded or requested, we select a random requested piece (endgame mode).
  * @param peer: local peer
  * @param remote_peer: information about the connection
@@ -546,8 +484,7 @@ int select_piece_to_download(peer_t peer, connection_t remote_peer)
     return piece;
 
   // end game mode
-  if (xbt_dynar_length(peer->current_pieces) >= (FILE_PIECES - peer->pieces)
-      && is_interested(peer, remote_peer)) {
+  if (xbt_dynar_length(peer->current_pieces) >= (FILE_PIECES - peer->pieces) && is_interested(peer, remote_peer)) {
     if(!ENABLE_END_GAME_MODE)
       return -1;
     int i;
@@ -561,8 +498,7 @@ int select_piece_to_download(peer_t peer, connection_t remote_peer)
     }
     xbt_assert(nb_interesting_pieces != 0, "WTF !!!");
     // get a random interesting piece
-    random_piece_index =
-        RngStream_RandInt(peer->stream, 0, nb_interesting_pieces - 1);
+    random_piece_index = RngStream_RandInt(peer->stream, 0, nb_interesting_pieces - 1);
     for (i = 0; i < FILE_PIECES; i++) {
       if (peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1') {
         if (random_piece_index == current_index) {
@@ -582,18 +518,15 @@ int select_piece_to_download(peer_t peer, connection_t remote_peer)
     int random_piece_index, current_index = 0;
     // compute the number of interesting pieces
     for (i = 0; i < FILE_PIECES; i++) {
-      if (peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1'
-          && !in_current_pieces(peer, i)) {
+      if (peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1' && !in_current_pieces(peer, i)) {
         nb_interesting_pieces++;
       }
     }
     xbt_assert(nb_interesting_pieces != 0, "WTF !!!");
     // get a random interesting piece
-    random_piece_index =
-        RngStream_RandInt(peer->stream, 0, nb_interesting_pieces - 1);
+    random_piece_index = RngStream_RandInt(peer->stream, 0, nb_interesting_pieces - 1);
     for (i = 0; i < FILE_PIECES; i++) {
-      if (peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1'
-          && !in_current_pieces(peer, i)) {
+      if (peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1' && !in_current_pieces(peer, i)) {
         if (random_piece_index == current_index) {
           piece = i;
           break;
@@ -610,25 +543,23 @@ int select_piece_to_download(peer_t peer, connection_t remote_peer)
     int random_rarest_index, current_index = 0;
     // compute the smallest number of copies of available pieces
     for (i = 0; i < FILE_PIECES; i++) {
-      if (peer->pieces_count[i] < min && peer->bitfield[i] == '0'
-          && remote_peer->bitfield[i] == '1' && !in_current_pieces(peer, i))
+      if (peer->pieces_count[i] < min && peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1'
+          && !in_current_pieces(peer, i))
         min = peer->pieces_count[i];
     }
-    xbt_assert(min != SHRT_MAX
-               || !is_interested_and_free(peer, remote_peer), "WTF !!!");
+    xbt_assert(min != SHRT_MAX || !is_interested_and_free(peer, remote_peer), "WTF !!!");
     // compute the number of rarest pieces
     for (i = 0; i < FILE_PIECES; i++) {
-      if (peer->pieces_count[i] == min && peer->bitfield[i] == '0'
-          && remote_peer->bitfield[i] == '1' && !in_current_pieces(peer, i))
+      if (peer->pieces_count[i] == min && peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1'
+          && !in_current_pieces(peer, i))
         nb_min_pieces++;
     }
-    xbt_assert(nb_min_pieces != 0
-               || !is_interested_and_free(peer, remote_peer), "WTF !!!");
+    xbt_assert(nb_min_pieces != 0 || !is_interested_and_free(peer, remote_peer), "WTF !!!");
     // get a random rarest piece
     random_rarest_index = RngStream_RandInt(peer->stream, 0, nb_min_pieces - 1);
     for (i = 0; i < FILE_PIECES; i++) {
-      if (peer->pieces_count[i] == min && peer->bitfield[i] == '0'
-          && remote_peer->bitfield[i] == '1' && !in_current_pieces(peer, i)) {
+      if (peer->pieces_count[i] == min && peer->bitfield[i] == '0' && remote_peer->bitfield[i] == '1'
+          && !in_current_pieces(peer, i)) {
         if (random_rarest_index == current_index) {
           piece = i;
           break;
@@ -636,26 +567,19 @@ int select_piece_to_download(peer_t peer, connection_t remote_peer)
         current_index++;
       }
     }
-    xbt_assert(piece != -1
-               || !is_interested_and_free(peer, remote_peer), "WTF !!!");
+    xbt_assert(piece != -1 || !is_interested_and_free(peer, remote_peer), "WTF !!!");
     return piece;
   }
 }
 
-
-/**
- * Update the list of current choked and unchoked peers, using the
- * choke algorithm
- * @param peer the current peer
+/** @brief Update the list of current choked and unchoked peers, using the choke algorithm
+ *  @param peer the current peer
  */
 void update_choked_peers(peer_t peer)
 {
   if (nb_interested_peers(peer) == 0)
     return;
-  //  if(xbt_dict_size(peer->active_peers) > 0)
-  //    return;
-  XBT_DEBUG("(%d) update_choked peers %d active peers", peer->id,
-            xbt_dict_size(peer->active_peers));
+  XBT_DEBUG("(%d) update_choked peers %d active peers", peer->id, xbt_dict_size(peer->active_peers));
   //update the current round
   peer->round = (peer->round + 1) % 3;
   char *key, *key_choked=NULL;
@@ -670,17 +594,13 @@ void update_choked_peers(peer_t peer)
   }
   xbt_dict_cursor_free(&cursor);
 
-  /**
-   * If we are currently seeding, we unchoke the peer which has
-   * been unchoke the least time.
-   */
+  /**If we are currently seeding, we unchoke the peer which has been unchoked the last time.*/
   if (peer->pieces == FILE_PIECES) {
     connection_t connection;
     double unchoke_time = MSG_get_clock() + 1;
 
     xbt_dict_foreach(peer->peers, cursor, key, connection) {
-      if (connection->last_unchoke < unchoke_time && connection->interested
-          && connection->choked_upload) {
+      if (connection->last_unchoke < unchoke_time && connection->interested && connection->choked_upload) {
         unchoke_time = connection->last_unchoke;
         peer_choosed = connection;
       }
@@ -691,8 +611,7 @@ void update_choked_peers(peer_t peer)
       int j = 0;
       do {
         //We choose a random peer to unchoke.
-        int id_chosen = RngStream_RandInt(peer->stream, 0,
-                                          xbt_dict_length(peer->peers) - 1);
+        int id_chosen = RngStream_RandInt(peer->stream, 0, xbt_dict_length(peer->peers) - 1);
         int i = 0;
         connection_t connection;
         xbt_dict_foreach(peer->peers, cursor, key, connection) {
@@ -713,48 +632,31 @@ void update_choked_peers(peer_t peer)
       connection_t connection;
       double fastest_speed = 0.0;
       xbt_dict_foreach(peer->peers, cursor, key, connection) {
-        if (connection->peer_speed > fastest_speed
-            && connection->choked_upload && connection->interested) {
+        if (connection->peer_speed > fastest_speed && connection->choked_upload && connection->interested) {
           peer_choosed = connection;
           fastest_speed = connection->peer_speed;
         }
       }
     }
-
   }
-  if (peer_choosed != NULL)
-    XBT_DEBUG
-        ("(%d) update_choked peers unchoked (%d) ; int (%d) ; choked (%d) ",
-         peer->id, peer_choosed->id, peer_choosed->interested,
-         peer_choosed->choked_upload);
-
-  //  if (xbt_dict_size(peer->peers) > 0)
-  //    xbt_assert((xbt_dict_size(peer->active_peers)  != 0),
-  //        "No more active peers !");
 
-
-  //  if (peer_choked != NULL && peer_choked->choked_upload  != 0)
-  //    peer_choked = NULL;
-  //  if (peer_choosed != NULL && peer_choosed->choked_upload  == 0)
-  //    peer_choosed = NULL;
+  if (peer_choosed != NULL)
+    XBT_DEBUG("(%d) update_choked peers unchoked (%d) ; int (%d) ; choked (%d) ",
+              peer->id, peer_choosed->id, peer_choosed->interested, peer_choosed->choked_upload);
 
   if (peer_choked != peer_choosed) {
     if (peer_choked != NULL) {
-      xbt_assert((!peer_choked->choked_upload),
-                 "Tries to choked a choked peer");
+      xbt_assert((!peer_choked->choked_upload), "Tries to choked a choked peer");
       peer_choked->choked_upload = 1;
       xbt_assert((*((int *) key_choked) == peer_choked->id), "WTF !!!");
       update_active_peers_set(peer, peer_choked);
-      //      xbt_dict_remove_ext(peer->active_peers, key_choked, sizeof(int));
       XBT_DEBUG("(%d) Sending a CHOKE to %d", peer->id, peer_choked->id);
       send_choked(peer, peer_choked->mailbox);
     }
     if (peer_choosed != NULL) {
-      xbt_assert((peer_choosed->choked_upload),
-                 "Tries to unchoked an unchoked peer");
+      xbt_assert((peer_choosed->choked_upload), "Tries to unchoked an unchoked peer");
       peer_choosed->choked_upload = 0;
-      xbt_dict_set_ext(peer->active_peers, (char *) &peer_choosed->id,
-                       sizeof(int), peer_choosed, NULL);
+      xbt_dict_set_ext(peer->active_peers, (char *) &peer_choosed->id, sizeof(int), peer_choosed, NULL);
       peer_choosed->last_unchoke = MSG_get_clock();
       XBT_DEBUG("(%d) Sending a UNCHOKE to %d", peer->id, peer_choosed->id);
       update_active_peers_set(peer, peer_choosed);
@@ -763,10 +665,8 @@ void update_choked_peers(peer_t peer)
   }
 }
 
-/**
- * Updates our "interested" state about peers: send "not interested" to peers
- * that don't have any more pieces we want.
- * @param peer our peer data
+/** @brief Update "interested" state of peers: send "not interested" to peers that don't have any more pieces we want.
+ *  @param peer our peer data
  */
 void update_interested_after_receive(peer_t peer)
 {
@@ -794,22 +694,17 @@ void update_interested_after_receive(peer_t peer)
   }
 }
 
-void update_bitfield_blocks(peer_t peer, int index, int block_index,
-                            int block_length)
+void update_bitfield_blocks(peer_t peer, int index, int block_index, int block_length)
 {
   int i;
   xbt_assert((index >= 0 && index <= FILE_PIECES), "Wrong piece.");
-  xbt_assert((block_index >= 0
-              && block_index <= PIECES_BLOCKS), "Wrong block : %d.",
-             block_index);
+  xbt_assert((block_index >= 0 && block_index <= PIECES_BLOCKS), "Wrong block : %d.", block_index);
   for (i = block_index; i < (block_index + block_length); i++) {
     peer->bitfield_blocks[index * PIECES_BLOCKS + i] = '1';
   }
 }
 
-/**
- * Returns if a peer has completed the download of a piece
- */
+/** Returns if a peer has completed the download of a piece */
 int piece_complete(peer_t peer, int index)
 {
   int i;
@@ -821,10 +716,7 @@ int piece_complete(peer_t peer, int index)
   return 1;
 }
 
-/**
- * Returns the first block that a peer doesn't have in a piece.
- * If the peer has all blocks of the piece, returns -1.
- */
+/** Returns the first block that a peer doesn't have in a piece. If the peer has all blocks of the piece, returns -1. */
 int get_first_block(peer_t peer, int piece)
 {
   int i;
@@ -836,9 +728,7 @@ int get_first_block(peer_t peer, int piece)
   return -1;
 }
 
-/**
- * Indicates if the remote peer has a piece not stored by the local peer
- */
+/** Indicates if the remote peer has a piece not stored by the local peer */
 int is_interested(peer_t peer, connection_t remote_peer)
 {
   xbt_assert(remote_peer->bitfield, "Bitfield not received");
@@ -851,34 +741,26 @@ int is_interested(peer_t peer, connection_t remote_peer)
   return 0;
 }
 
-/**
- * Indicates if the remote peer has a piece not stored by the local peer nor requested by the local peer
- */
+/** Indicates if the remote peer has a piece not stored by the local peer nor requested by the local peer */
 int is_interested_and_free(peer_t peer, connection_t remote_peer)
 {
   xbt_assert(remote_peer->bitfield, "Bitfield not received");
   int i;
   for (i = 0; i < FILE_PIECES; i++) {
-    if (remote_peer->bitfield[i] == '1' && peer->bitfield[i] == '0'
-        && !in_current_pieces(peer, i)) {
+    if (remote_peer->bitfield[i] == '1' && peer->bitfield[i] == '0' && !in_current_pieces(peer, i)) {
       return 1;
     }
   }
   return 0;
 }
 
-
-/**
- * Returns a piece that is partially downloaded and stored by the remote peer if any
- * -1 otherwise.
- */
+/** Returns a piece that is partially downloaded and stored by the remote peer if any -1 otherwise. */
 int partially_downloaded_piece(peer_t peer, connection_t remote_peer)
 {
   xbt_assert(remote_peer->bitfield, "Bitfield not received");
   int i;
   for (i = 0; i < FILE_PIECES; i++) {
-    if (remote_peer->bitfield[i] == '1' && peer->bitfield[i] == '0'
-        && !in_current_pieces(peer, i)) {
+    if (remote_peer->bitfield[i] == '1' && peer->bitfield[i] == '0' && !in_current_pieces(peer, i)) {
       if (get_first_block(peer, i) > 0)
         return i;
     }
@@ -886,11 +768,9 @@ int partially_downloaded_piece(peer_t peer, connection_t remote_peer)
   return -1;
 }
 
-
-/**
- * Send request messages to a peer that have unchoked us
- * @param peer peer
- * @param remote_peer peer data to the peer we want to send the request
+/** @brief Send request messages to a peer that have unchoked us
+ *  @param peer peer
+ *  @param remote_peer peer data to the peer we want to send the request
  */
 void send_request_to_peer(peer_t peer, connection_t remote_peer, int piece)
 {
@@ -906,10 +786,7 @@ void send_request_to_peer(peer_t peer, connection_t remote_peer, int piece)
   }
 }
 
-
-/**
- * Indicates if a piece is currently being downloaded by the peer.
- */
+/** Indicates if a piece is currently being downloaded by the peer. */
 int in_current_pieces(peer_t peer, int piece)
 {
   unsigned i;
@@ -922,9 +799,6 @@ int in_current_pieces(peer_t peer, int piece)
   return 0;
 }
 
-
-
-
 /***********************************************************
  *
  *  Low level message functions
@@ -933,39 +807,32 @@ int in_current_pieces(peer_t peer, int piece)
 
 
 
-/**
- * Send a "interested" message to a peer
- * @param peer peer data
- * @param mailbox destination mailbox
+/** @brief Send a "interested" message to a peer
+ *  @param peer peer data
+ *  @param mailbox destination mailbox
  */
 void send_interested(peer_t peer, const char *mailbox)
 {
-  msg_task_t task =
-      task_message_new(MESSAGE_INTERESTED, peer->hostname, peer->mailbox,
-                       peer->id, task_message_size(MESSAGE_INTERESTED));
+  msg_task_t task = task_message_new(MESSAGE_INTERESTED, peer->hostname, peer->mailbox, peer->id,
+                                     task_message_size(MESSAGE_INTERESTED));
   MSG_task_dsend(task, mailbox, task_message_free);
   XBT_DEBUG("Sending INTERESTED to %s", mailbox);
-
 }
 
-/**
- * Send a "not interested" message to a peer
- * @param peer peer data
- * @param mailbox destination mailbox
+/** @brief Send a "not interested" message to a peer
+ *  @param peer peer data
+ *  @param mailbox destination mailbox
  */
 void send_notinterested(peer_t peer, const char *mailbox)
 {
-  msg_task_t task =
-      task_message_new(MESSAGE_NOTINTERESTED, peer->hostname, peer->mailbox,
-                       peer->id, task_message_size(MESSAGE_NOTINTERESTED));
+  msg_task_t task = task_message_new(MESSAGE_NOTINTERESTED, peer->hostname, peer->mailbox, peer->id,
+                                     task_message_size(MESSAGE_NOTINTERESTED));
   MSG_task_dsend(task, mailbox, task_message_free);
   XBT_DEBUG("Sending NOTINTERESTED to %s", mailbox);
-
 }
 
-/**
- * Send a handshake message to all the peers the peer has.
- * @param peer peer data
+/** @brief Send a handshake message to all the peers the peer has.
+ *  @param peer peer data
  */
 void send_handshake_all(peer_t peer)
 {
@@ -973,55 +840,44 @@ void send_handshake_all(peer_t peer)
   xbt_dict_cursor_t cursor = NULL;
   char *key;
   xbt_dict_foreach(peer->peers, cursor, key, remote_peer) {
-    msg_task_t task =
-        task_message_new(MESSAGE_HANDSHAKE, peer->hostname, peer->mailbox,
-                         peer->id, task_message_size(MESSAGE_HANDSHAKE));
+    msg_task_t task = task_message_new(MESSAGE_HANDSHAKE, peer->hostname, peer->mailbox, peer->id,
+                                       task_message_size(MESSAGE_HANDSHAKE));
     MSG_task_dsend(task, remote_peer->mailbox, task_message_free);
     XBT_DEBUG("Sending a HANDSHAKE to %s", remote_peer->mailbox);
   }
 }
 
-/**
- * Send a "handshake" message to an user
- * @param peer peer data
- * @param mailbox mailbox where to we send the message
+/** @brief Send a "handshake" message to an user
+ *  @param peer peer data
+ *  @param mailbox mailbox where to we send the message
  */
 void send_handshake(peer_t peer, const char *mailbox)
 {
-  msg_task_t task =
-      task_message_new(MESSAGE_HANDSHAKE, peer->hostname, peer->mailbox,
-                       peer->id, task_message_size(MESSAGE_HANDSHAKE));
+  msg_task_t task = task_message_new(MESSAGE_HANDSHAKE, peer->hostname, peer->mailbox, peer->id,
+                                     task_message_size(MESSAGE_HANDSHAKE));
   MSG_task_dsend(task, mailbox, task_message_free);
   XBT_DEBUG("Sending a HANDSHAKE to %s", mailbox);
 }
 
-/**
- * Send a "choked" message to a peer.
- */
+/** Send a "choked" message to a peer. */
 void send_choked(peer_t peer, const char *mailbox)
 {
   XBT_DEBUG("Sending a CHOKE to %s", mailbox);
-  msg_task_t task =
-      task_message_new(MESSAGE_CHOKE, peer->hostname, peer->mailbox,
-                       peer->id, task_message_size(MESSAGE_CHOKE));
+  msg_task_t task = task_message_new(MESSAGE_CHOKE, peer->hostname, peer->mailbox, peer->id,
+                    task_message_size(MESSAGE_CHOKE));
   MSG_task_dsend(task, mailbox, task_message_free);
 }
 
-/**
- * Send a "unchoked" message to a peer
- */
+/** Send a "unchoked" message to a peer */
 void send_unchoked(peer_t peer, const char *mailbox)
 {
   XBT_DEBUG("Sending a UNCHOKE to %s", mailbox);
-  msg_task_t task =
-      task_message_new(MESSAGE_UNCHOKE, peer->hostname, peer->mailbox,
-                       peer->id, task_message_size(MESSAGE_UNCHOKE));
+  msg_task_t task = task_message_new(MESSAGE_UNCHOKE, peer->hostname, peer->mailbox, peer->id,
+                                     task_message_size(MESSAGE_UNCHOKE));
   MSG_task_dsend(task, mailbox, task_message_free);
 }
 
-/**
- * Send a "HAVE" message to all peers we are connected to
- */
+/** Send a "HAVE" message to all peers we are connected to */
 void send_have(peer_t peer, int piece)
 {
   XBT_DEBUG("Sending HAVE message to all my peers");
@@ -1029,54 +885,37 @@ void send_have(peer_t peer, int piece)
   xbt_dict_cursor_t cursor = NULL;
   char *key;
   xbt_dict_foreach(peer->peers, cursor, key, remote_peer) {
-    msg_task_t task =
-        task_message_index_new(MESSAGE_HAVE, peer->hostname, peer->mailbox,
-                               peer->id, piece,
-                               task_message_size(MESSAGE_HAVE));
+    msg_task_t task = task_message_index_new(MESSAGE_HAVE, peer->hostname, peer->mailbox, peer->id, piece,
+                                             task_message_size(MESSAGE_HAVE));
     MSG_task_dsend(task, remote_peer->mailbox, task_message_free);
   }
 }
 
-/**
- * Send a bitfield message to all the peers the peer has.
- * @param peer peer data
+/** @brief Send a bitfield message to all the peers the peer has.
+ *  @param peer peer data
  */
 void send_bitfield(peer_t peer, const char *mailbox)
 {
   XBT_DEBUG("Sending a BITFIELD to %s", mailbox);
-  msg_task_t task =
-      task_message_bitfield_new(peer->hostname, peer->mailbox, peer->id,
-                                peer->bitfield, FILE_PIECES);
+  msg_task_t task = task_message_bitfield_new(peer->hostname, peer->mailbox, peer->id, peer->bitfield, FILE_PIECES);
   MSG_task_dsend(task, mailbox, task_message_free);
 }
 
-/**
- * Send a "request" message to a pair, containing a request for a piece
- */
-void send_request(peer_t peer, const char *mailbox, int piece,
-                  int block_index, int block_length)
+/** Send a "request" message to a pair, containing a request for a piece */
+void send_request(peer_t peer, const char *mailbox, int piece, int block_index, int block_length)
 {
-  XBT_DEBUG("Sending a REQUEST to %s for piece %d (%d,%d)", mailbox, piece,
-            block_index, block_length);
-  msg_task_t task =
-      task_message_request_new(peer->hostname, peer->mailbox, peer->id, piece,
-                               block_index, block_length);
+  XBT_DEBUG("Sending a REQUEST to %s for piece %d (%d,%d)", mailbox, piece, block_index, block_length);
+  msg_task_t task = task_message_request_new(peer->hostname, peer->mailbox, peer->id, piece, block_index, block_length);
   MSG_task_dsend(task, mailbox, task_message_free);
 }
 
-/**
- * Send a "piece" message to a pair, containing a piece of the file
- */
-void send_piece(peer_t peer, const char *mailbox, int piece,
-                int block_index, int block_length)
+/** Send a "piece" message to a pair, containing a piece of the file */
+void send_piece(peer_t peer, const char *mailbox, int piece, int block_index, int block_length)
 {
-  XBT_DEBUG("Sending the PIECE %d (%d,%d) to %s", piece, block_index,
-            block_length, mailbox);
+  XBT_DEBUG("Sending the PIECE %d (%d,%d) to %s", piece, block_index, block_length, mailbox);
   xbt_assert(piece >= 0, "Tried to send a piece that doesn't exist.");
-  xbt_assert((peer->bitfield[piece] == '1'),
-             "Tried to send a piece that we doesn't have.");
-  msg_task_t task =
-      task_message_piece_new(peer->hostname, peer->mailbox, peer->id, piece,
-                             block_index, block_length, BLOCK_SIZE);
+  xbt_assert((peer->bitfield[piece] == '1'), "Tried to send a piece that we doesn't have.");
+  msg_task_t task = task_message_piece_new(peer->hostname, peer->mailbox, peer->id, piece, block_index, block_length,
+                                           BLOCK_SIZE);
   MSG_task_dsend(task, mailbox, task_message_free);
 }
index ce96099..009de84 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -13,9 +13,7 @@
 #include "connection.h"
 #include "bittorrent.h"
 
-/**
- * Peer data
- */
+/** Peer data */
 typedef struct s_peer {
   int id;                       //peer id
 
@@ -45,9 +43,7 @@ typedef struct s_peer {
 
 } s_peer_t, *peer_t;
 
-/**
- * Peer main function
- */
+/** Peer main function */
 int peer(int argc, char *argv[]);
 
 int get_peers_data(peer_t peer);
@@ -66,8 +62,7 @@ void update_choked_peers(peer_t peer);
 
 void update_interested_after_receive(peer_t peer);
 
-void update_bitfield_blocks(peer_t peer, int index, int block_index,
-                            int block_length);
+void update_bitfield_blocks(peer_t peer, int index, int block_index, int block_length);
 int piece_complete(peer_t peer, int index);
 int get_first_block(peer_t peer, int piece);
 
@@ -80,8 +75,7 @@ int partially_downloaded_piece(peer_t peer, connection_t remote_peer);
 
 void request_new_piece_to_peer(peer_t peer, connection_t remote_peer);
 void send_request_to_peer(peer_t peer, connection_t remote_peer, int piece);
-void remove_current_piece(peer_t peer, connection_t remote_peer,
-                          int current_piece);
+void remove_current_piece(peer_t peer, connection_t remote_peer, int current_piece);
 
 void update_active_peers_set(peer_t peer, connection_t remote_peer);
 int select_piece_to_download(peer_t peer, connection_t remote_peer);
@@ -97,9 +91,7 @@ void send_choked(peer_t peer, const char *mailbox);
 void send_unchoked(peer_t peer, const char *mailbox);
 void send_have(peer_t peer, int piece);
 
-void send_request(peer_t peer, const char *mailbox, int piece,
-                  int block_index, int block_length);
-void send_piece(peer_t peer, const char *mailbox, int piece,
-                int block_index, int block_length);
+void send_request(peer_t peer, const char *mailbox, int piece, int block_index, int block_length);
+void send_piece(peer_t peer, const char *mailbox, int piece, int block_index, int block_length);
 
 #endif                          /* BITTORRENT_PEER_H */
index 15f6a94..72ff0d1 100644 (file)
@@ -24,7 +24,7 @@ int tracker(int argc, char *argv[])
   //Checking arguments
   xbt_assert(argc == 2, "Wrong number of arguments for the tracker.");
   //Retrieving end time
-  double deadline = atof(argv[1]);
+  double deadline = xbt_str_parse_double(argv[1],"Invalid deadline: %s");
   xbt_assert(deadline > 0, "Wrong deadline supplied");
   //Building peers array
   xbt_dynar_t peers_list = xbt_dynar_new(sizeof(int), NULL);
index f84ab26..072a61f 100644 (file)
@@ -8,13 +8,11 @@ target_link_libraries(chainsend simgrid )
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/chainsend.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_tesh.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/iterator.h
@@ -28,14 +26,11 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/peer.h
   ${CMAKE_CURRENT_SOURCE_DIR}/peer.c
   ${CMAKE_CURRENT_SOURCE_DIR}/chainsend.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5daf3d5..112bb25 100644 (file)
@@ -118,11 +118,11 @@ int broadcaster(int argc, char *argv[])
   XBT_DEBUG("broadcaster");
 
   /* Add every mailbox given by the hostcount in argv[1] to a dynamic array */
-  host_list = build_hostlist_from_hostcount(atoi(argv[1]));
+  host_list = build_hostlist_from_hostcount(xbt_str_parse_int(argv[1], "Invalid number of peers: %s"));
 
   /* argv[2] is the number of pieces */
   if (argc > 2) {
-    piece_count = atoi(argv[2]);
+    piece_count = xbt_str_parse_int(argv[2], "Invalid number of pieces: %s");
     XBT_DEBUG("piece_count set to %d", piece_count);
   } else {
     XBT_DEBUG("No piece_count specified, defaulting to %d", piece_count);
index 2be997f..2fd4038 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3"><!-- For using with chainsend -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- For using with chainsend -->
 
   <!-- Broadcaster -->
   <process host="Jacquelin" function="broadcaster">
diff --git a/examples/msg/chainsend/generate_deployment_file.rb b/examples/msg/chainsend/generate_deployment_file.rb
deleted file mode 100755 (executable)
index e290ae1..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env ruby
-
-# Copyright (c) 2012-2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-require 'rexml/document'
-
-class HostsExtractor
-  @@doc = nil
-  @@hosts = []
-
-  def initialize(xml)
-    @@doc = REXML::Document.new(xml)
-    @@doc.elements.each('platform') do |platform|
-      extract_hosts(platform)
-    end
-  end
-
-  def extract_hosts(doc)
-    doc.elements.each('AS') do |as|
-      extract_hosts_from_AS(as)
-      extract_hosts(as)
-    end
-  end
-
-  def extract_hosts_from_AS(doc)
-    doc.elements.each('host') do |h|
-      @@hosts << h.attributes['id']
-      puts "hosts %s" % h.attributes['id']
-    end
-
-    doc.elements.each('cluster') do |c|
-      prefix = c.attributes['prefix']
-      suffix = c.attributes['suffix']
-      puts "%s %s %s" % [prefix, c.attributes['radical'], suffix]
-      expand_radical(c.attributes['radical']).each do |num|
-        @@hosts << "%s%s%s" % [prefix, num, suffix]
-      end
-    end
-  end
-
-  def hosts
-    return @@hosts
-  end
-
-  def expand_radical(radical)
-   l = []
-   puts radical
-   radical.split(',').each do |range|
-     range.scan(/^\d+$/) { |x| l << x }
-     range.scan(/^(\d+)-(\d+)$/) { |x, y| (x..y).each do |i| l << i end }
-   end
-   return l
-  end
-end
-
-class DeploymentGenerator
-  @@outfile = nil
-
-  def initialize(fname)
-    @@outfile = File.new(fname, "w")
-  end
-
-  def write_header
-    @@outfile.puts "<?xml version='1.0'?>"
-    @@outfile.puts "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">"
-    @@outfile.puts "<platform version=\"3\">"
-  end
-
-  def write_process(name, function, hosts, args)
-    @@outfile.puts "  <!-- %s -->" % name
-    hosts.zip(args).each do |h, a|
-      @@outfile.puts "  <process host=\"%s\" function=\"%s\">" % [h, function]
-      @@outfile.puts "    <argument value=\"%s\"/>" % [a]
-      @@outfile.puts "  </process>"
-    end
-  end
-
-  def write_footer
-    @@outfile.puts "</platform>"
-  end
-end
-
-xml = File.read(ARGV.shift)
-he = HostsExtractor.new(xml)
-
-raise "Cannot run with less than 2 hosts" unless he.hosts.size > 1
-
-output = ARGV.shift
-n = ARGV.shift
-if n == nil or n.to_i < 2
-  n = he.hosts.size - 1
-else
-  n = n.to_i - 1
-end
-puts n
-
-dg = DeploymentGenerator.new(output)
-dg.write_header
-
-puts he.hosts
-broadcaster = he.hosts.shift
-peers = he.hosts
-
-dg.write_process("Broadcaster", "broadcaster", [broadcaster], [n])
-dg.write_process("Peers", "peer", peers[0..n-1], (1..n))
-
-dg.write_footer
index 73e85ee..15c131e 100644 (file)
@@ -9,26 +9,18 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/chord.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/chord_crosstraffic.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/chord.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/chord10.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/chord.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
   ${CMAKE_CURRENT_SOURCE_DIR}/run_chord
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 21c6a8c..ef8324c 100644 (file)
@@ -322,9 +322,8 @@ int node(int argc, char *argv[])
 
   // initialize my node
   s_node_t node = {0};
-  node.id = atoi(argv[1]);
-  node.stream =
-    (RngStream)MSG_host_get_property_value(MSG_host_self(), "stream");
+  node.id = xbt_str_parse_int(argv[1],"Invalid ID: %s");
+  node.stream = (RngStream)MSG_host_get_property_value(MSG_host_self(), "stream");
   get_mailbox(node.id, node.mailbox);
   node.next_finger_to_fix = 0;
   node.fingers = xbt_new0(s_finger_t, nb_bits);
@@ -336,14 +335,14 @@ int node(int argc, char *argv[])
   }
 
   if (argc == 3) { // first ring
-    deadline = atof(argv[2]);
+    deadline = xbt_str_parse_double(argv[2],"Invalid deadline: %s");
     create(&node);
     join_success = 1;
-  }
-  else {
-    int known_id = atoi(argv[2]);
+
+  else {
+    int known_id = xbt_str_parse_int(argv[2],"Invalid root ID: %s");
     //double sleep_time = atof(argv[3]);
-    deadline = atof(argv[4]);
+    deadline = xbt_str_parse_double(argv[4],"Invalid deadline: %s");
 
     /*
     // sleep before starting
@@ -714,19 +713,19 @@ static int remote_find_successor(node_t node, int ask_to, int id)
         XBT_DEBUG("Received a task (%p)", task_received);
         task_data_t ans_data = MSG_task_get_data(task_received);
 
-       // Once upon a time, our code assumed that here, task_received != task_sent all the time
-       //
-       // This assumption is wrong (as messages from differing round can interleave), leading to a bug in our code.
-       // We failed to find this bug directly, as it only occured on large platforms, leading to hardly usable traces.
-       // Instead, we used the model-checker to track down the issue by adding the following test here in the code:
-       //   if (MC_is_active()) {
-       //      MC_assert(task_received == task_sent);
+  // Once upon a time, our code assumed that here, task_received != task_sent all the time
+  //
+  // This assumption is wrong (as messages from differing round can interleave), leading to a bug in our code.
+  // We failed to find this bug directly, as it only occured on large platforms, leading to hardly usable traces.
+  // Instead, we used the model-checker to track down the issue by adding the following test here in the code:
+  //   if (MC_is_active()) {
+  //      MC_assert(task_received == task_sent);
         //   }
-       // That explained the bug in a snap, with a very cool example and everything.
-       //
-       // This MC_assert is now desactivated as the case is now properly handled in our code and we don't want the
-       //   MC to fail any further under that condition, but this comment is here to as a memorial for this first
-       //   brillant victory of the model-checking in the SimGrid community :)
+  // That explained the bug in a snap, with a very cool example and everything.
+  //
+  // This MC_assert is now desactivated as the case is now properly handled in our code and we don't want the
+  //   MC to fail any further under that condition, but this comment is here to as a memorial for this first
+  //   brillant victory of the model-checking in the SimGrid community :)
 
         if (task_received != task_sent ||
             ans_data->type != TASK_FIND_SUCCESSOR_ANSWER) {
@@ -1027,23 +1026,23 @@ int main(int argc, char *argv[])
 {
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, 
-            "Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n"
-            "\tExample: %s ../msg_platform.xml chord.xml\n", 
-            argv[0], argv[0]);
+       "Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n"
+       "\tExample: %s ../msg_platform.xml chord.xml\n", 
+       argv[0], argv[0]);
 
   char **options = &argv[1];
   while (!strncmp(options[0], "-", 1)) {
 
     int length = strlen("-nb_bits=");
     if (!strncmp(options[0], "-nb_bits=", length) && strlen(options[0]) > length) {
-      nb_bits = atoi(options[0] + length);
+      nb_bits = xbt_str_parse_int(options[0] + length, "Invalid nb_bits parameter: %s");
       XBT_DEBUG("Set nb_bits to %d", nb_bits);
     }
     else {
 
       length = strlen("-timeout=");
       if (!strncmp(options[0], "-timeout=", length) && strlen(options[0]) > length) {
-        timeout = atoi(options[0] + length);
+        timeout = xbt_str_parse_int(options[0] + length, "Invalid timeout parameter: %s");
         XBT_DEBUG("Set timeout to %d", timeout);
       }
       else {
index 0c6e39f..e60fdce 100644 (file)
@@ -1,59 +1,50 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Gatien" function="node">
     <argument value="48"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="400"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="McGee" function="node">
     <argument value="42"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="300"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="iRMX" function="node">
     <argument value="38"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="200"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Geoff" function="node">
     <argument value="32"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="100"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="TeX" function="node">
     <argument value="21"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="40"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Jean_Yves" function="node">
     <argument value="14"/>        <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="16"/>        <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-  
   <process host="Boivin" function="node">
     <argument value="8"/>         <!-- my id -->
     <argument value="1"/>         <!-- known id -->
     <argument value="1"/>         <!-- time to sleep before it starts-->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
   <process host="Jacquelin" function="node">
     <argument value="1"/>         <!-- my id -->
-    <argument value ="600"/>           <!-- deadline -->
+    <argument value ="600"/>    <!-- deadline -->
   </process>
-
 </platform>
index e104c4f..cba4132 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="node-0.acme.org" function="node"><argument value="42"/><argument value="6000000"/></process>
   <process host="node-1.acme.org" function="node"><argument value="366680" /><argument value="42" /><argument value="10" /><argument value="6000000" /></process>
   <process host="node-2.acme.org" function="node"><argument value="533744" /><argument value="366680" /><argument value="20" /><argument value="6000000" /></process>
index 3b707ac..3817771 100755 (executable)
 # Usage: python generate.py nb_nodes nb_bits end_date
 # Example: python generate.py 100000 32 1000
 
-import sys, random
+import sys
+import random
 
 if len(sys.argv) != 4:
-       print("Usage: python generate.py nb_nodes nb_bits end_date > deployment_file.xml")
-       sys.exit(1)
+    print(
+        "Usage: python generate.py nb_nodes nb_bits end_date > deployment_file.xml")
+    sys.exit(1)
 
 nb_nodes = int(sys.argv[1])
 nb_bits = int(sys.argv[2])
@@ -25,22 +27,22 @@ max_id = 2 ** nb_bits - 1
 all_ids = [42]
 
 sys.stdout.write("<?xml version='1.0'?>\n"
-"<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
-"<platform version=\"3\">\n"
-"  <process host=\"node-0.acme.org\" function=\"node\"><argument value=\"42\"/><argument value=\"%d\"/></process>\n" % end_date)
+                 "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
+                 "<platform version=\"3\">\n"
+                 "  <process host=\"node-0.acme.org\" function=\"node\"><argument value=\"42\"/><argument value=\"%d\"/></process>\n" % end_date)
 
 for i in range(1, nb_nodes):
 
-       ok = False
-       while not ok:
-               my_id = random.randint(0, max_id)
-               ok = not my_id in all_ids
+    ok = False
+    while not ok:
+        my_id = random.randint(0, max_id)
+        ok = not my_id in all_ids
 
-       known_id = all_ids[random.randint(0, len(all_ids) - 1)]
-       start_date = i * 10
-       line = "  <process host=\"node-%d.acme.org\" function=\"node\"><argument value=\"%d\" /><argument value=\"%d\" /><argument value=\"%d\" /><argument value=\"%d\" /></process>\n" % (i, my_id, known_id, start_date, end_date)
-       sys.stdout.write(line)
-       all_ids.append(my_id)
+    known_id = all_ids[random.randint(0, len(all_ids) - 1)]
+    start_date = i * 10
+    line = "  <process host=\"node-%d.acme.org\" function=\"node\"><argument value=\"%d\" /><argument value=\"%d\" /><argument value=\"%d\" /><argument value=\"%d\" /></process>\n" % (
+        i, my_id, known_id, start_date, end_date)
+    sys.stdout.write(line)
+    all_ids.append(my_id)
 
 sys.stdout.write("</platform>")
-
index f35515c..f32d0d9 100644 (file)
@@ -17,19 +17,16 @@ target_link_libraries(scale simgrid)
 target_link_libraries(multicore simgrid)
 target_link_libraries(two_tasks_vm simgrid)
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/master_worker_vm.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/two_tasks_vm.tesh
    ${CMAKE_CURRENT_SOURCE_DIR}/simple_vm.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/multicore_plat.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/master_worker_vm.c
@@ -39,13 +36,4 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/scale.c
   ${CMAKE_CURRENT_SOURCE_DIR}/multicore.c
   ${CMAKE_CURRENT_SOURCE_DIR}/two_tasks_vm.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8316bb5..06a059b 100644 (file)
@@ -24,9 +24,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
 
 static int worker_main(int argc, char *argv[])
 {
-  double computation_amount = atof(argv[1]);
-  int use_bound = atoi(argv[2]);
-  double bound = atof(argv[3]);
+  double computation_amount = xbt_str_parse_double(argv[1], "Invalid computation amount: %s");
+  int use_bound = xbt_str_parse_int(argv[2], "Second parameter (use_bound) should be 0 or 1 but is: %s");
+  double bound = xbt_str_parse_double(argv[3], "Invalid bound: %s");
 
   {
     double clock_sta = MSG_get_clock();
index 853400b..3eaed07 100644 (file)
@@ -23,8 +23,8 @@ static void vm_migrate(msg_vm_t vm, msg_host_t dst_pm)
   double mig_end = MSG_get_clock();
 
   XBT_INFO("%s migrated: %s->%s in %g s", MSG_vm_get_name(vm),
-                 MSG_host_get_name(src_pm), MSG_host_get_name(dst_pm),
-                 mig_end - mig_sta);
+      MSG_host_get_name(src_pm), MSG_host_get_name(dst_pm),
+      mig_end - mig_sta);
 }
 
 static int migration_worker_main(int argc, char *argv[])
index ea56aba..c6bd09f 100644 (file)
@@ -29,9 +29,9 @@ static int worker_main(int argc, char *argv[])
 
 
 struct task_data {
-       msg_task_t task;
-       double prev_computation_amount;
-       double prev_clock;
+  msg_task_t task;
+  double prev_computation_amount;
+  double prev_clock;
 };
 
 
index 3a1b616..23e7051 100644 (file)
@@ -1,24 +1,15 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       <AS id="siteA" routing="Full">
-               <host id="PM0" power="1E8" core="1"/>
-               <host id="PM1" power="1E8" core="2"/>
-               <host id="PM2" power="1E8" core="4"/>
-
-               <!-- <link id="link1" bandwidth="1E6" latency="1E-2" /> -->
-               <link id="link1" bandwidth="12500000" latency="1E-2" />
-
-               <route src="PM0" dst="PM1">
-                       <link_ctn id="link1"/>
-               </route>
-
-               <route src="PM0" dst="PM2">
-                       <link_ctn id="link1"/>
-               </route>
-
-               <route src="PM1" dst="PM2">
-                       <link_ctn id="link1"/>
-               </route>
-       </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="siteA" routing="Full">
+    <host id="PM0" speed="1E8" core="1"/>
+    <host id="PM1" speed="1E8" core="2"/>
+    <host id="PM2" speed="1E8" core="4"/>
+
+    <link id="link1" bandwidth="12500000" latency="1E-2" />
+
+    <route src="PM0" dst="PM1"><link_ctn id="link1"/></route>
+    <route src="PM0" dst="PM2"><link_ctn id="link1"/></route>
+    <route src="PM1" dst="PM2"><link_ctn id="link1"/></route>
+  </AS>
 </platform>
index 338b75f..1c45b8c 100644 (file)
@@ -24,14 +24,14 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
  **/
 
 static double time_precise(void) {
-       struct timeval tv;
-       int ret = gettimeofday(&tv, NULL);
+  struct timeval tv;
+  int ret = gettimeofday(&tv, NULL);
   if (ret < 0)
     xbt_die("gettimeofday");
 
-       double now = (double) tv.tv_sec + tv.tv_usec * 0.001 * 0.001;
+  double now = (double) tv.tv_sec + tv.tv_usec * 0.001 * 0.001;
 
-       return now;
+  return now;
 }
 
 static int computation_fun(int argc, char *argv[]) {
@@ -67,33 +67,33 @@ static int master_main(int argc, char *argv[])
 
   int i = 0;
   for (i = 0; i < npm; i++) {
-         pm[i] = xbt_dynar_get_as(hosts_dynar, i, msg_host_t);
+    pm[i] = xbt_dynar_get_as(hosts_dynar, i, msg_host_t);
   }
 
   for (i = 0; i < nvm; i++) {
-         int pm_index = i % npm;
-         char *vm_name = bprintf("vm%d", i);
-         vm[i] = MSG_vm_create_core(pm[pm_index], vm_name);
-         MSG_vm_start(vm[i]);
+    int pm_index = i % npm;
+    char *vm_name = bprintf("vm%d", i);
+    vm[i] = MSG_vm_create_core(pm[pm_index], vm_name);
+    MSG_vm_start(vm[i]);
 
     launch_computation_worker(vm[i]);
 
-         xbt_free(vm_name);
+    xbt_free(vm_name);
   }
 
 
   XBT_INFO("## Test (start)");
 
   for (i = 0; i < 10; i++) {
-         double clock_sta = time_precise();
-         MSG_process_sleep(1);
-         double clock_end = time_precise();
-         XBT_INFO("duration %f", clock_end - clock_sta);
+    double clock_sta = time_precise();
+    MSG_process_sleep(1);
+    double clock_end = time_precise();
+    XBT_INFO("duration %f", clock_end - clock_sta);
   }
 
 
   for (i = 0; i < nvm; i++) {
-         MSG_vm_destroy(vm[i]);
+    MSG_vm_destroy(vm[i]);
   }
 
   XBT_INFO("## Test (ended)");
index 6a0dd2c..d2e8263 100644 (file)
@@ -70,9 +70,9 @@ static int master_main(int argc, char *argv[])
   launch_computation_worker(vm0);
 
   while(MSG_get_clock()<100) {
-       if (atask != NULL)
-         XBT_INFO("aTask remaining duration: %g", MSG_task_get_flops_amount(atask));
-       MSG_process_sleep(1);
+  if (atask != NULL)
+    XBT_INFO("aTask remaining duration: %g", MSG_task_get_flops_amount(atask));
+  MSG_process_sleep(1);
   }
 
   MSG_process_sleep(10000);
index a713137..687973b 100644 (file)
@@ -8,22 +8,12 @@ target_link_libraries(energy_consumption simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy_consumption.tesh
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_consumption.xml
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy_consumption.c
-  PARENT_SCOPE
-  )
-
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b9c8941..52ebe54 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="MyHost1" function="dvfs_test" />
-
 </platform>
index f919a12..092515d 100644 (file)
@@ -28,16 +28,16 @@ int dvfs(int argc, char *argv[])
 
 
   XBT_INFO("Energetic profile: %s",
-                 MSG_host_get_property_value(host,"watt_per_state"));
+      MSG_host_get_property_value(host,"watt_per_state"));
   XBT_INFO("Initial peak speed=%.0E flop/s; Energy dissipated =%.0E J",
-                 MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
+      MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
 
   double start = MSG_get_clock();
   XBT_INFO("Sleep for 10 seconds");
   MSG_process_sleep(10);
   XBT_INFO("Done sleeping (duration: %.2f s). Current peak speed=%.0E; Energy dissipated=%.2f J",
-                 MSG_get_clock()-start,
-                 MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
+      MSG_get_clock()-start,
+      MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
 
   // Run a task
   start = MSG_get_clock();
@@ -46,18 +46,18 @@ int dvfs(int argc, char *argv[])
   MSG_task_execute (task1);
   MSG_task_destroy(task1);
   XBT_INFO("Task done (duration: %.2f s). Current peak speed=%.0E flop/s; Current consumption: from %.0fW to %.0fW depending on load; Energy dissipated=%.0f J",
-                 MSG_get_clock()-start,
-                 MSG_host_get_current_power_peak(host), sg_host_get_wattmin_at(host,MSG_host_get_pstate(host)),
-                 sg_host_get_wattmax_at(host,MSG_host_get_pstate(host)),
-                 sg_host_get_consumed_energy(host));
+      MSG_get_clock()-start,
+      MSG_host_get_current_power_peak(host), sg_host_get_wattmin_at(host,MSG_host_get_pstate(host)),
+      sg_host_get_wattmax_at(host,MSG_host_get_pstate(host)),
+      sg_host_get_consumed_energy(host));
 
   // ========= Change power peak =========
   int pstate=2;
   MSG_host_set_pstate(host, pstate);
   XBT_INFO("========= Requesting pstate %d (speed should be of %.0E flop/s and is of %.0E flop/s)",
-                 pstate,
-                 MSG_host_get_power_peak_at(host, pstate),
-                 MSG_host_get_current_power_peak(host));
+      pstate,
+      MSG_host_get_power_peak_at(host, pstate),
+      MSG_host_get_current_power_peak(host));
 
   // Run a second task
   start = MSG_get_clock();
@@ -66,25 +66,25 @@ int dvfs(int argc, char *argv[])
   MSG_task_execute (task1);
   MSG_task_destroy(task1);
   XBT_INFO("Task done (duration: %.2f s). Current peak speed=%.0E flop/s; Energy dissipated=%.0f J",
-                 MSG_get_clock()-start,
-                 MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
+      MSG_get_clock()-start,
+      MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
 
   start = MSG_get_clock();
   XBT_INFO("Sleep for 4 seconds");
   MSG_process_sleep(4);
   XBT_INFO("Done sleeping (duration: %.2f s). Current peak speed=%.0E flop/s; Energy dissipated=%.0f J",
-                 MSG_get_clock()-start,
-                 MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
+      MSG_get_clock()-start,
+      MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
 
   // =========== Turn the other host off ==========
   XBT_INFO("Turning MyHost2 off, and sleeping another 10 seconds. MyHost2 dissipated %.0f J so far.",
-                 sg_host_get_consumed_energy(MSG_host_by_name("MyHost2")) );
+      sg_host_get_consumed_energy(MSG_host_by_name("MyHost2")) );
   MSG_host_off(MSG_host_by_name("MyHost2"));
   start = MSG_get_clock();
   MSG_process_sleep(10);
   XBT_INFO("Done sleeping (duration: %.2f s). Current peak speed=%.0E flop/s; Energy dissipated=%.0f J",
-                 MSG_get_clock()-start,
-                 MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
+      MSG_get_clock()-start,
+      MSG_host_get_current_power_peak(host), sg_host_get_consumed_energy(host));
   return 0;
 }
 
@@ -95,8 +95,8 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+            argv[0], argv[0]);
  
   MSG_create_environment(argv[1]);
 
index 7f942d6..73c7813 100644 (file)
@@ -8,23 +8,13 @@ target_link_libraries(onoff simgrid )
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/onoff.tesh
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_onoff.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_onoff.xml
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/onoff.c
-  PARENT_SCOPE
-  )
-
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b3e8d26..9b90483 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="MyHost2" function="onoff_test" />
-
 </platform>
index f06d512..4f0b927 100644 (file)
@@ -15,7 +15,7 @@
 #include "xbt/asserts.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                            "Messages specific for this msg example");
+           "Messages specific for this msg example");
 
 static void simulate_bootup(msg_host_t host) {
 
@@ -68,27 +68,27 @@ static int onoff(int argc, char *argv[]) {
   msg_host_t host1 = MSG_host_by_name("MyHost1");
 
   XBT_INFO("Energetic profile: %s",
-          MSG_host_get_property_value(host1,"watt_per_state"));
+     MSG_host_get_property_value(host1,"watt_per_state"));
   XBT_INFO("Initial peak speed=%.0E flop/s; Energy dissipated =%.0E J",
-          MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
+     MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
 
   XBT_INFO("Sleep for 10 seconds");
   MSG_process_sleep(10);
   XBT_INFO("Done sleeping. Current peak speed=%.0E; Energy dissipated=%.2f J",
-          MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
+     MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
 
   simulate_shutdown(host1);
   XBT_INFO("Host1 is now OFF. Current peak speed=%.0E flop/s; Energy dissipated=%.0f J",
-          MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
+     MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
 
   XBT_INFO("Sleep for 10 seconds");
   MSG_process_sleep(10);
   XBT_INFO("Done sleeping. Current peak speed=%.0E; Energy dissipated=%.2f J",
-          MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
+     MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
 
   simulate_bootup(host1);
   XBT_INFO("Host1 is now ON again. Current peak speed=%.0E flop/s; Energy dissipated=%.0f J",
-          MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
+     MSG_host_get_current_power_peak(host1), sg_host_get_consumed_energy(host1));
 
 
   return 0;
@@ -101,8 +101,8 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-            argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+       argv[0], argv[0]);
 
   MSG_create_environment(argv[1]);
 
index 64a58a5..140398d 100644 (file)
@@ -1,51 +1,42 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Full">
 
   <!-- Use the pstate mechanism to encode the boot/shutdown time and energy -->
-  
-  <!-- That may be seen as a misuse of the pstate mechanism and crude hack, 
-       but this is efficient: we can do what we want without too much burden, 
-       and since the whole intelligence is at user level, we do control the model. 
-       
-       The same could be done to encode the time and energy to switch
-       between pstates. These times seem negligeable in our
-       experiments, but if they are important to you, now you know how
-       to do that. -->
-       
+
+  <!-- That may be seen as a misuse of the pstate mechanism and crude hack, but this is efficient: we can do what 
+       we want without too much burden, and since the whole intelligence is at user level, we do control the model. 
+
+       The same could be done to encode the time and energy to switch between pstates. These times seem negligible 
+       in our experiments, but if they are important to you, now you know how to do that. -->
+
   <!-- pstate values:
-         * 0-2: real pstates
-          0: p1 100 MFlops/s, [idle: 95W -> full burning: 200W]
-          1: p2  50 MFlops/s, [idle: 93W -> full burning: 170W]
-          2: p3  20 MFlops/s, [idel: 90W -> full burning: 150W]
-        * 3: booting up was measured to take 150s and 18000J.
-             So we create a pstate with 1 flop/150 s so that the
-                application burns 1 flop in that virtual pstate to
-                simulate a boot.             
-             Multiply everything by 1000 or whatever if this trick is
-               too painful to you, that's the same by the end.
-              The energy consumption is 18000/150=120W
-        * 4: shuting down was measured to take 7 s and 770 J
-        
-       Please note that we tried to put sensible values in this file
-       but you should still take them with a grain of salt. If you
-       want a realistic simulation, you have to actually benchmark
-       your platform and application, and use the values that are
-       right for you. -->
-    
-    
-  <host id="MyHost1" power="100.0Mf,50.0Mf,20.0Mf,                         0.006666667f,0.1429f" pstate="0" >
+    * 0-2: real pstates
+       0: p1 100 MFlops/s, [idle: 95W -> full burning: 200W]
+       1: p2  50 MFlops/s, [idle: 93W -> full burning: 170W]
+       2: p3  20 MFlops/s, [idel: 90W -> full burning: 150W] 
+    * 3: booting up was measured to take 150s and 18000J.
+         So we create a pstate with 1 flop/150 s so that the application burns 1 flop in that virtual pstate to
+         simulate a boot.
+         Multiply everything by 1000 or whatever if this trick is too painful to you, that's the same by the end.
+         The energy consumption is 18000/150=120W
+    * 4: shuting down was measured to take 7 s and 770 J
+
+    Please note that we tried to put sensible values in this file but you should still take them with a grain of salt.
+    If you want a realistic simulation, you have to actually benchmark your platform and application, and use the 
+    values that are right for you. -->
+
+  <host id="MyHost1" speed="100.0Mf,50.0Mf,20.0Mf,                         0.006666667f,0.1429f" pstate="0" >
         <prop id="watt_per_state"value="95.0:200.0,93.0:170.0,90.0:150.0,       120:120,110:110" />
         <prop id="watt_off" value="10" />
   </host>
-  <host id="MyHost2" power="100.0Mf" >
+  <host id="MyHost2" speed="100.0Mf" >
         <prop id="watt_per_state" value="100.0:200.0" />
         <prop id="watt_off" value="10" />
   </host>
 
   <link id="link1" bandwidth="100kBps" latency="0"/>
   <route src="MyHost1" dst="MyHost2"><link_ctn id="link1"/></route>
-  
 </AS>
 </platform>
index 5446266..80e3ab8 100644 (file)
@@ -8,22 +8,12 @@ target_link_libraries(pstate simgrid )
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pstate.tesh
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_pstate.xml
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/pstate.c
-  PARENT_SCOPE
-  )
-
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8997fbc..a128713 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="MyHost1" function="dvfs_test" />
   <process host="MyHost2" function="dvfs_test" />
-
 </platform>
index 3e07790..cd37f4d 100644 (file)
 /** @addtogroup MSG_examples
  *
  * - <b>energy/e1/e1.c</b> Shows how a set of pstates can be defined
- *             for a host and how the current pstate can be accessed/changed
- *             with @ref MSG_get_host_current_power_peak and @ref
- *             MSG_set_host_pstate.
- *             Make sure to read the platform XML file for details on how
- *             to declare the CPU capacity for each pstate.
+ *     for a host and how the current pstate can be accessed/changed
+ *     with @ref MSG_get_host_current_power_peak and @ref
+ *     MSG_set_host_pstate.
+ *     Make sure to read the platform XML file for details on how
+ *     to declare the CPU capacity for each pstate.
  *
  */
 
@@ -54,10 +54,10 @@ int dvfs(int argc, char *argv[])
 
   // Change power peak
   if ((new_peak_index >= nb) || (new_peak_index < 0))
-         {
-         XBT_INFO("Cannot set pstate %d, host supports only %d pstates", new_peak_index, nb);
-         return 0;
-         }
+    {
+    XBT_INFO("Cannot set pstate %d, host supports only %d pstates", new_peak_index, nb);
+    return 0;
+    }
 
   double peak_at = MSG_host_get_power_peak_at(host, new_peak_index);
   XBT_INFO("Changing power peak value to %f (at index %d)", peak_at, new_peak_index);
@@ -93,8 +93,8 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+            argv[0], argv[0]);
   
   MSG_create_environment(argv[1]);
 
index 14ae4f6..f0451c9 100644 (file)
@@ -8,22 +8,12 @@ target_link_libraries(energy_vm simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy_vm.tesh
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_consumption.xml
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy_vm.c
-  PARENT_SCOPE
-  )
-
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b9c8941..52ebe54 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="MyHost1" function="dvfs_test" />
-
 </platform>
index 943cc6c..14a41d6 100644 (file)
@@ -68,8 +68,8 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   xbt_assert(argc > 1, "Usage: %s platform_file\n"
-            "\tExample: %s msg_platform.xml\n", 
-            argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml\n", 
+       argv[0], argv[0]);
 
   MSG_create_environment(argv[1]);
 
index 1155dd9..ba40be2 100644 (file)
@@ -8,23 +8,12 @@ target_link_libraries(exception simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/exception.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/exception.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_exception.xml
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 26b035d..2b5a705 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="terrorist"/>
 </platform>
index 7d8af4a..18d5c10 100644 (file)
@@ -22,7 +22,7 @@ static int victim(int argc, char *argv[]) {
   msg_error_t res = MSG_OK;
   
   XBT_INFO("Let's work.");
-  TRY {        
+  TRY {  
     res = MSG_task_execute(MSG_task_create("Task", 1e14, 0, NULL));
     if (res != MSG_OK) {
       XBT_INFO("The MSG_task_execute caught the exception for me and returned %d)",res);
@@ -115,8 +115,8 @@ int main(int argc, char *argv[]) {
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
 
   MSG_function_register("terrorist", terrorist);
   MSG_create_environment(argv[1]);
index a2ebe2b..f5e9f77 100644 (file)
@@ -7,22 +7,17 @@ target_link_libraries(test_MSG_gpu_task_create simgrid )
 
 set(tesh_files
   ${tesh_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_MSG_gpu_task_create.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 75c9d19..e1f1c49 100644 (file)
@@ -16,8 +16,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/tracing-gtnets-dogbone-lv08.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/gtnets-dogbone-lv08.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/tracing-gtnets-onelink-gtnets.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/crosstraffic-d.xml
@@ -25,18 +24,9 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/dogbone-p.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/onelink-d.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/onelink-p.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/gtnets.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
+
index 049739e..212bca5 100644 (file)
@@ -1,46 +1,36 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="S1" function="master">
       <argument value="1000000"/>
       <argument value="C1"/>
       <argument value="1"/>
   </process>
-
   <process host="C1" function="slave">
     <argument value="1"/>
   </process>
-
   <process host="S1" function="master">
       <argument value="1000000"/>
       <argument value="C1"/>
       <argument value="2"/>
   </process>
-
   <process host="C1" function="slave">
     <argument value="2"/>
   </process>
   <process host="S1" function="master">
       <argument value="1000000"/>
       <argument value="C1"/>
       <argument value="3"/>
   </process>
-
   <process host="C1" function="slave">
     <argument value="3"/>
   </process>
-
-
   <process host="C1" function="master">
       <argument value="1000000"/>
       <argument value="S1"/>
       <argument value="4"/>
   </process>
-
   <process host="S1" function="slave">
     <argument value="4"/>
   </process>
 </platform>
index 6acb9f4..a0cffd8 100644 (file)
@@ -1,19 +1,16 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="S1" function="master">
       <argument value="10000"/>
       <argument value="C1"/>
       <argument value="0"/>
   </process>
-
   <process host="S2" function="master">
       <argument value="10000"/>
       <argument value="C2"/>
       <argument value="1"/>
   </process>
-
   <process host="C1" function="slave">
       <argument value="0"/>
   </process>
index 35e117b..2e9b2eb 100644 (file)
@@ -1,67 +1,28 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3"> 
- <AS  id="AS0"  routing="Full">
- <!---  dogbone
- -->
-   <host id="S1" power="1Gf"/>
-   <host id="C1" power="1Gf"/>
-   <host id="S2" power="1Gf"/>
-   <host id="C2" power="1Gf"/>
-   <router id="R1"/>
-   <router id="R2"/>
-   <link id="1" bandwidth="100MBps" latency="10ms"/>
-   <link id="2" bandwidth="100MBps" latency="10ms"/>
-   <link id="3" bandwidth="100MBps" latency="10ms"/>
-   <link id="4" bandwidth="100MBps" latency="10ms"/>
-   <link id="5" bandwidth="100MBps" latency="10ms"/>
-   <route src="S1" dst="C1">
-      <link_ctn id="1"/>
-      <link_ctn id="2"/>
-      <link_ctn id="3"/>
-   </route>
-   <route src="S2" dst="C2">
-      <link_ctn id="4"/>
-      <link_ctn id="2"/>
-      <link_ctn id="5"/>
-   </route>
-   <route src="S1" dst="C2">
-      <link_ctn id="1"/>
-      <link_ctn id="2"/>
-      <link_ctn id="5"/>
-   </route>
-   <route src="S2" dst="C1">
-      <link_ctn id="4"/>
-      <link_ctn id="2"/>
-      <link_ctn id="3"/>
-   </route>
-   <route src="S1" dst="R1">
-      <link_ctn id="1"/>
-   </route>
-   <route src="R1" dst="R2">
-      <link_ctn id="2"/>
-   </route>
-   <route src="R2" dst="C1">
-      <link_ctn id="3"/>
-   </route>
-   <route src="S2" dst="R1">
-      <link_ctn id="4"/>
-   </route>
-   <route src="R2" dst="C2">
-      <link_ctn id="5"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="S1" speed="1Gf"/>
+  <host id="C1" speed="1Gf"/>
+  <host id="S2" speed="1Gf"/>
+  <host id="C2" speed="1Gf"/>
+  <router id="R1"/>
+  <router id="R2"/>
+
+  <link id="1" bandwidth="100MBps" latency="10ms"/>
+  <link id="2" bandwidth="100MBps" latency="10ms"/>
+  <link id="3" bandwidth="100MBps" latency="10ms"/>
+  <link id="4" bandwidth="100MBps" latency="10ms"/>
+  <link id="5" bandwidth="100MBps" latency="10ms"/>
+
+  <route src="S1" dst="C1"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="3"/></route>
+  <route src="S2" dst="C2"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="5"/></route>
+  <route src="S1" dst="C2"><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="5"/></route>
+  <route src="S2" dst="C1"><link_ctn id="4"/><link_ctn id="2"/><link_ctn id="3"/></route>
+  <route src="S1" dst="R1"><link_ctn id="1"/></route>
+  <route src="R1" dst="R2"><link_ctn id="2"/></route>
+  <route src="R2" dst="C1"><link_ctn id="3"/></route>
+  <route src="S2" dst="R1"><link_ctn id="4"/></route>
+  <route src="R2" dst="C2"><link_ctn id="5"/></route>
+</AS>
+</platform>
index 839d4a7..a2bed8d 100644 (file)
@@ -194,8 +194,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s platform.xml deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s platform.xml deployment.xml\n", 
+            argv[0], argv[0]);
    
   res = test_all(argv[1], argv[2]);
 
index a0963c0..a3450be 100644 (file)
@@ -1,15 +1,12 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="S1" function="master">
       <argument value="1000000"/>
       <argument value="C1"/>
       <argument value="1"/>
   </process>
-
   <process host="C1" function="slave">
     <argument value="1"/>
   </process>
-  
 </platform>
index 16ae963..36aa542 100644 (file)
@@ -1,20 +1,13 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
- <!---   S1  ________ C1
-              link 1
-             100MB, 5ms
- -->
-   <host id="S1" power="1Gf"/>
-   <host id="C1" power="1Gf"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <!---   S1 -- link 1 -- C1
+              (10kB, 10ms)      -->
+
+   <host id="S1" speed="1Gf"/>
+   <host id="C1" speed="1Gf"/>
    <link id="1" bandwidth="10kBps" latency="10ms"/>
-   <route src="S1" dst="C1">
-      <link_ctn id="1"/>
-   </route>
- </AS>
- </platform>
+   <route src="S1" dst="C1"><link_ctn id="1"/></route>
+</AS>
+</platform>
index c1b2728..af87b61 100644 (file)
@@ -12,8 +12,7 @@ target_link_libraries(peer3 simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/peer.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_peer.xml
@@ -22,20 +21,10 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_peer03.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_peer04.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_peer05.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/peer.c
   ${CMAKE_CURRENT_SOURCE_DIR}/peer2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/peer3.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index edf8b95..c6b86e0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="3"/>       <!-- Number of tasks -->
index 67dadac..bb55c55 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="3"/>       <!-- Number of tasks -->
index 4042692..fe79729 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="3"/>       <!-- Number of tasks -->
index 49f8033..651a8f4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="3"/>       <!-- Number of tasks -->
index e174710..22650e2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="3"/>       <!-- Number of tasks -->
index 7ff3b63..954f34e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="sender">
      <argument value="6"/>       <!-- Number of tasks -->
index d36b412..1e322b4 100644 (file)
@@ -34,12 +34,12 @@ msg_error_t test_all(const char *platform_file,
 /** Sender function  */
 int sender(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long receivers_count = atol(argv[4]);
-  double sleep_start_time = atof(argv[5]);
-  double sleep_test_time = atof(argv[6]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid compute size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long receivers_count = xbt_str_parse_int(argv[4], "Invalid amount of receivers: %s");
+  double sleep_start_time = xbt_str_parse_double(argv[5], "Invalid sleep start time: %s");
+  double sleep_test_time = xbt_str_parse_double(argv[6], "Invalid test time: %s");
 
   XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time,
         sleep_test_time);
@@ -101,8 +101,8 @@ int receiver(int argc, char *argv[])
   int id = -1;
   char mailbox[80];
   msg_comm_t res_irecv;
-  double sleep_start_time = atof(argv[2]);
-  double sleep_test_time = atof(argv[3]);
+  double sleep_start_time = xbt_str_parse_double(argv[2], "Invalid sleep start parameter: %s");
+  double sleep_test_time = xbt_str_parse_double(argv[3], "Invalid sleep test parameter: %s");
   XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time,
         sleep_test_time);
 
@@ -172,8 +172,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
 
   res = test_all(argv[1], argv[2]);
 
index ddd51ca..a2cf462 100644 (file)
@@ -28,10 +28,10 @@ msg_error_t test_all(const char *platform_file,
 /** Sender function  */
 int sender(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long receivers_count = atol(argv[4]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long receivers_count = xbt_str_parse_int(argv[4], "Invalid amount of receivers: %s");
 
   msg_comm_t *comm = xbt_new(msg_comm_t, number_of_tasks + receivers_count);
   int i;
@@ -128,8 +128,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
 
   res = test_all(argv[1], argv[2]);
 
index 155b702..a0fe6c6 100644 (file)
@@ -28,11 +28,11 @@ msg_error_t test_all(const char *platform_file,
 /** Sender function  */
 int sender(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long receivers_count = atol(argv[4]);
-  int diff_com = atol(argv[5]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long receivers_count = xbt_str_parse_int(argv[4], "Invalid amount of receivers: %s");
+  int diff_com = xbt_str_parse_int(argv[5], "Invalid value for diff_comm: %s");
   double coef = 0;
   xbt_dynar_t d = xbt_dynar_new(sizeof(msg_comm_t), NULL);
   int i;
@@ -90,7 +90,7 @@ int receiver(int argc, char *argv[])
   int i;
   char mailbox[80];
   xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL);
-  int tasks = atof(argv[2]);
+  int tasks = xbt_str_parse_int(argv[2], "Invalid amount of tasks: %s");
   msg_task_t *task = xbt_new(msg_task_t, tasks);
 
   XBT_ATTRIB_UNUSED int read;
index ec3dd37..558580c 100644 (file)
@@ -23,25 +23,15 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/io.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/storage.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/remote.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  PARENT_SCOPE
-  )
+  examples/msg/io/remote_io.deployment.xml
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/file.c
   ${CMAKE_CURRENT_SOURCE_DIR}/file_unlink.c
   ${CMAKE_CURRENT_SOURCE_DIR}/storage.c
   ${CMAKE_CURRENT_SOURCE_DIR}/remote.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5661b61..cc84983 100644 (file)
@@ -54,7 +54,7 @@ int host(int argc, char *argv[]){
     msg_host_t src, dest;
     src= MSG_host_self();
     dest = MSG_host_by_name(argv[3]);
-    if (atoi(argv[5])){
+    if (xbt_str_parse_int(argv[5], "Argument 5 (move or copy) must be an int, not '%s'")) {
       XBT_INFO("Move '%s' (of size %llu) from '%s' to '%s'", filename,
            MSG_file_get_size(file), MSG_host_get_name(src),
            argv[3]);
index f07cafd..a6b057e 100644 (file)
@@ -1,6 +1,6 @@
 #! ./tesh
 
-$ ${bindir:=.}/io/remote$EXEEXT ${srcdir:=.}/examples/platforms/storage/remote_io.xml ${srcdir:=.}/examples/platforms/storage/remote_io.deployment.xml "--log=root.fmt:[%10.6r]%e(%i@%5h)%e%m%n"
+$ ${bindir:=.}/io/remote$EXEEXT ${srcdir:=.}/examples/platforms/storage/remote_io.xml ${srcdir:=.}/examples/msg/io/remote_io.deployment.xml "--log=root.fmt:[%10.6r]%e(%i@%5h)%e%m%n"
 > [  0.000000] (0@     ) Init: 12 MiB used on 'Disk1'
 > [  0.000000] (0@     ) Init: 2280 MiB used on 'Disk2'
 > [  0.000000] (1@alice) Opened file 'c:\Windows\setupact.log'
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="alice" function="host">
     <argument value = "c:\Windows\setupact.log"/>
   </process>
index 19b6f1a..fd295b5 100644 (file)
@@ -1,20 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
-add_executable(kademlia "kademlia.c" "node.c" "routing_table.c"
-"task.c" "answer.c")
+add_executable(kademlia "kademlia.c" "node.c" "routing_table.c" "task.c" "answer.c")
 ### Add definitions for compile
 target_link_libraries(kademlia simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/kademlia.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/answer.c
@@ -28,14 +25,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/routing_table.h
   ${CMAKE_CURRENT_SOURCE_DIR}/task.c
   ${CMAKE_CURRENT_SOURCE_DIR}/task.h
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index ee1082b..5aa893f 100644 (file)
@@ -8,9 +8,7 @@
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(msg_kademlia_node);
 
-/**
-  * Initialize a node answer object.
-  */
+/** Initialize a node answer object. */
 answer_t answer_init(unsigned int destination_id)
 {
   answer_t answer = xbt_new(s_answer_t, 1);
@@ -21,9 +19,7 @@ answer_t answer_init(unsigned int destination_id)
   return answer;
 }
 
-/**
-  * Destroys a node answer object.
-  */
+/** Destroys a node answer object. */
 void answer_free(answer_t answer)
 {
   unsigned int i;
@@ -34,22 +30,18 @@ void answer_free(answer_t answer)
   xbt_free(answer);
 }
 
-/**
-  * @brief Prints a answer_t, for debugging purposes
-  */
+/** @brief Prints a answer_t, for debugging purposes */
 void answer_print(answer_t answer)
 {
   unsigned int cpt;
   node_contact_t contact;
   XBT_INFO("Searching %08x, size %d", answer->destination_id, answer->size);
   xbt_dynar_foreach(answer->nodes, cpt, contact) {
-    XBT_INFO("Node %08x: %08x is at distance %d", cpt, contact->id,
-             contact->distance);
+    XBT_INFO("Node %08x: %08x is at distance %d", cpt, contact->id, contact->distance);
   }
 }
 
-/**
-  * @brief Merge two answer_t together, only keeping the best nodes
+/** @brief Merge two answer_t together, only keeping the best nodes
   * @param destination the destination in which the nodes will be put
   * @param source the source of the nodes to add
   */
@@ -72,9 +64,7 @@ unsigned int answer_merge(answer_t destination, answer_t source)
   return nb_added;
 }
 
-/**
-  * Helper to sort answer_t objects
-  */
+/** Helper to sort answer_t objects */
 static int _answer_sort_function(const void *e1, const void *e2)
 {
   node_contact_t c1 = *(void **) e1;
@@ -88,8 +78,7 @@ static int _answer_sort_function(const void *e1, const void *e2)
       return 1;
 }
 
-/**
-  * Sorts a answer_t, by node distance.
+/** @brief Sorts a answer_t, by node distance.
   * @param answer the answer to sort
   * @param destination_id the id of the guy we are trying to find
   */
@@ -98,9 +87,7 @@ void answer_sort(answer_t answer)
   xbt_dynar_sort(answer->nodes, &_answer_sort_function);
 }
 
-/**
-  * Trims a answer_t, in order for it to have a size of less or equal
-  * to "bucket_size"
+/** @brief Trims a answer_t, in order for it to have a size of less or equal to "bucket_size"
   * @param answer the answer_t to trim
   */
 void answer_trim(answer_t answer)
@@ -111,12 +98,10 @@ void answer_trim(answer_t answer)
     answer->size--;
     node_contact_free(value);
   }
-  xbt_assert(xbt_dynar_length(answer->nodes) == answer->size,
-             "Wrong size for the answer");
+  xbt_assert(xbt_dynar_length(answer->nodes) == answer->size, "Wrong size for the answer");
 }
 
-/**
-  * Adds the content of a bucket unsigned into a answer object.
+/** @brief Adds the content of a bucket unsigned into a answer object.
   * @param bucket the bucket we have to had unsigned into
   * @param answer the answer object we're going  to put the data in
   * @param destination_id the id of the guy we are trying to find.
@@ -136,16 +121,14 @@ void answer_add_bucket(bucket_t bucket, answer_t answer)
   }
 }
 
-/**
-  * Returns if the id supplied is in the answer.
+/** @brief Returns if the id supplied is in the answer.
   * @param id : id we're looking for
   */
 unsigned int answer_contains(answer_t answer, unsigned int id)
 {
-  unsigned int i = 0, size = xbt_dynar_length(answer->nodes);
+  unsigned int i = 0;
   node_contact_t contact;
-  for (i = 0; i < size; i++) {
-    contact = xbt_dynar_get_as(answer->nodes, i, node_contact_t);
+  xbt_dynar_foreach(answer->nodes, i, contact){
     if (id == contact->id) {
       return 1;
     }
@@ -153,8 +136,7 @@ unsigned int answer_contains(answer_t answer, unsigned int id)
   return 0;
 }
 
-/**
-  * Returns if the destination we are trying to find is found
+/** @brief Returns if the destination we are trying to find is found
   * @param answer the answer
   * @return if the destination is found.
   */
@@ -163,7 +145,6 @@ unsigned int answer_destination_found(answer_t answer)
   if (xbt_dynar_length(answer->nodes) < 1) {
     return 0;
   }
-  node_contact_t contact_tail =
-      xbt_dynar_get_as(answer->nodes, 0, node_contact_t);
+  node_contact_t contact_tail = xbt_dynar_get_as(answer->nodes, 0, node_contact_t);
   return contact_tail->distance == 0;
 }
index 24902dd..03fe765 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014. The SimGrid Team.
+/* Copyright (c) 2012, 2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -8,10 +8,8 @@
 #define _KADEMLIA_EXAMPLES_ANSWER_H_
 #include <xbt/dynar.h>
 #include "routing_table.h"
-/*
- * Node query anwser. contains the elements closest
- * to the id given.
- */
+
+/* Node query anwser. contains the elements closest to the id given. */
 typedef struct s_node_answer {
   unsigned int destination_id;
   xbt_dynar_t nodes;            //Dynar of node_contact_t
index 1b9526c..d75dbba 100755 (executable)
@@ -6,11 +6,13 @@
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the license (GNU LGPL) which comes with this package.
 
-import sys, random
+import sys
+import random
 
 if len(sys.argv) != 4:
-       print("Usage: python generate.py nb_nodes nb_bits end_date > deployment_file.xml")
-       sys.exit(1)
+    print(
+        "Usage: python generate.py nb_nodes nb_bits end_date > deployment_file.xml")
+    sys.exit(1)
 
 nb_nodes = int(sys.argv[1])
 nb_bits = int(sys.argv[2])
@@ -20,20 +22,21 @@ max_id = 2 ** nb_bits - 1
 all_ids = [0]
 
 sys.stdout.write("<?xml version='1.0'?>\n"
-"<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n"
-"<platform version=\"3\">\n"
-"  <process host=\"c-0.me\" function=\"node\"><argument value=\"0000000000000000000000000000000000000000\"/><argument value=\"%d\"/></process>\n" % end_date)
+                 "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\">\n"
+                 "<platform version=\"4\">\n  <process host=\"node-0.acme.org\" function=\"node\">\n"
+                 "     <argument value=\"0\"/>\n     <argument value=\"%d\"/>\n  </process>\n" % end_date)
 
 for i in range(1, nb_nodes):
-       ok = False
-       while not ok:
-               my_id = random.randint(0, max_id)
-               ok = not my_id in all_ids
-       known_id = all_ids[random.randint(0, len(all_ids) - 1)]
-       start_date = i * 10
-       line = "  <process host=\"c-%d.me\" function=\"node\"><argument value=\"%s\" /><argument value=\"%s\" /><argument value=\"%d\" /></process>\n" % (i, my_id, known_id,end_date)
-       sys.stdout.write(line)
-       all_ids.append(my_id)
+    ok = False
+    while not ok:
+        my_id = random.randint(0, max_id)
+        ok = not my_id in all_ids
+    known_id = all_ids[random.randint(0, len(all_ids) - 1)]
+    start_date = i * 10
+    line = "  <process host=\"node-%d.acme.org\" function=\"node\">\n    <argument value=\"%s\"/>"\
+           "\n    <argument value=\"%s\"/>\n    <argument value=\"%d\"/>\n  </process>\n" % (
+               i, my_id, known_id, end_date)
+    sys.stdout.write(line)
+    all_ids.append(my_id)
 
 sys.stdout.write("</platform>")
-
index 9952786..f7e2195 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2012, 2014-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
   * <b>kademlia/kademlia.c: Kademlia protocol</b>
   * Implements the Kademlia protocol, using 32 bits identifiers.
   */
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia,
-                             "Messages specific for this msg example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia, "Messages specific for this msg example");
 
 extern long unsigned int smx_total_comms;
 
-/**
-  * Main loop for the process
-  */
+/* Main loop for the process */
 static void main_loop(node_t node, double deadline)
 {
   double next_lookup_time = MSG_get_clock() + random_lookup_interval;
@@ -50,12 +47,10 @@ static void main_loop(node_t node, double deadline)
         node->receive_comm = NULL;
 
         if (status == MSG_OK) {
-          xbt_assert((node->task_received != NULL),
-                     "We received an incorrect task");
+          xbt_assert((node->task_received != NULL), "We received an incorrect task");
           handle_task(node, node->task_received);
         } else {
-          xbt_assert((MSG_comm_get_task(node->receive_comm) == NULL),
-                     "Comm failed but received a task.");
+          xbt_assert((MSG_comm_get_task(node->receive_comm) == NULL), "Comm failed but received a task.");
           XBT_DEBUG("Nevermind, the communication has failed.");
         }
       }
@@ -66,20 +61,17 @@ static void main_loop(node_t node, double deadline)
   }
   //Cleanup the receiving communication.
   if (node->receive_comm != NULL) {
-    if (MSG_comm_test(node->receive_comm)
-        && MSG_comm_get_status(node->receive_comm) == MSG_OK) {
+    if (MSG_comm_test(node->receive_comm) && MSG_comm_get_status(node->receive_comm) == MSG_OK) {
       task_free(MSG_comm_get_task(node->receive_comm));
     }
     MSG_comm_destroy(node->receive_comm);
   }
 }
 
-/**
-  * \brief Node function
-  * Arguments :
-  * - my node ID
-  * - the ID of the person I know in the system (or not)
-  * - Time before I leave the system because I'm bored
+/** @brief Node function
+  * @param my node ID
+  * @param the ID of the person I know in the system (or not)
+  * @param Time before I leave the system because I'm bored
   */
 static int node(int argc, char *argv[])
 {
@@ -108,15 +100,14 @@ static int node(int argc, char *argv[])
     XBT_INFO("I couldn't join the network :(");
   }
   XBT_DEBUG("I'm leaving the network");
-  XBT_INFO("%d/%d FIND_NODE have succeeded", node->find_node_success,
-           node->find_node_success + node->find_node_failed);
+  XBT_INFO("%d/%d FIND_NODE have succeeded", node->find_node_success, node->find_node_success + node->find_node_failed);
   node_free(node);
 
   return 0;
 }
 
 /**
-  * Tries to join the network
+  * @brief Tries to join the network
   * @param node node data
   * @param id_known id of the node I know in the network.
   */
@@ -154,7 +145,6 @@ unsigned int join(node_t node, unsigned int id_known)
             node_list = data->answer;
             xbt_dynar_foreach(node_list->nodes, i, contact) {
               node_routing_table_update(node, contact->id);
-              //ping(node,contact->id);
             }
             task_free(node->task_received);
           } else {
@@ -172,9 +162,7 @@ unsigned int join(node_t node, unsigned int id_known)
   } while (answer_got == 0 && trial < max_join_trials);
   /* Second step: Send a FIND_NODE to a a random node in buckets */
   unsigned int bucket_id = routing_table_find_bucket(node->table, id_known)->id;
-  for (i = 0;
-       ((bucket_id - i) > 0 || (bucket_id + i) <= identifier_size)
-       && i < JOIN_BUCKETS_QUERIES; i++) {
+  for (i = 0; ((bucket_id - i) > 0 || (bucket_id + i) <= identifier_size) && i < JOIN_BUCKETS_QUERIES; i++) {
     if (bucket_id - i > 0) {
       unsigned int id_in_bucket = get_id_in_prefix(node->id, bucket_id - i);
       find_node(node, id_in_bucket, 0);
@@ -187,15 +175,12 @@ unsigned int join(node_t node, unsigned int id_known)
   return answer_got;
 }
 
-/**
-  * Send a request to find a node in the node routing table.
-  * @brief node our node data
-  * @brief id_to_find the id of the node we are trying to find
+/** @brief Send a request to find a node in the node routing table.
+  * @param node our node data
+  * @param id_to_find the id of the node we are trying to find
   */
-unsigned int find_node(node_t node, unsigned int id_to_find,
-                       unsigned int count_in_stats)
+unsigned int find_node(node_t node, unsigned int id_to_find, unsigned int count_in_stats)
 {
-
   unsigned int i = 0;
   unsigned int queries, answers;
   unsigned int destination_found = 0;
@@ -214,9 +199,7 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
 
   msg_error_t status;
 
-  /* Ask the nodes on our list if they   have information about
-   * the node we are trying to find */
-
+  /* Ask the nodes on our list if they   have information about the node we are trying to find */
   do {
     answers = 0;
     queries = send_find_node_to_best(node, node_list);
@@ -227,8 +210,7 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
     do {
       if (node->receive_comm == NULL) {
         node->task_received = NULL;
-        node->receive_comm =
-            MSG_task_irecv(&node->task_received, node->mailbox);
+        node->receive_comm = MSG_task_irecv(&node->task_received, node->mailbox);
       }
       if (node->receive_comm) {
         if (MSG_comm_test(node->receive_comm)) {
@@ -242,8 +224,7 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
             xbt_assert((data != NULL), "No data in the task");
 
             //Check if what we have received is what we are looking for.
-            if (data->type == TASK_FIND_NODE_ANSWER
-                && data->answer->destination_id == id_to_find) {
+            if (data->type == TASK_FIND_NODE_ANSWER && data->answer->destination_id == id_to_find) {
               //Handle the answer
               node_routing_table_update(node, data->sender_id);
               node_contact_t contact;
@@ -254,8 +235,7 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
 
               nodes_added = answer_merge(node_list, data->answer);
               XBT_DEBUG("Received an answer from %s (%s) with %ld nodes on it",
-                        data->answer_to, data->issuer_host_name,
-                        xbt_dynar_length(data->answer->nodes));
+                        data->answer_to, data->issuer_host_name, xbt_dynar_length(data->answer->nodes));
 
               task_free(node->task_received);
             } else {
@@ -273,8 +253,8 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
       }
     } while (MSG_get_clock() < timeout && answers < queries);
     destination_found = answer_destination_found(node_list);
-  } while (!destination_found && (nodes_added > 0 || answers == 0)
-           && MSG_get_clock() < global_timeout && steps < MAX_STEPS);
+  } while (!destination_found && (nodes_added > 0 || answers == 0) && MSG_get_clock() < global_timeout
+            && steps < MAX_STEPS);
   if (destination_found) {
     if (count_in_stats)
       node->find_node_success++;
@@ -291,8 +271,7 @@ unsigned int find_node(node_t node, unsigned int id_to_find,
   return destination_found;
 }
 
-/**
-  * Pings a node in the system to see if it is online.
+/** @brief Pings a node in the system to see if it is online.
   * @param node Our node data
   * @param id_to_ping the id of a node we want to see if it is online.
   * @return if the ping succeded or not.
@@ -305,9 +284,7 @@ unsigned int ping(node_t node, unsigned int id_to_ping)
   unsigned int destination_found = 0;
   double timeout = MSG_get_clock() + ping_timeout;
 
-  msg_task_t ping_task =
-      task_new_ping(node->id, node->mailbox,
-                    MSG_host_get_name(MSG_host_self()));
+  msg_task_t ping_task = task_new_ping(node->id, node->mailbox, MSG_host_get_name(MSG_host_self()));
   msg_task_t task_received = NULL;
 
   XBT_VERB("PING %08x", id_to_ping);
@@ -322,8 +299,7 @@ unsigned int ping(node_t node, unsigned int id_to_ping)
   do {
     task_received = NULL;
     msg_error_t status =
-        MSG_task_receive_with_timeout(&task_received, node->mailbox,
-                                      ping_timeout);
+        MSG_task_receive_with_timeout(&task_received, node->mailbox, ping_timeout);
     if (status == MSG_OK) {
       xbt_assert((task_received != NULL), "Invalid task received");
       //Checking if it's what we are waiting for or not.
@@ -352,8 +328,7 @@ unsigned int ping(node_t node, unsigned int id_to_ping)
   return 1;
 }
 
-/**
-  * Does a pseudo-random lookup for someone in the system
+/** @brief Does a pseudo-random lookup for someone in the system
   * @param node caller node data
   */
 void random_lookup(node_t node)
@@ -364,8 +339,7 @@ void random_lookup(node_t node)
   find_node(node, id_to_look, 1);
 }
 
-/**
-  * @brief Send a "FIND_NODE" to a node
+/** @brief Send a "FIND_NODE" to a node
   * @param node sender node data
   * @param id node we are querying
   * @param destination node we are trying to find.
@@ -376,9 +350,7 @@ void send_find_node(node_t node, unsigned int id, unsigned int destination)
   /* Gets the mailbox to send to */
   get_node_mailbox(id, mailbox);
   /* Build the task */
-  msg_task_t task =
-      task_new_find_node(node->id, destination, node->mailbox,
-                         MSG_host_get_name(MSG_host_self()));
+  msg_task_t task = task_new_find_node(node->id, destination, node->mailbox, MSG_host_get_name(MSG_host_self()));
   /* Send the task */
   xbt_assert((task != NULL), "Trying to send a NULL task.");
   MSG_task_dsend(task, mailbox, task_free_v);
@@ -393,7 +365,8 @@ unsigned int send_find_node_to_best(node_t node, answer_t node_list)
   unsigned int i = 0, j = 0;
   unsigned int destination = node_list->destination_id;
   node_contact_t node_to_query;
-  while (j < kademlia_alpha && i < node_list->size) {   /* We need to have at most "kademlia_alpha" requets each time, according to the protocol */
+  while (j < kademlia_alpha && i < node_list->size) {
+    /* We need to have at most "kademlia_alpha" requests each time, according to the protocol */
     /* Gets the node we want to send the query to */
     node_to_query = xbt_dynar_get_as(node_list->nodes, i, node_contact_t);
     if (node_to_query->id != node->id) {        /* No need to query ourselves */
@@ -405,9 +378,7 @@ unsigned int send_find_node_to_best(node_t node, answer_t node_list)
   return i;
 }
 
-/**
-  * \brief Handles an incomming received task
-  */
+/** @brief Handles an incoming received task */
 void handle_task(node_t node, msg_task_t task)
 {
   task_data_t data = MSG_task_get_data(task);
@@ -425,15 +396,12 @@ void handle_task(node_t node, msg_task_t task)
     handle_ping(node, data);
     break;
   default:
-
     break;
   }
   task_free(task);
 }
 
-/**
-  * \brief Handles the answer to an incomming "find_node" task
-  */
+/** @brief Handles the answer to an incoming "find_node" task */
 void handle_find_node(node_t node, task_data_t data)
 {
   XBT_VERB("Received a FIND_NODE from %s (%s), he's trying to find %08x",
@@ -441,47 +409,35 @@ void handle_find_node(node_t node, task_data_t data)
   //Building the answer to the request
   answer_t answer = node_find_closest(node, data->destination_id);
   //Building the task to send
-  msg_task_t task =
-      task_new_find_node_answer(node->id, data->destination_id, answer,
-                                node->mailbox,
-                                MSG_host_get_name(MSG_host_self()));
+  msg_task_t task = task_new_find_node_answer(node->id, data->destination_id, answer, node->mailbox,
+                                              MSG_host_get_name(MSG_host_self()));
   //Sending the task
   MSG_task_dsend(task, data->answer_to, task_free_v);
 }
 
-/**
-  * \brief handles the answer to a ping
-  */
+/** @brief handles the answer to a ping */
 void handle_ping(node_t node, task_data_t data)
 {
-  XBT_VERB("Received a PING request from %s (%s)", data->answer_to,
-           data->issuer_host_name);
+  XBT_VERB("Received a PING request from %s (%s)", data->answer_to, data->issuer_host_name);
   //Building the answer to the request
-  msg_task_t task =
-      task_new_ping_answer(node->id, data->answer_to,
-                           MSG_host_get_name(MSG_host_self()));
+  msg_task_t task = task_new_ping_answer(node->id, data->answer_to, MSG_host_get_name(MSG_host_self()));
 
   MSG_task_dsend(task, data->answer_to, task_free_v);
 }
 
-/**
-  * \brief Main function
-  */
+/** @brief Main function */
 int main(int argc, char *argv[])
 {
-
   MSG_init(&argc, argv);
 
   /* Check the arguments */
-  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-            argv[0], argv[0]);
+  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n\tExample: %s msg_platform.xml msg_deployment.xml\n",
+             argv[0], argv[0]);
 
   const char *platform_file = argv[1];
   const char *deployment_file = argv[2];
 
   MSG_create_environment(platform_file);
-
   MSG_function_register("node", node);
   MSG_launch_application(deployment_file);
 
index 1fce788..b0990ac 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014. The SimGrid Team.
+/* Copyright (c) 2012, 2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -11,8 +11,7 @@
 
 //core kademlia functions
 unsigned int join(node_t node, unsigned int id_known);
-unsigned int find_node(node_t node, unsigned int id_to_find,
-                       unsigned int count_in_stats);
+unsigned int find_node(node_t node, unsigned int id_to_find, unsigned int count_in_stats);
 unsigned int ping(node_t node, unsigned int id_to_ping);
 void random_lookup(node_t node);
 
@@ -23,5 +22,4 @@ void handle_task(node_t node, msg_task_t task);
 void handle_find_node(node_t node, task_data_t data);
 void handle_ping(node_t node, task_data_t data);
 
-
 #endif                          /* _MSG_EXAMPLES_KADEMLIA_H */
index 2dfb2f0..ef3212a 100644 (file)
@@ -3,32 +3,32 @@
 p Testing the Kademlia implementation with MSG
 
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/kademlia ${srcdir:=.}/../../platforms/platform.xml ${srcdir:=.}/kademlia.xml "--log=root.fmt:[%10.6r]%e(%02i:%P@%h)%e%m%n"
-> [  0.000000] ( 1:node@Jacquelin) Hi, I'm going to create the network with id 00000000
-> [  0.000000] ( 2:node@Boivin) Hi, I'm going to join the network with id 00000001
-> [  0.000000] ( 3:node@Jean_Yves) Hi, I'm going to join the network with id 00000003
-> [  0.000000] ( 4:node@TeX) Hi, I'm going to join the network with id 00000007
-> [  0.000000] ( 5:node@Geoff) Hi, I'm going to join the network with id 0000000f
-> [  0.000000] ( 6:node@Disney) Hi, I'm going to join the network with id 0000001f
-> [  0.000000] ( 7:node@iRMX) Hi, I'm going to join the network with id 0000003f
-> [  0.000000] ( 8:node@McGee) Hi, I'm going to join the network with id 0000007f
-> [  0.000000] ( 9:node@Gatien) Hi, I'm going to join the network with id 000000ff
-> [  0.000000] (10:node@Laroche) Hi, I'm going to join the network with id 000001ff
-> [  0.000000] (11:node@Tanguay) Hi, I'm going to join the network with id 000003ff
-> [  0.000000] (12:node@Morin) Hi, I'm going to join the network with id 000007ff
-> [  0.000000] (13:node@Ethernet) Hi, I'm going to join the network with id 00000fff
-> [900.000000] ( 0:maestro@) Messages created: 1277
-> [900.000000] ( 0:maestro@) Simulated time: 900
-> [900.000000] ( 1:node@Jacquelin) 8/8 FIND_NODE have succeeded
-> [900.000000] ( 2:node@Boivin) 7/7 FIND_NODE have succeeded
-> [900.000000] ( 3:node@Jean_Yves) 6/6 FIND_NODE have succeeded
-> [900.000000] ( 4:node@TeX) 6/6 FIND_NODE have succeeded
-> [900.000000] ( 5:node@Geoff) 6/6 FIND_NODE have succeeded
-> [900.000000] ( 6:node@Disney) 6/6 FIND_NODE have succeeded
-> [900.000000] ( 7:node@iRMX) 6/6 FIND_NODE have succeeded
-> [900.000000] ( 8:node@McGee) 7/7 FIND_NODE have succeeded
-> [900.000000] ( 9:node@Gatien) 6/6 FIND_NODE have succeeded
-> [900.000000] (10:node@Laroche) 6/6 FIND_NODE have succeeded
-> [900.000000] (11:node@Tanguay) 6/6 FIND_NODE have succeeded
-> [900.000000] (12:node@Morin) 7/7 FIND_NODE have succeeded
-> [900.000000] (13:node@Ethernet) 7/7 FIND_NODE have succeeded
+$ $SG_TEST_EXENV ${bindir:=.}/kademlia ${srcdir:=.}/../../platforms/cluster.xml ${srcdir:=.}/kademlia.xml "--log=root.fmt:[%10.6r]%e(%02i:%P@%h)%e%m%n"
+> [  0.000000] ( 1:node@node-0.acme.org) Hi, I'm going to create the network with id 00000000
+> [  0.000000] ( 2:node@node-1.acme.org) Hi, I'm going to join the network with id 00000001
+> [  0.000000] ( 3:node@node-2.acme.org) Hi, I'm going to join the network with id 00000003
+> [  0.000000] ( 4:node@node-3.acme.org) Hi, I'm going to join the network with id 00000007
+> [  0.000000] ( 5:node@node-4.acme.org) Hi, I'm going to join the network with id 0000000f
+> [  0.000000] ( 6:node@node-5.acme.org) Hi, I'm going to join the network with id 0000001f
+> [  0.000000] ( 7:node@node-6.acme.org) Hi, I'm going to join the network with id 0000003f
+> [  0.000000] ( 8:node@node-7.acme.org) Hi, I'm going to join the network with id 0000007f
+> [  0.000000] ( 9:node@node-8.acme.org) Hi, I'm going to join the network with id 000000ff
+> [  0.000000] (10:node@node-9.acme.org) Hi, I'm going to join the network with id 000001ff
+> [  0.000000] (11:node@node-10.acme.org) Hi, I'm going to join the network with id 000003ff
+> [  0.000000] (12:node@node-11.acme.org) Hi, I'm going to join the network with id 000007ff
+> [  0.000000] (13:node@node-12.acme.org) Hi, I'm going to join the network with id 00000fff
+> [780.000000] ( 7:node@node-6.acme.org) 5/5 FIND_NODE have succeeded
+> [780.000000] ( 9:node@node-8.acme.org) 5/5 FIND_NODE have succeeded
+> [780.000000] ( 3:node@node-2.acme.org) 5/5 FIND_NODE have succeeded
+> [780.000000] ( 2:node@node-1.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] (11:node@node-10.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] ( 1:node@node-0.acme.org) 7/7 FIND_NODE have succeeded
+> [780.000000] ( 5:node@node-4.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] (13:node@node-12.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] ( 8:node@node-7.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] ( 6:node@node-5.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] (10:node@node-9.acme.org) 5/5 FIND_NODE have succeeded
+> [780.000000] (12:node@node-11.acme.org) 6/6 FIND_NODE have succeeded
+> [780.000000] ( 4:node@node-3.acme.org) 5/5 FIND_NODE have succeeded
+> [780.000000] ( 0:maestro@) Messages created: 1179
+> [780.000000] ( 0:maestro@) Simulated time: 780
index d90fd4e..0627834 100644 (file)
@@ -1,72 +1,72 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
-  <process host="Jacquelin" function="node">
+  <process host="node-0.acme.org" function="node">
     <argument value="0x0000"/>          <!-- my id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
 
-  <process host="Boivin" function="node">
+  <process host="node-1.acme.org" function="node">
     <argument value="0x0001"/>          <!-- my id -->
     <argument value="0"/>               <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
 
-  <process host="Jean_Yves" function="node">
+  <process host="node-2.acme.org" function="node">
     <argument value="0x0003"/>          <!-- my id -->
     <argument value="0x0001"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
 
-  <process host="TeX" function="node">
+  <process host="node-3.acme.org" function="node">
     <argument value="0x0007"/>          <!-- my id -->
     <argument value="0x0003"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="Geoff" function="node">
+  <process host="node-4.acme.org" function="node">
     <argument value="0x000f"/>          <!-- my id -->
     <argument value="0x0007"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="Disney" function="node">
+  <process host="node-5.acme.org" function="node">
     <argument value="0x001f"/>          <!-- my id -->
     <argument value="0x000f"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="iRMX" function="node">
+  <process host="node-6.acme.org" function="node">
     <argument value="0x003f"/>          <!-- my id -->
     <argument value="0x001f"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="McGee" function="node">
+  <process host="node-7.acme.org" function="node">
     <argument value="0x007f"/>          <!-- my id -->
     <argument value="0x003f"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="Gatien" function="node">
+  <process host="node-8.acme.org" function="node">
     <argument value="0x00ff"/>          <!-- my id -->
     <argument value="0x007f"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="Laroche" function="node">
+  <process host="node-9.acme.org" function="node">
     <argument value="0x01ff"/>          <!-- my id -->
     <argument value="0x00ff"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-  <process host="Tanguay" function="node">
+  <process host="node-10.acme.org" function="node">
     <argument value="0x03ff"/>          <!-- my id -->
     <argument value="0x01ff"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-   <process host="Morin" function="node">
+   <process host="node-11.acme.org" function="node">
     <argument value="0x07ff"/>          <!-- my id -->
     <argument value="0x03ff"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
-   <process host="Ethernet" function="node">
+   <process host="node-12.acme.org" function="node">
     <argument value="0x0fff"/>          <!-- my id -->
     <argument value="0x0000"/>          <!-- known id -->
-    <argument value ="900"/>            <!-- deadline -->
+    <argument value ="780"/>            <!-- deadline -->
   </process>
 </platform>
index a01c9c4..bc0c9e5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010, 2012-2015. The SimGrid Team.
+/* Copyright (c) 2010, 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 #include "simgrid/msg.h"
 #include "xbt/log.h"
 #include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_node,
-                             "Messages specific for this msg example");
-/**
-  * \brief Initialization of a node
-  * \param node_id the id of the node
-  * \return the node created
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_node, "Messages specific for this msg example");
+
+/** @brief Initialization of a node
+  * @param node_id the id of the node
+  * @return the node created
   */
 node_t node_init(unsigned int node_id)
 {
@@ -33,17 +32,14 @@ node_t node_init(unsigned int node_id)
   return node;
 }
 
-/*
- * \brief Node destructor
- */
+/* @brief Node destructor  */
 void node_free(node_t node)
 {
   routing_table_free(node->table);
   xbt_free(node);
 }
 
-/**
-  * @brief Updates/Puts the node id unsigned into our routing table
+/** @brief Updates/Puts the node id unsigned into our routing table
   * @param node Our node data
   * @param id The id of the node we need to add unsigned into our routing table
   */
@@ -57,27 +53,25 @@ void node_routing_table_update(node_t node, unsigned int id)
   unsigned int id_pos = bucket_find_id(bucket, id);
 
   if (id_pos == -1) {
-    /* We check if the bucket is full or not. If it is, we evict
-     * old offline elements */
+    /* We check if the bucket is full or not. If it is, we evict old offline elements */
     if (xbt_dynar_length(bucket->nodes) < bucket_size) {
       //TODO: this is not really very efficient. Maybe we should use something else than dynars ?
       xbt_dynar_unshift(bucket->nodes, &id);
       XBT_VERB("I'm adding to my routing table %08x", id);
     } else {
-      /* TODO: we need to evict the old elements: that's why this function is in "node" instead of "routing table". This is not implemented yet. */
+      /* TODO: we need to evict the old elements: that's why this function is in "node" instead of "routing table".
+       * This is not implemented yet. */
     }
   } else {
     //We push to the front of the dynar the element.
-    unsigned int element =
-        xbt_dynar_get_as(bucket->nodes, id_pos, unsigned int);
+    unsigned int element = xbt_dynar_get_as(bucket->nodes, id_pos, unsigned int);
     xbt_dynar_remove_at(bucket->nodes, id_pos, NULL);
     xbt_dynar_unshift(bucket->nodes, &element);
     XBT_VERB("I'm updating %08x", element);
   }
 }
 
-/**
-  * Finds the closest nodes to the node given.
+/** @brief Finds the closest nodes to the node given.
   * @param node : our node
   * @param destination_id : the id of the guy we are trying to find
   */
@@ -88,19 +82,14 @@ answer_t node_find_closest(node_t node, unsigned int destination_id)
   /* We find the corresponding bucket for the id */
   bucket_t bucket = routing_table_find_bucket(node->table, destination_id);
   int bucket_id = bucket->id;
-  xbt_assert((bucket_id <= identifier_size),
-             "Bucket found has a wrong identifier");
+  xbt_assert((bucket_id <= identifier_size), "Bucket found has a wrong identifier");
   /* So, we copy the contents of the bucket unsigned into our result dynar */
   answer_add_bucket(bucket, answer);
 
-  /* However, if we don't have enough elements in our bucket, we NEED to
-     include at least
-     * "bucket_size" elements (if, of course, we know at least "bucket_size" elements. So we're going to look unsigned into the other buckets.
+  /* However, if we don't have enough elements in our bucket, we NEED to include at least "bucket_size" elements
+   * (if, of course, we know at least "bucket_size" elements. So we're going to look unsigned into the other buckets.
    */
-  for (i = 1;
-       answer->size < bucket_size && ((bucket_id - i > 0)
-                                      || (bucket_id + i < identifier_size));
-       i++) {
+  for (i = 1; answer->size < bucket_size && ((bucket_id - i > 0) || (bucket_id + i < identifier_size)); i++) {
     /* We check the previous buckets */
     if (bucket_id - i >= 0) {
       bucket_t bucket_p = &node->table->buckets[bucket_id - i];
@@ -120,10 +109,9 @@ answer_t node_find_closest(node_t node, unsigned int destination_id)
   return answer;
 }
 
-/**
- * Returns an identifier which is in a specific bucket of a routing table
- * @brief id id of the routing table owner
- * @brief prefix id of the bucket where we want that identifier to be
+/**@brief Returns an identifier which is in a specific bucket of a routing table
+ * @param id id of the routing table owner
+ * @param prefix id of the bucket where we want that identifier to be
  */
 unsigned int get_id_in_prefix(unsigned int id, unsigned int prefix)
 {
@@ -134,8 +122,7 @@ unsigned int get_id_in_prefix(unsigned int id, unsigned int prefix)
   return n ^ id;
 }
 
-/**
-  * \brief Returns the prefix of an identifier.
+/** @brief Returns the prefix of an identifier.
   * The prefix is the id of the bucket in which the remote identifier xor our identifier should be stored.
   * @param id : bigunsigned int id to test
   * @param nb_bits : key size
@@ -151,17 +138,14 @@ unsigned int get_node_prefix(unsigned int id, unsigned int nb_bits)
   return 0;
 }
 
-/**
-  * \brief Gets the mailbox name of a host given its identifier
+/** @brief Gets the mailbox name of a host given its identifier
   */
 void get_node_mailbox(unsigned int id, char *mailbox)
 {
   sprintf(mailbox, "%0*x", MAILBOX_NAME_SIZE, id);
 }
 
-/**
-  * Constructor, build a new contact information.
-  */
+/** Constructor, build a new contact information. */
 node_contact_t node_contact_new(unsigned int id, unsigned int distance)
 {
   node_contact_t contact = xbt_new(s_node_contact_t, 1);
@@ -172,9 +156,7 @@ node_contact_t node_contact_new(unsigned int id, unsigned int distance)
   return contact;
 }
 
-/**
-  * Builds a contact information from a contact information
-  */
+/** Builds a contact information from a contact information */
 node_contact_t node_contact_copy(node_contact_t node_contact)
 {
   node_contact_t contact = xbt_new(s_node_contact_t, 1);
@@ -185,10 +167,7 @@ node_contact_t node_contact_copy(node_contact_t node_contact)
   return contact;
 }
 
-/**
-  * Destructor
-  * @param contact the node_contact to kill.
-  */
+/** Destructor */
 void node_contact_free(node_contact_t contact)
 {
   xbt_free(contact);
index 06b9a47..9a5eab2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2012, 2014-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
 #include "simgrid/msg.h"
 
 #include "common.h"
-
 #include "answer.h"
 #include "routing_table.h"
-/**
-  * Information about a foreign node
-  */
+
+/* Information about a foreign node */
 typedef struct s_node_contact {
   unsigned int id;              //The node identifier
   unsigned int distance;        //The distance from the node
 } s_node_contact_t, *node_contact_t;
 
-/*
- * Node data
- */
+/* Node data */
 typedef struct s_node {
   unsigned int id;              //node id - 160 bits
   routing_table_t table;        //node routing table
@@ -39,11 +35,9 @@ typedef struct s_node {
 // node functions
 node_t node_init(unsigned int id);
 void node_free(node_t node);
-
 void node_routing_table_update(node_t node, unsigned int id);
 answer_t node_find_closest(node_t node, unsigned int destination_id);
 
-
 // identifier functions
 unsigned int get_id_in_prefix(unsigned int id, unsigned int prefix);
 unsigned int get_node_prefix(unsigned int id, unsigned int nb_bits);
index 3501868..dae7c95 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,11 +9,9 @@
 #include "simgrid/msg.h"
 #include "xbt/log.h"
 #include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_routing_table,
-                             "Messages specific for this msg example");
-/**
-  * \brief Initialization of a node routing table.
-  */
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_routing_table, "Messages specific for this msg example");
+
+/** @brief Initialization of a node routing table.  */
 routing_table_t routing_table_init(unsigned int node_id)
 {
   unsigned int i;
@@ -27,9 +25,7 @@ routing_table_t routing_table_init(unsigned int node_id)
   return table;
 }
 
-/**
-  * \brief Frees the routing table
-  */
+/** @brief Frees the routing table */
 void routing_table_free(routing_table_t table)
 {
   unsigned int i;
@@ -41,18 +37,14 @@ void routing_table_free(routing_table_t table)
   xbt_free(table);
 }
 
-/**
-  * Returns if the routing table contains the id.
-  */
+/** Returns if the routing table contains the id. */
 unsigned int routing_table_contains(routing_table_t table, unsigned int node_id)
 {
   bucket_t bucket = routing_table_find_bucket(table, node_id);
   return bucket_contains(bucket, node_id);
 }
 
-/**
-  * @brief prints the routing table, to debug stuff.
-  */
+/**@brief prints the routing table, to debug stuff. */
 void routing_table_print(routing_table_t table)
 {
   unsigned int i, j, value;
@@ -68,39 +60,28 @@ void routing_table_print(routing_table_t table)
   }
 }
 
-/**
-  * Finds an identifier in a bucket and returns its position
-  * or returns -1 if it doesn't exists
+/** @brief Finds an identifier in a bucket and returns its position or returns -1 if it doesn't exists
   * @param bucket the bucket in which we try to find our identifier
   * @param id the id
   */
 unsigned int bucket_find_id(bucket_t bucket, unsigned int id)
 {
-  unsigned int i, length = xbt_dynar_length(bucket->nodes);
-  for (i = 0; i < length; i++) {        //TODO: Use foreach maybe ?
-    if (id == xbt_dynar_get_as(bucket->nodes, i, unsigned int)) {
+  unsigned int i, current_id;
+  xbt_dynar_foreach(bucket->nodes, i, current_id){
+    if (id == current_id){
       return i;
     }
   }
   return -1;
 }
 
-/**
-  * Returns if the bucket contains an identifier.
-  */
+/** Returns if the bucket contains an identifier.  */
 unsigned int bucket_contains(bucket_t bucket, unsigned int id)
 {
-  unsigned int length = xbt_dynar_length(bucket->nodes), i = 0;
-  for (i = 0; i < length; i++) {
-    if (id == xbt_dynar_get_as(bucket->nodes, i, unsigned int)) {
-      return 1;
-    }
-  }
-  return 0;
+  return xbt_dynar_member(bucket->nodes, &id);
 }
 
-/**
-  * Fins the corresponding bucket in a routing table for a given identifier
+/** @brief Finds the corresponding bucket in a routing table for a given identifier
   * @param table the routing table
   * @param id the identifier
   * @return the bucket in which the the identifier would be.
@@ -109,9 +90,7 @@ bucket_t routing_table_find_bucket(routing_table_t table, unsigned int id)
 {
   unsigned int xor_number = table->id ^ id;
   unsigned int prefix = get_node_prefix(xor_number, identifier_size);
-  xbt_assert(prefix >= 0
-             && prefix <= identifier_size,
-             "Tried to return a  bucket that doesn't exist.");
+  xbt_assert(prefix >= 0 && prefix <= identifier_size, "Tried to return a  bucket that doesn't exist.");
   bucket_t bucket = &table->buckets[prefix];
   return bucket;
 }
index 6baa1cf..63ae7b5 100644 (file)
@@ -8,31 +8,28 @@
 #define _MSG_KADEMLIA_EXAMPLES_ROUTING_TABLE
 #include "common.h"
 #include <xbt/dynar.h>
-/*
- * Routing table bucket
- */
+
+/* Routing table bucket */
 typedef struct s_bucket {
   xbt_dynar_t nodes;            //Nodes in the bucket.
   unsigned int id;              //bucket id
 } s_bucket_t, *bucket_t;
 
-/*
- * Node routing table
- */
+/* Node routing table */
 typedef struct s_routing_table {
   unsigned int id;              //node id of the client's routing table
   s_bucket_t *buckets;          //Node bucket list - 160 sized.
 } s_routing_table_t, *routing_table_t;
+
 // bucket functions
 unsigned int bucket_find_id(bucket_t bucket, unsigned int id);
 unsigned int bucket_contains(bucket_t bucket, unsigned int id);
+
 // routing table functions
 routing_table_t routing_table_init(unsigned int node_id);
 void routing_table_free(routing_table_t table);
-unsigned int routing_table_contains(routing_table_t table,
-                                    unsigned int node_id);
+unsigned int routing_table_contains(routing_table_t table, unsigned int node_id);
 void routing_table_print(routing_table_t table);
 bucket_t routing_table_find_bucket(routing_table_t table, unsigned int id);
 
-
 #endif                          /* _MSG_KADEMLIA_EXAMPLES_ROUTING_TABLE */
index 5268482..790a2e6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014. The SimGrid Team.
+/* Copyright (c) 2012, 2014, 2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -6,19 +6,15 @@
 
 #include "task.h"
 #include "answer.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_task,
-                             "Messages specific for this msg example");
-/**
-  * Creates a new "find node" task
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_kademlia_task, "Messages specific for this msg example");
+
+/** @brief Creates a new "find node" task
   * @param sender_id the id of the node who sends the task
   * @param destination_id the id the sender is trying to find
   * @param hostname the hostname of the node, for logging purposes
   */
-msg_task_t task_new_find_node(unsigned int sender_id,
-                              unsigned int destination_id, char *mailbox,
-                              const char *hostname)
+msg_task_t task_new_find_node(unsigned int sender_id, unsigned int destination_id, char *mailbox, const char *hostname)
 {
-
   task_data_t data = xbt_new(s_task_data_t, 1);
 
   data->type = TASK_FIND_NODE;
@@ -28,26 +24,21 @@ msg_task_t task_new_find_node(unsigned int sender_id,
   data->answer_to = mailbox;
   data->issuer_host_name = hostname;
 
-
   msg_task_t task = MSG_task_create(NULL, COMP_SIZE, COMM_SIZE, data);
 
   return task;
 }
 
-/**
-  * Creates a new "answer to find node" task
+/** @brief Creates a new "answer to find node" task
   *  @param sender_id the node who sent the task
   *  @param destination_id the node that should be found
   *  @param answer the answer to send
   *  @param mailbox The mailbox of the sender
   *  @param hostname sender hostname
   */
-msg_task_t task_new_find_node_answer(unsigned int sender_id,
-                                     unsigned int destination_id,
-                                     answer_t answer, char *mailbox,
-                                     const char *hostname)
+msg_task_t task_new_find_node_answer(unsigned int sender_id, unsigned int destination_id, answer_t answer,
+                                     char *mailbox, const char *hostname)
 {
-
   task_data_t data = xbt_new(s_task_data_t, 1);
 
   data->type = TASK_FIND_NODE_ANSWER;
@@ -62,16 +53,13 @@ msg_task_t task_new_find_node_answer(unsigned int sender_id,
   return task;
 }
 
-/**
-  * Creates a new "ping" task
+/** @brief Creates a new "ping" task
   * @param sender_id : sender node identifier
   * @param mailbox : mailbox where we should respond
   * @param hostname : hostname of the sender, for debugging purposes
   */
-msg_task_t task_new_ping(unsigned int sender_id, char *mailbox,
-                         const char *hostname)
+msg_task_t task_new_ping(unsigned int sender_id, char *mailbox, const char *hostname)
 {
-
   task_data_t data = xbt_new(s_task_data_t, 1);
 
   data->type = TASK_PING;
@@ -86,16 +74,13 @@ msg_task_t task_new_ping(unsigned int sender_id, char *mailbox,
   return task;
 }
 
-/**
-  * Creates a new "ping answer" task
+/** @brief Creates a new "ping answer" task
   * @param sender_id : sender node identifier
   * @param mailbox : mailbox of the sender
   * @param hostname : hostname of the sender, for debugging purposes
   */
-msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox,
-                                const char *hostname)
+msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox, const char *hostname)
 {
-
   task_data_t data = xbt_new(s_task_data_t, 1);
 
   data->type = TASK_PING_ANSWER;
@@ -110,8 +95,7 @@ msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox,
   return task;
 }
 
-/**
-  * Destroys a task and its data
+/** @brief Destroys a task and its data
   * @param task the task that'll be destroyed
   */
 void task_free(msg_task_t task)
@@ -126,11 +110,9 @@ void task_free(msg_task_t task)
   xbt_free(data);
 
   MSG_task_destroy(task);
-
 }
 
-/**
-  * Destroys a task and its data (taking a void* pointer
+/** @brief Destroys a task and its data (taking a void* pointer
   * @param task The task that'll be destroyed
   */
 void task_free_v(void *task)
index 251a1e1..a7cd143 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2012, 2014-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,9 +9,8 @@
 #include "common.h"
 #include "node.h"
 #include "simgrid/msg.h"
-/**
-  * Types of tasks exchanged
-  */
+
+/* Types of tasks exchanged */
 typedef enum {
   TASK_FIND_NODE,
   TASK_FIND_NODE_ANSWER,
@@ -21,9 +20,8 @@ typedef enum {
   TASK_PING_ANSWER,
   TASK_LEAVING
 } e_task_type_t;
-/**
-  * Data attached with the tasks
-  */
+
+/* Data attached with the tasks */
 typedef struct s_task_data {
   e_task_type_t type;
   unsigned int sender_id;       //Id of the guy who sent the task
@@ -34,19 +32,11 @@ typedef struct s_task_data {
 } s_task_data_t, *task_data_t;
 
 //Task handling functions
-msg_task_t task_new_find_node(unsigned int sender_id,
-                              unsigned int destination_id, char *mailbox,
-                              const char *hostname);
-
-msg_task_t task_new_find_node_answer(unsigned int sender_id,
-                                     unsigned int destination_id,
-                                     answer_t answer, char *mailbox,
-                                     const char *hostname);
-
-msg_task_t task_new_ping(unsigned int sender_id, char *mailbox,
-                         const char *hostname);
-msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox,
-                                const char *hostname);
+msg_task_t task_new_find_node(unsigned int sender_id, unsigned int destination_id, char *mailbox, const char *hostname);
+msg_task_t task_new_find_node_answer(unsigned int sender_id, unsigned int destination_id, answer_t answer,
+                                     char *mailbox, const char *hostname);
+msg_task_t task_new_ping(unsigned int sender_id, char *mailbox, const char *hostname);
+msg_task_t task_new_ping_answer(unsigned int sender_id, char *mailbox, const char *hostname);
 void task_free(msg_task_t task);
 void task_free_v(void *task);
 #endif                          /* _MSG_KADEMLIA_EXAMPLES_TASK */
index e1384a3..8e54c3e 100644 (file)
@@ -3,32 +3,17 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(masterslave_failure "masterslave_failure.c")
 add_executable(masterslave_forwarder "masterslave_forwarder.c")
 add_executable(masterslave_mailbox "masterslave_mailbox.c")
-add_executable(masterslave_bypass "masterslave_bypass.c")
-add_executable(masterslave_cluster "masterslave_cluster.c")
 add_executable(masterslave_kill "masterslave_kill.c")
 add_executable(masterslave_arg "masterslave_arg.c")
 
-### Add definitions for compile
-if(WIN32)
-  target_link_libraries(masterslave_forwarder simgrid )
-  target_link_libraries(masterslave_failure simgrid )
-  target_link_libraries(masterslave_mailbox simgrid )
-  target_link_libraries(masterslave_bypass simgrid )
-  target_link_libraries(masterslave_kill simgrid )
-  target_link_libraries(masterslave_arg simgrid )
-else()
-  target_link_libraries(masterslave_forwarder simgrid )
-  target_link_libraries(masterslave_failure simgrid )
-  target_link_libraries(masterslave_mailbox simgrid )
-  target_link_libraries(masterslave_bypass simgrid )
-  target_link_libraries(masterslave_kill simgrid )
-  target_link_libraries(masterslave_arg simgrid )
-endif()
-target_link_libraries(masterslave_cluster simgrid)
+target_link_libraries(masterslave_forwarder simgrid )
+target_link_libraries(masterslave_failure simgrid )
+target_link_libraries(masterslave_mailbox simgrid )
+target_link_libraries(masterslave_kill simgrid )
+target_link_libraries(masterslave_arg simgrid )
 
 set(tesh_files
   ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_bypass.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_cpu_ti.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_forwarder_crosstraffic.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_mailbox.tesh
@@ -43,8 +28,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_failure.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_mailbox_crosstraffic.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_vivaldi.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_masterslave_forwarder.xml
@@ -53,25 +37,13 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_masterslave_kill.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_masterslave_mailbox.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_masterslave.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_arg.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_bypass.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_cluster.c
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_failure.c
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_forwarder.c
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_kill.c
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_mailbox.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 
index 18b7e5d..6ebf11b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
index 1423699..babf6ae 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
      <argument value="5000000"/>  <!-- Computation size of tasks -->
index 6337e44..ea69ac8 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <process host="Tremblay" function="master"></process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
 </platform>
index c392972..5bd6985 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
@@ -9,20 +9,9 @@
      <argument value="5"/>         <!-- Number of slaves -->
   </process>
   <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Tremblay" function="slave">
-    <argument value="0"/>
-  </process>
-  <process host="Jupiter" function="slave">
-    <argument value="1"/>
-  </process>
-  <process host="Fafard" function="slave">
-    <argument value="2"/>
-  </process>
-  <process host="Ginette" function="slave">
-    <argument value="3"/>
-  </process>
-  <process host="Bourassa" function="slave">
-    <argument value="4"/>
-  </process>
-
+  <process host="Tremblay" function="slave">  <argument value="0"/> </process>
+  <process host="Jupiter" function="slave">   <argument value="1"/> </process>
+  <process host="Fafard" function="slave">    <argument value="2"/> </process>
+  <process host="Ginette" function="slave">   <argument value="3"/> </process>
+  <process host="Bourassa" function="slave">  <argument value="4"/> </process>
 </platform>
index ba0e787..e7e5e22 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
@@ -9,23 +9,10 @@
      <argument value="6"/>         <!-- Number of slaves -->
   </process>
   <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Tremblay" function="slave">
-    <argument value="0"/>
-  </process>
-  <process host="Tremblay" function="slave">
-    <argument value="1"/>
-  </process>
-  <process host="Tremblay" function="slave">
-    <argument value="2"/>
-  </process>
-  <process host="Tremblay" function="slave">
-    <argument value="3"/>
-  </process>
-  <process host="Tremblay" function="slave">
-    <argument value="4"/>
-  </process>
-  <process host="Tremblay" function="slave">
-    <argument value="5"/>
-  </process>
-
+  <process host="Tremblay" function="slave">   <argument value="0"/> </process>
+  <process host="Tremblay" function="slave">   <argument value="1"/> </process>
+  <process host="Tremblay" function="slave">   <argument value="2"/> </process>
+  <process host="Tremblay" function="slave">   <argument value="3"/> </process>
+  <process host="Tremblay" function="slave">   <argument value="4"/> </process>
+  <process host="Tremblay" function="slave">   <argument value="5"/> </process>
 </platform>
index 2aa19db..239c7c5 100644 (file)
@@ -1,8 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) --> 
   <process host="100030591" function="master">
        <argument value="20"/>       <!-- Number of tasks -->
        <argument value="39"/>         <!-- Number of slaves -->
     </process>
     <!-- The slave processes (with mailbox to listen on as argument) -->
-    <process host="100036570" function="slave">
-      <argument value="0"/>
-    </process>
-    <process host="100041334" function="slave">
-      <argument value="1"/>
-    </process>
-    <process host="100055671" function="slave">
-      <argument value="2"/>
-    </process>
-    <process host="100066658" function="slave">
-      <argument value="3"/>
-    </process>
-    <process host="100090691" function="slave">
-      <argument value="4"/>
-    </process>
-    <process host="100094952" function="slave">
-      <argument value="5"/>
-    </process>
-    <process host="100117943" function="slave">
-      <argument value="6"/>
-    </process>
-    <process host="100126290" function="slave">
-      <argument value="7"/>
-    </process>
-    <process host="100144483" function="slave">
-      <argument value="8"/>
-    </process>
-    <process host="100152889" function="slave">
-      <argument value="9"/>
-    </process>
-    <process host="100178474" function="slave">
-      <argument value="10"/>
-    </process>
-    <process host="100180261" function="slave">
-      <argument value="11"/>
-    </process>
-    <process host="100185883" function="slave">
-      <argument value="12"/>
-    </process>
-    <process host="100186365" function="slave">
-      <argument value="13"/>
-    </process>
-    <process host="100200866" function="slave">
-      <argument value="14"/>
-    </process>
-    <process host="100207885" function="slave">
-      <argument value="15"/>
-    </process>
-    <process host="100224447" function="slave">
-      <argument value="16"/>
-    </process>
-    <process host="100238799" function="slave">
-      <argument value="17"/>
-    </process>
-    <process host="100273297" function="slave">
-      <argument value="18"/>
-    </process>
-    <process host="100280711" function="slave">
-      <argument value="19"/>
-    </process>
-    <process host="100284574" function="slave">
-      <argument value="20"/>
-    </process>
-    <process host="100292843" function="slave">
-      <argument value="21"/>
-    </process>
-    <process host="100309685" function="slave">
-      <argument value="22"/>
-    </process>
-    <process host="100315281" function="slave">
-      <argument value="23"/>
-    </process>
-    <process host="100317715" function="slave">
-      <argument value="24"/>
-    </process>
-    <process host="100324694" function="slave">
-      <argument value="25"/>
-    </process>
-    <process host="100326641" function="slave">
-      <argument value="26"/>
-    </process>
-    <process host="100331484" function="slave">
-      <argument value="27"/>
-    </process>
-    <process host="100347816" function="slave">
-      <argument value="28"/>
-    </process>
-    <process host="100354536" function="slave">
-      <argument value="29"/>
-    </process>
-    <process host="100355017" function="slave">
-      <argument value="30"/>
-    </process>
-    <process host="100359203" function="slave">
-      <argument value="31"/>
-    </process>
-    <process host="100379397" function="slave">
-      <argument value="32"/>
-    </process>
-    <process host="100404046" function="slave">
-      <argument value="33"/>
-    </process>
-    <process host="100413314" function="slave">
-      <argument value="34"/>
-    </process>
-    <process host="100416828" function="slave">
-      <argument value="35"/>
-    </process>
-    <process host="100422926" function="slave">
-      <argument value="36"/>
-    </process>
-    <process host="100427449" function="slave">
-      <argument value="37"/>
-    </process>
-    <process host="100429957" function="slave">
-      <argument value="38"/>
-    </process>
-  </platform>
+    <process host="100036570" function="slave">   <argument value="0"/> </process>
+    <process host="100041334" function="slave">   <argument value="1"/> </process>
+    <process host="100055671" function="slave">   <argument value="2"/> </process>
+    <process host="100066658" function="slave">   <argument value="3"/> </process>
+    <process host="100090691" function="slave">   <argument value="4"/> </process>
+    <process host="100094952" function="slave">   <argument value="5"/> </process>
+    <process host="100117943" function="slave">   <argument value="6"/> </process>
+    <process host="100126290" function="slave">   <argument value="7"/> </process>
+    <process host="100144483" function="slave">   <argument value="8"/> </process>
+    <process host="100152889" function="slave">   <argument value="9"/> </process>
+    <process host="100178474" function="slave">   <argument value="10"/> </process>
+    <process host="100180261" function="slave">   <argument value="11"/> </process>
+    <process host="100185883" function="slave">   <argument value="12"/> </process>
+    <process host="100186365" function="slave">   <argument value="13"/> </process>
+    <process host="100200866" function="slave">   <argument value="14"/> </process>
+    <process host="100207885" function="slave">   <argument value="15"/> </process>
+    <process host="100224447" function="slave">   <argument value="16"/> </process>
+    <process host="100238799" function="slave">   <argument value="17"/> </process>
+    <process host="100273297" function="slave">   <argument value="18"/> </process>
+    <process host="100280711" function="slave">   <argument value="19"/> </process>
+    <process host="100284574" function="slave">   <argument value="20"/> </process>
+    <process host="100292843" function="slave">   <argument value="21"/> </process>
+    <process host="100309685" function="slave">   <argument value="22"/> </process>
+    <process host="100315281" function="slave">   <argument value="23"/> </process>
+    <process host="100317715" function="slave">   <argument value="24"/> </process>
+    <process host="100324694" function="slave">   <argument value="25"/> </process>
+    <process host="100326641" function="slave">   <argument value="26"/> </process>
+    <process host="100331484" function="slave">   <argument value="27"/> </process>
+    <process host="100347816" function="slave">   <argument value="28"/> </process>
+    <process host="100354536" function="slave">   <argument value="29"/> </process>
+    <process host="100355017" function="slave">   <argument value="30"/> </process>
+    <process host="100359203" function="slave">   <argument value="31"/> </process>
+    <process host="100379397" function="slave">   <argument value="32"/> </process>
+    <process host="100404046" function="slave">   <argument value="33"/> </process>
+    <process host="100413314" function="slave">   <argument value="34"/> </process>
+    <process host="100416828" function="slave">   <argument value="35"/> </process>
+    <process host="100422926" function="slave">   <argument value="36"/> </process>
+    <process host="100427449" function="slave">   <argument value="37"/> </process>
+    <process host="100429957" function="slave">   <argument value="38"/> </process>
+</platform>
index 5e1be97..611b26d 100644 (file)
@@ -90,16 +90,16 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 3, "Usage: %s platform_file number_of_jobs number_of_slaves\n"
-                 "\tExample: %s msg_platform.xml 10 5\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml 10 5\n", 
+            argv[0], argv[0]);
 
   MSG_function_register("master", master);
   MSG_function_register("slave", slave);
 
   MSG_create_environment(argv[1]);
 
-  number_of_jobs = atol(argv[2]);
-  number_of_slaves = atol(argv[3]);
+  number_of_jobs = xbt_str_parse_int(argv[2], "Invalid amount of jobs: %s");
+  number_of_slaves = xbt_str_parse_int(argv[3], "Invalid amount of slaves: %s");
   xbt_dynar_t host_dynar = MSG_hosts_as_dynar();
   long number_max = xbt_dynar_length(host_dynar);
   XBT_INFO("Got %ld slaves, %ld tasks to process, and %ld hosts", number_of_slaves, number_of_jobs,number_max);
diff --git a/examples/msg/masterslave/masterslave_bypass.c b/examples/msg/masterslave/masterslave_bypass.c
deleted file mode 100644 (file)
index ecdf4cd..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Copyright (c) 2007-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "surf/surfxml_parse.h" /* to override surf_parse and bypass the parser */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
-#define FINALIZE ((void*)221297)        /* a magic number to tell people to stop working */
-
-static int surf_parse_bypass_platform(void)
-{
-  static int AX_ptr = 0;
-  static int surfxml_bufferstack_size = 2048;
-  static int surfxml_buffer_stack_stack_ptr = 0;
-  static int surfxml_buffer_stack_stack[1024];
-  /* allocating memory for the buffer, I think 2kB should be enough */
-  surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
-
-  XBT_DEBUG("<platform>");
-  SURFXML_BUFFER_SET(platform_version, "3");
-  SURFXML_START_TAG(platform);
-
-  XBT_DEBUG("<AS>");
-  SURFXML_BUFFER_SET(AS_id, "AS0");
-  A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
-  SURFXML_START_TAG(AS);
-
-  XBT_DEBUG("<host id=\"host A\" power=\"100000000.00\"/>");
-  SURFXML_BUFFER_SET(host_id, "host A");
-  SURFXML_BUFFER_SET(host_power, "100000000.00");
-  SURFXML_BUFFER_SET(host_pstate, "0");
-  SURFXML_BUFFER_SET(host_availability, "1.0");
-  SURFXML_BUFFER_SET(host_availability___file, "");
-  SURFXML_BUFFER_SET(host_core, "1");
-  A_surfxml_host_state = A_surfxml_host_state_ON;
-  SURFXML_BUFFER_SET(host_state___file, "");
-  SURFXML_BUFFER_SET(host_coordinates, "");
-  SURFXML_START_TAG(host);
-  SURFXML_END_TAG(host);
-
-  XBT_DEBUG("<host id=\"host B\" power=\"100000000.00\"/>");
-  SURFXML_BUFFER_SET(host_id, "host B");
-  SURFXML_BUFFER_SET(host_power, "100000000.00");
-  SURFXML_BUFFER_SET(host_pstate, "0");
-  SURFXML_BUFFER_SET(host_availability, "1.0");
-  SURFXML_BUFFER_SET(host_availability___file, "");
-  SURFXML_BUFFER_SET(host_core, "1");
-  A_surfxml_host_state = A_surfxml_host_state_ON;
-  SURFXML_BUFFER_SET(host_state___file, "");
-  SURFXML_BUFFER_SET(host_coordinates, "");
-  SURFXML_START_TAG(host);
-  SURFXML_END_TAG(host);
-
-  XBT_DEBUG("<link id=\"LinkA\" bandwidth=\"10000000.0\" latency=\"0.2\"/>");
-  SURFXML_BUFFER_SET(link_id, "LinkA");
-  SURFXML_BUFFER_SET(link_bandwidth, "10000000.0");
-  SURFXML_BUFFER_SET(link_bandwidth___file, "");
-  SURFXML_BUFFER_SET(link_latency, "0.2");
-  SURFXML_BUFFER_SET(link_latency___file, "");
-  A_surfxml_link_state = A_surfxml_link_state_ON;
-  SURFXML_BUFFER_SET(link_state___file, "");
-  A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
-  SURFXML_START_TAG(link);
-  SURFXML_END_TAG(link);
-
-  XBT_DEBUG("<route src=\"host A\" dst=\"host B\">");
-  SURFXML_BUFFER_SET(route_src, "host A");
-  SURFXML_BUFFER_SET(route_dst, "host B");
-  A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
-  SURFXML_START_TAG(route);
-  XBT_DEBUG("  <link:ctn id=\"LinkA\"/>");
-  SURFXML_BUFFER_SET(link___ctn_id, "LinkA");
-  A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
-  SURFXML_START_TAG(link___ctn);
-  SURFXML_END_TAG(link___ctn);
-  XBT_DEBUG("</route>");
-  SURFXML_END_TAG(route);
-
-  XBT_DEBUG("</AS>");
-  SURFXML_END_TAG(AS);
-  XBT_DEBUG("</platfrom>");
-  SURFXML_END_TAG(platform);
-
-  free(surfxml_bufferstack);
-  return 0;
-}
-
-static int surf_parse_bypass_application(void)
-{
-  static int AX_ptr;
-  static int surfxml_bufferstack_size = 2048;
-  static int surfxml_buffer_stack_stack_ptr = 0;
-  static int surfxml_buffer_stack_stack[1024];
-  /* allocating memory to the buffer, I think 2MB should be enough */
-  surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
-
-  /* <platform> */
-  SURFXML_BUFFER_SET(platform_version, "3");
-
-  SURFXML_START_TAG(platform);
-
-/*   <process host="host A" function="master"> */
-  SURFXML_BUFFER_SET(process_host, "host A");
-  SURFXML_BUFFER_SET(process_function, "master");
-  SURFXML_BUFFER_SET(process_start___time, "-1.0");
-  SURFXML_BUFFER_SET(process_kill___time, "-1.0");
-  SURFXML_START_TAG(process);
-
-/*      <argument value="20"/> */
-  SURFXML_BUFFER_SET(argument_value, "20");
-  SURFXML_START_TAG(argument);
-  SURFXML_END_TAG(argument);
-
-/*      <argument value="5000000"/> */
-  SURFXML_BUFFER_SET(argument_value, "5000000");
-  SURFXML_START_TAG(argument);
-  SURFXML_END_TAG(argument);
-
-/*      <argument value="100000"/> */
-  SURFXML_BUFFER_SET(argument_value, "100000");
-  SURFXML_START_TAG(argument);
-  SURFXML_END_TAG(argument);
-
-/*      <argument value="host B"/> */
-  SURFXML_BUFFER_SET(argument_value, "host B");
-  SURFXML_START_TAG(argument);
-  SURFXML_END_TAG(argument);
-
-/*   </process> */
-  SURFXML_END_TAG(process);
-
-/*   <process host="host B" function="slave"/> */
-  SURFXML_BUFFER_SET(process_host, "host B");
-  SURFXML_BUFFER_SET(process_function, "slave");
-  SURFXML_BUFFER_SET(process_start___time, "-1.0");
-  SURFXML_BUFFER_SET(process_kill___time, "-1.0");
-  SURFXML_START_TAG(process);
-  SURFXML_END_TAG(process);
-
-/* </platform> */
-  SURFXML_END_TAG(platform);
-
-  free(surfxml_bufferstack);
-  return 0;
-}
-
-int master(int argc, char *argv[]);
-int slave(int argc, char *argv[]);
-msg_error_t test_all(void);
-
-/** Emitter function  */
-int master(int argc, char *argv[])
-{
-  int slaves_count = 0;
-  msg_host_t *slaves = NULL;
-  msg_task_t *todo = NULL;
-  int number_of_tasks = 0;
-  double task_comp_size = 0;
-  double task_comm_size = 0;
-  int i;
-  XBT_ATTRIB_UNUSED int read;
-
-  read = sscanf(argv[1], "%d", &number_of_tasks);
-  xbt_assert(read, "Invalid argument %s\n", argv[1]);
-  read = sscanf(argv[2], "%lg", &task_comp_size);
-  xbt_assert(read, "Invalid argument %s\n", argv[2]);
-  read = sscanf(argv[3], "%lg", &task_comm_size);
-  xbt_assert(read, "Invalid argument %s\n", argv[3]);
-
-  {                             /*  Task creation */
-    char sprintf_buffer[64];
-
-    todo = xbt_new0(msg_task_t, number_of_tasks);
-
-    for (i = 0; i < number_of_tasks; i++) {
-      sprintf(sprintf_buffer, "Task_%d", i);
-      todo[i] =
-          MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size,
-                          NULL);
-    }
-  }
-
-  {                             /* Process organization */
-    slaves_count = argc - 4;
-    slaves = xbt_new0(msg_host_t, slaves_count);
-
-    for (i = 4; i < argc; i++) {
-      slaves[i - 4] = MSG_host_by_name(argv[i]);
-      if (slaves[i - 4] == NULL) {
-        XBT_INFO("Unknown host %s. Stopping Now!", argv[i]);
-        abort();
-      }
-    }
-  }
-
-  XBT_INFO("Got %d slave(s) :", slaves_count);
-  for (i = 0; i < slaves_count; i++)
-    XBT_INFO("\t %s", MSG_host_get_name(slaves[i]));
-
-  XBT_INFO("Got %d task to process :", number_of_tasks);
-
-  for (i = 0; i < number_of_tasks; i++)
-    XBT_INFO("\t\"%s\"", todo[i]->name);
-
-  for (i = 0; i < number_of_tasks; i++) {
-    XBT_INFO("Sending \"%s\" to \"%s\"",
-          todo[i]->name, MSG_host_get_name(slaves[i % slaves_count]));
-    if (MSG_host_self() == slaves[i % slaves_count]) {
-      XBT_INFO("Hey ! It's me ! :)");
-    }
-    MSG_task_send(todo[i], MSG_host_get_name(slaves[i % slaves_count]));
-    XBT_INFO("Send completed");
-  }
-
-  XBT_INFO
-      ("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (i = 0; i < slaves_count; i++)
-    MSG_task_send(MSG_task_create("finalize", 0, 0, FINALIZE),
-        MSG_host_get_name(slaves[i]));
-
-  XBT_INFO("Goodbye now!");
-  free(slaves);
-  free(todo);
-  return 0;
-}                               /* end_of_master */
-
-/** Receiver function  */
-int slave(int argc, char *argv[])
-{
-  XBT_INFO("I'm a slave");
-  while (1) {
-    msg_task_t task = NULL;
-    int a;
-    a = MSG_task_receive(&task, MSG_host_get_name(MSG_host_self()));
-    if (a == MSG_OK) {
-      XBT_INFO("Received \"%s\"" , MSG_task_get_name(task));
-      if (MSG_task_get_data(task) == FINALIZE) {
-        MSG_task_destroy(task);
-        break;
-      }
-      XBT_INFO("Processing \"%s\"", MSG_task_get_name(task));
-      MSG_task_execute(task);
-      XBT_INFO("\"%s\" done", MSG_task_get_name(task));
-      MSG_task_destroy(task);
-    } else {
-      XBT_INFO("Hey ?! What's up ?");
-      xbt_die( "Unexpected behavior");
-    }
-  }
-  XBT_INFO("I'm done. See you!");
-  return 0;
-}                               /* end_of_slave */
-
-/** Test function */
-msg_error_t test_all(void)
-{
-  msg_error_t res = MSG_OK;
-
-  /*  Simulation setting */
-  surf_parse = surf_parse_bypass_platform;
-  MSG_create_environment(NULL);
-
-  /*   Application deployment */
-  MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
-  surf_parse = surf_parse_bypass_application;
-  MSG_launch_application(NULL);
-
-  res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return res;
-}                               /* end_of_test_all */
-
-/** Main function */
-int main(int argc, char *argv[])
-{
-  msg_error_t res = MSG_OK;
-
-  MSG_init(&argc, argv);
-  res = test_all();
-
-  return res != MSG_OK;
-}
diff --git a/examples/msg/masterslave/masterslave_bypass.tesh b/examples/msg/masterslave/masterslave_bypass.tesh
deleted file mode 100644 (file)
index f45b783..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#! ./tesh
-p Testing the bypassing of the flexml parser
-
-! output sort 19
-$ $SG_TEST_EXENV masterslave/masterslave_bypass --log=no_loc  "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Bypassing the XML parser since surf_parse_open received a NULL pointer. If it is not what you want, go fix your code.
-> [  0.000000] (1:master@host A) Got 1 slave(s) :
-> [  0.000000] (1:master@host A)        host B
-> [  0.000000] (1:master@host A) Got 20 task to process :
-> [  0.000000] (1:master@host A)       "Task_0"
-> [  0.000000] (1:master@host A)       "Task_1"
-> [  0.000000] (1:master@host A)       "Task_2"
-> [  0.000000] (1:master@host A)       "Task_3"
-> [  0.000000] (1:master@host A)       "Task_4"
-> [  0.000000] (1:master@host A)       "Task_5"
-> [  0.000000] (1:master@host A)       "Task_6"
-> [  0.000000] (1:master@host A)       "Task_7"
-> [  0.000000] (1:master@host A)       "Task_8"
-> [  0.000000] (1:master@host A)       "Task_9"
-> [  0.000000] (1:master@host A)       "Task_10"
-> [  0.000000] (1:master@host A)       "Task_11"
-> [  0.000000] (1:master@host A)       "Task_12"
-> [  0.000000] (1:master@host A)       "Task_13"
-> [  0.000000] (1:master@host A)       "Task_14"
-> [  0.000000] (1:master@host A)       "Task_15"
-> [  0.000000] (1:master@host A)       "Task_16"
-> [  0.000000] (1:master@host A)       "Task_17"
-> [  0.000000] (1:master@host A)       "Task_18"
-> [  0.000000] (1:master@host A)       "Task_19"
-> [  0.000000] (1:master@host A) Sending "Task_0" to "host B"
-> [  0.000000] (2:slave@host B) I'm a slave
-> [  2.612825] (1:master@host A) Send completed
-> [  2.612825] (1:master@host A) Sending "Task_1" to "host B"
-> [  2.612825] (2:slave@host B) Received "Task_0"
-> [  2.612825] (2:slave@host B) Processing "Task_0"
-> [  2.662825] (2:slave@host B) "Task_0" done
-> [  5.275649] (1:master@host A) Send completed
-> [  5.275649] (1:master@host A) Sending "Task_2" to "host B"
-> [  5.275649] (2:slave@host B) Received "Task_1"
-> [  5.275649] (2:slave@host B) Processing "Task_1"
-> [  5.325649] (2:slave@host B) "Task_1" done
-> [  7.938474] (1:master@host A) Send completed
-> [  7.938474] (1:master@host A) Sending "Task_3" to "host B"
-> [  7.938474] (2:slave@host B) Received "Task_2"
-> [  7.938474] (2:slave@host B) Processing "Task_2"
-> [  7.988474] (2:slave@host B) "Task_2" done
-> [ 10.601299] (1:master@host A) Send completed
-> [ 10.601299] (1:master@host A) Sending "Task_4" to "host B"
-> [ 10.601299] (2:slave@host B) Received "Task_3"
-> [ 10.601299] (2:slave@host B) Processing "Task_3"
-> [ 10.651299] (2:slave@host B) "Task_3" done
-> [ 13.264124] (1:master@host A) Send completed
-> [ 13.264124] (1:master@host A) Sending "Task_5" to "host B"
-> [ 13.264124] (2:slave@host B) Received "Task_4"
-> [ 13.264124] (2:slave@host B) Processing "Task_4"
-> [ 13.314124] (2:slave@host B) "Task_4" done
-> [ 15.926948] (1:master@host A) Send completed
-> [ 15.926948] (1:master@host A) Sending "Task_6" to "host B"
-> [ 15.926948] (2:slave@host B) Received "Task_5"
-> [ 15.926948] (2:slave@host B) Processing "Task_5"
-> [ 15.976948] (2:slave@host B) "Task_5" done
-> [ 18.589773] (1:master@host A) Send completed
-> [ 18.589773] (1:master@host A) Sending "Task_7" to "host B"
-> [ 18.589773] (2:slave@host B) Received "Task_6"
-> [ 18.589773] (2:slave@host B) Processing "Task_6"
-> [ 18.639773] (2:slave@host B) "Task_6" done
-> [ 21.252598] (1:master@host A) Send completed
-> [ 21.252598] (1:master@host A) Sending "Task_8" to "host B"
-> [ 21.252598] (2:slave@host B) Received "Task_7"
-> [ 21.252598] (2:slave@host B) Processing "Task_7"
-> [ 21.302598] (2:slave@host B) "Task_7" done
-> [ 23.915423] (1:master@host A) Send completed
-> [ 23.915423] (1:master@host A) Sending "Task_9" to "host B"
-> [ 23.915423] (2:slave@host B) Received "Task_8"
-> [ 23.915423] (2:slave@host B) Processing "Task_8"
-> [ 23.965423] (2:slave@host B) "Task_8" done
-> [ 26.578247] (1:master@host A) Send completed
-> [ 26.578247] (1:master@host A) Sending "Task_10" to "host B"
-> [ 26.578247] (2:slave@host B) Received "Task_9"
-> [ 26.578247] (2:slave@host B) Processing "Task_9"
-> [ 26.628247] (2:slave@host B) "Task_9" done
-> [ 29.241072] (1:master@host A) Send completed
-> [ 29.241072] (1:master@host A) Sending "Task_11" to "host B"
-> [ 29.241072] (2:slave@host B) Received "Task_10"
-> [ 29.241072] (2:slave@host B) Processing "Task_10"
-> [ 29.291072] (2:slave@host B) "Task_10" done
-> [ 31.903897] (1:master@host A) Send completed
-> [ 31.903897] (1:master@host A) Sending "Task_12" to "host B"
-> [ 31.903897] (2:slave@host B) Received "Task_11"
-> [ 31.903897] (2:slave@host B) Processing "Task_11"
-> [ 31.953897] (2:slave@host B) "Task_11" done
-> [ 34.566722] (1:master@host A) Send completed
-> [ 34.566722] (1:master@host A) Sending "Task_13" to "host B"
-> [ 34.566722] (2:slave@host B) Received "Task_12"
-> [ 34.566722] (2:slave@host B) Processing "Task_12"
-> [ 34.616722] (2:slave@host B) "Task_12" done
-> [ 37.229546] (1:master@host A) Send completed
-> [ 37.229546] (1:master@host A) Sending "Task_14" to "host B"
-> [ 37.229546] (2:slave@host B) Received "Task_13"
-> [ 37.229546] (2:slave@host B) Processing "Task_13"
-> [ 37.279546] (2:slave@host B) "Task_13" done
-> [ 39.892371] (1:master@host A) Send completed
-> [ 39.892371] (1:master@host A) Sending "Task_15" to "host B"
-> [ 39.892371] (2:slave@host B) Received "Task_14"
-> [ 39.892371] (2:slave@host B) Processing "Task_14"
-> [ 39.942371] (2:slave@host B) "Task_14" done
-> [ 42.555196] (1:master@host A) Send completed
-> [ 42.555196] (1:master@host A) Sending "Task_16" to "host B"
-> [ 42.555196] (2:slave@host B) Received "Task_15"
-> [ 42.555196] (2:slave@host B) Processing "Task_15"
-> [ 42.605196] (2:slave@host B) "Task_15" done
-> [ 45.218021] (1:master@host A) Send completed
-> [ 45.218021] (1:master@host A) Sending "Task_17" to "host B"
-> [ 45.218021] (2:slave@host B) Received "Task_16"
-> [ 45.218021] (2:slave@host B) Processing "Task_16"
-> [ 45.268021] (2:slave@host B) "Task_16" done
-> [ 47.880845] (1:master@host A) Send completed
-> [ 47.880845] (1:master@host A) Sending "Task_18" to "host B"
-> [ 47.880845] (2:slave@host B) Received "Task_17"
-> [ 47.880845] (2:slave@host B) Processing "Task_17"
-> [ 47.930845] (2:slave@host B) "Task_17" done
-> [ 50.543670] (1:master@host A) Send completed
-> [ 50.543670] (1:master@host A) Sending "Task_19" to "host B"
-> [ 50.543670] (2:slave@host B) Received "Task_18"
-> [ 50.543670] (2:slave@host B) Processing "Task_18"
-> [ 50.593670] (2:slave@host B) "Task_18" done
-> [ 53.206495] (1:master@host A) Send completed
-> [ 53.206495] (1:master@host A) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [ 53.206495] (2:slave@host B) Received "Task_19"
-> [ 53.206495] (2:slave@host B) Processing "Task_19"
-> [ 53.256495] (2:slave@host B) "Task_19" done
-> [ 55.858495] (0:maestro@) Simulation time 55.8585
-> [ 55.858495] (1:master@host A) Goodbye now!
-> [ 55.858495] (2:slave@host B) Received "finalize"
-> [ 55.858495] (2:slave@host B) I'm done. See you!
diff --git a/examples/msg/masterslave/masterslave_cluster.c b/examples/msg/masterslave/masterslave_cluster.c
deleted file mode 100644 (file)
index 8415bdb..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "surf/surfxml_parse.h" /* to override surf_parse and bypass the parser */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
-
-#define FINALIZE ((void*)221297)        /* a magic number to tell people to stop working */
-
-msg_error_t test_all(const char *platform_file);
-
-
-int master(int argc, char *argv[]);
-int slave(int argc, char *argv[]);
-
-/** Emitter function  */
-int master(int argc, char *argv[])
-{
-  int slaves_count = 0;
-  msg_host_t *slaves = NULL;
-  msg_task_t *todo = NULL;
-  int number_of_tasks = 0;
-  double task_comp_size = 0;
-  double task_comm_size = 0;
-  int i;
-  XBT_ATTRIB_UNUSED int read;
-
-  read = sscanf(argv[1], "%d", &number_of_tasks);
-  xbt_assert(read, "Invalid argument %s\n", argv[1]);
-  read = sscanf(argv[2], "%lg", &task_comp_size);
-  xbt_assert(read, "Invalid argument %s\n", argv[2]);
-  read = sscanf(argv[3], "%lg", &task_comm_size);
-  xbt_assert(read, "Invalid argument %s\n", argv[3]);
-
-  {                             /*  Task creation */
-    char sprintf_buffer[64];
-
-    todo = xbt_new0(msg_task_t, number_of_tasks);
-
-    for (i = 0; i < number_of_tasks; i++) {
-      sprintf(sprintf_buffer, "Task_%d", i);
-      todo[i] =
-          MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size,
-                          NULL);
-    }
-  }
-
-  {                             /* Process organization */
-    slaves_count = argc - 4;
-    slaves = xbt_new0(msg_host_t, slaves_count);
-
-    for (i = 4; i < argc; i++) {
-      slaves[i - 4] = MSG_host_by_name(argv[i]);
-      if (slaves[i - 4] == NULL) {
-        XBT_INFO("Unknown host %s. Stopping Now! ", argv[i]);
-        abort();
-      }
-    }
-  }
-
-  XBT_INFO("Got %d slave(s) :", slaves_count);
-  for (i = 0; i < slaves_count; i++)
-    XBT_INFO("\t %s", MSG_host_get_name(slaves[i]));
-
-  XBT_INFO("Got %d task to process :", number_of_tasks);
-
-  for (i = 0; i < number_of_tasks; i++)
-    XBT_INFO("\t\"%s\"", todo[i]->name);
-
-  for (i = 0; i < number_of_tasks; i++) {
-    XBT_INFO("Sending \"%s\" to \"%s\"",
-          todo[i]->name, MSG_host_get_name(slaves[i % slaves_count]));
-    if (MSG_host_self() == slaves[i % slaves_count]) {
-      XBT_INFO("Hey ! It's me ! :)");
-    }
-    MSG_task_send(todo[i], MSG_host_get_name(slaves[i % slaves_count]));
-    XBT_INFO("Send completed");
-  }
-
-  XBT_INFO
-      ("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (i = 0; i < slaves_count; i++)
-    MSG_task_send(MSG_task_create("finalize", 0, 0, FINALIZE),
-        MSG_host_get_name(slaves[i]));
-
-  XBT_INFO("Goodbye now!");
-  free(slaves);
-  free(todo);
-  return 0;
-}                               /* end_of_master */
-
-/** Receiver function  */
-int slave(int argc, char *argv[])
-{
-  XBT_INFO("I'm a slave");
-  while (1) {
-    msg_task_t task = NULL;
-    int a;
-    a = MSG_task_receive(&(task), MSG_host_get_name(MSG_host_self()));
-    if (a == MSG_OK) {
-      XBT_INFO("Received \"%s\" ", MSG_task_get_name(task));
-      if (MSG_task_get_data(task) == FINALIZE) {
-        MSG_task_destroy(task);
-        break;
-      }
-      XBT_INFO("Processing \"%s\" ", MSG_task_get_name(task));
-      MSG_task_execute(task);
-      XBT_INFO("\"%s\" done ", MSG_task_get_name(task));
-      MSG_task_destroy(task);
-    } else {
-      XBT_INFO("Hey ?! What's up ? ");
-      xbt_die("Unexpected behavior");
-            }
-  }
-  XBT_INFO("I'm done. See you!");
-  return 0;
-}                               /* end_of_slave */
-
-
-/** Bypass deployment **/
-static int bypass_deployment(void)
-{
-  int nb_host,i;
-  static int AX_ptr;
-  static int surfxml_bufferstack_size = 2048;
-  static int surfxml_buffer_stack_stack_ptr = 0;
-  static int surfxml_buffer_stack_stack[1024];
-  xbt_dynar_t hosts = MSG_hosts_as_dynar();
-  /* allocating memory to the buffer, I think 2MB should be enough */
-  surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
-
-  nb_host = xbt_dynar_length(hosts);
-  xbt_dynar_free(&hosts);
-
-  /* <platform> */
-  SURFXML_BUFFER_SET(platform_version, "3");
-  SURFXML_START_TAG(platform);
-  XBT_DEBUG("<platform version=\"3\">");
-
-    XBT_DEBUG("  <process host=\"c-0.me\" function=\"master\">");
-    SURFXML_BUFFER_SET(process_host, "c-0.me");
-    SURFXML_BUFFER_SET(process_function, "master");
-    SURFXML_BUFFER_SET(process_start___time, "-1.0");
-    SURFXML_BUFFER_SET(process_kill___time, "-1.0");
-    SURFXML_START_TAG(process);
-
-    XBT_DEBUG("    <argument value=\"%s\"/>",bprintf("%d",nb_host-1));
-    SURFXML_BUFFER_SET(argument_value, bprintf("%d",nb_host-1));
-    SURFXML_START_TAG(argument);
-    SURFXML_END_TAG(argument);
-
-    XBT_DEBUG("    <argument value=\"5000000\"/>");
-    SURFXML_BUFFER_SET(argument_value, "5000000");
-    SURFXML_START_TAG(argument);
-    SURFXML_END_TAG(argument);
-
-    XBT_DEBUG("    <argument value=\"100000\"/>");
-    SURFXML_BUFFER_SET(argument_value, "100000");
-    SURFXML_START_TAG(argument);
-    SURFXML_END_TAG(argument);
-
-  for(i=1 ; i<nb_host ; i++)
-  {
-    XBT_DEBUG("    <argument value=\"%s.me\"/>",bprintf("c-%d",i));
-    SURFXML_BUFFER_SET(argument_value, bprintf("c-%d.me",i));
-    SURFXML_START_TAG(argument);
-    SURFXML_END_TAG(argument);
-  }
-  XBT_DEBUG("  </process>");
-  SURFXML_END_TAG(process);
-
-  for(i=1 ; i<nb_host ; i++)
-  {
-    XBT_DEBUG("  <process host=\"%s.me\" function=\"slave\"/>",bprintf("c-%d",i));
-    SURFXML_BUFFER_SET(process_host, bprintf("c-%d.me",i));
-    SURFXML_BUFFER_SET(process_function, "slave");
-    SURFXML_BUFFER_SET(process_start___time, "-1.0");
-    SURFXML_BUFFER_SET(process_kill___time, "-1.0");
-    SURFXML_START_TAG(process);
-    SURFXML_END_TAG(process);
-  }
-
-  XBT_DEBUG("</platform>");
-  SURFXML_END_TAG(platform);
-
-  free(surfxml_bufferstack);
-  return 0;
-}
-
-/** Test function */
-msg_error_t test_all(const char *platform_file)
-{
-  msg_error_t res = MSG_OK;
-  MSG_create_environment(platform_file);
-  MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
-  surf_parse = bypass_deployment;
-  MSG_launch_application(NULL);
-
-  res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return res;
-}                               /* end_of_test_all */
-
-
-/** Main function */
-int main(int argc, char *argv[])
-{
-  msg_error_t res = MSG_OK;
-
-  MSG_init(&argc, argv);
-  res = test_all(argv[1]);
-
-  return res != MSG_OK;
-}
index 85c83f3..5dbbc77 100644 (file)
@@ -376,139 +376,3 @@ $ ${bindir:=.}/masterslave_failure$EXEEXT --log=xbt_cfg.thres:critical --log=no_
 > [ 52.785567] (2:slave@Tremblay) I'm done. See you!
 > [ 52.785567] (5:slave@Bourassa) Received "finalize"
 > [ 52.785567] (5:slave@Bourassa) I'm done. See you!
-
-p Testing the bypassing of the flexml parser
-
-! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave_bypass --log=no_loc --cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/optim' to 'TI'
-> [  0.000000] (0:maestro@) Bypassing the XML parser since surf_parse_open received a NULL pointer. If it is not what you want, go fix your code.
-> [  0.000000] (1:master@host A) Got 1 slave(s) :
-> [  0.000000] (1:master@host A)        host B
-> [  0.000000] (1:master@host A) Got 20 task to process :
-> [  0.000000] (1:master@host A)       "Task_0"
-> [  0.000000] (1:master@host A)       "Task_1"
-> [  0.000000] (1:master@host A)       "Task_2"
-> [  0.000000] (1:master@host A)       "Task_3"
-> [  0.000000] (1:master@host A)       "Task_4"
-> [  0.000000] (1:master@host A)       "Task_5"
-> [  0.000000] (1:master@host A)       "Task_6"
-> [  0.000000] (1:master@host A)       "Task_7"
-> [  0.000000] (1:master@host A)       "Task_8"
-> [  0.000000] (1:master@host A)       "Task_9"
-> [  0.000000] (1:master@host A)       "Task_10"
-> [  0.000000] (1:master@host A)       "Task_11"
-> [  0.000000] (1:master@host A)       "Task_12"
-> [  0.000000] (1:master@host A)       "Task_13"
-> [  0.000000] (1:master@host A)       "Task_14"
-> [  0.000000] (1:master@host A)       "Task_15"
-> [  0.000000] (1:master@host A)       "Task_16"
-> [  0.000000] (1:master@host A)       "Task_17"
-> [  0.000000] (1:master@host A)       "Task_18"
-> [  0.000000] (1:master@host A)       "Task_19"
-> [  0.000000] (1:master@host A) Sending "Task_0" to "host B"
-> [  0.000000] (2:slave@host B) I'm a slave
-> [  2.612825] (1:master@host A) Send completed
-> [  2.612825] (1:master@host A) Sending "Task_1" to "host B"
-> [  2.612825] (2:slave@host B) Received "Task_0"
-> [  2.612825] (2:slave@host B) Processing "Task_0"
-> [  2.662825] (2:slave@host B) "Task_0" done
-> [  5.275649] (1:master@host A) Send completed
-> [  5.275649] (1:master@host A) Sending "Task_2" to "host B"
-> [  5.275649] (2:slave@host B) Received "Task_1"
-> [  5.275649] (2:slave@host B) Processing "Task_1"
-> [  5.325649] (2:slave@host B) "Task_1" done
-> [  7.938474] (1:master@host A) Send completed
-> [  7.938474] (1:master@host A) Sending "Task_3" to "host B"
-> [  7.938474] (2:slave@host B) Received "Task_2"
-> [  7.938474] (2:slave@host B) Processing "Task_2"
-> [  7.988474] (2:slave@host B) "Task_2" done
-> [ 10.601299] (1:master@host A) Send completed
-> [ 10.601299] (1:master@host A) Sending "Task_4" to "host B"
-> [ 10.601299] (2:slave@host B) Received "Task_3"
-> [ 10.601299] (2:slave@host B) Processing "Task_3"
-> [ 10.651299] (2:slave@host B) "Task_3" done
-> [ 13.264124] (1:master@host A) Send completed
-> [ 13.264124] (1:master@host A) Sending "Task_5" to "host B"
-> [ 13.264124] (2:slave@host B) Received "Task_4"
-> [ 13.264124] (2:slave@host B) Processing "Task_4"
-> [ 13.314124] (2:slave@host B) "Task_4" done
-> [ 15.926948] (1:master@host A) Send completed
-> [ 15.926948] (1:master@host A) Sending "Task_6" to "host B"
-> [ 15.926948] (2:slave@host B) Received "Task_5"
-> [ 15.926948] (2:slave@host B) Processing "Task_5"
-> [ 15.976948] (2:slave@host B) "Task_5" done
-> [ 18.589773] (1:master@host A) Send completed
-> [ 18.589773] (1:master@host A) Sending "Task_7" to "host B"
-> [ 18.589773] (2:slave@host B) Received "Task_6"
-> [ 18.589773] (2:slave@host B) Processing "Task_6"
-> [ 18.639773] (2:slave@host B) "Task_6" done
-> [ 21.252598] (1:master@host A) Send completed
-> [ 21.252598] (1:master@host A) Sending "Task_8" to "host B"
-> [ 21.252598] (2:slave@host B) Received "Task_7"
-> [ 21.252598] (2:slave@host B) Processing "Task_7"
-> [ 21.302598] (2:slave@host B) "Task_7" done
-> [ 23.915423] (1:master@host A) Send completed
-> [ 23.915423] (1:master@host A) Sending "Task_9" to "host B"
-> [ 23.915423] (2:slave@host B) Received "Task_8"
-> [ 23.915423] (2:slave@host B) Processing "Task_8"
-> [ 23.965423] (2:slave@host B) "Task_8" done
-> [ 26.578247] (1:master@host A) Send completed
-> [ 26.578247] (1:master@host A) Sending "Task_10" to "host B"
-> [ 26.578247] (2:slave@host B) Received "Task_9"
-> [ 26.578247] (2:slave@host B) Processing "Task_9"
-> [ 26.628247] (2:slave@host B) "Task_9" done
-> [ 29.241072] (1:master@host A) Send completed
-> [ 29.241072] (1:master@host A) Sending "Task_11" to "host B"
-> [ 29.241072] (2:slave@host B) Received "Task_10"
-> [ 29.241072] (2:slave@host B) Processing "Task_10"
-> [ 29.291072] (2:slave@host B) "Task_10" done
-> [ 31.903897] (1:master@host A) Send completed
-> [ 31.903897] (1:master@host A) Sending "Task_12" to "host B"
-> [ 31.903897] (2:slave@host B) Received "Task_11"
-> [ 31.903897] (2:slave@host B) Processing "Task_11"
-> [ 31.953897] (2:slave@host B) "Task_11" done
-> [ 34.566722] (1:master@host A) Send completed
-> [ 34.566722] (1:master@host A) Sending "Task_13" to "host B"
-> [ 34.566722] (2:slave@host B) Received "Task_12"
-> [ 34.566722] (2:slave@host B) Processing "Task_12"
-> [ 34.616722] (2:slave@host B) "Task_12" done
-> [ 37.229546] (1:master@host A) Send completed
-> [ 37.229546] (1:master@host A) Sending "Task_14" to "host B"
-> [ 37.229546] (2:slave@host B) Received "Task_13"
-> [ 37.229546] (2:slave@host B) Processing "Task_13"
-> [ 37.279546] (2:slave@host B) "Task_13" done
-> [ 39.892371] (1:master@host A) Send completed
-> [ 39.892371] (1:master@host A) Sending "Task_15" to "host B"
-> [ 39.892371] (2:slave@host B) Received "Task_14"
-> [ 39.892371] (2:slave@host B) Processing "Task_14"
-> [ 39.942371] (2:slave@host B) "Task_14" done
-> [ 42.555196] (1:master@host A) Send completed
-> [ 42.555196] (1:master@host A) Sending "Task_16" to "host B"
-> [ 42.555196] (2:slave@host B) Received "Task_15"
-> [ 42.555196] (2:slave@host B) Processing "Task_15"
-> [ 42.605196] (2:slave@host B) "Task_15" done
-> [ 45.218021] (1:master@host A) Send completed
-> [ 45.218021] (1:master@host A) Sending "Task_17" to "host B"
-> [ 45.218021] (2:slave@host B) Received "Task_16"
-> [ 45.218021] (2:slave@host B) Processing "Task_16"
-> [ 45.268021] (2:slave@host B) "Task_16" done
-> [ 47.880845] (1:master@host A) Send completed
-> [ 47.880845] (1:master@host A) Sending "Task_18" to "host B"
-> [ 47.880845] (2:slave@host B) Received "Task_17"
-> [ 47.880845] (2:slave@host B) Processing "Task_17"
-> [ 47.930845] (2:slave@host B) "Task_17" done
-> [ 50.543670] (1:master@host A) Send completed
-> [ 50.543670] (1:master@host A) Sending "Task_19" to "host B"
-> [ 50.543670] (2:slave@host B) Received "Task_18"
-> [ 50.543670] (2:slave@host B) Processing "Task_18"
-> [ 50.593670] (2:slave@host B) "Task_18" done
-> [ 53.206495] (1:master@host A) Send completed
-> [ 53.206495] (1:master@host A) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [ 53.206495] (2:slave@host B) Received "Task_19"
-> [ 53.206495] (2:slave@host B) Processing "Task_19"
-> [ 53.256495] (2:slave@host B) "Task_19" done
-> [ 55.858495] (0:maestro@) Simulation time 55.8585
-> [ 55.858495] (1:master@host A) Goodbye now!
-> [ 55.858495] (2:slave@host B) Received "finalize"
-> [ 55.858495] (2:slave@host B) I'm done. See you!
index 8acbc13..2b1b372 100644 (file)
@@ -205,8 +205,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+            argv[0], argv[0]);
   
   res = test_all(argv[1], argv[2]);
 
index 6e01b3b..8628584 100644 (file)
@@ -208,8 +208,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+            argv[0], argv[0]);
   
   res = test_all(argv[1], argv[2]);
 
index 316516e..91e9914 100644 (file)
@@ -67,8 +67,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
+            argv[0], argv[0]);
 
   test_all(argv[1], argv[2]);
 
index ed1a0a7..8c4c100 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <stdio.h>
 #include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc, printf */
+#include "xbt/sysdep.h"
 
 /* Create a log channel to have nice outputs. */
 #include "xbt/log.h"
@@ -17,18 +17,17 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
 int master(int argc, char *argv[]);
 int slave(int argc, char *argv[]);
 
-/** Emitter function  */
+/** Sender function  */
 int master(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long slaves_count = atol(argv[4]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
 
   int i;
 
-  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count,
-        number_of_tasks);
+  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count, number_of_tasks);
 
   for (i = 0; i < number_of_tasks; i++) {
     char mailbox[256];
@@ -103,8 +102,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+            argv[0], argv[0]);
   
   platform_file = argv[1];
   application_file = argv[2];
index 447e5a7..4361496 100644 (file)
@@ -3,9 +3,9 @@ if(HAVE_MC)
 
   add_executable(centralized centralized_mutex.c)
   add_executable(bugged1     bugged1.c)
-  add_executable(bugged2      bugged2.c)
-  add_executable(bugged3          bugged3.c)
-  add_executable(electric_fence           electric_fence.c)
+  add_executable(bugged2     bugged2.c)
+  add_executable(bugged3     bugged3.c)
+  add_executable(electric_fence   electric_fence.c)
   add_executable(bugged1_liveness bugged1_liveness.c)
   add_executable(bugged2_liveness bugged2_liveness.c)
 
@@ -15,21 +15,18 @@ if(HAVE_MC)
   target_link_libraries(bugged3     simgrid )
   target_link_libraries(electric_fence     simgrid )
   target_link_libraries(bugged1_liveness     simgrid )
-    target_link_libraries(bugged2_liveness     simgrid )
+  target_link_libraries(bugged2_liveness     simgrid )
 
   if(HAVE_C_STACK_CLEANER)
-    add_executable(bugged1_liveness_cleaner_on     bugged1_liveness.c )
+    add_executable(bugged1_liveness_cleaner_on      bugged1_liveness.c )
     add_executable(bugged1_liveness_cleaner_off     bugged1_liveness.c )
 
-    target_link_libraries(bugged1_liveness_cleaner_on     simgrid )
+    target_link_libraries(bugged1_liveness_cleaner_on      simgrid )
     target_link_libraries(bugged1_liveness_cleaner_off     simgrid )
 
-    set_target_properties(bugged1_liveness_cleaner_on
-      PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fstack-cleaner")
-    set_target_properties(bugged1_liveness_cleaner_off
-      PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fno-stack-cleaner")
+    set_target_properties(bugged1_liveness_cleaner_on  PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fstack-cleaner")
+    set_target_properties(bugged1_liveness_cleaner_off PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fno-stack-cleaner")
   endif()
-
 endif()
 
 set(tesh_files
@@ -41,8 +38,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged1_liveness_sparse.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged1_liveness_visited_sparse.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/centralized.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deploy_bugged1_liveness.xml
@@ -54,8 +50,7 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/deploy_electric_fence.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deploy_mutex.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/platform.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged1.c
@@ -67,16 +62,10 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/centralized_mutex.c
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged1_liveness.h
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged2_liveness.h
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/promela_bugged1_liveness
   ${CMAKE_CURRENT_SOURCE_DIR}/promela_bugged2_liveness
   ${CMAKE_CURRENT_SOURCE_DIR}/bugged1_liveness_stack_cleaner
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 1954933..aa397f8 100644 (file)
@@ -31,7 +31,7 @@ int server(int argc, char *argv[])
     MSG_task_receive(&task, "mymailbox");
     count++;
   }
-  MC_assert(atoi(MSG_task_get_name(task)) == 3);
+  MC_assert(xbt_str_parse_int(MSG_task_get_name(task), "Task names must be integers, not '%s'") == 3);
 
   XBT_INFO("OK");
   return 0;
index 70cff38..a0376a8 100644 (file)
@@ -25,13 +25,13 @@ int server(int argc, char *argv[])
   long val1, val2;
 
   MSG_task_receive(&task1, "mymailbox");
-  val1 = (long) MSG_task_get_data(task1);
+  val1 = xbt_str_parse_int(MSG_task_get_name(task1), "Task name is not a numerical ID: %s");
   MSG_task_destroy(task1);
   task1 = NULL;
   XBT_INFO("Received %lu", val1);
 
   MSG_task_receive(&task2, "mymailbox");
-  val2 = (long) MSG_task_get_data(task2);
+  val2 = xbt_str_parse_int(MSG_task_get_name(task2), "Task name is not a numerical ID: %s");
   MSG_task_destroy(task2);
   task2 = NULL;
   XBT_INFO("Received %lu", val2);
@@ -39,12 +39,12 @@ int server(int argc, char *argv[])
   MC_assert(min(val1, val2) == 1);
 
   MSG_task_receive(&task1, "mymailbox");
-  val1 = (long) MSG_task_get_data(task1);
+  val1 = xbt_str_parse_int(MSG_task_get_name(task1), "Task name is not a numerical ID: %s");
   MSG_task_destroy(task1);
   XBT_INFO("Received %lu", val1);
 
   MSG_task_receive(&task2, "mymailbox");
-  val2 = (long) MSG_task_get_data(task2);
+  val2 = xbt_str_parse_int(MSG_task_get_name(task2), "Task name is not a numerical ID: %s");
   MSG_task_destroy(task2);
   XBT_INFO("Received %lu", val2);
 
@@ -54,15 +54,13 @@ int server(int argc, char *argv[])
 
 int client(int argc, char *argv[])
 {
-  msg_task_t task1 =
-      MSG_task_create("task", 0, 10000, (void *) atol(argv[1]));
-  msg_task_t task2 =
-      MSG_task_create("task", 0, 10000, (void *) atol(argv[1]));
+  msg_task_t task1 = MSG_task_create(argv[1], 0, 10000, NULL);
+  msg_task_t task2 = MSG_task_create(argv[1], 0, 10000, NULL);
 
-  XBT_INFO("Send %d!", atoi(argv[1]));
+  XBT_INFO("Send %s", argv[1]);
   MSG_task_send(task1, "mymailbox");
 
-  XBT_INFO("Send %d!", atoi(argv[1]));
+  XBT_INFO("Send %s", argv[1]);
   MSG_task_send(task2, "mymailbox");
 
   return 0;
@@ -75,9 +73,7 @@ int main(int argc, char *argv[])
   MSG_create_environment("platform.xml");
 
   MSG_function_register("server", server);
-
   MSG_function_register("client", client);
-
   MSG_launch_application("deploy_bugged2.xml");
 
   MSG_main();
index a271e35..518db4c 100644 (file)
 ! timeout 20
 $ ${bindir:=.}/../../../bin/simgrid-mc ${bindir:=.}/bugged2 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=xbt_cfg.thresh:warning --cfg=contexts/stack_size:256
 > [  0.000000] (0:maestro@) Check a safety property
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (2:client@HostB) Send 1
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (3:client@HostC) Send 2!
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (3:client@HostC) Send 2
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 1
 > [  0.000000] (1:server@HostA) OK
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 1
-> [  0.000000] (2:client@HostB) Send 1!
+> [  0.000000] (2:client@HostB) Send 1
 > [  0.000000] (1:server@HostA) Received 2
-> [  0.000000] (3:client@HostC) Send 2!
+> [  0.000000] (3:client@HostC) Send 2
 > [  0.000000] (1:server@HostA) Received 2
 > [  0.000000] (0:maestro@) **************************
 > [  0.000000] (0:maestro@) *** PROPERTY NOT VALID ***
index 33dc2d1..c89b32d 100644 (file)
@@ -23,16 +23,14 @@ int client(int argc, char *argv[]);
 
 int server(int argc, char *argv[])
 {
-  msg_task_t task1;
-  long val1;
-  msg_comm_t comm1, comm2;
+  msg_task_t task1,task2;
 
-  comm1 = MSG_task_irecv(&task1, "mymailbox1");
-  comm2 = MSG_task_irecv(&task1, "mymailbox2");
+  msg_comm_t comm1 = MSG_task_irecv(&task1, "mymailbox1");
+  msg_comm_t comm2 = MSG_task_irecv(&task2, "mymailbox2");
   MSG_comm_wait(comm1, -1);
   MSG_comm_wait(comm2, -1);
 
-  val1 = (long) MSG_task_get_data(task1);
+  long val1 = xbt_str_parse_int(MSG_task_get_name(task1), "Task name is not a numerical ID: %s");
   XBT_INFO("Received %lu", val1);
 
   MC_assert(val1 == 2);
@@ -43,15 +41,12 @@ int server(int argc, char *argv[])
 
 int client(int argc, char *argv[])
 {
-  msg_comm_t comm;
-  char *mbox;
-  msg_task_t task1 =
-      MSG_task_create("task", 0, 10000, (void *) atol(argv[1]));
+  msg_task_t task1 = MSG_task_create(argv[1], 0, 10000, NULL);
 
-  mbox = bprintf("mymailbox%s", argv[1]);
+  char *mbox = bprintf("mymailbox%s", argv[1]);
 
-  XBT_INFO("Send %d!", atoi(argv[1]));
-  comm = MSG_task_isend(task1, mbox);
+  XBT_INFO("Send %s!", argv[1]);
+  msg_comm_t comm = MSG_task_isend(task1, mbox);
   MSG_comm_wait(comm, -1);
 
   xbt_free(mbox);
@@ -66,9 +61,7 @@ int main(int argc, char *argv[])
   MSG_create_environment("platform.xml");
 
   MSG_function_register("server", server);
-
   MSG_function_register("client", client);
-
   MSG_launch_application("deploy_bugged3.xml");
 
   MSG_main();
index 8985aca..1e99f4d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="HostA" function="server">
     <argument value="0"/>
   </process>
index f38ea85..ad87a48 100644 (file)
@@ -1,9 +1,6 @@
 <?xml version='1.0'?>
-
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="coordinator" />
 
   <process host="Boivin" function="client" >
@@ -13,5 +10,4 @@
   <process host="Fafard" function="client" >
     <argument value="2"/>
   </process>
-
 </platform>
index ca6bc8e..f8e8d9b 100644 (file)
@@ -1,9 +1,6 @@
 <?xml version='1.0'?>
-
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="coordinator" />
 
    <process host="Boivin" function="client" >
@@ -13,5 +10,4 @@
   <process host="Fafard" function="client" >
     <argument value="1"/>
   </process>
-
 </platform>
index 3fd4d5a..56a0e7e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="HostA" function="server">
     <argument value="0"/>
   </process>
index b932a9c..547229c 100644 (file)
@@ -1,9 +1,6 @@
 <?xml version='1.0'?>
-
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="coordinator" />
 
   <process host="Fafard" function="client" >
@@ -13,5 +10,4 @@
   <process host="Boivin" function="client" >
     <argument value="2"/>
   </process>
-
 </platform>
index 3fd4d5a..56a0e7e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="HostA" function="server">
     <argument value="0"/>
   </process>
index 3fd4d5a..56a0e7e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="HostA" function="server">
     <argument value="0"/>
   </process>
index 68c3234..2ef4cd1 100644 (file)
@@ -1,39 +1,22 @@
 <?xml version='1.0'?>
-
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="coordinator" />
 
   <process host="Fafard" function="client" />
-
   <process host="Boivin" function="client" />
-
   <process host="TeX" function="client" />
-
   <process host="Geoff" function="client" />
-  
+
   <!-- <process host="Disney" function="client" />
-    
   <process host="iRMX" function="client" />
-      
   <process host="McGee" function="client" />
-
   <process host="Gatien" function="client" />
-    
   <process host="Laroche" function="client" />
-      
   <process host="Tanguay" function="client" />
-
   <process host="Morin" function="client" />
-
   <process host="Ethernet" function="client" />
-
   <process host="Bellemarre" function="client" />
-
   <process host="Kuenning" function="client" />
-  
   <process host="Gaston" function="client" /> -->
-
 </platform>
index 00e89c1..b86fb71 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
  <AS  id="AS0"  routing="Full">
-   <host id="HostA" power="137.333Mf"/>
-   <host id="HostB" power="98.095Mf"/>
-   <host id="HostC" power="98.095Mf"/>
-   <host id="HostD" power="98.095Mf"/>
+   <host id="HostA" speed="137.333Mf"/>
+   <host id="HostB" speed="98.095Mf"/>
+   <host id="HostC" speed="98.095Mf"/>
+   <host id="HostD" speed="98.095Mf"/>
    <link id="1" bandwidth="3.430125MBps" latency="536.941us"/>
    <link id="2" bandwidth="3.430125MBps" latency="536.941us"/>
    <link id="3" bandwidth="3.430125MBps" latency="536.941us"/>
@@ -14,4 +14,3 @@
    <route src="HostA" dst="HostD"><link_ctn id="3"/></route>
  </AS>
  </platform>
index 7c03627..ea96ff4 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(migration migration.c)
-
-### Add definitions for compile
 target_link_libraries(migration simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/migration.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/migration.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/migration.deploy
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8a6bd75..9a6bd21 100644 (file)
@@ -77,8 +77,8 @@ int main(int argc, char *argv[])
   /* Argument checking */
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
+            argv[0], argv[0]);
 
   /* Simulation setting */
   MSG_create_environment(argv[1]);
index 272bbaf..3ccb8d1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="emigrant"/>
   <process host="Boivin" function="policeman"/>
 </platform>
index 7800ec9..915c5c8 100644 (file)
@@ -1,15 +1,12 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="master">
       <argument value="100"/>
       <argument value="Jupiter"/>
       <argument value="1"/>
   </process>
-
   <process host="Jupiter" function="slave">
     <argument value="1"/>
   </process>
-
 </platform>
index 4f9d4f4..ee686fd 100644 (file)
@@ -1,52 +1,42 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="master">
       <argument value="100000"/>
       <argument value="Jupiter"/>
       <argument value="1"/>
   </process>
-
   <process host="Jupiter" function="slave">
     <argument value="1"/>
   </process>
-
   <process host="Fafard" function="master">
       <argument value="1000000"/>
       <argument value="Ginette"/>
       <argument value="2"/>
   </process>
-
   <process host="Ginette" function="slave">
     <argument value="2"/>
   </process>
-
   <process host="Bourassa" function="master">
       <argument value="2000000"/>
       <argument value="Lovelace"/>
       <argument value="3"/>
   </process>
-
   <process host="Lovelace" function="slave">
     <argument value="3"/>
   </process>
-
   <process host="Bourassa" function="master" start_time="2.0">
       <argument value="2000000"/>
       <argument value="Lovelace"/>
       <argument value="4"/>
   </process>
-
   <process host="Lovelace" function="slave">
     <argument value="4"/>
   </process>
-
   <process host="Lovelace" function="timer">
     <argument value="0"/>
     <argument value=".1"/>
   </process>
-
   <process host="Lovelace" function="timer" start_time="2.0">
     <argument value="0"/>
     <argument value=".1"/>
index c01e48e..41da034 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Tremblay" function="master">
       <argument value="100000"/>
       <argument value="Jupiter"/>
@@ -10,7 +9,6 @@
   <process host="Jupiter" function="slave">
     <argument value="1"/>
   </process>
-
   <process host="Fafard" function="master">
       <argument value="1000000"/>
       <argument value="Ginette"/>
@@ -19,7 +17,6 @@
   <process host="Ginette" function="slave">
     <argument value="2"/>
   </process>
-
   <process host="Bourassa" function="master">
       <argument value="2000000"/>
       <argument value="Lovelace"/>
index 32ae25e..fd2349b 100644 (file)
@@ -1,17 +1,13 @@
 if(HAVE_NS3)
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
   add_executable(ns3 "ns3.c")
-
-  ### Add definitions for compile
   target_link_libraries(ns3 simgrid )
 endif()
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/ns3.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/3hosts_2links_d.xml
@@ -20,18 +16,8 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/dogbone-d.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/One_cluster-d.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/Two_clusters-d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/ns3.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d59e88a..98102d2 100644 (file)
@@ -1,15 +1,12 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="node-2.acme.org" function="master">
       <argument value="100"/>
       <argument value="node-6.acme.org"/>
       <argument value="1"/>
   </process>
-
   <process host="node-6.acme.org" function="slave">
     <argument value="1"/>
   </process>
-     
 </platform>
index 5132ff1..81d1aef 100644 (file)
@@ -1,15 +1,12 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
-  <process host="node3.acme.org" function="master">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="node-3.acme.org" function="master">
       <argument value="100"/>
-      <argument value="node3.acme.org"/>
+      <argument value="node-16.acme.org"/>
       <argument value="1"/>
   </process>
-
-  <process host="node16.acme.org" function="slave">
+  <process host="node-16.acme.org" function="slave">
     <argument value="1"/>
   </process>
-     
 </platform>
index 6ccc284..0b49525 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
   <process host="S1" function="master">
       <argument value="20000000"/>
index 2338f16..42fa9d1 100644 (file)
@@ -56,34 +56,26 @@ int count_finished = 0;
 /** master */
 int master(int argc, char *argv[])
 {
-  char *slavename = NULL;
-  double task_comm_size = 0;
   msg_task_t todo;
-  char id_alias[10];
-  //unique id to control statistics
-  int id = -1;
 
   xbt_assert(argc==4,"Strange number of arguments expected 3 got %d", argc - 1);
 
   XBT_DEBUG ("Master started");
 
   /* data size */
-  int read;
-  read = sscanf(argv[1], "%lg", &task_comm_size);
-  xbt_assert(read, "Invalid argument %s\n", argv[1]);
+  double task_comm_size = xbt_str_parse_double(argv[1], "Invalid task communication size: %s");
 
   /* slave name */
-  slavename = argv[2];
-  id = atoi(argv[3]);
-  sprintf(id_alias, "flow_%d", id);
+  char *slavename = argv[2];
+  int id = xbt_str_parse_int(argv[3], "Invalid ID as argument 3: %s");   //unique id to control statistics
+  char *id_alias = bprintf("flow_%d", id);
   slavenames[id] = slavename;
   TRACE_category(id_alias);
 
   masternames[id] = MSG_host_get_name(MSG_host_self());
 
   {                             /*  Task creation.  */
-    char sprintf_buffer[64] = "Task_0";
-    todo = MSG_task_create(sprintf_buffer, 100*task_comm_size, task_comm_size, NULL);
+    todo = MSG_task_create("Task_0", 100*task_comm_size, task_comm_size, NULL);
     MSG_task_set_category(todo, id_alias);
     //keep track of running tasks
     gl_task_array[id] = todo;
@@ -91,7 +83,7 @@ int master(int argc, char *argv[])
   }
 
   {                             /* Process organization */
-    MSG_get_host_by_name(slavename);
+    MSG_host_by_name(slavename);
   }
 
   count_finished++;
@@ -100,11 +92,11 @@ int master(int argc, char *argv[])
   /* time measurement */
   sprintf(id_alias, "%d", id);
   start_time = MSG_get_clock();
-  //MSG_task_execute(todo);
   MSG_task_send(todo, id_alias);
   end_time = MSG_get_clock();
 
   XBT_DEBUG ("Finished");
+  xbt_free(id_alias);
   return 0;
 }                               /* end_of_master */
 
@@ -148,7 +140,7 @@ int slave(int argc, char *argv[])
 
   XBT_DEBUG ("Slave started");
 
-  id = atoi(argv[1]);
+  id = xbt_str_parse_int(argv[1], "Invalid id: %s");
   sprintf(id_alias, "%d", id);
 
   a = MSG_task_receive(&(task), id_alias);
@@ -210,8 +202,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s platform.xml deployment.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s platform.xml deployment.xml\n", 
+            argv[0], argv[0]);
    
 
   res = test_all(argv[1], argv[2]);
index 06aea56..d6da7fe 100644 (file)
@@ -1,26 +1,24 @@
 #! ./tesh
 
-p In the NS3 tests, the timings are not shown because the exact values
-p may vary with your NS3 version. We just want to check that the NS3
-p bindings of SimGrid are working correctly, we don't want to
-p throughoutly test NS3.
+p In the NS3 tests, the timings are not shown because the exact values may vary with your NS3 version. 
+p We just want to check that the NS3 bindings of SimGrid are working correctly, we don't want to throughoutly test NS3.
 
 p 3hosts 2links
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3hosts_2links_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
-> [:(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
+> [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from Tremblay to Jupiter
 
 p 6hosts 3links
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3links-d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
-> [:(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
+> [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
 > [Ginette:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
 > [Lovelace:slave(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3links-d-timer.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
-> [:(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
+> [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
 > [Ginette:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
 > [Lovelace:slave(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
@@ -29,11 +27,11 @@ $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${s
 p One cluster
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/ns3/One_cluster-d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
-> [:(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
+> [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [node-6.acme.org:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-2.acme.org to node-6.acme.org
 
 p Two clusters
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/clusters_routing_full.xml ${srcdir:=.}/examples/msg/ns3/Two_clusters-d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
-> [:(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [node16.acme.org:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node3.acme.org to node16.acme.org
+> [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
+> [node-16.acme.org:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-3.acme.org to node-16.acme.org
index 5d7e81a..d993ee4 100644 (file)
@@ -1,33 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(parallel_task parallel_task.c)
-add_executable(test_ptask test_ptask.c)
-
-### Add definitions for compile
 target_link_libraries(parallel_task simgrid )
-target_link_libraries(test_ptask simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/parallel_task.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/test_ptask_deployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/parallel_task.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/test_ptask.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 51a5b23..13866dd 100644 (file)
@@ -24,80 +24,73 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
  *   to mix interfaces, but it's not possible ATM).
  */
 
-int test(int argc, char *argv[]);
-msg_error_t test_all(const char *platform_file);
 
-/** Emitter function  */
-int test(int argc, char *argv[])
+/** Function in charge of running the example (that's a simgrid process) */
+static int runner(int argc, char *argv[])
 {
-  xbt_dynar_t slaves_dynar;
-  int slaves_count = 0;
-  msg_host_t *slaves = NULL;
-  double task_comp_size = 100000;
-  double task_comm_size = 10000;
-  double *computation_amount = NULL;
-  double *communication_amount = NULL;
-  msg_task_t ptask = NULL;
   int i, j;
 
-  slaves_dynar = MSG_hosts_as_dynar();
-  slaves_count = xbt_dynar_length(slaves_dynar);
-  slaves = xbt_dynar_to_array(slaves_dynar);
+  /* Retrieve the list of all hosts as an array of hosts */
+  xbt_dynar_t slaves_dynar = MSG_hosts_as_dynar();
+  int slaves_count = xbt_dynar_length(slaves_dynar);
+  msg_host_t *slaves = xbt_dynar_to_array(slaves_dynar);
 
-  computation_amount = xbt_new0(double, slaves_count);
-  communication_amount = xbt_new0(double, slaves_count * slaves_count);
+  XBT_INFO("First, build a classical parallel task, with 1 Gflop to execute on each node, and 10MB to exchange between each pair");
+  double *computation_amounts = xbt_new0(double, slaves_count);
+  double *communication_amounts = xbt_new0(double, slaves_count * slaves_count);
 
   for (i = 0; i < slaves_count; i++)
-    computation_amount[i] = task_comp_size;
+    computation_amounts[i] = 1e9; // 1 Gflop
 
   for (i = 0; i < slaves_count; i++)
     for (j = i + 1; j < slaves_count; j++)
-      communication_amount[i * slaves_count + j] = task_comm_size;
+      communication_amounts[i * slaves_count + j] = 1e7; // 10 MB
 
-  ptask = MSG_parallel_task_create("parallel task",
-                                   slaves_count, slaves,
-                                   computation_amount,
-                                   communication_amount, NULL);
+  msg_task_t ptask = MSG_parallel_task_create("parallel task",
+      slaves_count, slaves, computation_amounts, communication_amounts, NULL /* no specific data to attach */);
   MSG_parallel_task_execute(ptask);
+  MSG_task_destroy(ptask);
+  /* The arrays communication_amounts and computation_amounts are not to be freed manually */
+
+  XBT_INFO("Then, build a parallel task involving only computations and no communication (1 Gflop per node)");
+  computation_amounts = xbt_new0(double, slaves_count);
+  for (i = 0; i < slaves_count; i++)
+    computation_amounts[i] = 1e9; // 1 Gflop
+  ptask = MSG_parallel_task_create("parallel exec", slaves_count, slaves, computation_amounts, NULL/* no comm */, NULL /* no data */);
+  MSG_parallel_task_execute(ptask);
+  MSG_task_destroy(ptask);
 
+  XBT_INFO("Finally, trick the ptask to do a 'remote execution', on host %s", MSG_host_get_name(slaves[1]));
+  computation_amounts = xbt_new0(double, 1);
+  computation_amounts[0] = 1e9; // 1 Gflop
+  msg_host_t *remote = xbt_new(msg_host_t,1);
+  remote[0] = slaves[1];
+  ptask = MSG_parallel_task_create("remote exec", 1, remote, computation_amounts, NULL/* no comm */, NULL /* no data */);
+  MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
-  /* There is no need to free that! */
-/*   free(communication_amount); */
-/*   free(computation_amount); */
+  free(remote);
 
   XBT_INFO("Goodbye now!");
   free(slaves);
   return 0;
 }
 
-/** Test function */
-msg_error_t test_all(const char *platform_file)
+int main(int argc, char *argv[])
 {
-  msg_error_t res = MSG_OK;
-  xbt_dynar_t all_hosts;
-  msg_host_t first_host;
-
+  MSG_init(&argc, argv);
   MSG_config("host/model", "ptask_L07");
-  MSG_create_environment(platform_file);
-
-  all_hosts = MSG_hosts_as_dynar();
-  first_host = xbt_dynar_getfirst_as(all_hosts,msg_host_t);
-  MSG_process_create("test", test, NULL, first_host);
-  res = MSG_main();
-  xbt_dynar_free(&all_hosts);
 
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return res;
-}
+  xbt_assert(argc > 1, "Usage: %s <platform file>", argv[0]);
+  MSG_create_environment(argv[1]);
 
-int main(int argc, char *argv[])
-{
-  msg_error_t res = MSG_OK;
+  /* Pick a process, no matter which, from the platform file */
+  xbt_dynar_t all_hosts = MSG_hosts_as_dynar();
+  msg_host_t first_host = xbt_dynar_getfirst_as(all_hosts,msg_host_t);
+  xbt_dynar_free(&all_hosts);
 
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 1, "Usage: %s platform_file\n"
-            "\tExample: %s msg_platform.xml", argv[0], argv[0]);
-  res = test_all(argv[1]);
+  MSG_process_create("test", runner, NULL, first_host);
+  msg_error_t res = MSG_main();
+  XBT_INFO("Simulation done.");
 
   return res != MSG_OK;
 }
index a5078fa..1f60947 100644 (file)
@@ -1,16 +1,9 @@
 #! ./tesh
 
-p Testing a simple master/slave example application
-
-! output sort 19
 $ $SG_TEST_EXENV parallel_task/parallel_task$EXEEXT ${srcdir:=.}/../platforms/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks.
-> [  0.009378] (1:test@Fafard) Goodbye now!
-> [  0.009378] (0:maestro@) Simulation time 0.00937836
-
-! output sort 19
-$ $SG_TEST_EXENV parallel_task/test_ptask$EXEEXT ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/parallel_task/test_ptask_deployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks.
-> [ 20.625396] (1:execute@Ginette) execution_time=20.6254 
-> [ 83.232398] (2:redistribute@Ginette) redistribution_time=83.2324 
-> [ 83.232398] (0:maestro@) Simulation time 83.2324
+> [  0.000000] (1:test@Fafard) First, build a classical parallel task, with 1 Gflop to execute on each node, and 10MB to exchange between each pair
+> [ 20.625396] (1:test@Fafard) Then, build a parallel task involving only computations and no communication (1 Gflop per node)
+> [ 41.247354] (1:test@Fafard) Finally, trick the ptask to do a 'remote execution', on host Tremblay
+> [ 51.441554] (1:test@Fafard) Goodbye now!
+> [ 51.441554] (0:maestro@) Simulation done.
diff --git a/examples/msg/parallel_task/test_ptask.c b/examples/msg/parallel_task/test_ptask.c
deleted file mode 100644 (file)
index 245990e..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (c) 2008-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc, printf */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
-
-int execute(int argc, char *argv[]);
-int redistribute(int argc, char *argv[]);
-msg_error_t test_all(const char *platform_file,
-                     const char *application_file);
-
-
-int execute(int argc, char *argv[])
-{
-  char buffer[32];
-  int i, j;
-  msg_host_t *m_host_list = NULL;
-  msg_task_t task = NULL;
-  int host_list_size;
-  double *computation_duration = NULL;
-  double *communication_table = NULL;
-  double communication_amount = 0;
-  double computation_amount = 0;
-  double execution_time;
-
-
-  host_list_size = argc - 3;
-  XBT_DEBUG("host_list_size=%d", host_list_size);
-  m_host_list = calloc(host_list_size, sizeof(msg_host_t));
-  for (i = 1; i <= host_list_size; i++) {
-    m_host_list[i - 1] = MSG_host_by_name(argv[i]);
-    xbt_assert(m_host_list[i - 1] != NULL,
-                "Unknown host %s. Stopping Now! ", argv[i]);
-  }
-
-  XBT_ATTRIB_UNUSED int read;
-  read = sscanf(argv[argc - 2], "%lg", &computation_amount);
-  xbt_assert(read, "Invalid argument %s\n", argv[argc - 2]);
-  read = sscanf(argv[argc - 1], "%lg", &communication_amount);
-  xbt_assert(read, "Invalid argument %s\n", argv[argc - 1]);
-  computation_duration = (double *) calloc(host_list_size, sizeof(double));
-  communication_table =
-      (double *) calloc(host_list_size * host_list_size, sizeof(double));
-  for (i = 0; i < host_list_size; i++) {
-    computation_duration[i] = computation_amount / host_list_size;
-    for (j = 0; j < host_list_size; j++)
-      communication_table[i * host_list_size + j] =
-          communication_amount / (host_list_size * host_list_size);
-  }
-
-  sprintf(buffer, "redist#0\n");
-  task = MSG_parallel_task_create(buffer,
-                                  host_list_size,
-                                  m_host_list,
-                                  computation_duration,
-                                  communication_table, NULL);
-
-  execution_time = MSG_get_clock();
-  MSG_parallel_task_execute(task);
-  MSG_task_destroy(task);
-  xbt_free(m_host_list);
-  execution_time = MSG_get_clock() - execution_time;
-
-  XBT_INFO("execution_time=%g ", execution_time);
-
-  return 0;
-}
-
-
-int redistribute(int argc, char *argv[])
-{
-  char buffer[32];
-  int i, j;
-  msg_host_t *m_host_list = NULL;
-  msg_task_t task = NULL;
-  int host_list_size;
-  double *computation_duration = NULL;
-  double *communication_table = NULL;
-  double communication_amount = 0;
-  double redistribution_time;
-
-
-  host_list_size = argc - 2;
-  XBT_DEBUG("host_list_size=%d", host_list_size);
-  m_host_list = calloc(host_list_size, sizeof(msg_host_t));
-  for (i = 1; i <= host_list_size; i++) {
-    m_host_list[i - 1] = MSG_host_by_name(argv[i]);
-    xbt_assert(m_host_list[i - 1] != NULL,
-                "Unknown host %s. Stopping Now! ", argv[i]);
-  }
-
-  XBT_ATTRIB_UNUSED int read;
-  read = sscanf(argv[argc - 1], "%lg", &communication_amount);
-  xbt_assert(read, "Invalid argument %s\n", argv[argc - 1]);
-  computation_duration = (double *) calloc(host_list_size, sizeof(double));
-  communication_table =
-      (double *) calloc(host_list_size * host_list_size, sizeof(double));
-  for (i = 0; i < host_list_size; i++) {
-    for (j = 0; j < host_list_size; j++)
-      communication_table[i * host_list_size + j] =
-          communication_amount / (host_list_size * host_list_size);
-  }
-
-  sprintf(buffer, "redist#0\n");
-  task = MSG_parallel_task_create(buffer,
-                                  host_list_size,
-                                  m_host_list,
-                                  computation_duration,
-                                  communication_table, NULL);
-
-  redistribution_time = MSG_get_clock();
-  MSG_parallel_task_execute(task);
-  MSG_task_destroy(task);
-  xbt_free(m_host_list);
-  redistribution_time = MSG_get_clock() - redistribution_time;
-
-  XBT_INFO("redistribution_time=%g ", redistribution_time);
-
-  return 0;
-}
-
-
-msg_error_t test_all(const char *platform_file,
-                     const char *application_file)
-{
-  msg_error_t res = MSG_OK;
-
-
-  MSG_config("host/model", "ptask_L07");
-
-  /*  Simulation setting */
-  MSG_create_environment(platform_file);
-
-  /*   Application deployment */
-  MSG_function_register("execute", execute);
-  MSG_function_register("redistribute", redistribute);
-  MSG_launch_application(application_file);
-
-  res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return res;
-}
-
-
-int main(int argc, char *argv[])
-{
-  msg_error_t res = MSG_OK;
-
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-            argv[0], argv[0]);
-
-  res = test_all(argv[1], argv[2]);
-
-  return res != MSG_OK;
-}
diff --git a/examples/msg/parallel_task/test_ptask_deployment.xml b/examples/msg/parallel_task/test_ptask_deployment.xml
deleted file mode 100644 (file)
index 4e3c7d2..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Ginette" function="execute">
-     <argument value="Tremblay"/>
-     <argument value="Jupiter"/>
-     <argument value="Fafard"/> 
-     <argument value="Ginette"/>
-     <argument value="4e9"/>
-     <argument value="16e4"/>
-  </process>
-  <process host="Ginette" function="redistribute">
-    <argument value="Tremblay"/>
-    <argument value="Jupiter"/>
-    <argument value="Fafard"/> 
-    <argument value="Ginette"/>
-    <argument value="16e8"/>
-  </process>
-</platform>
index bb90ae5..b071ef5 100644 (file)
@@ -1,31 +1,18 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(pastry pastry.c)
-
-### Add definitions for compile
 target_link_libraries(pastry simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pastry.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/pastry_crosstraffic.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pastry10.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/pastry.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 131e8e7..37d443c 100644 (file)
@@ -141,11 +141,11 @@ static int closest_in_namespace_set(node_t node, int dest) {
     int i, dist;
     for (i=0; i<NAMESPACE_SIZE; i++) {
       if (node->namespace_set[i]!=-1) {
-       dist = abs(node->namespace_set[i] - dest);
-       if (dist<best_dist) {
-         best_dist = dist;
-          res = node->namespace_set[i];          
-       }
+  dist = abs(node->namespace_set[i] - dest);
+  if (dist<best_dist) {
+    best_dist = dist;
+          res = node->namespace_set[i];    
+  }
       }
     }
   }
@@ -226,7 +226,7 @@ static void handle_task(node_t node, msg_task_t task) {
       if (next!=node->id) {
         get_mailbox(next, mailbox);
         task_data->sender_id = node->id;
-       task_data->steps++;
+  task_data->steps++;
         task_sent = MSG_task_create(NULL, COMP_SIZE, COMM_SIZE, task_data);
         MSG_task_send_with_timeout(task_sent, mailbox, timeout);
         type = TASK_JOIN_REPLY;
@@ -259,7 +259,7 @@ static void handle_task(node_t node, msg_task_t task) {
 
       // if first node touched reply, copy its neighborood set
       if (task_data->sender_id == node->known_id) {
-       node->neighborhood_set[0] = task_data->sender_id;
+  node->neighborhood_set[0] = task_data->sender_id;
         for (i=1; i<NEIGHBORHOOD_SIZE; i++)
             node->neighborhood_set[i] = task_data->state->neighborhood_set[i-1]; 
       }
@@ -270,7 +270,7 @@ static void handle_task(node_t node, msg_task_t task) {
       for (i=min;i<max;i++) {
         d = domain(node->id, i); 
         for (j=0; j<LEVEL_SIZE; j++)
-         if (d!=j)
+    if (d!=j)
             node->routing_table[i][j] =  task_data->state->routing_table[i][j];
       }
 
@@ -280,15 +280,15 @@ static void handle_task(node_t node, msg_task_t task) {
         XBT_DEBUG("Node %i is ready!!!", node->id);
 
         while(xbt_fifo_size(node->pending_tasks))
-         handle_task(node, xbt_fifo_pop(node->pending_tasks));
+    handle_task(node, xbt_fifo_pop(node->pending_tasks));
 
-       for (i=0; i<NAMESPACE_SIZE; i++) {
+  for (i=0; i<NAMESPACE_SIZE; i++) {
           j = node->namespace_set[i];
           if (j!=-1) {
             XBT_DEBUG("Send update to %i", j);
             get_mailbox(j, mailbox);
-           
-           req_data = xbt_new0(s_task_data_t,1);
+      
+      req_data = xbt_new0(s_task_data_t,1);
             req_data->answer_id = node->id;
             req_data->steps = 0;
             req_data->type = TASK_UPDATE;
@@ -320,65 +320,65 @@ static void handle_task(node_t node, msg_task_t task) {
       i=0;
       for (; i<NAMESPACE_SIZE/2; i++){
         curr_namespace_set[i] = node->namespace_set[i];
-       task_namespace_set[i] = task_data->state->namespace_set[i];
+  task_namespace_set[i] = task_data->state->namespace_set[i];
       }
       task_namespace_set[i] = task_data->state->id;
       for (; i<NAMESPACE_SIZE; i++){
-        curr_namespace_set[i] = node->namespace_set[i];        
-       task_namespace_set[i+1] = task_data->state->namespace_set[i];   
+        curr_namespace_set[i] = node->namespace_set[i];  
+  task_namespace_set[i+1] = task_data->state->namespace_set[i];  
       }
 
       // get the index of values before and after node->id in task_namespace
       min = -1;
       max = -1;
       for (i=0; i<=NAMESPACE_SIZE; i++) {
-       j = task_namespace_set[i];
+  j = task_namespace_set[i];
         if (i<NAMESPACE_SIZE)
-         printf("%08x %08x | ", j, curr_namespace_set[i]);
-       if (j != -1 && j < node->id) min = i;
-       if (j != -1 && max == -1 && j > node->id) max = i;
+    printf("%08x %08x | ", j, curr_namespace_set[i]);
+  if (j != -1 && j < node->id) min = i;
+  if (j != -1 && max == -1 && j > node->id) max = i;
       }
       printf("\n");
 
       // add lower elements
       j = NAMESPACE_SIZE/2-1;
       for (i=NAMESPACE_SIZE/2-1; i>=0; i--) {
-       printf("i:%i, j:%i, min:%i, currj:%08x, taskmin:%08x\n", i, j, min, curr_namespace_set[j], task_namespace_set[min]);
+  printf("i:%i, j:%i, min:%i, currj:%08x, taskmin:%08x\n", i, j, min, curr_namespace_set[j], task_namespace_set[min]);
         if (min<0) {
-         node->namespace_set[i] = curr_namespace_set[j];
-         j--; 
-       } else if (curr_namespace_set[j] == task_namespace_set[min]) {
-         node->namespace_set[i] = curr_namespace_set[j];
-         j--; min--;
-       } else if (curr_namespace_set[j] > task_namespace_set[min]) {
+    node->namespace_set[i] = curr_namespace_set[j];
+    j--; 
+  } else if (curr_namespace_set[j] == task_namespace_set[min]) {
+    node->namespace_set[i] = curr_namespace_set[j];
+    j--; min--;
+  } else if (curr_namespace_set[j] > task_namespace_set[min]) {
           node->namespace_set[i] = curr_namespace_set[j];
-         j--;
-       } else {
+    j--;
+  } else {
           node->namespace_set[i] = task_namespace_set[min];
-         min--;
-       }
+    min--;
+  }
       }
 
       // add greater elements
       j = NAMESPACE_SIZE/2;
       for (i=NAMESPACE_SIZE/2; i<NAMESPACE_SIZE; i++) {
-       printf("i:%i, j:%i, max:%i, currj:%08x, taskmax:%08x\n", i, j, max, curr_namespace_set[j], task_namespace_set[max]);          
+  printf("i:%i, j:%i, max:%i, currj:%08x, taskmax:%08x\n", i, j, max, curr_namespace_set[j], task_namespace_set[max]);        
         if (min<0 || max>=NAMESPACE_SIZE) {
-         node->namespace_set[i] = curr_namespace_set[j];
-         j++;
-       } else if (curr_namespace_set[j] == -1) {
-         node->namespace_set[i] = task_namespace_set[max];
-         max++;
-       } else if (curr_namespace_set[j] == task_namespace_set[max]) {
-         node->namespace_set[i] = curr_namespace_set[j];
-         j++; max++;
-       } else if (curr_namespace_set[j] < task_namespace_set[max]) {
+    node->namespace_set[i] = curr_namespace_set[j];
+    j++;
+  } else if (curr_namespace_set[j] == -1) {
+    node->namespace_set[i] = task_namespace_set[max];
+    max++;
+  } else if (curr_namespace_set[j] == task_namespace_set[max]) {
+    node->namespace_set[i] = curr_namespace_set[j];
+    j++; max++;
+  } else if (curr_namespace_set[j] < task_namespace_set[max]) {
           node->namespace_set[i] = curr_namespace_set[j];
-         j++;
-       } else {
+    j++;
+  } else {
           node->namespace_set[i] = task_namespace_set[max];
-         max++;
-       }
+    max++;
+  }
       }
       print_node_namespace_set(node);
 
@@ -389,7 +389,7 @@ static void handle_task(node_t node, msg_task_t task) {
             node->routing_table[i][j] = task_data->state->routing_table[i][j];
         }
       }
-  }               
+  }         
 }
 
 /**
@@ -437,7 +437,7 @@ static void print_node(node_t node) {
  * Print the node id
  */
 static void print_node_id(node_t node) {
-  int i;       
+  int i;  
   printf(" id: %i '%08x' ", node->id, node->id);
   for (i=0;i<LEVELS_COUNT;i++)
     printf(" %x", domain(node->id, i));
@@ -448,7 +448,7 @@ static void print_node_id(node_t node) {
  * Print the node neighborood set
  */
 static void print_node_neighborood_set(node_t node) {
-  int i;       
+  int i;  
   printf(" neighborood:\n");
   for (i=0; i<NEIGHBORHOOD_SIZE; i++)
     printf("  %08x\n", node->neighborhood_set[i]);
@@ -458,7 +458,7 @@ static void print_node_neighborood_set(node_t node) {
  * Print the routing table
  */
 static void print_node_routing_table(node_t node) {
-  int i,j;     
+  int i,j;  
   printf(" routing table:\n");
   for (i=0; i<LEVELS_COUNT; i++){
     printf("  ");
@@ -484,7 +484,7 @@ static void print_node_namespace_set(node_t node) {
  * Get the corresponding state of a node
  */
 static state_t node_get_state(node_t node) {
-  int i,j;     
+  int i,j;  
   state_t state = xbt_new0(s_state_t,1);
   state->id = node->id;
   for (i=0; i<NEIGHBORHOOD_SIZE; i++)
@@ -517,7 +517,7 @@ static int node(int argc, char *argv[])
   double deadline;
   xbt_assert(argc == 3 || argc == 5, "Wrong number of arguments for this node");
   s_node_t node = {0};
-  node.id = atoi(argv[1]);
+  node.id = xbt_str_parse_int(argv[1], "Invalid ID: %s");
   node.known_id = -1;
   node.ready = -1;
   node.pending_tasks = xbt_fifo_new();
@@ -539,14 +539,14 @@ static int node(int argc, char *argv[])
 
   if (argc == 3) { // first ring
     XBT_DEBUG("Hey! Let's create the system.");
-    deadline = atof(argv[2]);
+    deadline = xbt_str_parse_double(argv[2], "Invalid deadline: %s");
     create(&node);
     join_success = 1;
   }
   else {
-    node.known_id = atoi(argv[2]);
-    double sleep_time = atof(argv[3]);
-    deadline = atof(argv[4]);
+    node.known_id = xbt_str_parse_int(argv[2], "Invalid known ID: %s");
+    double sleep_time = xbt_str_parse_double(argv[3], "Invalid sleep time: %s");
+    deadline = xbt_str_parse_double(argv[4], "Invalid deadline: %s");
 
     // sleep before starting
     XBT_DEBUG("Let's sleep during %f", sleep_time);
@@ -614,23 +614,23 @@ int main(int argc, char *argv[])
 {
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, 
-            "Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n"
-            "\tExample: %s ../msg_platform.xml pastry10.xml\n", 
-            argv[0], argv[0]);
+       "Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n"
+       "\tExample: %s ../msg_platform.xml pastry10.xml\n", 
+       argv[0], argv[0]);
   
   char **options = &argv[1];
   while (!strncmp(options[0], "-", 1)) {
 
     int length = strlen("-nb_bits=");
     if (!strncmp(options[0], "-nb_bits=", length) && strlen(options[0]) > length) {
-      nb_bits = atoi(options[0] + length);
+      nb_bits = xbt_str_parse_int(options[0] + length, "Invalid nb_bits parameter: %s");
       XBT_DEBUG("Set nb_bits to %d", nb_bits);
     }
     else {
 
       length = strlen("-timeout=");
       if (!strncmp(options[0], "-timeout=", length) && strlen(options[0]) > length) {
-        timeout = atoi(options[0] + length);
+        timeout = xbt_str_parse_int(options[0] + length, "Invalid timeout parameter: %s");
         XBT_DEBUG("Set timeout to %d", timeout);
       }
       else {
index 37c6edf..c81dba2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="c-0.me" function="node"><argument value="42"/><argument value="6000000"/></process>
   <process host="c-1.me" function="node"><argument value="366680" /><argument value="42" /><argument value="10" /><argument value="6000000" /></process>
   <process host="c-2.me" function="node"><argument value="533744" /><argument value="366680" /><argument value="20" /><argument value="6000000" /></process>
index c08ea02..c28e689 100644 (file)
@@ -1,29 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(msg_pmm     msg_pmm.c)
-
 target_link_libraries(msg_pmm simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pmm.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pmm_9_deploy.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/msg_pmm.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 530b15d..f1e02aa 100644 (file)
@@ -77,7 +77,7 @@ int node(int argc, char **argv)
   xbt_assert(argc != 1, "Wrong number of arguments for this node");
 
   /* Initialize the node's data-structures */
-  myid = atoi(argv[1]);
+  myid = xbt_str_parse_int(argv[1], "Invalid ID received as first node parameter: %s");
   snprintf(my_mbox, MAILBOX_NAME_SIZE - 1, "%d", myid);
   sC = xbt_matrix_double_new_zeros(NODE_MATRIX_SIZE, NODE_MATRIX_SIZE);
 
index 8782331..140d9f5 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="node-0.acme.org" function="node"><argument value="0"/></process>
   <process host="node-1.acme.org" function="node"><argument value="1"/></process>
   <process host="node-2.acme.org" function="node"><argument value="2"/></process>
index 38ccc18..298eeef 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(priority priority.c)
-
-### Add definitions for compile
 target_link_libraries(priority simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/priority.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_priority.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/priority.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5f60f5b..7a6c462 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3"><!-- For using with ping_pong, platform_sendrecv.xml -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- For using with ping_pong, platform_sendrecv.xml -->
 
   <process host="Fafard" function="test">
        <argument value="76296000"/>
index 6cc0b81..b184bf5 100644 (file)
@@ -75,8 +75,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
   
   res = test_all(argv[1], argv[2]);
 
index 07770b1..1c70616 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(msg_prop msg_prop.c)
-
-### Add definitions for compile
 target_link_libraries(msg_prop simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/msg_prop.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_properties.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/msg_prop.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index e601c08..6b86cf3 100644 (file)
@@ -1,14 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="host1" function="alice" />
-
-  <process host="host1" function="bob">
-    <prop id="SomeProp" value="SomeValue"/>
-  </process>
-  
+  <process host="host1" function="bob">       <prop id="SomeProp" value="SomeValue"/>   </process>
   <process host="host2" function="carole" />
-  
   <process host="host2" function="david" />
 </platform>
index 9417692..15d2ee0 100644 (file)
@@ -157,8 +157,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
  
    res = test_all(argv[1], argv[2]);
 
index 6cbdbb3..fd337d8 100644 (file)
@@ -1,28 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(synchro synchro.c)
-
-### Add definitions for compile
 target_link_libraries(synchro simgrid)
 
 set(tesh_files
   ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/synchro.tesh
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/synchro.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index aed1405..7fab442 100644 (file)
@@ -4,28 +4,24 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
 #include <stdlib.h>
 #include "simgrid/msg.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_semaphore_example,
-                             "Messages specific for this msg example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_semaphore_example, "Messages specific for this msg example");
 
 msg_sem_t sem;
 
 static int peer(int argc, char* argv[]){
-
   int i = 0; 
-  
   while(i < argc) {
-    double wait_time = atof(argv[i++]);
+    double wait_time = xbt_str_parse_double(argv[i++],"Invalid wait time: %s");
     MSG_process_sleep(wait_time);
     XBT_INFO("Trying to acquire %d", i);
     MSG_sem_acquire(sem);
     XBT_INFO("Acquired %d", i);
 
-    wait_time = atof(argv[i++]);
+    wait_time = xbt_str_parse_double(argv[i++], "Invalid wait time: %s");
     MSG_process_sleep(wait_time);
     XBT_INFO("Releasing %d", i);
     MSG_sem_release(sem);
@@ -37,11 +33,11 @@ static int peer(int argc, char* argv[]){
   return 0;
 }
 
-int main(int argc, char* argv[]) {
-
+int main(int argc, char* argv[])
+{
   MSG_init(&argc, argv);
   MSG_create_environment(argv[1]);
-  
+
   xbt_dynar_t hosts = MSG_hosts_as_dynar();
   msg_host_t h = xbt_dynar_get_as(hosts,0,msg_host_t);
 
@@ -69,14 +65,11 @@ int main(int argc, char* argv[]) {
   bobTimes[nbBob++] = xbt_strdup("0");
   bobTimes[nbBob++] = xbt_strdup("5");
   bobTimes[nbBob++] = NULL;
 
-  MSG_process_create_with_arguments(xbt_strdup("Alice"), peer, NULL, 
-                                   h, 8, aliceTimes);
-  MSG_process_create_with_arguments(xbt_strdup("Bob"), peer, NULL, 
-                                   h, 8, bobTimes);
+  MSG_process_create_with_arguments(xbt_strdup("Alice"), peer, NULL, h, 8, aliceTimes);
+  MSG_process_create_with_arguments(xbt_strdup("Bob"), peer, NULL, h, 8, bobTimes);
 
   msg_error_t res = MSG_main();
-  printf("Finished\n");
+  XBT_INFO("Finished\n");
   return (res != MSG_OK);
 }
diff --git a/examples/msg/semaphores/synchro.tesh b/examples/msg/semaphores/synchro.tesh
new file mode 100644 (file)
index 0000000..e157522
--- /dev/null
@@ -0,0 +1,41 @@
+#! ./tesh
+
+p Testing synchronization with semaphores
+
+! output sort 19
+$ $SG_TEST_EXENV semaphores/synchro ${srcdir:=.}/../platforms/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (1:Alice@Fafard) Trying to acquire 1
+> [  0.000000] (1:Alice@Fafard) Acquired 1
+> [  0.900000] (2:Bob@Fafard) Trying to acquire 1
+> [  1.000000] (1:Alice@Fafard) Releasing 2
+> [  1.000000] (2:Bob@Fafard) Acquired 1
+> [  1.000000] (1:Alice@Fafard) Released 2
+> [  2.000000] (2:Bob@Fafard) Releasing 2
+> [  2.000000] (2:Bob@Fafard) Released 2
+> [  3.000000] (2:Bob@Fafard) Trying to acquire 3
+> [  3.000000] (2:Bob@Fafard) Acquired 3
+> [  4.000000] (1:Alice@Fafard) Trying to acquire 3
+> [  5.000000] (2:Bob@Fafard) Releasing 4
+> [  5.000000] (1:Alice@Fafard) Acquired 3
+> [  5.000000] (2:Bob@Fafard) Released 4
+> [  7.000000] (2:Bob@Fafard) Trying to acquire 5
+> [ 10.000000] (1:Alice@Fafard) Releasing 4
+> [ 10.000000] (2:Bob@Fafard) Acquired 5
+> [ 10.000000] (1:Alice@Fafard) Released 4
+> [ 10.000000] (2:Bob@Fafard) Releasing 6
+> [ 10.000000] (2:Bob@Fafard) Released 6
+> [ 10.000000] (2:Bob@Fafard) Trying to acquire 7
+> [ 10.000000] (2:Bob@Fafard) Acquired 7
+> [ 11.000000] (1:Alice@Fafard) Trying to acquire 5
+> [ 15.000000] (2:Bob@Fafard) Releasing 8
+> [ 15.000000] (1:Alice@Fafard) Acquired 5
+> [ 15.000000] (2:Bob@Fafard) Released 8
+> [ 17.000000] (1:Alice@Fafard) Releasing 6
+> [ 17.000000] (1:Alice@Fafard) Released 6
+> [ 22.000000] (1:Alice@Fafard) Trying to acquire 7
+> [ 22.000000] (1:Alice@Fafard) Acquired 7
+> [ 22.000000] (1:Alice@Fafard) Releasing 8
+> [ 22.000000] (1:Alice@Fafard) Released 8
+> [ 65.000000] (2:Bob@Fafard) Done
+> [ 72.000000] (1:Alice@Fafard) Done
+> [ 72.000000] (0:maestro@) Finished
index fbfa614..2f225fc 100644 (file)
@@ -1,34 +1,34 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(sendrecv sendrecv.c)
+add_executable(sendrecv_main sendrecv_main.c)
 
 ### Add definitions for compile
 target_link_libraries(sendrecv simgrid )
+target_link_libraries(sendrecv_main simgrid )
 
 set(tesh_files
   ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_CLM03_main.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_CLM03.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_KCCFLN05.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_Reno.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_Vegas.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_sendrecv.xml
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/deployment_sendrecv_main.xml
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv.c
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_main.c
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 1db7ddb..5396198 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3"><!-- For using with ping_pong, platform_sendrecv.xml -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- For using with ping_pong, platform_sendrecv.xml -->
 
   <process host="Tremblay" function="sender">
        <argument value="Jupiter"/>
diff --git a/examples/msg/sendrecv/deployment_sendrecv_main.xml b/examples/msg/sendrecv/deployment_sendrecv_main.xml
new file mode 100644 (file)
index 0000000..5b53097
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4"><!-- For using with ping_pong, platform_sendrecv.xml -->
+  <process host="Jupiter" function="receiver"/>
+</platform>
index ca12844..fbff386 100644 (file)
@@ -156,7 +156,7 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
 
   res = test_all(argv[1], argv[2]);
 
diff --git a/examples/msg/sendrecv/sendrecv_CLM03_main.tesh b/examples/msg/sendrecv/sendrecv_CLM03_main.tesh
new file mode 100644 (file)
index 0000000..8cfd784
--- /dev/null
@@ -0,0 +1,21 @@
+#! ./tesh
+
+p Testing the deprecated CM02 network model
+
+! output sort 19
+$ $SG_TEST_EXENV sendrecv/sendrecv_main$EXEEXT ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/sendrecv/deployment_sendrecv_main.xml --cfg=cpu/model:Cas01 --cfg=network/model:CM02 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/model' to 'Cas01'
+> [  0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'CM02'
+> [  0.000000] (0:maestro@) test_all
+> [  0.000000] (1:sender@Tremblay) sender
+> [  0.000000] (1:sender@Tremblay) host = Jupiter
+> [  0.000000] (1:sender@Tremblay) task_la->data = 0.000000e+00
+> [  0.000000] (2:receiver@Jupiter) receiver
+> [  0.001462] (2:receiver@Jupiter) Task received : latency task
+> [  0.001462] (2:receiver@Jupiter) Communic. time 1.461656e-03
+> [  0.001462] (2:receiver@Jupiter) --- la 0.001462 ----
+> [  0.001462] (1:sender@Tremblay) task_bw->data = 1.461656e-03
+> [138.703988] (2:receiver@Jupiter) Task received : bandwidth task
+> [138.703988] (2:receiver@Jupiter) Communic. time 1.387025e+02
+> [138.703988] (2:receiver@Jupiter) --- bw 7209674.030423 ----
+> [138.703988] (0:maestro@) Total simulation time: 1.387040e+02
diff --git a/examples/msg/sendrecv/sendrecv_main.c b/examples/msg/sendrecv/sendrecv_main.c
new file mode 100644 (file)
index 0000000..6846934
--- /dev/null
@@ -0,0 +1,201 @@
+/* Copyright (c) 2007-2015. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include <stdio.h>
+
+#include "simgrid/msg.h"            /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
+#include "xbt/sysdep.h"         /* calloc */
+
+/* Create a log channel to have nice outputs. */
+#include "xbt/log.h"
+#include "xbt/asserts.h"
+
+/** @addtogroup MSG_examples
+ *
+ *  - <b>sendrecv/sendrecv.c: Ping-pong example</b>. It's hard to
+ *    think of a simpler example. The tesh files laying in the
+ *    directory are instructive concerning the way to pass options to the simulators (as described in \ref options).
+ */
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
+                             "Messages specific for this msg example");
+
+int sender(int argc, char *argv[]);
+int receiver(int argc, char *argv[]);
+
+double task_comm_size_lat = 1;
+double task_comm_size_bw = 10e8;
+
+/** Emitter function  */
+int sender(int argc, char *argv[])
+{
+  msg_host_t host = NULL;
+  double time;
+  msg_task_t task_la = NULL;
+  msg_task_t task_bw = NULL;
+  char sprintf_buffer_la[64];
+  char sprintf_buffer_bw[64];
+
+  XBT_INFO("sender");
+
+  /*host = xbt_new0(msg_host_t,1); */
+
+  XBT_INFO("host = %s", argv[1]);
+
+  host = MSG_host_by_name(argv[1]);
+
+  if (host == NULL) {
+    XBT_INFO("Unknown host %s. Stopping Now! ", argv[1]);
+    abort();
+  }
+
+  /* Latency */
+  time = MSG_get_clock();
+  sprintf(sprintf_buffer_la, "latency task");
+  task_la =
+      MSG_task_create(sprintf_buffer_la, 0.0, task_comm_size_lat, NULL);
+  task_la->data = xbt_new(double, 1);
+  *(double *) task_la->data = time;
+  XBT_INFO("task_la->data = %e", *((double *) task_la->data));
+  MSG_task_send(task_la, argv[1]);
+
+  /* Bandwidth */
+  time = MSG_get_clock();
+  sprintf(sprintf_buffer_bw, "bandwidth task");
+  task_bw =
+      MSG_task_create(sprintf_buffer_bw, 0.0, task_comm_size_bw, NULL);
+  task_bw->data = xbt_new(double, 1);
+  *(double *) task_bw->data = time;
+  XBT_INFO("task_bw->data = %e", *((double *) task_bw->data));
+  MSG_task_send(task_bw, argv[1]);
+
+  return 0;
+}                               /* end_of_client */
+
+/** Receiver function  */
+int receiver(int argc, char *argv[])
+{
+  double time, time1, sender_time;
+  msg_task_t task_la = NULL;
+  msg_task_t task_bw = NULL;
+  int a;
+  double communication_time = 0;
+
+  XBT_INFO("receiver");
+
+  /* Get Latency */
+  a = MSG_task_receive(&task_la,MSG_host_get_name(MSG_host_self()));
+  if (a == MSG_OK) {
+    time1 = MSG_get_clock();
+    sender_time = *((double *) (task_la->data));
+    time = sender_time;
+    communication_time = time1 - time;
+    XBT_INFO("Task received : %s", task_la->name);
+    xbt_free(task_la->data);
+    MSG_task_destroy(task_la);
+    XBT_INFO("Communic. time %e", communication_time);
+    XBT_INFO("--- la %f ----", communication_time);
+  } else {
+    xbt_die("Unexpected behavior");
+  }
+
+  /* Get Bandwidth */
+  a = MSG_task_receive(&task_bw,MSG_host_get_name(MSG_host_self()));
+  if (a == MSG_OK) {
+    time1 = MSG_get_clock();
+    sender_time = *((double *) (task_bw->data));
+    time = sender_time;
+    communication_time = time1 - time;
+    XBT_INFO("Task received : %s", task_bw->name);
+    xbt_free(task_bw->data);
+    MSG_task_destroy(task_bw);
+    XBT_INFO("Communic. time %e", communication_time);
+    XBT_INFO("--- bw %f ----", task_comm_size_bw / communication_time);
+  } else {
+    xbt_die("Unexpected behavior");
+  }
+
+
+  return 0;
+}                               /* end_of_receiver */
+
+struct application {
+  const char* platform_file;
+  const char* application_file;
+};
+
+/** Test function */
+static msg_error_t test_all(struct application* app)
+{
+  msg_error_t res = MSG_OK;
+
+  XBT_INFO("test_all");
+
+  /*  Simulation setting */
+  MSG_create_environment(app->platform_file);
+
+  /* Become one of the simulated process.
+   *
+   * This must be done after the creation of the platform
+   * because we are depending attaching to a host.*/
+  MSG_process_attach("sender", NULL, MSG_host_by_name("Tremblay"), NULL);
+
+  /*   Application deployment */
+  MSG_function_register("receiver", receiver);
+
+  MSG_launch_application(app->application_file);
+
+  // Execute the sender code:
+  const char* argv[3] = { "sender", "Jupiter", NULL };
+  sender(2, (char**) argv);
+
+  MSG_process_detach();
+  return res;
+}                               /* end_of_test_all */
+
+static
+void maestro(void* data)
+{
+  // struct application* app = (struct application*) data;
+  MSG_main();
+}
+
+/** Main function */
+int main(int argc, char *argv[])
+{
+  msg_error_t res = MSG_OK;
+
+#ifdef _MSC_VER
+  unsigned int prev_exponent_format =
+      _set_output_format(_TWO_DIGIT_EXPONENT);
+#endif
+
+  struct application app;
+  app.platform_file = argv[1];
+  app.application_file = argv[2];
+
+  SIMIX_set_maestro(maestro, &app);
+  MSG_init(&argc, argv);
+
+  if (argc != 3) {
+    XBT_CRITICAL("Usage: %s platform_file deployment_file\n",
+              argv[0]);
+    xbt_die("example: %s msg_platform.xml msg_deployment.xml\n",argv[0]);
+  }
+
+  res = test_all(&app);
+
+  XBT_INFO("Total simulation time: %e", MSG_get_clock());
+
+#ifdef _MSC_VER
+  _set_output_format(prev_exponent_format);
+#endif
+
+  if (res == MSG_OK)
+    return 0;
+  else
+    return 1;
+}                               /* end_of_main */
index 6b95310..bae4251 100644 (file)
@@ -1,37 +1,20 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(sk_time "sk_time.c")
-
-### Add definitions for compile
-if(WIN32)
-  target_link_libraries(sk_time simgrid )
-else()
-  target_link_libraries(sk_time simgrid )
-endif()
+target_link_libraries(sk_time simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/start_kill_time.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_kill.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start_kill.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_start.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sk_time.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c9b5c37..76d97ee 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
     <!-- Just sleeps for 10 seconds and quits -->
     <process host="node-0.acme.org" function="sleeper">  
        <argument value="10"/>
index 056979d..85c2e79 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
     <process host="node-1.acme.org" function="sleeper" kill_time="6">  <argument value="10"/></process>
     <process host="node-2.acme.org" function="sleeper" kill_time="6">  <argument value="6"/></process>
     <process host="node-3.acme.org" function="sleeper" kill_time="10"> <argument value="6"/></process>
index 39af2ab..9ed2db1 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
     <process host="node-0.acme.org" function="sleeper" start_time="0">  <argument value="10"/></process>
     <process host="node-1.acme.org" function="sleeper" start_time="1">  <argument value="10"/></process>
     <process host="node-2.acme.org" function="sleeper" start_time="2">  <argument value="10"/></process>
index 0a6d5ca..3ea5584 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
     <process host="node-0.acme.org" function="sleeper" start_time="0" kill_time="5">  <argument value="10"/></process>
     <process host="node-1.acme.org" function="sleeper" start_time="1" kill_time="6">  <argument value="10"/></process>
     <process host="node-2.acme.org" function="sleeper" start_time="2" kill_time="7">  <argument value="4" /></process>
index 014059b..8442325 100644 (file)
@@ -22,7 +22,7 @@ static int sleeper(int argc, char *argv[])
   XBT_INFO("Hello! I go to sleep.");
   MSG_process_on_exit(my_onexit, NULL);
    
-  MSG_process_sleep(atoi(argv[1]));
+  MSG_process_sleep(xbt_str_parse_int(argv[1], "sleeper process expects an integer parameter but got %s"));
   XBT_INFO("Done sleeping.");
   return 0;
 }
@@ -51,8 +51,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
    xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-                argv[0], argv[0]);
+           "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+           argv[0], argv[0]);
   
   test_all(argv[1], argv[2]);
 
index 1e6388f..9126d38 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(suspend suspend.c)
-
-### Add definitions for compile
 target_link_libraries(suspend simgrid )
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/suspend.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_suspend.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/suspend.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 626de34..07fc567 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Jacquelin" function="dream_master"/>
 </platform>
index 19e5b84..a36254a 100644 (file)
@@ -102,8 +102,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                 "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
-                 argv[0], argv[0]);
+            "\tExample: %s msg_platform.xml msg_deployment_suspend.xml\n", 
+            argv[0], argv[0]);
 
   test_all(argv[1], argv[2]);
 
index 12a15d1..75f9151 100644 (file)
@@ -1,37 +1,19 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(token_ring ring_call.c)
-add_executable(token_bypass token_bypass.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
   target_link_libraries(token_ring simgrid pthread )
-  target_link_libraries(token_bypass simgrid pthread )
 else()
   target_link_libraries(token_ring simgrid)
-  target_link_libraries(token_bypass simgrid)
 endif()
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/token_ring.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/ring_call.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/token_bypass.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 6b00f34..06a4648 100644 (file)
@@ -7,7 +7,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include "simgrid/msg.h"
-#include "src/surf/surf_private.h"
 
 int host(int argc, char *argv[]);
 unsigned int task_comp_size = 50000000;
@@ -30,7 +29,7 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(ring,
 
 int host(int argc, char *argv[])
 {
-  int host_number = atoi(MSG_process_get_name(MSG_process_self()));
+  int host_number = xbt_str_parse_int(MSG_process_get_name(MSG_process_self()), "Process name must be an integer but is: %s");
   char mailbox[256];
   msg_task_t task = NULL;
   XBT_ATTRIB_UNUSED int res;
diff --git a/examples/msg/token_ring/token_bypass.c b/examples/msg/token_ring/token_bypass.c
deleted file mode 100644 (file)
index f4eb5dc..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (c) 2008-2010, 2012-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "surf/surfxml_parse.h"
-#include "simgrid/msg.h"
-
-int host(int argc, char *argv[]);
-unsigned int task_comp_size = 50000000;
-unsigned int task_comm_size = 1000000;
-
-int nb_hosts; /* All declared hosts */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(ring,
-                             "Messages specific for this msg example");
-
-/** @addtogroup MSG_examples
- * 
- * - <b>token_ring/token_bypass.c</b>: Classical token ring with a bypass deployment.
- *   A token is exchanged along a ring to reach every participant.
- * 
- */
-
-int host(int argc, char *argv[])
-{
-  int host_number = atoi(MSG_process_get_name(MSG_process_self()));
-  char mailbox[256];
-  msg_task_t task = NULL;
-  XBT_ATTRIB_UNUSED int res;
-  if (host_number == 0){ //master  send then receive
-    sprintf(mailbox, "%d", host_number+1);
-    task = MSG_task_create("Token", task_comp_size, task_comm_size, NULL);
-    XBT_INFO("Host \"%d\" send '%s' to Host \"%s\"",host_number,task->name,mailbox);
-    MSG_task_send(task, mailbox);
-    task = NULL;
-    res = MSG_task_receive(&(task), MSG_process_get_name(MSG_process_self()));
-    xbt_assert(res == MSG_OK, "MSG_task_get failed");
-    XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  else{ //slave receive then send
-    res = MSG_task_receive(&(task), MSG_process_get_name(MSG_process_self()));
-    xbt_assert(res == MSG_OK, "MSG_task_get failed");
-    XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task));
-
-    if(host_number+1 == nb_hosts)
-      sprintf(mailbox, "0");
-    else
-      sprintf(mailbox, "%d", host_number+1);
-    XBT_INFO("Host \"%d\" send '%s' to Host \"%s\"",host_number,task->name,mailbox);
-    MSG_task_send(task, mailbox);
-  }
-  return 0;
-}
-
-static int surf_parse_bypass_platform(void)
-{
-  sg_platf_begin();
-  s_sg_platf_AS_cbarg_t AS = SG_PLATF_AS_INITIALIZER;
-  AS.id = "AS0";
-  AS.routing = A_surfxml_AS_routing_Full;
-  sg_platf_new_AS_begin(&AS);
-
-  s_sg_platf_host_cbarg_t bob = SG_PLATF_HOST_INITIALIZER;
-  bob.id = "bob";
-  bob.speed_peak = xbt_dynar_new(sizeof(double), NULL);
-  xbt_dynar_push_as(bob.speed_peak, double, 98095000.0);
-  sg_platf_new_host(&bob);
-  xbt_dynar_free(&bob.speed_peak);
-
-  s_sg_platf_host_cbarg_t alice = SG_PLATF_HOST_INITIALIZER;
-  alice.id = "alice";
-  alice.speed_peak = xbt_dynar_new(sizeof(double), NULL);
-  xbt_dynar_push_as(alice.speed_peak, double, 98095000.0);
-  sg_platf_new_host(&alice);
-  xbt_dynar_free(&alice.speed_peak);
-
-  s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
-  link.id = "link1";
-  link.latency = 0.000278066;
-  link.bandwidth = 27946250;
-  sg_platf_new_link(&link);
-
-  s_sg_platf_route_cbarg_t route= SG_PLATF_ROUTE_INITIALIZER;
-  route.src = "bob";
-  route.dst = "alice";
-  sg_platf_route_begin(&route);
-  sg_platf_route_add_link("link1", &route);
-  sg_platf_route_end(&route);
-
-  sg_platf_new_AS_end();
-  sg_platf_end();
-  return 0;
-}
-
-int main(int argc, char **argv)
-{
-  int i;
-  msg_error_t res = MSG_OK;
-
-  MSG_init(&argc, argv);
-  surf_parse = surf_parse_bypass_platform;
-  MSG_create_environment(NULL);
-
-  MSG_function_register("host", host);
-
-  xbt_dynar_t hosts = MSG_hosts_as_dynar();
-  nb_hosts =  xbt_dynar_length(hosts);
-
-  XBT_INFO("Number of host '%d'",nb_hosts);
-  for(i = 0 ; i<nb_hosts; i++)
-  {
-    char* name_host = bprintf("%d",i);
-    MSG_process_create( name_host, host, NULL, xbt_dynar_get_as(hosts,i,msg_host_t) );
-    free(name_host);
-  }
-  xbt_dynar_free(&hosts);
-
-  res = MSG_main();
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-
-  return res != MSG_OK;
-}
index 6dde953..8cdba72 100644 (file)
@@ -1,16 +1,15 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 set(LIBRARY_OUTPUT_PATH "${CMAKE_HOME_DIRECTORY}/lib")
 
-add_executable(ms         ${CMAKE_CURRENT_SOURCE_DIR}/ms.c)
-add_executable(categories ${CMAKE_CURRENT_SOURCE_DIR}/categories.c)
-add_executable(procmig    ${CMAKE_CURRENT_SOURCE_DIR}/procmig.c)
-add_executable(simple     ${CMAKE_CURRENT_SOURCE_DIR}/simple.c)
-add_executable(trace_platform     ${CMAKE_CURRENT_SOURCE_DIR}/trace_platform.c)
-add_executable(user_variables     ${CMAKE_CURRENT_SOURCE_DIR}/user_variables.c)
-add_executable(link_user_variables     ${CMAKE_CURRENT_SOURCE_DIR}/link_user_variables.c)
-add_executable(link_srcdst_user_variables     ${CMAKE_CURRENT_SOURCE_DIR}/link_srcdst_user_variables.c)
+add_executable(ms                         ${CMAKE_CURRENT_SOURCE_DIR}/ms.c)
+add_executable(categories                 ${CMAKE_CURRENT_SOURCE_DIR}/categories.c)
+add_executable(procmig                    ${CMAKE_CURRENT_SOURCE_DIR}/procmig.c)
+add_executable(simple                     ${CMAKE_CURRENT_SOURCE_DIR}/simple.c)
+add_executable(trace_platform             ${CMAKE_CURRENT_SOURCE_DIR}/trace_platform.c)
+add_executable(user_variables             ${CMAKE_CURRENT_SOURCE_DIR}/user_variables.c)
+add_executable(link_user_variables        ${CMAKE_CURRENT_SOURCE_DIR}/link_user_variables.c)
+add_executable(link_srcdst_user_variables ${CMAKE_CURRENT_SOURCE_DIR}/link_srcdst_user_variables.c)
 
-### Add definitions for compile
 target_link_libraries(ms simgrid )
 target_link_libraries(categories simgrid )
 target_link_libraries(procmig simgrid )
@@ -36,14 +35,12 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/procmig.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/trace_platform.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/user_variables.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/procmig-deploy.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/categories.c
@@ -54,13 +51,4 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/simple.c
   ${CMAKE_CURRENT_SOURCE_DIR}/trace_platform.c
   ${CMAKE_CURRENT_SOURCE_DIR}/user_variables.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f47b7b1..f5e3fc9 100644 (file)
@@ -32,11 +32,11 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
 int master(int argc, char *argv[]);
 int slave(int argc, char *argv[]);
 
-/** Emitter function  */
+/** sender function  */
 int master(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  long slaves_count = atol(argv[4]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
 
   int i;
   for (i = 0; i < number_of_tasks; i++) {
index 8522be7..1efc8a7 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
@@ -14,5 +14,4 @@
   <process host="Fafard" function="slave"/>
   <process host="Ginette" function="slave"/>
   <process host="Bourassa" function="slave"/>
-
 </platform>
index 18d7b11..697a814 100644 (file)
@@ -32,13 +32,13 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
 int master(int argc, char *argv[]);
 int slave(int argc, char *argv[]);
 
-/** Emitter function  */
+/** sender function  */
 int master(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long slaves_count = atol(argv[4]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
 
   //setting the variable "is_master" (previously declared) to value 1
   TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "is_master", 1);
index bb317fe..0f08ee0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Fafard" function="emigrant"/>
   <process host="Tremblay" function="master"/>
 </platform>
similarity index 94%
rename from examples/simdag/2clusters.xml
rename to examples/platforms/2clusters.xml
index 5fd252a..d12b59c 100644 (file)
@@ -1,17 +1,17 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
  <AS  id="AS0"  routing="Full">
-   <host id="C2-06" power="5Gf"/>
-   <host id="C1-03" power="1Gf"/>
-   <host id="C2-07" power="5Gf"/>
-   <host id="C2-09" power="5Gf"/>
-   <host id="C1-02" power="1Gf"/>
-   <host id="C2-08" power="5Gf"/>
-   <host id="C1-01" power="1Gf"/>
-   <host id="C1-04" power="1Gf"/>
-   <host id="C1-00" power="1Gf"/>
-   <host id="C2-05" power="5Gf"/>
+   <host id="C2-06" speed="5Gf"/>
+   <host id="C1-03" speed="1Gf"/>
+   <host id="C2-07" speed="5Gf"/>
+   <host id="C2-09" speed="5Gf"/>
+   <host id="C1-02" speed="1Gf"/>
+   <host id="C2-08" speed="5Gf"/>
+   <host id="C1-01" speed="1Gf"/>
+   <host id="C1-04" speed="1Gf"/>
+   <host id="C1-00" speed="1Gf"/>
+   <host id="C2-05" speed="5Gf"/>
    <link id="6" bandwidth="125MBps" latency="100us"/>
    <link id="11" bandwidth="125MBps" latency="100us" sharing_policy="FATPIPE" />
    <link id="3" bandwidth="125MBps" latency="100us"/>
index 7380d4f..dacf416 100644 (file)
@@ -1,46 +1,29 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS0"  routing="Full">
-  <cluster id="my_cluster_1" prefix="" suffix=""
-               radical="1"     power="1Gf"    bw="125MBps"     lat="50us"/>
-               
-  <cluster id="my_cluster_2" prefix="" suffix=""
-           radical="2" power="1Gf"     bw="125MBps"    lat="50us"/>  
-           
-  <cluster id="my_cluster_3" prefix="" suffix=""
-        radical="3" power="1Gf"    bw="125MBps"  lat="50us"/>  
-       
-     <link id="link1" bandwidth="1.25GBps" latency="500us"/>  
-        <link id="link2" bandwidth="1.25GBps" latency="500us"/>
-        <link id="link3" bandwidth="1.25GBps" latency="500us"/>
-        <link id="link_tmp"  bandwidth="1.25GBps" latency="500us"/>
-       
-     <ASroute src="my_cluster_1" dst="my_cluster_2" 
-        gw_src="my_cluster_1_router" 
-        gw_dst="my_cluster_2_router">
-               <link_ctn id="link1"/>
-               <link_ctn id="link2"/>
-     </ASroute>
-     
-     <ASroute src="my_cluster_1" dst="my_cluster_3" 
-     gw_src="my_cluster_1_router" 
-     gw_dst="my_cluster_3_router">
-        <link_ctn id="link1"/>
-        <link_ctn id="link3"/>
-     </ASroute>
-     
-     <ASroute src="my_cluster_2" dst="my_cluster_3" 
-     gw_src="my_cluster_2_router" 
-     gw_dst="my_cluster_3_router">
-        <link_ctn id="link2"/>
-        <link_ctn id="link3"/>
-     </ASroute>
-     
-     <bypassASroute src="my_cluster_1" dst="my_cluster_2"
-     gw_src="my_cluster_1_router" 
-     gw_dst="my_cluster_2_router">
-        <link_ctn id="link_tmp"/>  
-     </bypassASroute>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0" routing="Full">
+  <cluster id="my_cluster_1" prefix="" suffix="" radical="1" speed="1Gf" bw="125MBps" lat="50us"/>
+  <cluster id="my_cluster_2" prefix="" suffix="" radical="2" speed="1Gf" bw="125MBps" lat="50us"/>
+  <cluster id="my_cluster_3" prefix="" suffix="" radical="3" speed="1Gf" bw="125MBps" lat="50us"/>
+
+  <link id="link1" bandwidth="1.25GBps" latency="500us"/>
+  <link id="link2" bandwidth="1.25GBps" latency="500us"/>
+  <link id="link3" bandwidth="1.25GBps" latency="500us"/>
+
+  <link id="link_tmp"  bandwidth="1.25GBps" latency="500us"/>
+
+  <ASroute src="my_cluster_1" dst="my_cluster_2" gw_src="my_cluster_1_router" gw_dst="my_cluster_2_router">
+    <link_ctn id="link1"/><link_ctn id="link2"/>
+  </ASroute>
+  <ASroute src="my_cluster_1" dst="my_cluster_3" gw_src="my_cluster_1_router" gw_dst="my_cluster_3_router">
+    <link_ctn id="link1"/><link_ctn id="link3"/>
+  </ASroute>
+  <ASroute src="my_cluster_2" dst="my_cluster_3" gw_src="my_cluster_2_router" gw_dst="my_cluster_3_router">
+    <link_ctn id="link2"/><link_ctn id="link3"/>
+  </ASroute>
+
+  <bypassASroute src="my_cluster_1" dst="my_cluster_2" gw_src="my_cluster_1_router" gw_dst="my_cluster_2_router">
+    <link_ctn id="link_tmp"/>
+  </bypassASroute>
 </AS>
 </platform>
index a5a1fb2..ae2a0e8 100644 (file)
@@ -1,58 +1,57 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       <AS  id="AS_Big"  routing="Dijkstra">
-         <AS id="AS_1" routing="Full">    
-            <host id="AS_1_host1" power="1Gf"/>        
-            <link id="AS_1_link" bandwidth="1.25GBps" latency="500us"/>  
-            <router id="AS_1_gateway"/>
-            <route src="AS_1_host1" dst="AS_1_gateway">
-                   <link_ctn id="AS_1_link"/>
-            </route>   
-         </AS>
-         <AS id="AS_2" routing="Floyd">    
-            <host id="AS_2_host1" power="1Gf"/>        
-            <host id="AS_2_host2" power="1Gf"/>        
-            <host id="AS_2_host3" power="1Gf"/>        
-           
-            <link id="AS_2_link1" bandwidth="1.25GBps" latency="500us"/>  
-            <link id="AS_2_link2" bandwidth="1.25GBps" latency="500us"/>  
-            <link id="AS_2_link3" bandwidth="1.25GBps" latency="500us"/>  
-            <link id="AS_2_link4" bandwidth="1.25GBps" latency="500us"/>
-            <link id="AS_2_link5" bandwidth="1.25GBps" latency="500us"/>  
-            <link id="AS_2_link6" bandwidth="1.25GBps" latency="500us"/>              
-            <link id="AS_2_link7" bandwidth="1.25GBps" latency="500us"/>
-            
-            <router id="central_router"/>
-            <router id="bypass_router1"/>
-            <router id="bypass_router2"/>
-            <router id="AS_2_gateway"/>
-           
-            <!-- routes providing topological information -->  
-            <route src="central_router" dst="AS_2_host1"><link_ctn id="AS_2_link1"/></route>   
-            <route src="central_router" dst="AS_2_host2"><link_ctn id="AS_2_link2"/></route>   
-            <route src="central_router" dst="AS_2_host3"><link_ctn id="AS_2_link3"/></route>        
-            <route src="central_router" dst="AS_2_gateway"><link_ctn id="AS_2_link4"/></route>
-            
-            <!--  longer route -->
-            <route src="bypass_router1" dst="AS_2_host2"><link_ctn id="AS_2_link5"/></route>
-            <route src="bypass_router1" dst="bypass_router2"><link_ctn id="AS_2_link6"/></route>
-            <route src="bypass_router2" dst="AS_2_host1"><link_ctn id="AS_2_link7"/></route>
-            
-            <!-- bypass route -->
-            <bypassRoute src="AS_2_host1" dst="AS_2_host2">
-                    <link_ctn id="AS_2_link7"/>
-                    <link_ctn id="AS_2_link6"/>
-                    <link_ctn id="AS_2_link5"/>
-            </bypassRoute>     
-         </AS>
-         <link id="backbone" bandwidth="1.25GBps" latency="500us"/>    
-       
-          <ASroute src="AS_1" dst="AS_2" 
-       gw_src="AS_1_gateway" 
-       gw_dst="AS_2_gateway">
-               <link_ctn id="backbone"/>
-          </ASroute>
-          
-       </AS>
-</platform>
\ No newline at end of file
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS_Big" routing="Dijkstra">
+    <AS id="AS_1" routing="Full">
+       <host id="AS_1_host1" speed="1Gf"/>
+       <link id="AS_1_link" bandwidth="1.25GBps" latency="500us"/>
+       <router id="AS_1_gateway"/>
+       <route src="AS_1_host1" dst="AS_1_gateway">
+         <link_ctn id="AS_1_link"/>
+       </route>
+    </AS>
+
+    <AS id="AS_2" routing="Floyd">
+       <host id="AS_2_host1" speed="1Gf"/>
+       <host id="AS_2_host2" speed="1Gf"/>
+       <host id="AS_2_host3" speed="1Gf"/>
+
+       <link id="AS_2_link1" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link2" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link3" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link4" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link5" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link6" bandwidth="1.25GBps" latency="500us"/>
+       <link id="AS_2_link7" bandwidth="1.25GBps" latency="500us"/>
+
+       <router id="central_router"/>
+       <router id="bypass_router1"/>
+       <router id="bypass_router2"/>
+       <router id="AS_2_gateway"/>
+
+       <!-- routes providing topological information -->  
+       <route src="central_router" dst="AS_2_host1"><link_ctn id="AS_2_link1"/></route>
+       <route src="central_router" dst="AS_2_host2"><link_ctn id="AS_2_link2"/></route>
+       <route src="central_router" dst="AS_2_host3"><link_ctn id="AS_2_link3"/></route>
+       <route src="central_router" dst="AS_2_gateway"><link_ctn id="AS_2_link4"/></route>
+
+       <!--  longer route -->
+       <route src="bypass_router1" dst="AS_2_host2"><link_ctn id="AS_2_link5"/></route>
+       <route src="bypass_router1" dst="bypass_router2"><link_ctn id="AS_2_link6"/></route>
+       <route src="bypass_router2" dst="AS_2_host1"><link_ctn id="AS_2_link7"/></route>
+
+       <!-- bypass route -->
+       <bypassRoute src="AS_2_host1" dst="AS_2_host2">
+         <link_ctn id="AS_2_link7"/>
+         <link_ctn id="AS_2_link6"/>
+         <link_ctn id="AS_2_link5"/>
+       </bypassRoute>
+    </AS>
+
+    <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
+
+    <ASroute src="AS_1" dst="AS_2" gw_src="AS_1_gateway" gw_dst="AS_2_gateway">
+      <link_ctn id="backbone"/>
+    </ASroute>
+  </AS>
+</platform>
index c2bd2e7..34d9d92 100644 (file)
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <config id="General">
-       <prop id="network/coordinates" value="yes"/>
+<prop id="network/coordinates" value="yes"/>
 </config>
 
 <AS id="AS0" routing="Vivaldi">
-   
-   <AS id="AS1_dc1" routing="Full">
-   <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : rule based, because of its regularity-->    
-           <!-- 3 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted because not a part of the production platform  -->
-            <!-- clusters -->
-            <cluster id="AS1_cb1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" power="5.2297Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-           <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
+  <AS id="AS1_dc1" routing="Full">
+    <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation -->
+    <!-- 3 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+    <!-- clusters -->
+    <cluster id="AS1_cb1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS1_cb2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS1_cb3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
+           bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
 
-           <cluster id="AS1_cb2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" power="8.8925Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-           <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
 
-            <cluster id="AS1_cb3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-           <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
-            <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-            <AS id="gw_AS1_dc1" routing="Floyd">
-                <!-- equipments-->
-                    <router id="gw_dc1_horizdist"/>
-                    <router id="gw_dc1_maindist"/>
-                    <router id="gw_dc1_entranceroom"/>
-                    <!-- ISP end point, entering the cloud, so it has coordinates -->
-                    <router id="router_AS1_dc1" coordinates="25.5 9.4 1.4"/>
-                    <!-- links -->
-                    <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
-                    <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
-                        <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
-                    <!-- links to router relationships -->
-                    <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
-                    <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
-                    <route src="gw_dc1_entranceroom" dst="router_AS1_dc1"><link_ctn id="dc1_entranceroom_ISP"/></route>
-            </AS>
-           
-            <!-- internal routes between clusters -->
-            <ASroute src="AS1_cb1" dst="AS1_cb1" gw_src="cb1-AS1_cb1_router.dc1.acloud.com" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb1"/>
-                    <link_ctn id="link_dc1_cb1"/>
-            </ASroute><ASroute src="AS1_cb3" dst="AS1_cb1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb3"/>
-                    <link_ctn id="link_dc1_cb1"/>
-            </ASroute><ASroute src="AS1_cb3" dst="AS1_cb3" gw_src="cb3-AS1_cb3_router.dc1.acloud.com" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb3"/>
-                    <link_ctn id="link_dc1_cb3"/>
-            </ASroute><ASroute src="AS1_cb2" dst="AS1_cb1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb2"/>
-                    <link_ctn id="link_dc1_cb1"/>
-            </ASroute><ASroute src="AS1_cb2" dst="AS1_cb3" gw_src="cb2-AS1_cb2_router.dc1.acloud.com" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb2"/>
-                    <link_ctn id="link_dc1_cb3"/>
-            </ASroute><ASroute src="AS1_cb2" dst="AS1_cb2" gw_src="cb2-AS1_cb2_router.dc1.acloud.com" gw_dst="cb2-AS1_cb2_router.dc1.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc1_cb2"/>
-                    <link_ctn id="link_dc1_cb2"/>
-            </ASroute>
-            <!-- clusters to exit AS -->
-            <ASroute src="AS1_cb1" dst="gw_AS1_dc1" gw_src="cb1-AS1_cb1_router.dc1.acloud.com" gw_dst="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb1"/>
-            </ASroute><ASroute src="AS1_cb3" dst="gw_AS1_dc1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com" gw_dst="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb3"/>
-            </ASroute><ASroute src="AS1_cb2" dst="gw_AS1_dc1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com" gw_dst="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb2"/>
-            </ASroute> 
-            <ASroute dst="AS1_cb1" src="gw_AS1_dc1" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" gw_src="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb1"/>
-            </ASroute><ASroute dst="AS1_cb3" src="gw_AS1_dc1" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com" gw_src="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb3"/>
-            </ASroute><ASroute dst="AS1_cb2" src="gw_AS1_dc1" gw_dst="cb2-AS1_cb2_router.dc1.acloud.com" gw_src="gw_dc1_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc1_cb2"/>
-            </ASroute>    
-   </AS>
+    <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+    <AS id="gw_AS1_dc1" routing="Floyd">
+      <!-- equipments-->
+      <router id="gw_dc1_horizdist"/>
+      <router id="gw_dc1_maindist"/>
+      <router id="gw_dc1_entranceroom"/>
+      <!-- ISP end point, entering the cloud, so it has coordinates -->
+      <router id="router_AS1_dc1" coordinates="25.5 9.4 1.4"/>
+
+      <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
+      <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
+      <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
+
+      <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
+      <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
+      <route src="gw_dc1_entranceroom" dst="router_AS1_dc1"><link_ctn id="dc1_entranceroom_ISP"/></route>
+    </AS>
 
-   <AS id="AS2_dc2" routing="Full">
-   <!--bigger tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : rule based, because of its regularity-->   
-            <!-- 6 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted because not a part of the production platform  -->
-            <!-- clusters -->
-            <cluster id="AS2_cb1" prefix="cb1-" suffix=".dc2.acloud.com" radical="1-40" power="5.2297Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb1" bandwidth="1.25GBps" latency="100us"/>
+    <!-- internal routes between clusters -->
+    <ASroute src="AS1_cb3" dst="AS1_cb1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
+             gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc1_cb3"/><link_ctn id="link_dc1_cb1"/>
+    </ASroute>
+    <ASroute src="AS1_cb2" dst="AS1_cb1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+             gw_dst="cb1-AS1_cb1_router.dc1.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb1"/>
+    </ASroute>
+    <ASroute src="AS1_cb2" dst="AS1_cb3" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+             gw_dst="cb3-AS1_cb3_router.dc1.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
+    </ASroute>
+    <!-- routes to exit AS -->
+    <ASroute src="AS1_cb1" dst="gw_AS1_dc1" gw_src="cb1-AS1_cb1_router.dc1.acloud.com"
+             gw_dst="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb1"/>
+    </ASroute>
+    <ASroute src="AS1_cb3" dst="gw_AS1_dc1" gw_src="cb3-AS1_cb3_router.dc1.acloud.com"
+             gw_dst="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb3"/>
+    </ASroute>
+    <ASroute src="AS1_cb2" dst="gw_AS1_dc1" gw_src="cb2-AS1_cb2_router.dc1.acloud.com"
+             gw_dst="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb2"/>
+    </ASroute> 
+    <ASroute dst="AS1_cb1" src="gw_AS1_dc1" gw_dst="cb1-AS1_cb1_router.dc1.acloud.com"
+             gw_src="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb1"/>
+    </ASroute>
+    <ASroute dst="AS1_cb3" src="gw_AS1_dc1" gw_dst="cb3-AS1_cb3_router.dc1.acloud.com"
+             gw_src="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb3"/>
+    </ASroute>
+    <ASroute dst="AS1_cb2" src="gw_AS1_dc1" gw_dst="cb2-AS1_cb2_router.dc1.acloud.com"
+             gw_src="gw_dc1_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc1_cb2"/>
+    </ASroute>
+  </AS>
 
-            <cluster id="AS2_cb2" prefix="cb2-" suffix=".dc2.acloud.com" radical="1-50" power="8.8925Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb2" bandwidth="1.25GBps" latency="100us"/>
+  <AS id="AS2_dc2" routing="Full">
+    <!--bigger tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : Full -->
+    <!-- 6 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+    <!-- clusters -->
+    <cluster id="AS2_cb1" prefix="cb1-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS2_cb2" prefix="cb2-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS2_cb3" prefix="cb3-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS2_cb4" prefix="cb4-" suffix=".dc2.acloud.com" radical="1-40" speed="5.2297Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS2_cb5" prefix="cb5-" suffix=".dc2.acloud.com" radical="1-50" speed="8.8925Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="AS2_cb6" prefix="cb6-" suffix=".dc2.acloud.com" radical="1-30" speed="13.357Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
 
-            <cluster id="AS2_cb3" prefix="cb3-" suffix=".dc2.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb3" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb1" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb2" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb3" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb4" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb5" bandwidth="1.25GBps" latency="100us"/>
+    <link id="link_dc2_cb6" bandwidth="1.25GBps" latency="100us"/>
 
-            <cluster id="AS2_cb4" prefix="cb4-" suffix=".dc2.acloud.com" radical="1-40" power="5.2297Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb4" bandwidth="1.25GBps" latency="100us"/>
+    <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+    <AS id="gw_AS2_dc2" routing="Floyd">
+      <!-- equipments-->
+      <router id="gw_dc2_horizdist"/>
+      <router id="gw_dc2_maindist"/>
+      <router id="gw_dc2_entranceroom"/>
+      <!-- ISP end point, entering the cloud, so it has coordinates -->
+      <router id="router_AS2_dc2" coordinates="12.8 14.4 6.4"/>
 
-            <cluster id="AS2_cb5" prefix="cb5-" suffix=".dc2.acloud.com" radical="1-50" power="8.8925Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb5" bandwidth="1.25GBps" latency="100us"/>
+      <!-- links -->
+      <link id="dc2_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>
+      <link id="dc2_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>
+      <link id="dc2_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>
+      <!-- links to router relationships -->
+      <route src="gw_dc2_horizdist" dst="gw_dc2_maindist"><link_ctn id="dc2_horizdist_maindist"/></route>
+      <route src="gw_dc2_maindist" dst="gw_dc2_entranceroom"><link_ctn id="dc2_maindist_entranceroom"/></route>
+      <route src="gw_dc2_entranceroom" dst="router_AS2_dc2"><link_ctn id="dc2_entranceroom_ISP"/></route>
+    </AS>
 
-            <cluster id="AS2_cb6" prefix="cb6-" suffix=".dc2.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc2_cb6" bandwidth="1.25GBps" latency="100us"/>
+    <!-- internal routes between clusters -->
+    <ASroute src="AS2_cb4" dst="AS2_cb6" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
+             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb4"/><link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb5" dst="AS2_cb6" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb5" dst="AS2_cb4" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb5"/><link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute src="AS2_cb2" dst="AS2_cb6" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb2"/> <link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb2" dst="AS2_cb4" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute src="AS2_cb2" dst="AS2_cb5" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb2"/><link_ctn id="link_dc2_cb5"/>
+    </ASroute>
+    <ASroute src="AS2_cb3" dst="AS2_cb6" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb3" dst="AS2_cb4" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" 
+             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute src="AS2_cb3" dst="AS2_cb5" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb5"/>
+    </ASroute>
+    <ASroute src="AS2_cb3" dst="AS2_cb2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+             gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/><link_ctn id="link_dc2_cb2"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="AS2_cb6" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="AS2_cb4" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="AS2_cb5" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb5"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="AS2_cb2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb2"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="AS2_cb3" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="cb3-AS2_cb3_router.dc2.acloud.com" symmetrical="YES">
+       <link_ctn id="link_dc2_cb1"/><link_ctn id="link_dc2_cb3"/>
+    </ASroute>
 
-            <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-            <AS id="gw_AS2_dc2" routing="Floyd">
-                <!-- equipments-->
-                    <router id="gw_dc2_horizdist"/>
-                    <router id="gw_dc2_maindist"/>
-                    <router id="gw_dc2_entranceroom"/>
-                    <!-- ISP end point, entering the cloud, so it has coordinates -->
-                    <router id="router_AS2_dc2" coordinates="12.8 14.4 6.4"/>
-                    <!-- links -->
-                    <link id="dc2_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
-                    <link id="dc2_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
-                        <link id="dc2_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
-                    <!-- links to router relationships -->
-                    <route src="gw_dc2_horizdist" dst="gw_dc2_maindist"><link_ctn id="dc2_horizdist_maindist"/></route>
-                    <route src="gw_dc2_maindist" dst="gw_dc2_entranceroom"><link_ctn id="dc2_maindist_entranceroom"/></route>
-                    <route src="gw_dc2_entranceroom" dst="router_AS2_dc2"><link_ctn id="dc2_entranceroom_ISP"/></route>
-            </AS>
-            
-            <!-- internal routes between clusters -->
-            <ASroute src="AS2_cb6" dst="AS2_cb6" gw_src="cb6-AS2_cb6_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb6"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb4" dst="AS2_cb6" gw_src="cb4-AS2_cb4_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb4"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb4" dst="AS2_cb4" gw_src="cb4-AS2_cb4_router.dc2.acloud.com" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb4"/>
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb5" dst="AS2_cb6" gw_src="cb5-AS2_cb5_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb5"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb5" dst="AS2_cb4" gw_src="cb5-AS2_cb5_router.dc2.acloud.com" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb5"/>
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb5" dst="AS2_cb5" gw_src="cb5-AS2_cb5_router.dc2.acloud.com" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb5"/>
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute src="AS2_cb2" dst="AS2_cb6" gw_src="cb2-AS2_cb2_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb2"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb2" dst="AS2_cb4" gw_src="cb2-AS2_cb2_router.dc2.acloud.com" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb2"/>
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb2" dst="AS2_cb5" gw_src="cb2-AS2_cb2_router.dc2.acloud.com" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb2"/>
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute src="AS2_cb2" dst="AS2_cb2" gw_src="cb2-AS2_cb2_router.dc2.acloud.com" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb2"/>
-                    <link_ctn id="link_dc2_cb2"/>
-            </ASroute><ASroute src="AS2_cb3" dst="AS2_cb6" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb3"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb3" dst="AS2_cb4" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb3"/>
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb3" dst="AS2_cb5" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb3"/>
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute src="AS2_cb3" dst="AS2_cb2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb3"/>
-                    <link_ctn id="link_dc2_cb2"/>
-            </ASroute><ASroute src="AS2_cb3" dst="AS2_cb3" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb3"/>
-                    <link_ctn id="link_dc2_cb3"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb6" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb4" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb5" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb2"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb3" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb3"/>
-            </ASroute><ASroute src="AS2_cb1" dst="AS2_cb1" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="cb1-AS2_cb1_router.dc2.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc2_cb1"/>
-                    <link_ctn id="link_dc2_cb1"/>
-            </ASroute>
-            <!-- clusters to exit AS -->
-            <ASroute src="AS2_cb6" dst="gw_AS2_dc2" gw_src="cb6-AS2_cb6_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute src="AS2_cb4" dst="gw_AS2_dc2" gw_src="cb4-AS2_cb4_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute src="AS2_cb5" dst="gw_AS2_dc2" gw_src="cb5-AS2_cb5_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute src="AS2_cb2" dst="gw_AS2_dc2" gw_src="cb2-AS2_cb2_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb2"/>
-            </ASroute><ASroute src="AS2_cb3" dst="gw_AS2_dc2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb3"/>
-            </ASroute><ASroute src="AS2_cb1" dst="gw_AS2_dc2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com" gw_dst="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb1"/>
-            </ASroute> 
-            <ASroute dst="AS2_cb6" src="gw_AS2_dc2" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb6"/>
-            </ASroute><ASroute dst="AS2_cb4" src="gw_AS2_dc2" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb4"/>
-            </ASroute><ASroute dst="AS2_cb5" src="gw_AS2_dc2" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb5"/>
-            </ASroute><ASroute dst="AS2_cb2" src="gw_AS2_dc2" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb2"/>
-            </ASroute><ASroute dst="AS2_cb3" src="gw_AS2_dc2" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb3"/>
-            </ASroute><ASroute dst="AS2_cb1" src="gw_AS2_dc2" gw_dst="cb1-AS2_cb1_router.dc2.acloud.com" gw_src="gw_dc2_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc2_cb1"/>
-            </ASroute> 
+    <!-- routess to exit AS -->
+    <ASroute src="AS2_cb6" dst="gw_AS2_dc2" gw_src="cb6-AS2_cb6_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute src="AS2_cb4" dst="gw_AS2_dc2" gw_src="cb4-AS2_cb4_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute src="AS2_cb5" dst="gw_AS2_dc2" gw_src="cb5-AS2_cb5_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb5"/>
+    </ASroute>
+    <ASroute src="AS2_cb2" dst="gw_AS2_dc2" gw_src="cb2-AS2_cb2_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb2"/>
+    </ASroute>
+    <ASroute src="AS2_cb3" dst="gw_AS2_dc2" gw_src="cb3-AS2_cb3_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/>
+    </ASroute>
+    <ASroute src="AS2_cb1" dst="gw_AS2_dc2" gw_src="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_dst="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb1"/>
+    </ASroute> 
+    <ASroute dst="AS2_cb6" src="gw_AS2_dc2" gw_dst="cb6-AS2_cb6_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb6"/>
+    </ASroute>
+    <ASroute dst="AS2_cb4" src="gw_AS2_dc2" gw_dst="cb4-AS2_cb4_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb4"/>
+    </ASroute>
+    <ASroute dst="AS2_cb5" src="gw_AS2_dc2" gw_dst="cb5-AS2_cb5_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb5"/>
+    </ASroute>
+    <ASroute dst="AS2_cb2" src="gw_AS2_dc2" gw_dst="cb2-AS2_cb2_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb2"/>
+    </ASroute>
+    <ASroute dst="AS2_cb3" src="gw_AS2_dc2" gw_dst="cb3-AS2_cb3_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb3"/>
+    </ASroute>
+    <ASroute dst="AS2_cb1" src="gw_AS2_dc2" gw_dst="cb1-AS2_cb1_router.dc2.acloud.com"
+             gw_src="gw_dc2_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc2_cb1"/>
+    </ASroute> 
    </AS>
 
    <AS id="AS3_dc3" routing="Full">  
-   <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : rule based, because of its regularity-->    
-            <!-- 4 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted because not a part of the production platform  -->
-            <!-- clusters -->
-            <cluster id="AS3_cb1" prefix="cb1-" suffix=".dc3.acloud.com" radical="1-40" power="5.2297Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc3_cb1" bandwidth="1.25GBps" latency="100us"/>
+     <!--small tier-1 datacenter, according to TIA-942 annex G tiers notation, routing : FULL -->    
+     <!-- 4 clusters, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
+     <!-- clusters -->
+     <cluster id="AS3_cb1" prefix="cb1-" suffix=".dc3.acloud.com" radical="1-40" speed="5.2297Gf"
+              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+     <cluster id="AS3_cb2" prefix="cb2-" suffix=".dc3.acloud.com" radical="1-50" speed="8.8925Gf"
+              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+     <cluster id="AS3_cb3" prefix="cb3-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
+              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+     <cluster id="AS3_cb4" prefix="cb4-" suffix=".dc3.acloud.com" radical="1-30" speed="13.357Gf"
+              bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
 
-            <cluster id="AS3_cb2" prefix="cb2-" suffix=".dc3.acloud.com" radical="1-50" power="8.8925Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc3_cb2" bandwidth="1.25GBps" latency="100us"/>
+     <link id="link_dc3_cb1" bandwidth="1.25GBps" latency="100us"/>
+     <link id="link_dc3_cb2" bandwidth="1.25GBps" latency="100us"/>
+     <link id="link_dc3_cb3" bandwidth="1.25GBps" latency="100us"/>
+     <link id="link_dc3_cb4" bandwidth="1.25GBps" latency="100us"/>
 
-            <cluster id="AS3_cb3" prefix="cb3-" suffix=".dc3.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc3_cb3" bandwidth="1.25GBps" latency="100us"/>
+     <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
+     <AS id="gw_AS3_dc3" routing="Floyd">
+        <!-- equipments-->
+        <router id="gw_dc3_horizdist"/>
+        <router id="gw_dc3_maindist"/>
+        <router id="gw_dc3_entranceroom"/>
+        <!-- ISP end point, entering the cloud, so it has coordinates -->
+        <router id="router_AS3_dc3" coordinates="6.0 5.7 6.6"/>
 
-            <cluster id="AS3_cb4" prefix="cb4-" suffix=".dc3.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
-            <link id="link_dc3_cb4" bandwidth="1.25GBps" latency="100us"/>
+        <!-- links -->
+        <link id="dc3_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
+        <link id="dc3_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
+        <link id="dc3_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
+        <!-- links to router relationships -->
+        <route src="gw_dc3_horizdist" dst="gw_dc3_maindist"><link_ctn id="dc3_horizdist_maindist"/></route>
+        <route src="gw_dc3_maindist" dst="gw_dc3_entranceroom"><link_ctn id="dc3_maindist_entranceroom"/></route>
+        <route src="gw_dc3_entranceroom" dst="router_AS3_dc3"><link_ctn id="dc3_entranceroom_ISP"/></route>
+     </AS>
 
-            <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
-            <AS id="gw_AS3_dc3" routing="Floyd">
-                <!-- equipments-->
-                    <router id="gw_dc3_horizdist"/>
-                    <router id="gw_dc3_maindist"/>
-                    <router id="gw_dc3_entranceroom"/>
-                    <!-- ISP end point, entering the cloud, so it has coordinates -->
-                    <router id="router_AS3_dc3" coordinates="6.0 5.7 6.6"/>
-                    <!-- links -->
-                    <link id="dc3_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
-                    <link id="dc3_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
-                        <link id="dc3_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/>  
-                    <!-- links to router relationships -->
-                    <route src="gw_dc3_horizdist" dst="gw_dc3_maindist"><link_ctn id="dc3_horizdist_maindist"/></route>
-                    <route src="gw_dc3_maindist" dst="gw_dc3_entranceroom"><link_ctn id="dc3_maindist_entranceroom"/></route>
-                    <route src="gw_dc3_entranceroom" dst="router_AS3_dc3"><link_ctn id="dc3_entranceroom_ISP"/></route>
-            </AS>
-            
-            <!-- internal routes between clusters -->
-            <ASroute src="AS3_cb3" dst="AS3_cb3" gw_src="cb3-AS3_cb3_router.dc3.acloud.com" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb3"/>
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute src="AS3_cb2" dst="AS3_cb3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb2"/>
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute src="AS3_cb2" dst="AS3_cb2" gw_src="cb2-AS3_cb2_router.dc3.acloud.com" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb2"/>
-                    <link_ctn id="link_dc3_cb2"/>
-            </ASroute><ASroute src="AS3_cb1" dst="AS3_cb3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb1"/>
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute src="AS3_cb1" dst="AS3_cb2" gw_src="cb1-AS3_cb1_router.dc3.acloud.com" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb1"/>
-                    <link_ctn id="link_dc3_cb2"/>
-            </ASroute><ASroute src="AS3_cb1" dst="AS3_cb1" gw_src="cb1-AS3_cb1_router.dc3.acloud.com" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb1"/>
-                    <link_ctn id="link_dc3_cb1"/>
-            </ASroute><ASroute src="AS3_cb4" dst="AS3_cb3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb4"/>
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute src="AS3_cb4" dst="AS3_cb2" gw_src="cb4-AS3_cb4_router.dc3.acloud.com" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb4"/>
-                    <link_ctn id="link_dc3_cb2"/>
-            </ASroute><ASroute src="AS3_cb4" dst="AS3_cb1" gw_src="cb4-AS3_cb4_router.dc3.acloud.com" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb4"/>
-                    <link_ctn id="link_dc3_cb1"/>
-            </ASroute><ASroute src="AS3_cb4" dst="AS3_cb4" gw_src="cb4-AS3_cb4_router.dc3.acloud.com" gw_dst="cb4-AS3_cb4_router.dc3.acloud.com" symmetrical="YES">
-                    <link_ctn id="link_dc3_cb4"/>
-                    <link_ctn id="link_dc3_cb4"/>
-            </ASroute>
-            <!-- clusters to exit AS -->
-            <ASroute src="AS3_cb3" dst="gw_AS3_dc3" gw_src="cb3-AS3_cb3_router.dc3.acloud.com" gw_dst="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute src="AS3_cb2" dst="gw_AS3_dc3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com" gw_dst="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb2"/>
-            </ASroute><ASroute src="AS3_cb1" dst="gw_AS3_dc3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com" gw_dst="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb1"/>
-            </ASroute><ASroute src="AS3_cb4" dst="gw_AS3_dc3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com" gw_dst="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb4"/>
-            </ASroute>
-            <ASroute dst="AS3_cb3" src="gw_AS3_dc3" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" gw_src="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb3"/>
-            </ASroute><ASroute dst="AS3_cb2" src="gw_AS3_dc3" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" gw_src="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb2"/>
-            </ASroute><ASroute dst="AS3_cb1" src="gw_AS3_dc3" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com" gw_src="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb1"/>
-            </ASroute><ASroute dst="AS3_cb4" src="gw_AS3_dc3" gw_dst="cb4-AS3_cb4_router.dc3.acloud.com" gw_src="gw_dc3_horizdist" symmetrical="NO">
-                    <link_ctn id="link_dc3_cb4"/>
-            </ASroute>  
-   </AS>
-              
+     <!-- internal routes between clusters -->
+     <ASroute src="AS3_cb2" dst="AS3_cb3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
+              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb2"/><link_ctn id="link_dc3_cb3"/>
+     </ASroute>
+     <ASroute src="AS3_cb1" dst="AS3_cb3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb3"/>
+     </ASroute>
+     <ASroute src="AS3_cb1" dst="AS3_cb2" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+              gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb1"/><link_ctn id="link_dc3_cb2"/>
+     </ASroute>
+     <ASroute src="AS3_cb4" dst="AS3_cb3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+              gw_dst="cb3-AS3_cb3_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb3"/>
+     </ASroute>
+     <ASroute src="AS3_cb4" dst="AS3_cb2" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+              gw_dst="cb2-AS3_cb2_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb2"/>
+     </ASroute>
+     <ASroute src="AS3_cb4" dst="AS3_cb1" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+              gw_dst="cb1-AS3_cb1_router.dc3.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc3_cb4"/><link_ctn id="link_dc3_cb1"/>
+     </ASroute>
+
+     <!-- routes to exit AS -->
+     <ASroute src="AS3_cb3" dst="gw_AS3_dc3" gw_src="cb3-AS3_cb3_router.dc3.acloud.com"
+              gw_dst="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb3"/>
+     </ASroute>
+     <ASroute src="AS3_cb2" dst="gw_AS3_dc3" gw_src="cb2-AS3_cb2_router.dc3.acloud.com"
+              gw_dst="gw_dc3_horizdist" symmetrical="YES">
+       <link_ctn id="link_dc3_cb2"/>
+     </ASroute>
+     <ASroute src="AS3_cb1" dst="gw_AS3_dc3" gw_src="cb1-AS3_cb1_router.dc3.acloud.com"
+              gw_dst="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb1"/>
+     </ASroute>
+     <ASroute src="AS3_cb4" dst="gw_AS3_dc3" gw_src="cb4-AS3_cb4_router.dc3.acloud.com"
+              gw_dst="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb4"/>
+     </ASroute>
+     <ASroute dst="AS3_cb3" src="gw_AS3_dc3" gw_dst="cb3-AS3_cb3_router.dc3.acloud.com"
+              gw_src="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb3"/>
+     </ASroute>
+     <ASroute dst="AS3_cb2" src="gw_AS3_dc3" gw_dst="cb2-AS3_cb2_router.dc3.acloud.com"
+              gw_src="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb2"/>
+     </ASroute>
+     <ASroute dst="AS3_cb1" src="gw_AS3_dc3" gw_dst="cb1-AS3_cb1_router.dc3.acloud.com"
+              gw_src="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb1"/>
+     </ASroute>
+     <ASroute dst="AS3_cb4" src="gw_AS3_dc3" gw_dst="cb4-AS3_cb4_router.dc3.acloud.com"
+              gw_src="gw_dc3_horizdist" symmetrical="YES">
+        <link_ctn id="link_dc3_cb4"/>
+     </ASroute>  
+  </AS>
 </AS>
 </platform>
index d87ee87..a674628 100644 (file)
@@ -1,19 +1,16 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <!--             _________
                 |          |
                 |  router  |
     ____________|__________|_____________ backbone
-      |   |   |              |     |   |       
-    l0|        l1| l2|           l97| l96 |   | l99
+      |   |   |              |     |   |  
+    l0| l1| l2|           l97| l96 |   | l99
       |   |   |   ........   |     |   |
       |                                |
   node-0.acme.org                  node-99.acme.org
 -->
-<platform version="3">
-  <cluster id="acme"
-           prefix="node-"    suffix=".acme.org"
-           radical="0-99"    power="1Gf" 
-          bw="125MBps"      lat="50us"
+  <cluster id="acme" prefix="node-" suffix=".acme.org" radical="0-99" speed="1Gf" bw="125MBps" lat="50us"
            bb_bw="2.25GBps"  bb_lat="500us"/>
 </platform>
index 5ef0ab6..73004fc 100644 (file)
@@ -1,20 +1,16 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
  <AS id="AS0"  routing="Full">   
-  <cluster id="my_cluster_1" prefix="c-" suffix=".me"
-          radical="0-1" power="1Gf" bw="125MBps" lat="50us"
+  <cluster id="my_cluster_1" prefix="c-" suffix=".me" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
            router_id="router1"/>
 
   <AS id="AS1" routing="None">
-    <host id="host1" power="1Gf"/>
+    <host id="host1" speed="1Gf"/>
   </AS>
 
   <link id="link1" bandwidth="100kBps" latency="10ms"/>
-  
-  <ASroute src="my_cluster_1" dst="AS1"
-    gw_src="router1" gw_dst="host1">
-    <link_ctn id="link1"/>
-  </ASroute>
+
+  <ASroute src="my_cluster_1" dst="AS1" gw_src="router1" gw_dst="host1"><link_ctn id="link1"/></ASroute>
  </AS>
 </platform>
index f481a7b..5ae99e4 100644 (file)
@@ -1,21 +1,18 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <!--             _________
                 |          |
                 |  router  |
                 |__________|
                     / | \
                    /  |  \
-               l0 / l1|   \l2 
+               l0 / l1|   \l2
                  /    |    \
                 /     |     \
-            host0   host1   host2      
+            host0   host1   host2
 -->
-
-<platform version="3">
-<AS  id="AS0"  routing="Full">
-  <cluster id="my_cluster_1" prefix="" suffix=""
-               radical="0-262144"      power="1Gf"    bw="125MBps"     lat="50us"/>
+<AS id="AS0" routing="Full">
+  <cluster id="my_cluster_1" prefix="" suffix="" radical="0-262144" speed="1Gf" bw="125MBps" lat="50us"/>
 </AS>
 </platform>
index 88b855f..6e897bd 100644 (file)
@@ -1,14 +1,13 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <!--                  _________________________________________
                  ____|_____                                    |
                 |          |                                   |
                 |  router1 |                                   |
     ____________|__________|_____________ backbone1            |
       |   |   |              |     |   |                       | backbone
-    l0|        l1| l2|            l7|   l8|   |l9                     |
+    l0| l1| l2|            l7|   l8|   |l9                     |
       |   |   |   ........   |     |   |                       |
       |                                |                       |
     c-0.me                             c-9.me                  |
                 |          |
                 |  router2 |
     ____________|__________|_____________ backbone2
-      |   |   |              |     |   |       
+      |   |   |              |     |   |  
    l10|l11|l12|           l17| l18 |   | l19
       |   |   |   ........   |     |   |
       |                                |
-   c-10.me                             c-19.me 
--->
+   c-10.me                             c-19.me -->
 
 <AS id="AS0" routing="Full">
-       <cluster id="my_cluster_1" prefix="node-" suffix=".acme.org" radical="0-9"
-               power="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps"
-               bb_lat="500us" />
+  <cluster id="my_cluster_1" prefix="node-" suffix=".acme.org" radical="0-9" speed="1Gf" 
+           bw="125MBps" lat="50us" bb_bw="2.25GBps" bb_lat="500us" />
 
-       <cluster id="my_cluster_2" prefix="node-" suffix=".acme.org" radical="10-19"
-               power="1Gf" bw="125MBps" lat="50us" bb_bw="2.25GBps"
-               bb_lat="500us" />
+  <cluster id="my_cluster_2" prefix="node-" suffix=".acme.org" radical="10-19" speed="1Gf" 
+           bw="125MBps" lat="50us" bb_bw="2.25GBps" bb_lat="500us" />
 
-       <link id="backbone" bandwidth="1.25GBps" latency="500us" />
+  <link id="backbone" bandwidth="1.25GBps" latency="500us" />
 
-       <ASroute src="my_cluster_1" dst="my_cluster_2" gw_src="node-my_cluster_1_router.acme.org"
-               gw_dst="node-my_cluster_2_router.acme.org">
-               <link_ctn id="backbone" />
-       </ASroute>
+  <ASroute src="my_cluster_1" dst="my_cluster_2" gw_src="node-my_cluster_1_router.acme.org"
+    gw_dst="node-my_cluster_2_router.acme.org">
+    <link_ctn id="backbone" />
+  </ASroute>
 </AS>
 </platform>
diff --git a/examples/platforms/conf/gridpp_grid_2004.xml b/examples/platforms/conf/gridpp_grid_2004.xml
deleted file mode 100644 (file)
index af2d582..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-<!-- This platform was automatically converted from the OptorSim platform.
-
-  As such, it only contains information of the cluster interconnexion,
-  not on the caracteristics of each cluster. In a sense, it describes
-  the network of a National Research and Education Network (NREN), but
-  not of a computational platform.
-  
-  We hope that you find it useful anyway. I you know how to complete
-  this information with data on the cluster configurations, please
-  drop us a mail so that we can add this information. -->
-
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS0"  routing="Floyd">
-<!--0 WC_Gla-->
-<!--1 WC_Edi-->
-<!--2 WC_Manc-->
-<!--3 WC_Leeds-->
-<!--4 WC_Reading-->
-<!--5 WC_London-->
-<!--6 WC_Bristol-->
-<!--7 WC_Portsmouth-->
-<!--8 Gla_router-->
-<!--9 Edi_router-->
-<!--10 NorMAN-->
-<!--11 YHMAN-->
-<!--12 EastNet-->
-<!--13 LMN-->
-<!--14 SWAN_BWEMAN-->
-<!--15 TVN-->
-<!--16 MidMAN-->
-<!--17 NNW_router-->
-<!--18 Glasgow-->
-<!--19 Edi-->
-<!--20 Durham-->
-<!--21 Sheffield-->
-<!--22 Cam-->
-<!--23 UCL-->
-<!--24 IC-->
-<!--25 QMW-->
-<!--26 Brunel-->
-<!--27 RHNBC-->
-<!--28 Bristol-->
-<!--29 RAL-->
-<!--30 Oxford-->
-<!--31 B_ham-->
-<!--32 L_pool-->
-<!--33 Manc-->
-<!--34 Lanc-->
-<!--35 CERN-->
-       <host id="WC_Edi" power="1f"/>
-       <host id="WC_Manc" power="1f"/>
-       <host id="Gla_router" power="1f"/>
-       <host id="Glasgow" power="20Mf"/>
-       <host id="Edi" power="25.6Mf"/>
-       <host id="Durham" power="4.134Mf"/>
-       <host id="Sheffield" power="49.64Mf"/>
-       <host id="Cam" power="1.32Mf"/>
-       <host id="UCL" power="22.5Mf"/>
-       <host id="IC" power="440Mf"/>
-       <host id="QMW" power="44Mf"/>
-       <host id="Brunel" power="85.68Mf"/>
-       <host id="RHNBC" power="7.2Mf"/>
-       <host id="Bristol" power="60Mf"/>
-       <host id="RAL" power="556.956Mf"/>
-       <host id="Oxford" power="156.56Mf"/>
-       <host id="B_ham" power="13.5Mf"/>
-       <host id="L_pool" power="308.07Mf"/>
-       <host id="Manc" power="22.5Mf"/>
-       <host id="Lanc" power="204.8Mf"/>
-       <host id="CERN" power="1f"/>
-
-       <router id="WC_Gla"/>
-       <router id="WC_Leeds"/>
-       <router id="WC_Reading"/>
-       <router id="WC_London"/>
-       <router id="WC_Bristol"/>
-       <router id="WC_Portsmouth"/>
-       <router id="Edi_router"/>
-       <router id="NorMAN"/>
-       <router id="YHMAN"/>
-       <router id="EastNet"/>
-       <router id="LMN"/>
-       <router id="SWAN_BWEMAN"/>
-       <router id="TVN"/>
-       <router id="MidMAN"/>
-       <router id="NNW_router"/>
-
-       <link id="link0" bandwidth="10kBps"/>
-       <link id="link1" bandwidth="10kBps"/>
-       <link id="link2" bandwidth="1kBps"/>
-       <link id="link3" bandwidth="10kBps"/>
-       <link id="link4" bandwidth="1kBps"/>
-       <link id="link5" bandwidth="10kBps"/>
-       <link id="link6" bandwidth="10kBps"/>
-       <link id="link7" bandwidth="1kBps"/>
-       <link id="link8" bandwidth="1kBps"/>
-       <link id="link9" bandwidth="10kBps"/>
-       <link id="link10" bandwidth="622Bps"/>
-       <link id="link11" bandwidth="1kBps"/>
-       <link id="link12" bandwidth="10kBps"/>
-       <link id="link13" bandwidth="10kBps"/>
-       <link id="link14" bandwidth="622Bps"/>
-       <link id="link15" bandwidth="10kBps"/>
-       <link id="link16" bandwidth="1kBps"/>
-       <link id="link17" bandwidth="1kBps"/>
-       <link id="link18" bandwidth="10kBps"/>
-       <link id="link19" bandwidth="622Bps"/>
-       <link id="link20" bandwidth="2.5kBps"/>
-       <link id="link21" bandwidth="1kBps"/>
-       <link id="link22" bandwidth="1kBps"/>
-       <link id="link23" bandwidth="155Bps"/>
-       <link id="link24" bandwidth="155Bps"/>
-       <link id="link25" bandwidth="155Bps"/>
-       <link id="link26" bandwidth="155Bps"/>
-       <link id="link27" bandwidth="155Bps"/>
-       <link id="link28" bandwidth="155Bps"/>
-       <link id="link29" bandwidth="155Bps"/>
-       <link id="link30" bandwidth="155Bps"/>
-       <link id="link31" bandwidth="622Bps"/>
-       <link id="link32" bandwidth="622Bps"/>
-       <link id="link33" bandwidth="622Bps"/>
-       <link id="link34" bandwidth="622Bps"/>
-       <link id="link35" bandwidth="155Bps"/>
-       <link id="link36" bandwidth="1kBps"/>
-       <link id="link37" bandwidth="155Bps"/>
-
-       <route src="WC_Gla" dst="WC_Gla">
-               <link_ctn id="link0"/>
-       </route>
-       <route src="WC_Gla" dst="WC_Edi">
-               <link_ctn id="link1"/>
-       </route>
-       <route src="WC_Gla" dst="WC_Portsmouth">
-               <link_ctn id="link2"/>
-       </route>
-       <route src="WC_Edi" dst="WC_Manc">
-               <link_ctn id="link3"/>
-       </route>
-       <route src="WC_Edi" dst="Gla_router">
-               <link_ctn id="link4"/>
-       </route>
-       <route src="WC_Manc" dst="WC_Manc">
-               <link_ctn id="link5"/>
-       </route>
-       <route src="WC_Manc" dst="WC_Leeds">
-               <link_ctn id="link6"/>
-       </route>
-       <route src="WC_Manc" dst="TVN">
-               <link_ctn id="link7"/>
-       </route>
-       <route src="WC_Manc" dst="MidMAN">
-               <link_ctn id="link8"/>
-       </route>
-       <route src="WC_Leeds" dst="WC_Reading">
-               <link_ctn id="link9"/>
-       </route>
-       <route src="WC_Leeds" dst="Edi_router">
-               <link_ctn id="link10"/>
-       </route>
-       <route src="WC_Leeds" dst="NorMAN">
-               <link_ctn id="link11"/>
-       </route>
-       <route src="WC_Reading" dst="WC_Reading">
-               <link_ctn id="link12"/>
-       </route>
-       <route src="WC_Reading" dst="WC_London">
-               <link_ctn id="link13"/>
-       </route>
-       <route src="WC_Reading" dst="SWAN_BWEMAN">
-               <link_ctn id="link14"/>
-       </route>
-       <route src="WC_London" dst="WC_Bristol">
-               <link_ctn id="link15"/>
-       </route>
-       <route src="WC_London" dst="YHMAN">
-               <link_ctn id="link16"/>
-       </route>
-       <route src="WC_London" dst="EastNet">
-               <link_ctn id="link17"/>
-       </route>
-       <route src="WC_Bristol" dst="WC_Bristol">
-               <link_ctn id="link18"/>
-       </route>
-       <route src="WC_Bristol" dst="LMN">
-               <link_ctn id="link19"/>
-       </route>
-       <route src="WC_Portsmouth" dst="Lanc">
-               <link_ctn id="link20"/>
-       </route>
-       <route src="Gla_router" dst="NNW_router">
-               <link_ctn id="link21"/>
-       </route>
-       <route src="Edi_router" dst="Glasgow">
-               <link_ctn id="link22"/>
-       </route>
-       <route src="NorMAN" dst="Edi">
-               <link_ctn id="link23"/>
-       </route>
-       <route src="YHMAN" dst="Durham">
-               <link_ctn id="link24"/>
-       </route>
-       <route src="EastNet" dst="Sheffield">
-               <link_ctn id="link25"/>
-       </route>
-       <route src="LMN" dst="Cam">
-               <link_ctn id="link26"/>
-       </route>
-       <route src="LMN" dst="UCL">
-               <link_ctn id="link27"/>
-       </route>
-       <route src="LMN" dst="IC">
-               <link_ctn id="link28"/>
-       </route>
-       <route src="LMN" dst="QMW">
-               <link_ctn id="link29"/>
-       </route>
-       <route src="LMN" dst="Brunel">
-               <link_ctn id="link30"/>
-       </route>
-       <route src="SWAN_BWEMAN" dst="RHNBC">
-               <link_ctn id="link31"/>
-       </route>
-       <route src="TVN" dst="Bristol">
-               <link_ctn id="link32"/>
-       </route>
-       <route src="TVN" dst="RAL">
-               <link_ctn id="link33"/>
-       </route>
-       <route src="MidMAN" dst="Oxford">
-               <link_ctn id="link34"/>
-       </route>
-       <route src="NNW_router" dst="B_ham">
-               <link_ctn id="link35"/>
-       </route>
-       <route src="NNW_router" dst="L_pool">
-               <link_ctn id="link36"/>
-       </route>
-       <route src="NNW_router" dst="Manc">
-               <link_ctn id="link37"/>
-       </route>
-</AS>
-</platform> 
diff --git a/examples/platforms/conf/lcg_sept2004_grid.xml b/examples/platforms/conf/lcg_sept2004_grid.xml
deleted file mode 100644 (file)
index fced84a..0000000
+++ /dev/null
@@ -1,618 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS0"  routing="Floyd">
-       <host id="0" power="1.47Tf"/>
-       <host id="1" power="1.82Gf"/>
-       <host id="2" power="1f"/>
-       <host id="4" power="593.46Gf"/>
-       <host id="5" power="560Mf"/>
-       <host id="6" power="560Mf"/>
-       <host id="7" power="560Mf"/>
-       <host id="8" power="96Mf"/>
-       <host id="9" power="7.68Gf"/>
-       <host id="10" power="910Mf"/>
-       <host id="12" power="250Mf"/>
-       <host id="13" power="448Mf"/>
-       <host id="15" power="12.5Mf"/>
-       <host id="16" power="12.5Mf"/>
-       <host id="18" power="78Mf"/>
-       <host id="20" power="560Mf"/>
-       <host id="23" power="60Mf"/>
-       <host id="24" power="154.524Gf"/>
-       <host id="25" power="60Mf"/>
-       <host id="26" power="60Mf"/>
-       <host id="27" power="60Mf"/>
-       <host id="28" power="60Mf"/>
-       <host id="29" power="60Mf"/>
-       <host id="30" power="60Mf"/>
-       <host id="31" power="1f"/>
-       <host id="32" power="2.1Gf"/>
-       <host id="33" power="21Gf"/>
-       <host id="35" power="442Mf"/>
-       <host id="36" power="6.5Gf"/>
-       <host id="38" power="300Mf"/>
-       <host id="39" power="1.2Gf"/>
-       <host id="42" power="540Mf"/>
-       <host id="43" power="390Mf"/>
-       <host id="44" power="208Mf"/>
-       <host id="45" power="600Mf"/>
-       <host id="49" power="44.352Gf"/>
-       <host id="50" power="4.564Gf"/>
-       <host id="52" power="78.522Gf"/>
-       <host id="54" power="9.2Gf"/>
-       <host id="56" power="142.476Gf"/>
-       <host id="57" power="448Mf"/>
-       <host id="59" power="3.78Gf"/>
-       <host id="60" power="250Mf"/>
-       <host id="61" power="650Mf"/>
-       <host id="64" power="9.2Gf"/>
-       <host id="65" power="250Mf"/>
-       <host id="66" power="250Mf"/>
-       <host id="67" power="592Mf"/>
-       <host id="68" power="250Mf"/>
-       <host id="69" power="250Mf"/>
-       <host id="70" power="250Mf"/>
-       <host id="71" power="4Mf"/>
-       <host id="72" power="250Mf"/>
-       <host id="73" power="250Mf"/>
-       <host id="74" power="1f"/>
-       <host id="75" power="53.6Gf"/>
-       <host id="77" power="14.248Gf"/>
-       <host id="79" power="24Mf"/>
-       <host id="82" power="240Mf"/>
-       <host id="83" power="2.56Gf"/>
-       <host id="86" power="2.28Gf"/>
-       <host id="89" power="20Mf"/>
-       <host id="93" power="250Mf"/>
-       <host id="95" power="8.636Gf"/>
-       <host id="97" power="250Mf"/>
-       <host id="98" power="250Mf"/>
-       <host id="99" power="28.098Gf"/>
-       <host id="100" power="250Mf"/>
-
-       <router id="3"/>
-       <router id="11"/>
-       <router id="14"/>
-       <router id="17"/>
-       <router id="19"/>
-       <router id="21"/>
-       <router id="22"/>
-       <router id="34"/>
-       <router id="37"/>
-       <router id="40"/>
-       <router id="41"/>
-       <router id="46"/>
-       <router id="47"/>
-       <router id="48"/>
-       <router id="51"/>
-       <router id="53"/>
-       <router id="55"/>
-       <router id="58"/>
-       <router id="62"/>
-       <router id="63"/>
-       <router id="76"/>
-       <router id="78"/>
-       <router id="80"/>
-       <router id="81"/>
-       <router id="84"/>
-       <router id="85"/>
-       <router id="87"/>
-       <router id="88"/>
-       <router id="90"/>
-       <router id="91"/>
-       <router id="92"/>
-       <router id="94"/>
-       <router id="96"/>
-
-       <link id="link0" bandwidth="1kBps"/>
-       <link id="link1" bandwidth="10kBps"/>
-       <link id="link2" bandwidth="10kBps"/>
-       <link id="link3" bandwidth="155Bps"/>
-       <link id="link4" bandwidth="10kBps"/>
-       <link id="link5" bandwidth="10kBps"/>
-       <link id="link6" bandwidth="10kBps"/>
-       <link id="link7" bandwidth="155Bps"/>
-       <link id="link8" bandwidth="155Bps"/>
-       <link id="link9" bandwidth="155Bps"/>
-       <link id="link10" bandwidth="155Bps"/>
-       <link id="link11" bandwidth="155Bps"/>
-       <link id="link12" bandwidth="155Bps"/>
-       <link id="link13" bandwidth="155Bps"/>
-       <link id="link14" bandwidth="155Bps"/>
-       <link id="link15" bandwidth="10kBps"/>
-       <link id="link16" bandwidth="10kBps"/>
-       <link id="link17" bandwidth="155Bps"/>
-       <link id="link18" bandwidth="155Bps"/>
-       <link id="link19" bandwidth="155Bps"/>
-       <link id="link20" bandwidth="155Bps"/>
-       <link id="link21" bandwidth="155Bps"/>
-       <link id="link22" bandwidth="622Bps"/>
-       <link id="link23" bandwidth="622Bps"/>
-       <link id="link24" bandwidth="155Bps"/>
-       <link id="link25" bandwidth="10kBps"/>
-       <link id="link26" bandwidth="2.5kBps"/>
-       <link id="link27" bandwidth="155Bps"/>
-       <link id="link28" bandwidth="2.5kBps"/>
-       <link id="link29" bandwidth="1kBps"/>
-       <link id="link30" bandwidth="10kBps"/>
-       <link id="link31" bandwidth="10kBps"/>
-       <link id="link32" bandwidth="155Bps"/>
-       <link id="link33" bandwidth="1kBps"/>
-       <link id="link34" bandwidth="155Bps"/>
-       <link id="link35" bandwidth="155Bps"/>
-       <link id="link36" bandwidth="155Bps"/>
-       <link id="link37" bandwidth="155Bps"/>
-       <link id="link38" bandwidth="155Bps"/>
-       <link id="link39" bandwidth="155Bps"/>
-       <link id="link40" bandwidth="1kBps"/>
-       <link id="link41" bandwidth="1kBps"/>
-       <link id="link42" bandwidth="10kBps"/>
-       <link id="link43" bandwidth="2.5kBps"/>
-       <link id="link44" bandwidth="10kBps"/>
-       <link id="link45" bandwidth="155Bps"/>
-       <link id="link46" bandwidth="155Bps"/>
-       <link id="link47" bandwidth="2.5kBps"/>
-       <link id="link48" bandwidth="155Bps"/>
-       <link id="link49" bandwidth="155Bps"/>
-       <link id="link50" bandwidth="10kBps"/>
-       <link id="link51" bandwidth="155Bps"/>
-       <link id="link52" bandwidth="10kBps"/>
-       <link id="link53" bandwidth="155Bps"/>
-       <link id="link54" bandwidth="155Bps"/>
-       <link id="link55" bandwidth="155Bps"/>
-       <link id="link56" bandwidth="155Bps"/>
-       <link id="link57" bandwidth="2.5kBps"/>
-       <link id="link58" bandwidth="1kBps"/>
-       <link id="link59" bandwidth="10kBps"/>
-       <link id="link60" bandwidth="2.5kBps"/>
-       <link id="link61" bandwidth="2.5kBps"/>
-       <link id="link62" bandwidth="155Bps"/>
-       <link id="link63" bandwidth="10kBps"/>
-       <link id="link64" bandwidth="10kBps"/>
-       <link id="link65" bandwidth="1kBps"/>
-       <link id="link66" bandwidth="155Bps"/>
-       <link id="link67" bandwidth="10kBps"/>
-       <link id="link68" bandwidth="10kBps"/>
-       <link id="link69" bandwidth="1kBps"/>
-       <link id="link70" bandwidth="10kBps"/>
-       <link id="link71" bandwidth="1kBps"/>
-       <link id="link72" bandwidth="10kBps"/>
-       <link id="link73" bandwidth="622Bps"/>
-       <link id="link74" bandwidth="1kBps"/>
-       <link id="link75" bandwidth="1kBps"/>
-       <link id="link76" bandwidth="1kBps"/>
-       <link id="link77" bandwidth="10kBps"/>
-       <link id="link78" bandwidth="155Bps"/>
-       <link id="link79" bandwidth="155Bps"/>
-       <link id="link80" bandwidth="155Bps"/>
-       <link id="link81" bandwidth="155Bps"/>
-       <link id="link82" bandwidth="155Bps"/>
-       <link id="link83" bandwidth="155Bps"/>
-       <link id="link84" bandwidth="155Bps"/>
-       <link id="link85" bandwidth="155Bps"/>
-       <link id="link86" bandwidth="155Bps"/>
-       <link id="link87" bandwidth="155Bps"/>
-       <link id="link88" bandwidth="155Bps"/>
-       <link id="link89" bandwidth="2.5kBps"/>
-       <link id="link90" bandwidth="10kBps"/>
-       <link id="link91" bandwidth="3kBps"/>
-       <link id="link92" bandwidth="3kBps"/>
-       <link id="link93" bandwidth="10kBps"/>
-       <link id="link94" bandwidth="10kBps"/>
-       <link id="link95" bandwidth="622Bps"/>
-       <link id="link96" bandwidth="622Bps"/>
-       <link id="link97" bandwidth="1kBps"/>
-       <link id="link98" bandwidth="3kBps"/>
-       <link id="link99" bandwidth="3kBps"/>
-       <link id="link100" bandwidth="10kBps"/>
-       <link id="link101" bandwidth="2.5kBps"/>
-       <link id="link102" bandwidth="155Bps"/>
-       <link id="link103" bandwidth="10kBps"/>
-       <link id="link104" bandwidth="10kBps"/>
-       <link id="link105" bandwidth="155Bps"/>
-       <link id="link106" bandwidth="155Bps"/>
-       <link id="link107" bandwidth="10kBps"/>
-       <link id="link108" bandwidth="10kBps"/>
-       <link id="link109" bandwidth="10kBps"/>
-       <link id="link110" bandwidth="155Bps"/>
-       <link id="link111" bandwidth="10kBps"/>
-       <link id="link112" bandwidth="10kBps"/>
-       <link id="link113" bandwidth="3kBps"/>
-       <link id="link114" bandwidth="155Bps"/>
-       <link id="link115" bandwidth="3kBps"/>
-       <link id="link116" bandwidth="10kBps"/>
-       <link id="link117" bandwidth="622Bps"/>
-       <link id="link118" bandwidth="155Bps"/>
-       <link id="link119" bandwidth="33Bps"/>
-       <link id="link120" bandwidth="1kBps"/>
-       <link id="link121" bandwidth="622Bps"/>
-       <link id="link122" bandwidth="155Bps"/>
-       <link id="link123" bandwidth="155Bps"/>
-       <link id="link124" bandwidth="155Bps"/>
-       <link id="link125" bandwidth="155Bps"/>
-       <link id="link126" bandwidth="622Bps"/>
-
-       <route src="0" dst="2">
-               <link_ctn id="link0"/>
-       </route>
-       <route src="0" dst="31">
-               <link_ctn id="link1"/>
-       </route>
-       <route src="0" dst="74">
-               <link_ctn id="link2"/>
-       </route>
-       <route src="1" dst="2">
-               <link_ctn id="link3"/>
-       </route>
-       <route src="2" dst="2">
-               <link_ctn id="link4"/>
-       </route>
-       <route src="2" dst="16">
-               <link_ctn id="link5"/>
-       </route>
-       <route src="2" dst="57">
-               <link_ctn id="link6"/>
-       </route>
-       <route src="3" dst="3">
-               <link_ctn id="link7"/>
-       </route>
-       <route src="3" dst="4">
-               <link_ctn id="link8"/>
-       </route>
-       <route src="3" dst="5">
-               <link_ctn id="link9"/>
-       </route>
-       <route src="3" dst="6">
-               <link_ctn id="link10"/>
-       </route>
-       <route src="3" dst="7">
-               <link_ctn id="link11"/>
-       </route>
-       <route src="3" dst="8">
-               <link_ctn id="link12"/>
-       </route>
-       <route src="3" dst="9">
-               <link_ctn id="link13"/>
-       </route>
-       <route src="3" dst="10">
-               <link_ctn id="link14"/>
-       </route>
-       <route src="3" dst="20">
-               <link_ctn id="link15"/>
-       </route>
-       <route src="3" dst="61">
-               <link_ctn id="link16"/>
-       </route>
-       <route src="11" dst="11">
-               <link_ctn id="link17"/>
-       </route>
-       <route src="11" dst="12">
-               <link_ctn id="link18"/>
-       </route>
-       <route src="11" dst="30">
-               <link_ctn id="link19"/>
-       </route>
-       <route src="14" dst="14">
-               <link_ctn id="link20"/>
-       </route>
-       <route src="14" dst="15">
-               <link_ctn id="link21"/>
-       </route>
-       <route src="14" dst="20">
-               <link_ctn id="link22"/>
-       </route>
-       <route src="14" dst="45">
-               <link_ctn id="link23"/>
-       </route>
-       <route src="17" dst="17">
-               <link_ctn id="link24"/>
-       </route>
-       <route src="17" dst="18">
-               <link_ctn id="link25"/>
-       </route>
-       <route src="17" dst="20">
-               <link_ctn id="link26"/>
-       </route>
-       <route src="19" dst="19">
-               <link_ctn id="link27"/>
-       </route>
-       <route src="19" dst="33">
-               <link_ctn id="link28"/>
-       </route>
-       <route src="21" dst="21">
-               <link_ctn id="link29"/>
-       </route>
-       <route src="21" dst="30">
-               <link_ctn id="link30"/>
-       </route>
-       <route src="21" dst="57">
-               <link_ctn id="link31"/>
-       </route>
-       <route src="22" dst="22">
-               <link_ctn id="link32"/>
-       </route>
-       <route src="22" dst="23">
-               <link_ctn id="link33"/>
-       </route>
-       <route src="22" dst="24">
-               <link_ctn id="link34"/>
-       </route>
-       <route src="22" dst="25">
-               <link_ctn id="link35"/>
-       </route>
-       <route src="22" dst="26">
-               <link_ctn id="link36"/>
-       </route>
-       <route src="22" dst="27">
-               <link_ctn id="link37"/>
-       </route>
-       <route src="22" dst="28">
-               <link_ctn id="link38"/>
-       </route>
-       <route src="22" dst="29">
-               <link_ctn id="link39"/>
-       </route>
-       <route src="31" dst="31">
-               <link_ctn id="link40"/>
-       </route>
-       <route src="31" dst="32">
-               <link_ctn id="link41"/>
-       </route>
-       <route src="31" dst="45">
-               <link_ctn id="link42"/>
-       </route>
-       <route src="31" dst="57">
-               <link_ctn id="link43"/>
-       </route>
-       <route src="31" dst="73">
-               <link_ctn id="link44"/>
-       </route>
-       <route src="34" dst="34">
-               <link_ctn id="link45"/>
-       </route>
-       <route src="34" dst="35">
-               <link_ctn id="link46"/>
-       </route>
-       <route src="34" dst="36">
-               <link_ctn id="link47"/>
-       </route>
-       <route src="37" dst="37">
-               <link_ctn id="link48"/>
-       </route>
-       <route src="37" dst="38">
-               <link_ctn id="link49"/>
-       </route>
-       <route src="37" dst="39">
-               <link_ctn id="link50"/>
-       </route>
-       <route src="40" dst="40">
-               <link_ctn id="link51"/>
-       </route>
-       <route src="40" dst="45">
-               <link_ctn id="link52"/>
-       </route>
-       <route src="41" dst="41">
-               <link_ctn id="link53"/>
-       </route>
-       <route src="41" dst="42">
-               <link_ctn id="link54"/>
-       </route>
-       <route src="41" dst="43">
-               <link_ctn id="link55"/>
-       </route>
-       <route src="41" dst="44">
-               <link_ctn id="link56"/>
-       </route>
-       <route src="46" dst="46">
-               <link_ctn id="link57"/>
-       </route>
-       <route src="46" dst="56">
-               <link_ctn id="link58"/>
-       </route>
-       <route src="46" dst="57">
-               <link_ctn id="link59"/>
-       </route>
-       <route src="46" dst="75">
-               <link_ctn id="link60"/>
-       </route>
-       <route src="46" dst="79">
-               <link_ctn id="link61"/>
-       </route>
-       <route src="46" dst="95">
-               <link_ctn id="link62"/>
-       </route>
-       <route src="47" dst="47">
-               <link_ctn id="link63"/>
-       </route>
-       <route src="47" dst="54">
-               <link_ctn id="link64"/>
-       </route>
-       <route src="48" dst="48">
-               <link_ctn id="link65"/>
-       </route>
-       <route src="48" dst="49">
-               <link_ctn id="link66"/>
-       </route>
-       <route src="48" dst="50">
-               <link_ctn id="link67"/>
-       </route>
-       <route src="48" dst="54">
-               <link_ctn id="link68"/>
-       </route>
-       <route src="51" dst="51">
-               <link_ctn id="link69"/>
-       </route>
-       <route src="51" dst="52">
-               <link_ctn id="link70"/>
-       </route>
-       <route src="53" dst="53">
-               <link_ctn id="link71"/>
-       </route>
-       <route src="53" dst="54">
-               <link_ctn id="link72"/>
-       </route>
-       <route src="55" dst="55">
-               <link_ctn id="link73"/>
-       </route>
-       <route src="58" dst="58">
-               <link_ctn id="link74"/>
-       </route>
-       <route src="58" dst="59">
-               <link_ctn id="link75"/>
-       </route>
-       <route src="58" dst="60">
-               <link_ctn id="link76"/>
-       </route>
-       <route src="58" dst="61">
-               <link_ctn id="link77"/>
-       </route>
-       <route src="62" dst="62">
-               <link_ctn id="link78"/>
-       </route>
-       <route src="62" dst="65">
-               <link_ctn id="link79"/>
-       </route>
-       <route src="62" dst="66">
-               <link_ctn id="link80"/>
-       </route>
-       <route src="62" dst="67">
-               <link_ctn id="link81"/>
-       </route>
-       <route src="62" dst="68">
-               <link_ctn id="link82"/>
-       </route>
-       <route src="62" dst="69">
-               <link_ctn id="link83"/>
-       </route>
-       <route src="62" dst="70">
-               <link_ctn id="link84"/>
-       </route>
-       <route src="62" dst="71">
-               <link_ctn id="link85"/>
-       </route>
-       <route src="62" dst="72">
-               <link_ctn id="link86"/>
-       </route>
-       <route src="63" dst="63">
-               <link_ctn id="link87"/>
-       </route>
-       <route src="63" dst="64">
-               <link_ctn id="link88"/>
-       </route>
-       <route src="74" dst="74">
-               <link_ctn id="link89"/>
-       </route>
-       <route src="74" dst="75">
-               <link_ctn id="link90"/>
-       </route>
-       <route src="74" dst="80">
-               <link_ctn id="link91"/>
-       </route>
-       <route src="74" dst="83">
-               <link_ctn id="link92"/>
-       </route>
-       <route src="74" dst="89">
-               <link_ctn id="link93"/>
-       </route>
-       <route src="74" dst="90">
-               <link_ctn id="link94"/>
-       </route>
-       <route src="74" dst="95">
-               <link_ctn id="link95"/>
-       </route>
-       <route src="74" dst="99">
-               <link_ctn id="link96"/>
-       </route>
-       <route src="76" dst="76">
-               <link_ctn id="link97"/>
-       </route>
-       <route src="76" dst="77">
-               <link_ctn id="link98"/>
-       </route>
-       <route src="76" dst="80">
-               <link_ctn id="link99"/>
-       </route>
-       <route src="76" dst="90">
-               <link_ctn id="link100"/>
-       </route>
-       <route src="76" dst="93">
-               <link_ctn id="link101"/>
-       </route>
-       <route src="78" dst="78">
-               <link_ctn id="link102"/>
-       </route>
-       <route src="78" dst="79">
-               <link_ctn id="link103"/>
-       </route>
-       <route src="80" dst="80">
-               <link_ctn id="link104"/>
-       </route>
-       <route src="81" dst="81">
-               <link_ctn id="link105"/>
-       </route>
-       <route src="81" dst="82">
-               <link_ctn id="link106"/>
-       </route>
-       <route src="81" dst="83">
-               <link_ctn id="link107"/>
-       </route>
-       <route src="84" dst="84">
-               <link_ctn id="link108"/>
-       </route>
-       <route src="84" dst="86">
-               <link_ctn id="link109"/>
-       </route>
-       <route src="85" dst="85">
-               <link_ctn id="link110"/>
-       </route>
-       <route src="85" dst="86">
-               <link_ctn id="link111"/>
-       </route>
-       <route src="87" dst="87">
-               <link_ctn id="link112"/>
-       </route>
-       <route src="87" dst="89">
-               <link_ctn id="link113"/>
-       </route>
-       <route src="88" dst="88">
-               <link_ctn id="link114"/>
-       </route>
-       <route src="88" dst="89">
-               <link_ctn id="link115"/>
-       </route>
-       <route src="90" dst="90">
-               <link_ctn id="link116"/>
-       </route>
-       <route src="90" dst="91">
-               <link_ctn id="link117"/>
-       </route>
-       <route src="90" dst="95">
-               <link_ctn id="link118"/>
-       </route>
-       <route src="91" dst="93">
-               <link_ctn id="link119"/>
-       </route>
-       <route src="92" dst="92">
-               <link_ctn id="link120"/>
-       </route>
-       <route src="92" dst="93">
-               <link_ctn id="link121"/>
-       </route>
-       <route src="94" dst="94">
-               <link_ctn id="link122"/>
-       </route>
-       <route src="94" dst="95">
-               <link_ctn id="link123"/>
-       </route>
-       <route src="96" dst="96">
-               <link_ctn id="link124"/>
-       </route>
-       <route src="96" dst="97">
-               <link_ctn id="link125"/>
-       </route>
-       <route src="96" dst="98">
-               <link_ctn id="link126"/>
-       </route>
-</AS>
-</platform> 
index d2db4d9..7f9e93f 100644 (file)
@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-# Copyright (c) 2011, 2014. The SimGrid Team.
+# Copyright (c) 2011, 2014, 2016. The SimGrid Team.
 # All rights reserved.
 
 # This program is free software; you can redistribute it and/or modify it
@@ -17,10 +17,21 @@ my($conf_file)=$ARGV[0];
 
 open FILE, $conf_file or die "Unable to open $conf_file";
 
+print "<!-- This platform was automatically converted from the OptorSim platform.\n";
+print "\n";
+print "  OptorSim files only describes information of the cluster interconnexion.\n";
+print "  In a sense, it reflects the topology of a National Research and Education\n";
+print "  Network (NREN), but not of a full-fledged computational platform.\n";
+print "  The caracteristics of each cluster have been artificially added.\n";
+print "\n";
+print "  We hope that you find it useful anyway. If you know how to complete\n";
+print "  this information with data on the cluster configurations, please\n";
+print "  drop us a mail so that we can add this information. -->\n\n";
+
 print "<?xml version='1.0'?>\n";
 print "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n";
 print "<platform version=\"3\">\n";
-print "<AS  id=\"AS0\"  routing=\"Floyd\">\n";
+print "<AS id=\"AS0\" routing=\"Floyd\">\n";
 
 my $line;
 my @tokens;
@@ -39,134 +50,130 @@ my @routes = ();
 my @routes_router = ();
 my @routes_cluster = ();
 my $nb_host;
-while(defined($line=<FILE>))
-{
-       
-if($line =~ /^#(.*)\)(.*)$/)
-{
+while(defined($line=<FILE>)){
+    if($line =~ /^#(.*)\)(.*)$/)
+    {
        print "<!--$1 $2-->\n";
        push @list_of_name, $2;
-}
-elsif($line =~ /^([0-9]*) ([0-9]*) ([0-9]*) (.*)$/)
-{
+    }
+    elsif($line =~ /^([0-9]*) ([0-9]*) ([0-9]*) (.*)$/)
+    {
        if($1 == "0"){
-               push @is_router, 1;
-               if(@list_of_name){
-                       push @routers, "\t\t<router id=\"$list_of_name[$src]\"/>\n";
-               }
-               else{
-                       push @routers, "\t\t<router id=\"router$src\"/>\n";
-               }
+           push @is_router, 1;
+           if(@list_of_name){
+               push @routers, "    <router id=\"$list_of_name[$src]\"/>\n";
+           }
+           else{
+               push @routers, "    <router id=\"router$src\"/>\n";
+           }
        }
        else{
-               push @is_router, 0;
-               $nb_host = $1;
-               if(@list_of_name){
-                       push @hosts, "\t<cluster id=\"$list_of_name[$src]\" prefix=\"$list_of_name[$src]-\" suffix=\"\"\n";
-                       push @hosts, "\t         radical=\"1-$nb_host\" power=\"1000000000\"    bw=\"125000000\"     lat=\"5E-5\"\n";
-                       push @hosts, "\t         router_id=\"$list_of_name[$src]-router\"/>\n";
-               }
-               else{
-                       push @hosts, "\t<cluster id=\"cluster$src\" prefix=\"$list_of_name[$src]-\" suffix=\"\"\n";
-                       push @hosts, "\t         radical=\"1-$nb_host\" power=\"1000000000\"    bw=\"125000000\"     lat=\"5E-5\"\n";
-                       push @hosts, "\t         router_id=\"cluster$src-router\"/>\n";
-               }
+           push @is_router, 0;
+           $nb_host = $1;
+           if(@list_of_name){
+               push @hosts, "  <cluster id=\"$list_of_name[$src]\" prefix=\"$list_of_name[$src]-\" suffix=\"\"\n";
+               push @hosts, "           radical=\"1-$nb_host\" power=\"1000000000\" bw=\"125000000\" lat=\"5E-5\"\n";
+               push @hosts, "           router_id=\"$list_of_name[$src]-router\"/>\n";
+           }
+           else{
+               push @hosts, "  <cluster id=\"cluster$src\" prefix=\"$src-\" suffix=\"\"\n";
+               push @hosts, "           radical=\"1-$nb_host\" power=\"1000000000\" bw=\"125000000\" lat=\"5E-5\"\n";
+               push @hosts, "           router_id=\"cluster$src-router\"/>\n";
+           }
        }               
        my $table = $4;
        @tokens = split(/ /,$table);
        foreach $token (@tokens) {
-               if($src >= $dst){
-                       if($token != "0") #if there is a link between src and dst
-                       {       
-                               #Create a link                          
-                               if($1 == "0"){ 
-                                       push @links_router, "\t\t<link id=\"link$num_link\" bandwidth=\"$token\"/>\n";
-                               }
-                               else{
-                                       push @links, "\t<link id=\"link$num_link\" bandwidth=\"$token\"/>\n";
-                               }
-
-                               #Create the route between router and router
-                               if($is_router[$src] && $is_router[$dst]) 
-                               {
-                                       if(@list_of_name){
-                                               push @routes_router, "\t\t<route src=\"$list_of_name[$src]\" dst=\"$list_of_name[$dst]\">\n";
-                                       }
-                                       else{
-                                               push @routes_router, "\t\t<route src=\"router$src\" dst=\"router$dst\">\n";
-                                       }
-                                       push @routes_router, "\t\t\t<link_ctn id=\"link$num_link\"/>\n";
-                                       push @routes_router, "\t\t</route>\n";
-                               }
-
-                               #Create the route between cluster and cluster
-                               elsif(!$is_router[$src] && !$is_router[$dst]) 
-                               {
-                                       if(@list_of_name){
-                                       push @routes_cluster, "\t\t<ASroute src=\"$list_of_name[$src]\" dst=\"$list_of_name[$dst]\"\n";
-                                       push @routes_cluster, "\t\t     gw_src=\"$list_of_name[$src]-router\" gw_dst=\"$list_of_name[$dst]-router\">\n";
-                                       }
-                                       else{
-                                       push @routes_cluster, "\t\t<ASroute src=\"cluster$src\" dst=\"cluster$dst\"\n";
-                                       push @routes_cluster, "\t\t    gw_src=\"cluster$src-router\" dst=\"cluster$dst-router\">\n";
-                                       }
-                                       push @routes_cluster, "\t\t\t<link_ctn id=\"link$num_link\"/>\n";
-                                       push @routes_cluster, "\t\t</ASroute>\n";
-                               }                               
-                               else
-                               {
-                                       push @routes, "\t<ASroute ";
-                                       if(@list_of_name){
-                                               if($is_router[$src])    #router
-                                                       {push @routes, "src=\"AS_intern\" gw_src=\"$list_of_name[$src]\"\n";}
-                                               else                    #cluster
-                                                       {push @routes, "src=\"$list_of_name[$src]\" gw_src=\"$list_of_name[$src]-router\"\n";}
-
-
-                                               if($is_router[$dst])    #router
-                                                       {push @routes, "\t\tdst=\"AS_intern\" gw_dst=\"$list_of_name[$dst]\">\n";}
-                                               else                    #cluster
-                                                       {push @routes, "\t\tdst=\"$list_of_name[$dst]\" gw_dst=\"$list_of_name[$dst]-router\">\n";}
-                                       }
-                                       else{
-                                               if($is_router[$src])    #router
-                                                       {push @routes, "src=\"AS_intern\" gw_src=\"router$src\"\n";}
-                                               else                    #cluster
-                                                       {push @routes, "src=\"cluster$src\" gw_src=\"cluster$src-router\"\n";}
-
-
-                                               if($is_router[$dst])    #router
-                                                       {push @routes, "\t\tdst=\"AS_intern\" gw_dst=\"router$dst\">\n";}
-                                               else                    #cluster
-                                                       {push @routes, "\t\tdst=\"cluster$dst\" gw_dst=\"cluster$dst-router\">\n";}
-                                       }
-                                       push @routes, "\t\t<link_ctn id=\"link$num_link\"/>\n";
-                                       push @routes, "\t</ASroute>\n";
-
-                               }
-
-                               $num_link++;    
+           if($src >= $dst){
+               if($token != "0") #if there is a link between src and dst
+               {       
+                   #Create a link                              
+                   if($1 == "0"){ 
+                       push @links_router, "    <link id=\"link$num_link\" bandwidth=\"$token\"/>\n";
+                   }
+                   else{
+                       push @links, "  <link id=\"link$num_link\" bandwidth=\"$token\"/>\n";
+                   }
+                   
+                   #Create the route between router and router
+                   if($is_router[$src] && $is_router[$dst]) 
+                   {
+                       if(@list_of_name){
+                           push @routes_router, "    <route src=\"$list_of_name[$src]\" dst=\"$list_of_name[$dst]\">";
+                       }
+                       else{
+                           push @routes_router, "    <route src=\"router$src\" dst=\"router$dst\">";
+                       }
+                       push @routes_router, " <link_ctn id=\"link$num_link\"/>";
+                       push @routes_router, " </route>\n";
+                   }
+                   
+                   #Create the route between cluster and cluster
+                   elsif(!$is_router[$src] && !$is_router[$dst]) 
+                   {
+                       if(@list_of_name){
+                           push @routes_cluster, "    <ASroute src=\"$list_of_name[$src]\" dst=\"$list_of_name[$dst]\"";
+                           push @routes_cluster, " gw_src=\"$list_of_name[$src]-router\" gw_dst=\"$list_of_name[$dst]-router\">\n";
+                       }
+                       else{
+                           push @routes_cluster, "    <ASroute src=\"cluster$src\" dst=\"cluster$dst\"";
+                           push @routes_cluster, " gw_src=\"cluster$src-router\" dst=\"cluster$dst-router\">\n";
+                       }
+                       push @routes_cluster, "      <link_ctn id=\"link$num_link\"/>\n";
+                       push @routes_cluster, "    </ASroute>\n";
+                   }                           
+                   else
+                   {
+                       push @routes, "  <ASroute ";
+                       if(@list_of_name){
+                           if($is_router[$src])        #router
+                           {push @routes, "src=\"AS_intern\" gw_src=\"$list_of_name[$src]\" ";}
+                           else                        #cluster
+                           {push @routes, "src=\"$list_of_name[$src]\" gw_src=\"$list_of_name[$src]-router\" ";}
+                           
+                           
+                           if($is_router[$dst])        #router
+                           {push @routes, "dst=\"AS_intern\" gw_dst=\"$list_of_name[$dst]\">\n";}
+                           else                        #cluster
+                           {push @routes, "dst=\"$list_of_name[$dst]\" gw_dst=\"$list_of_name[$dst]-router\">\n";}
                        }
+                       else{
+                           if($is_router[$src])        #router
+                           {push @routes, "src=\"AS_intern\" gw_src=\"router$src\" ";}
+                           else                        #cluster
+                           {push @routes, "src=\"cluster$src\" gw_src=\"cluster$src-router\" ";}
+                           
+                           
+                           if($is_router[$dst])        #router
+                           {push @routes, "dst=\"AS_intern\" gw_dst=\"router$dst\">\n";}
+                           else                        #cluster
+                           {push @routes, "dst=\"cluster$dst\" gw_dst=\"cluster$dst-router\">\n";}
+                       }
+                       push @routes, "    <link_ctn id=\"link$num_link\"/>\n";
+                       push @routes, "  </ASroute>\n";
+                       
+                   }
+                   
+                   $num_link++;        
                }
-               $dst++;
+           }
+           $dst++;
        }
        $src++;
        $dst = 0;
-}
-else
-{
-die;
-}
-       
-       
+    }
+    else
+    {
+       die;
+    }
 }
 close(FILE);
 
-print "\t<AS  id=\"AS_intern\"  routing=\"Floyd\">\n";
+print "  <AS id=\"AS_intern\" routing=\"Floyd\">\n";
 print @routers;
 print @links_router;
 print @routes_router;
-print "\t</AS>\n";
+print "  </AS>\n";
 print "\n";    
 print @hosts;
 print @routes_cluster;
@@ -175,9 +182,6 @@ print "\n";
 print @links;
 print "\n";
 print @routes;
-print "\n";
-
 print "</AS>\n";
 print "</platform>";
-
 print " \n";
index f1785ff..4dae60f 100644 (file)
@@ -1,28 +1,23 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <config id="General">
-       <prop id="maxmin/precision" value="0.000010"></prop>
-       <prop id="cpu/optim" value="TI"></prop>
-       <prop id="host/model" value="compound"></prop>
-       <prop id="network/model" value="SMPI"></prop>
-       <prop id="path" value="~/"></prop>
-       <prop id="smpi/bw_factor" value="65472:0.940694;15424:0.697866;9376:0.58729"></prop>
+  <prop id="maxmin/precision" value="0.000010"></prop>
+  <prop id="cpu/optim" value="TI"></prop>
+  <prop id="host/model" value="compound"></prop>
+  <prop id="network/model" value="SMPI"></prop>
+  <prop id="path" value="~/"></prop>
+  <prop id="smpi/bw_factor" value="65472:0.940694;15424:0.697866;9376:0.58729"></prop>
 </config>
-       
+
 <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
+   <host id="bob" speed="1Gf"/>
+   <host id="alice" speed="500Mf"/>
+
    <link id="link1" bandwidth="125MBps" latency="50us"/>
    <link id="link2" bandwidth="125MBps" latency="50us"/>
    <link id="link3" bandwidth="125MBps" latency="50us"/>
-   
-   <route src="bob" dst="alice" symmetrical="YES">
-     <link_ctn id="link1"/>
-        <link_ctn id="link2"/>
-        <link_ctn id="link3"/>
-   </route>
+
+   <route src="bob" dst="alice"><link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link3"/></route>
 </AS>
 </platform>
index d0b5226..360bc57 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <config id="example config">
     <prop id="tracing/uncategorized" value="yes"/>
     <prop id="tracing/buffer" value="yes"/>
     <prop id="tracing/categorized" value="yes"/>
   </config>
 
- <AS  id="AS0"  routing="Full">
-   <!-- ljlkj -->
-   <host id="Tremblay" power="98.095Mf"/>
-   <host id="Jupiter" power="76.296Mf"/>
-   <host id="Fafard" power="76.296Mf"/>
-   <host id="Ginette" power="48.492Mf"/>
-   <host id="Bourassa" power="48.492Mf"/>
+ <AS id="AS0" routing="Full">
+   <host id="Tremblay" speed="98.095Mf"/>
+   <host id="Jupiter" speed="76.296Mf"/>
+   <host id="Fafard" speed="76.296Mf"/>
+   <host id="Ginette" speed="48.492Mf"/>
+   <host id="Bourassa" speed="48.492Mf"/>
    <link id="6" bandwidth="41.279125MBps" latency="59.904us"/>
    <link id="11" bandwidth="252.75kBps" latency="5.70455ms"/>
    <link id="3" bandwidth="34.285625MBps" latency="514.433us"/>
    <link id="10" bandwidth="4.67975MBps" latency="848.712us"/>
    <link id="5" bandwidth="27.94625MBps" latency="278.066us"/>
    <link id="loopback" bandwidth="498MBps" latency="15us" sharing_policy="FATPIPE"/>
+
    <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
    <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
    <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
    <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
    <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
-   <route src="Tremblay" dst="Jupiter">
-     <link_ctn id="9"/>
-   </route>
-   <route src="Tremblay" dst="Fafard">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Tremblay" dst="Ginette">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Tremblay" dst="Bourassa">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Jupiter" dst="Fafard">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Jupiter" dst="Ginette">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Jupiter" dst="Bourassa">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Fafard" dst="Ginette">
-     <link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/>
-   </route>
-   <route src="Fafard" dst="Bourassa">
-     <link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Ginette" dst="Bourassa">
-     <link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
+   <route src="Tremblay" dst="Jupiter"><link_ctn id="9"/></route>
+   <route src="Tremblay" dst="Fafard"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+   <route src="Tremblay" dst="Ginette"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+   <route src="Tremblay" dst="Bourassa"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+   <route src="Jupiter" dst="Fafard"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+   <route src="Jupiter" dst="Ginette"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+   <route src="Jupiter" dst="Bourassa"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+   <route src="Fafard" dst="Ginette"><link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/></route>
+   <route src="Fafard" dst="Bourassa"><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/></route>
+   <route src="Ginette" dst="Bourassa"><link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
  </AS>
-
 </platform>
index da382f6..ef00680 100644 (file)
@@ -1,24 +1,16 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3"><!--- 
-   S1  _________ C1
-        link 1
-        100MB, 5ms
--->
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- S1 _________ C1
+         link 1
+       10kB, 10ms    -->
 <AS id="1" routing="Full">
-  <host id="S1" power="1Gf"/>
-  <host id="C1" power="1Gf"/>
+  <host id="S1" speed="1Gf"/>
+  <host id="C1" speed="1Gf"/>
 
   <link id="1" bandwidth="10kBps" latency="10ms" sharing_policy="FULLDUPLEX"/>
 
-  <route src="S1" dst="C1" symmetrical="NO">
-     <link_ctn id="1" direction="DOWN"/>
-  </route>
-
-  <route src="C1" dst="S1" symmetrical="NO">
-     <link_ctn id="1" direction="UP"/>
-  </route>
-
+  <route src="S1" dst="C1" symmetrical="NO"><link_ctn id="1" direction="DOWN"/></route>
+  <route src="C1" dst="S1" symmetrical="NO"><link_ctn id="1" direction="UP"/></route>
 </AS>
 </platform>
index 009a8e1..1144f53 100644 (file)
@@ -1,19 +1,22 @@
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <config id="General">
-    <prop id="network/coordinates" value="yes"/>
+  <prop id="network/coordinates" value="yes"/>
 </config>
-
 <AS id="AS0" routing="Vivaldi">
-    <AS id="dataCenter1" routing="Full">
-      
-    <!-- 3 cabinets, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted because not a part of the production platform  -->
+  <AS id="dataCenter1" routing="Full">
+    <!-- 3 cabinets, no zone dist area, 1 horiz dist area, no multi-homing, telecom and operation rooms omitted -->
     <!-- cabinets -->
-    <cluster id="cabinet1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" power="5.2297Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="cabinet1" prefix="cb1-" suffix=".dc1.acloud.com" radical="1-40" speed="5.2297Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="cabinet2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" speed="8.8925Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+    <cluster id="cabinet3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" speed="13.357Gf"
+             bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
+
     <link id="link_dc1_cb1" bandwidth="1.25GBps" latency="100us"/>
-    <cluster id="cabinet2" prefix="cb2-" suffix=".dc1.acloud.com" radical="1-50" power="8.8925Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
     <link id="link_dc1_cb2" bandwidth="1.25GBps" latency="100us"/>
-    <cluster id="cabinet3" prefix="cb3-" suffix=".dc1.acloud.com" radical="1-30" power="13.357Gf" bw="125MBps" lat="100us" bb_bw="1.25GBps" bb_lat="100us"/>
     <link id="link_dc1_cb3" bandwidth="1.25GBps" latency="100us"/>
  
     <!-- horiz dist area switch, main dist area switch, entrance room switch, end point for ISP  -->
         <router id="gw_dc1_horizdist"/>
         <router id="gw_dc1_maindist"/>
         <router id="gw_dc1_entranceroom"/>
-                    
+
         <!-- ISP end point, entering the cloud, so it has coordinates -->
         <router id="router_dataCenter1" coordinates="25.5 9.4 1.4"/>
-                    
+
         <!-- links -->
         <link id="dc1_horizdist_maindist" bandwidth="1.25GBps" latency="100us"/>        
         <link id="dc1_maindist_entranceroom" bandwidth="1.25GBps" latency="100us"/>  
         <link id="dc1_entranceroom_ISP" bandwidth="1.25GBps" latency="100us"/> 
-                     
+
         <!-- links to router relationships -->
         <route src="gw_dc1_horizdist" dst="gw_dc1_maindist"><link_ctn id="dc1_horizdist_maindist"/></route>
         <route src="gw_dc1_maindist" dst="gw_dc1_entranceroom"><link_ctn id="dc1_maindist_entranceroom"/></route>
         <route src="gw_dc1_entranceroom" dst="router_dataCenter1"><link_ctn id="dc1_entranceroom_ISP"/></route>
     </AS>
-           
+
     <!-- internal routes between cabinets -->
-    <ASroute src="cabinet3" dst="cabinet3" gw_src="cb3-cabinet3_router.dc1.acloud.com" gw_dst="cb3-cabinet3_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb3"/>
-        <link_ctn id="link_dc1_cb3"/>
-    </ASroute><ASroute src="cabinet2" dst="cabinet3" gw_src="cb2-cabinet2_router.dc1.acloud.com" gw_dst="cb3-cabinet3_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb2"/>
-        <link_ctn id="link_dc1_cb3"/>
-    </ASroute><ASroute src="cabinet2" dst="cabinet2" gw_src="cb2-cabinet2_router.dc1.acloud.com" gw_dst="cb2-cabinet2_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb2"/>
-        <link_ctn id="link_dc1_cb2"/>
-    </ASroute><ASroute src="cabinet1" dst="cabinet3" gw_src="cb1-cabinet1_router.dc1.acloud.com" gw_dst="cb3-cabinet3_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb1"/>
-        <link_ctn id="link_dc1_cb3"/>
-    </ASroute><ASroute src="cabinet1" dst="cabinet2" gw_src="cb1-cabinet1_router.dc1.acloud.com" gw_dst="cb2-cabinet2_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb1"/>
-        <link_ctn id="link_dc1_cb2"/>
-    </ASroute><ASroute src="cabinet1" dst="cabinet1" gw_src="cb1-cabinet1_router.dc1.acloud.com" gw_dst="cb1-cabinet1_router.dc1.acloud.com" symmetrical="YES">
-        <link_ctn id="link_dc1_cb1"/>
-        <link_ctn id="link_dc1_cb1"/>
+    <ASroute src="cabinet2" dst="cabinet3" gw_src="cb2-cabinet2_router.dc1.acloud.com"
+             gw_dst="cb3-cabinet3_router.dc1.acloud.com" symmetrical="YES">
+        <link_ctn id="link_dc1_cb2"/><link_ctn id="link_dc1_cb3"/>
     </ASroute>
-    <!-- cabinets to exit AS -->
-    </AS>
-
+    <ASroute src="cabinet1" dst="cabinet3" gw_src="cb1-cabinet1_router.dc1.acloud.com"
+             gw_dst="cb3-cabinet3_router.dc1.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb3"/>
+    </ASroute>
+    <ASroute src="cabinet1" dst="cabinet2" gw_src="cb1-cabinet1_router.dc1.acloud.com"
+             gw_dst="cb2-cabinet2_router.dc1.acloud.com" symmetrical="YES">
+      <link_ctn id="link_dc1_cb1"/><link_ctn id="link_dc1_cb2"/>
+    </ASroute>
+  </AS>
 </AS>
 </platform>
index 944d1dd..adc1353 100644 (file)
@@ -1,28 +1,29 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS0"  routing="Full">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS id="AS0" routing="Full">
   <!-- Multiple pstate processor capacities can be defined as a list of powers specified for a given host -->
-  <!-- Attribute 'pstate' specifies the initialy selected pstate (here, the lowest pstate corresponds to the highest processor power) -->
-  <host id="MyHost1" power="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
-        <!--  List of min_power:max_power pairs (in Watts) corresponding to the power consumed when the processor is idle and when it is fully loaded -->
-        <!--  The list must contain one power pair for each previously defined pstate-->
-        <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
-        <prop id="watt_off" value="10" />
+  <!-- Attribute 'pstate' specifies the initialy selected pstate (here, the lowest pstate corresponds to the highest
+       processor speed) -->
+  <host id="MyHost1" speed="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
+    <!--  List of min_power:max_power pairs (in Watts) corresponding to the speed consumed when the processor is idle
+          and when it is fully loaded -->
+    <!--  The list must contain one speed pair for each previously defined pstate-->
+    <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
+    <prop id="watt_off" value="10" />
   </host>
-  <host id="MyHost2" power="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
-        <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
-        <prop id="watt_off" value="10" />
+  <host id="MyHost2" speed="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
+    <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
+    <prop id="watt_off" value="10" />
   </host>
-  <host id="MyHost3" power="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
-        <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
-        <prop id="watt_off" value="10" />
+  <host id="MyHost3" speed="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
+    <prop id="watt_per_state" value="100.0:200.0, 93.0:170.0, 90.0:150.0" />
+    <prop id="watt_off" value="10" />
   </host>
 
   <link id="bus" bandwidth="100kBps" latency="0"/>
   <route src="MyHost1" dst="MyHost2"><link_ctn id="bus"/></route>
   <route src="MyHost1" dst="MyHost3"><link_ctn id="bus"/></route>
   <route src="MyHost2" dst="MyHost3"><link_ctn id="bus"/></route>
-  
 </AS>
 </platform>
index 71c8254..7ab17e7 100644 (file)
@@ -1,18 +1,14 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <!-- This is an example for a fat tree cluster. 
-This is taken from figure 1/ b/ of the paper "D-Mod-K Routing Providing 
-Non-Blocking Traffic for Shift Permutations on Real Life Fat Trees"  
-available at webee.technion.ac.il/publication-link/index/id/574
-This defines a two levels fat-tree, with 4 leaf switches connected to 4 nodes each
-and 2 core switches connected to each leaf switch by two cables
--->
+This is taken from figure 1/ b/ of the paper "D-Mod-K Routing Providing on-Blocking Traffic for Shift Permutations on 
+Real Life Fat Trees" available at webee.technion.ac.il/publication-link/index/id/574
+This defines a two levels fat-tree, with 4 leaf switches connected to 4 nodes each and 2 core switches connected to 
+each leaf switch by two cables -->
 
-<platform version="3">
 <AS id="AS0" routing="Full">
-<cluster id="bob_cluster" prefix="node-" suffix=".acme.org"
-  radical="0-15" power="1Gf" bw="125MBps" lat="50us" topology="FAT_TREE" topo_parameters="2;4,4;1,2;1,2" 
-  loopback_bw="100000000" loopback_lat="0"/>
+<cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-15" speed="1Gf" bw="125MBps" lat="50us" 
+         topology="FAT_TREE" topo_parameters="2;4,4;1,2;1,2" loopback_bw="100MBps" loopback_lat="0"/>
 </AS>
 </platform>
diff --git a/examples/platforms/faulty_host.xml b/examples/platforms/faulty_host.xml
new file mode 100644 (file)
index 0000000..8267e7f
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="Faulty Host" speed="1Gf" state_file="trace/faulty_host.trace"/>
+  <host id="Safe Host" speed="500Mf"/>
+</AS>
+</platform>
+
index 6e5df8f..7322b5c 100644 (file)
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       <AS id="AS_grid5000" routing="Floyd">
-               <AS id="AS_interne" routing="Floyd">
-                       <router id="lille"/>
-                       <router id="paris"/>
-                       <router id="nancy"/>
-                       <router id="rennes"/>
-                       <router id="lyon"/>
-                       <router id="bordeaux"/>
-                       <router id="grenoble"/>
-                       <router id="marseille"/>
-                       <router id="toulouse"/>
-                       <router id="sophia"/>
-
-                       <link id="Lille_Paris" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Paris_Nancy" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Paris_Rennes" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Paris_Lyon" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Bordeaux_Lyon" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Lyon_Grenoble" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Lyon_Marseille" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Marseille_Sophia" bandwidth="1.25E9" latency="1.0E-4"/>
-                       <link id="Marseille_Toulouse" bandwidth="1.25E9" latency="1.0E-4"/>
-
-               <route src="lille" dst="paris"><link_ctn id="Lille_Paris"/></route>
-               <route src="paris" dst="nancy"><link_ctn id="Paris_Nancy"/></route>
-               <route src="paris" dst="rennes"><link_ctn id="Paris_Rennes"/></route>
-               <route src="paris" dst="lyon"><link_ctn id="Paris_Lyon"/></route>
-               <route src="bordeaux" dst="lyon"><link_ctn id="Bordeaux_Lyon"/></route>
-               <route src="lyon" dst="grenoble"><link_ctn id="Lyon_Grenoble"/></route>
-               <route src="lyon" dst="marseille"><link_ctn id="Lyon_Marseille"/></route>
-               <route src="marseille" dst="sophia"><link_ctn id="Marseille_Sophia"/></route>
-               <route src="marseille" dst="toulouse"><link_ctn id="Marseille_Toulouse"/></route>
-               </AS>
-               <AS id="AS_bordeaux" routing="Full">
-                       <cluster id="AS_bordeplage" prefix="bordeplage-" suffix=".bordeaux.grid5000.fr" radical="1-51" power="5.2297E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_bordeplage" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_bordereau" prefix="bordereau-" suffix=".bordeaux.grid5000.fr" radical="1-93" power="8.8925E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_bordereau" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_borderline" prefix="borderline-" suffix=".bordeaux.grid5000.fr" radical="1-10" power="13.357E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_borderline" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_bordeaux" routing="Full">
-                               <router id="gw_bordeaux"/>
-                       </AS>
-                       <link id="link_gw_bordeaux" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_bordereau" dst="AS_bordereau" gw_src="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_bordereau"/>
-                                       <link_ctn id="link_bordereau"/>
-                       </ASroute><ASroute src="AS_bordeplage" dst="AS_bordereau" gw_src="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_bordeplage"/>
-                                       <link_ctn id="link_bordereau"/>
-                       </ASroute><ASroute src="AS_bordeplage" dst="AS_bordeplage" gw_src="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" gw_dst="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_bordeplage"/>
-                                       <link_ctn id="link_bordeplage"/>
-                       </ASroute><ASroute src="AS_borderline" dst="AS_bordereau" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_borderline"/>
-                                       <link_ctn id="link_bordereau"/>
-                       </ASroute><ASroute src="AS_borderline" dst="AS_bordeplage" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_borderline"/>
-                                       <link_ctn id="link_bordeplage"/>
-                       </ASroute><ASroute src="AS_borderline" dst="AS_borderline" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="borderline-AS_borderline_router.bordeaux.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_borderline"/>
-                                       <link_ctn id="link_borderline"/>
-                       </ASroute>
-
-                       <ASroute src="AS_bordereau" dst="gw_AS_bordeaux" gw_src="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="NO">
-                                       <link_ctn id="link_bordereau"/>
-                       </ASroute><ASroute src="AS_bordeplage" dst="gw_AS_bordeaux" gw_src="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="NO">
-                                       <link_ctn id="link_bordeplage"/>
-                       </ASroute><ASroute src="AS_borderline" dst="gw_AS_bordeaux" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="NO">
-                                       <link_ctn id="link_borderline"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_bordeaux" dst="AS_bordereau" gw_src="gw_bordeaux" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_bordereau"/>
-                       </ASroute><ASroute src="gw_AS_bordeaux" dst="AS_bordeplage" gw_src="gw_bordeaux" gw_dst="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_bordeplage"/>
-                       </ASroute><ASroute src="gw_AS_bordeaux" dst="AS_borderline" gw_src="gw_bordeaux" gw_dst="borderline-AS_borderline_router.bordeaux.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_borderline"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_grenoble" routing="Full">
-                       <cluster id="AS_adonis" prefix="adonis-" suffix=".grenoble.grid5000.fr" radical="1-12" power="23.681E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_adonis" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_edel" prefix="edel-" suffix=".grenoble.grid5000.fr" radical="1-72" power="23.492E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_edel" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_genepi" prefix="genepi-" suffix=".grenoble.grid5000.fr" radical="1-34" power="21.175E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_genepi" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_grenoble" routing="Full">
-                               <router id="gw_grenoble"/>
-                       </AS>
-                       <link id="link_gw_grenoble" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_adonis" dst="AS_adonis" gw_src="adonis-AS_adonis_router.grenoble.grid5000.fr" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_adonis"/>
-                                       <link_ctn id="link_adonis"/>
-                       </ASroute><ASroute src="AS_genepi" dst="AS_adonis" gw_src="genepi-AS_genepi_router.grenoble.grid5000.fr" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_genepi"/>
-                                       <link_ctn id="link_adonis"/>
-                       </ASroute><ASroute src="AS_genepi" dst="AS_genepi" gw_src="genepi-AS_genepi_router.grenoble.grid5000.fr" gw_dst="genepi-AS_genepi_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_genepi"/>
-                                       <link_ctn id="link_genepi"/>
-                       </ASroute><ASroute src="AS_edel" dst="AS_adonis" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_edel"/>
-                                       <link_ctn id="link_adonis"/>
-                       </ASroute><ASroute src="AS_edel" dst="AS_genepi" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="genepi-AS_genepi_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_edel"/>
-                                       <link_ctn id="link_genepi"/>
-                       </ASroute><ASroute src="AS_edel" dst="AS_edel" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="edel-AS_edel_router.grenoble.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_edel"/>
-                                       <link_ctn id="link_edel"/>
-                       </ASroute>
-
-                       <ASroute src="AS_adonis" dst="gw_AS_grenoble" gw_src="adonis-AS_adonis_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="NO">
-                                       <link_ctn id="link_adonis"/>
-                       </ASroute><ASroute src="AS_genepi" dst="gw_AS_grenoble" gw_src="genepi-AS_genepi_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="NO">
-                                       <link_ctn id="link_genepi"/>
-                       </ASroute><ASroute src="AS_edel" dst="gw_AS_grenoble" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="NO">
-                                       <link_ctn id="link_edel"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_grenoble" dst="AS_adonis" gw_src="gw_grenoble" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_adonis"/>
-                       </ASroute><ASroute src="gw_AS_grenoble" dst="AS_genepi" gw_src="gw_grenoble" gw_dst="genepi-AS_genepi_router.grenoble.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_genepi"/>
-                       </ASroute><ASroute src="gw_AS_grenoble" dst="AS_edel" gw_src="gw_grenoble" gw_dst="edel-AS_edel_router.grenoble.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_edel"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_lille" routing="Full">
-                       <cluster id="AS_chicon" prefix="chicon-" suffix=".lille.grid5000.fr" radical="1-26" power="8.9618E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_chicon" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_chimint" prefix="chimint-" suffix=".lille.grid5000.fr" radical="1-20" power="23.531E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_chimint" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_chinqchint" prefix="chinqchint-" suffix=".lille.grid5000.fr" radical="1-46" power="22.270E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_chinqchint" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_chirloute" prefix="chirloute-" suffix=".lille.grid5000.fr" radical="1-8" power="24.473E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_chirloute" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_lille" routing="Full">
-                               <router id="gw_lille"/>
-                       </AS>
-                       <link id="link_gw_lille" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_chinqchint" dst="AS_chinqchint" gw_src="chinqchint-AS_chinqchint_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chinqchint"/>
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="AS_chirloute" dst="AS_chinqchint" gw_src="chirloute-AS_chirloute_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chirloute"/>
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="AS_chirloute" dst="AS_chirloute" gw_src="chirloute-AS_chirloute_router.lille.grid5000.fr" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chirloute"/>
-                                       <link_ctn id="link_chirloute"/>
-                       </ASroute><ASroute src="AS_chimint" dst="AS_chinqchint" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chimint"/>
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="AS_chimint" dst="AS_chirloute" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chimint"/>
-                                       <link_ctn id="link_chirloute"/>
-                       </ASroute><ASroute src="AS_chimint" dst="AS_chimint" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="chimint-AS_chimint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chimint"/>
-                                       <link_ctn id="link_chimint"/>
-                       </ASroute><ASroute src="AS_chicon" dst="AS_chinqchint" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chicon"/>
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="AS_chicon" dst="AS_chirloute" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chicon"/>
-                                       <link_ctn id="link_chirloute"/>
-                       </ASroute><ASroute src="AS_chicon" dst="AS_chimint" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chimint-AS_chimint_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chicon"/>
-                                       <link_ctn id="link_chimint"/>
-                       </ASroute><ASroute src="AS_chicon" dst="AS_chicon" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chicon-AS_chicon_router.lille.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_chicon"/>
-                                       <link_ctn id="link_chicon"/>
-                       </ASroute>
-
-                       <ASroute src="AS_chinqchint" dst="gw_AS_lille" gw_src="chinqchint-AS_chinqchint_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="NO">
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="AS_chirloute" dst="gw_AS_lille" gw_src="chirloute-AS_chirloute_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="NO">
-                                       <link_ctn id="link_chirloute"/>
-                       </ASroute><ASroute src="AS_chimint" dst="gw_AS_lille" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="NO">
-                                       <link_ctn id="link_chimint"/>
-                       </ASroute><ASroute src="AS_chicon" dst="gw_AS_lille" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="NO">
-                                       <link_ctn id="link_chicon"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_lille" dst="AS_chinqchint" gw_src="gw_lille" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_chinqchint"/>
-                       </ASroute><ASroute src="gw_AS_lille" dst="AS_chirloute" gw_src="gw_lille" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_chirloute"/>
-                       </ASroute><ASroute src="gw_AS_lille" dst="AS_chimint" gw_src="gw_lille" gw_dst="chimint-AS_chimint_router.lille.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_chimint"/>
-                       </ASroute><ASroute src="gw_AS_lille" dst="AS_chicon" gw_src="gw_lille" gw_dst="chicon-AS_chicon_router.lille.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_chicon"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_lyon" routing="Full">
-                       <cluster id="AS_capricorne" prefix="capricorne-" suffix=".lyon.grid5000.fr" radical="1-56" power="4.7233E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_capricorne" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_sagittaire" prefix="sagittaire-" suffix=".lyon.grid5000.fr" radical="1-79" power="5.6693E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_sagittaire" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_lyon" routing="Full">
-                               <router id="gw_lyon"/>
-                       </AS>
-                       <link id="link_gw_lyon" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_sagittaire" dst="AS_sagittaire" gw_src="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" gw_dst="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_sagittaire"/>
-                                       <link_ctn id="link_sagittaire"/>
-                       </ASroute><ASroute src="AS_capricorne" dst="AS_sagittaire" gw_src="capricorne-AS_capricorne_router.lyon.grid5000.fr" gw_dst="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_capricorne"/>
-                                       <link_ctn id="link_sagittaire"/>
-                       </ASroute><ASroute src="AS_capricorne" dst="AS_capricorne" gw_src="capricorne-AS_capricorne_router.lyon.grid5000.fr" gw_dst="capricorne-AS_capricorne_router.lyon.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_capricorne"/>
-                                       <link_ctn id="link_capricorne"/>
-                       </ASroute>
-
-                       <ASroute src="AS_sagittaire" dst="gw_AS_lyon" gw_src="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" gw_dst="gw_lyon" symmetrical="NO">
-                                       <link_ctn id="link_sagittaire"/>
-                       </ASroute><ASroute src="AS_capricorne" dst="gw_AS_lyon" gw_src="capricorne-AS_capricorne_router.lyon.grid5000.fr" gw_dst="gw_lyon" symmetrical="NO">
-                                       <link_ctn id="link_capricorne"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_lyon" dst="AS_sagittaire" gw_src="gw_lyon" gw_dst="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_sagittaire"/>
-                       </ASroute><ASroute src="gw_AS_lyon" dst="AS_capricorne" gw_src="gw_lyon" gw_dst="capricorne-AS_capricorne_router.lyon.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_capricorne"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_nancy" routing="Full">
-                       <AS id="AS_graphene" routing="Full">
-                               <cluster id="AS_sgraphene1" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="1-39" power="16.673E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_sgraphene2" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="40-74" power="16.673E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_sgraphene3" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="75-104" power="16.673E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_sgraphene4" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="105-144" power="16.673E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-
-                               <AS id="gw_AS_graphene" routing="Full">
-                                       <router id="graphene-AS_graphene_router.nancy.grid5000.fr"/>
-                               </AS>
-                               <link id="switch-graphene" bandwidth="1250000000" latency="5E-4"/>
-
-                               <ASroute src="AS_sgraphene4" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene4_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene2" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene2_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene2" dst="AS_sgraphene2" gw_src="graphene-AS_sgraphene2_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene2_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene3" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene3" dst="AS_sgraphene2" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene2_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene3" dst="AS_sgraphene3" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene3_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene1" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene1" dst="AS_sgraphene2" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene2_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene1" dst="AS_sgraphene3" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene3_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene1" dst="AS_sgraphene1" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene1_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute>
-                               <ASroute src="AS_sgraphene4" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene4_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene2" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene2_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene3" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute><ASroute src="AS_sgraphene1" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-graphene"/>
-                               </ASroute>
-                               </AS>
-                       <link id="link_graphene" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="AS_griffon" routing="Full">
-                               <cluster id="AS_sgriffon1" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="1-29,58-60" power="20.678E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_sgriffon2" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="30-57" power="20.678E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_sgriffon3" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="61-92" power="20.678E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-
-                               <AS id="gw_AS_griffon" routing="Full">
-                                       <router id="griffon-AS_griffon_router.nancy.grid5000.fr"/>
-                               </AS>
-                               <link id="switch-griffon" bandwidth="1250000000" latency="5E-4"/>
-
-                               <ASroute src="AS_sgriffon1" dst="AS_sgriffon1" gw_src="griffon-AS_sgriffon1_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon1_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon2" dst="AS_sgriffon1" gw_src="griffon-AS_sgriffon2_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon1_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon2" dst="AS_sgriffon2" gw_src="griffon-AS_sgriffon2_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon2_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon3" dst="AS_sgriffon1" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon1_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon3" dst="AS_sgriffon2" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon2_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon3" dst="AS_sgriffon3" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon3_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute>
-                               <ASroute src="AS_sgriffon1" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon1_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon2" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon2_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute><ASroute src="AS_sgriffon3" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
-                                       <link_ctn id="switch-griffon"/>
-                               </ASroute>
-                               </AS>
-                       <link id="link_griffon" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_nancy" routing="Full">
-                               <router id="gw_nancy"/>
-                       </AS>
-                       <link id="link_gw_nancy" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_graphene" dst="AS_graphene" gw_src="graphene-AS_graphene_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_graphene"/>
-                                       <link_ctn id="link_graphene"/>
-                       </ASroute><ASroute src="AS_griffon" dst="AS_graphene" gw_src="griffon-AS_griffon_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_griffon"/>
-                                       <link_ctn id="link_graphene"/>
-                       </ASroute><ASroute src="AS_griffon" dst="AS_griffon" gw_src="griffon-AS_griffon_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_griffon"/>
-                                       <link_ctn id="link_griffon"/>
-                       </ASroute>
-
-                       <ASroute src="AS_graphene" dst="gw_AS_nancy" gw_src="graphene-AS_graphene_router.nancy.grid5000.fr" gw_dst="gw_nancy" symmetrical="NO">
-                                       <link_ctn id="link_graphene"/>
-                       </ASroute><ASroute src="AS_griffon" dst="gw_AS_nancy" gw_src="griffon-AS_griffon_router.nancy.grid5000.fr" gw_dst="gw_nancy" symmetrical="NO">
-                                       <link_ctn id="link_griffon"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_nancy" dst="AS_graphene" gw_src="gw_nancy" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_graphene"/>
-                       </ASroute><ASroute src="gw_AS_nancy" dst="AS_griffon" gw_src="gw_nancy" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_griffon"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_orsay" routing="Full">
-                       <AS id="AS_gdx" routing="Full">
-                               <cluster id="AS_netgear01.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="1-36" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear02.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="37-72" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear03.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="73-108" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear04.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="109-144" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear05.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="145-180" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear06.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="193-216" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear07.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="217-252" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_netgear08.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="253-288" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_procurve-bmc-09.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="289-310" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_switch14.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="181-186" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                               <cluster id="AS_switch15.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="187-192" power="4.7153E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-
-                               <AS id="gw_AS_gdx" routing="Full">
-                                       <router id="gdx-AS_gdx_router.orsay.grid5000.fr"/>
-                               </AS>
-                               <link id="switch-gdx" bandwidth="1250000000" latency="5E-4"/>
-
-                               <ASroute src="AS_procurve-bmc-09.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear06.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear06.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear08.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear08.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear08.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_switch15.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_switch15.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear02.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_switch15.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear02.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear04.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute>
-                               <ASroute src="AS_procurve-bmc-09.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear06.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear08.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch14.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear05.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear03.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear07.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear01.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_switch15.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear02.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute><ASroute src="AS_netgear04.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
-                                       <link_ctn id="switch-gdx"/>
-                               </ASroute>
-                               </AS>
-                       <link id="link_gdx" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_netgdx" prefix="netgdx-" suffix=".orsay.grid5000.fr" radical="1-30" power="4.7144E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_netgdx" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_orsay" routing="Full">
-                               <router id="gw_orsay"/>
-                       </AS>
-                       <link id="link_gw_orsay" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_netgdx" dst="AS_netgdx" gw_src="netgdx-AS_netgdx_router.orsay.grid5000.fr" gw_dst="netgdx-AS_netgdx_router.orsay.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_netgdx"/>
-                                       <link_ctn id="link_netgdx"/>
-                       </ASroute><ASroute src="AS_gdx" dst="AS_netgdx" gw_src="gdx-AS_gdx_router.orsay.grid5000.fr" gw_dst="netgdx-AS_netgdx_router.orsay.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_gdx"/>
-                                       <link_ctn id="link_netgdx"/>
-                       </ASroute><ASroute src="AS_gdx" dst="AS_gdx" gw_src="gdx-AS_gdx_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_gdx"/>
-                                       <link_ctn id="link_gdx"/>
-                       </ASroute>
-
-                       <ASroute src="AS_netgdx" dst="gw_AS_orsay" gw_src="netgdx-AS_netgdx_router.orsay.grid5000.fr" gw_dst="gw_orsay" symmetrical="NO">
-                                       <link_ctn id="link_netgdx"/>
-                       </ASroute><ASroute src="AS_gdx" dst="gw_AS_orsay" gw_src="gdx-AS_gdx_router.orsay.grid5000.fr" gw_dst="gw_orsay" symmetrical="NO">
-                                       <link_ctn id="link_gdx"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_orsay" dst="AS_netgdx" gw_src="gw_orsay" gw_dst="netgdx-AS_netgdx_router.orsay.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_netgdx"/>
-                       </ASroute><ASroute src="gw_AS_orsay" dst="AS_gdx" gw_src="gw_orsay" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_gdx"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_rennes" routing="Full">
-                       <cluster id="AS_paradent" prefix="paradent-" suffix=".rennes.grid5000.fr" radical="1-64" power="21.496E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_paradent" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_paramount" prefix="paramount-" suffix=".rennes.grid5000.fr" radical="1-33" power="12.910E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_paramount" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_parapide" prefix="parapide-" suffix=".rennes.grid5000.fr" radical="1-25" power="30.130E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_parapide" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_parapluie" prefix="parapluie-" suffix=".rennes.grid5000.fr" radical="1-40" power="27.391E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_parapluie" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_rennes" routing="Full">
-                               <router id="gw_rennes"/>
-                       </AS>
-                       <link id="link_gw_rennes" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_paradent" dst="AS_paradent" gw_src="paradent-AS_paradent_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_paradent"/>
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="AS_parapluie" dst="AS_paradent" gw_src="parapluie-AS_parapluie_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_parapluie"/>
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="AS_parapluie" dst="AS_parapluie" gw_src="parapluie-AS_parapluie_router.rennes.grid5000.fr" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_parapluie"/>
-                                       <link_ctn id="link_parapluie"/>
-                       </ASroute><ASroute src="AS_parapide" dst="AS_paradent" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_parapide"/>
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="AS_parapide" dst="AS_parapluie" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_parapide"/>
-                                       <link_ctn id="link_parapluie"/>
-                       </ASroute><ASroute src="AS_parapide" dst="AS_parapide" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="parapide-AS_parapide_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_parapide"/>
-                                       <link_ctn id="link_parapide"/>
-                       </ASroute><ASroute src="AS_paramount" dst="AS_paradent" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_paramount"/>
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="AS_paramount" dst="AS_parapluie" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_paramount"/>
-                                       <link_ctn id="link_parapluie"/>
-                       </ASroute><ASroute src="AS_paramount" dst="AS_parapide" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="parapide-AS_parapide_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_paramount"/>
-                                       <link_ctn id="link_parapide"/>
-                       </ASroute><ASroute src="AS_paramount" dst="AS_paramount" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="paramount-AS_paramount_router.rennes.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_paramount"/>
-                                       <link_ctn id="link_paramount"/>
-                       </ASroute>
-
-                       <ASroute src="AS_paradent" dst="gw_AS_rennes" gw_src="paradent-AS_paradent_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="NO">
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="AS_parapluie" dst="gw_AS_rennes" gw_src="parapluie-AS_parapluie_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="NO">
-                                       <link_ctn id="link_parapluie"/>
-                       </ASroute><ASroute src="AS_parapide" dst="gw_AS_rennes" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="NO">
-                                       <link_ctn id="link_parapide"/>
-                       </ASroute><ASroute src="AS_paramount" dst="gw_AS_rennes" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="NO">
-                                       <link_ctn id="link_paramount"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_rennes" dst="AS_paradent" gw_src="gw_rennes" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_paradent"/>
-                       </ASroute><ASroute src="gw_AS_rennes" dst="AS_parapluie" gw_src="gw_rennes" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_parapluie"/>
-                       </ASroute><ASroute src="gw_AS_rennes" dst="AS_parapide" gw_src="gw_rennes" gw_dst="parapide-AS_parapide_router.rennes.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_parapide"/>
-                       </ASroute><ASroute src="gw_AS_rennes" dst="AS_paramount" gw_src="gw_rennes" gw_dst="paramount-AS_paramount_router.rennes.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_paramount"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_sophia" routing="Full">
-                       <cluster id="AS_helios" prefix="helios-" suffix=".sophia.grid5000.fr" radical="1-56" power="7.7318E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_helios" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_sol" prefix="sol-" suffix=".sophia.grid5000.fr" radical="1-50" power="8.9388E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_sol" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_suno" prefix="suno-" suffix=".sophia.grid5000.fr" radical="1-45" power="23.530E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_suno" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_sophia" routing="Full">
-                               <router id="gw_sophia"/>
-                       </AS>
-                       <link id="link_gw_sophia" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_sol" dst="AS_sol" gw_src="sol-AS_sol_router.sophia.grid5000.fr" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_sol"/>
-                                       <link_ctn id="link_sol"/>
-                       </ASroute><ASroute src="AS_helios" dst="AS_sol" gw_src="helios-AS_helios_router.sophia.grid5000.fr" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_helios"/>
-                                       <link_ctn id="link_sol"/>
-                       </ASroute><ASroute src="AS_helios" dst="AS_helios" gw_src="helios-AS_helios_router.sophia.grid5000.fr" gw_dst="helios-AS_helios_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_helios"/>
-                                       <link_ctn id="link_helios"/>
-                       </ASroute><ASroute src="AS_suno" dst="AS_sol" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_suno"/>
-                                       <link_ctn id="link_sol"/>
-                       </ASroute><ASroute src="AS_suno" dst="AS_helios" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="helios-AS_helios_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_suno"/>
-                                       <link_ctn id="link_helios"/>
-                       </ASroute><ASroute src="AS_suno" dst="AS_suno" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="suno-AS_suno_router.sophia.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_suno"/>
-                                       <link_ctn id="link_suno"/>
-                       </ASroute>
-
-                       <ASroute src="AS_sol" dst="gw_AS_sophia" gw_src="sol-AS_sol_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="NO">
-                                       <link_ctn id="link_sol"/>
-                       </ASroute><ASroute src="AS_helios" dst="gw_AS_sophia" gw_src="helios-AS_helios_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="NO">
-                                       <link_ctn id="link_helios"/>
-                       </ASroute><ASroute src="AS_suno" dst="gw_AS_sophia" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="NO">
-                                       <link_ctn id="link_suno"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_sophia" dst="AS_sol" gw_src="gw_sophia" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_sol"/>
-                       </ASroute><ASroute src="gw_AS_sophia" dst="AS_helios" gw_src="gw_sophia" gw_dst="helios-AS_helios_router.sophia.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_helios"/>
-                       </ASroute><ASroute src="gw_AS_sophia" dst="AS_suno" gw_src="gw_sophia" gw_dst="suno-AS_suno_router.sophia.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_suno"/>
-                       </ASroute>
-
-               </AS>
-               <AS id="AS_toulouse" routing="Full">
-                       <cluster id="AS_pastel" prefix="pastel-" suffix=".toulouse.grid5000.fr" radical="1-80" power="9.5674E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_pastel" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <cluster id="AS_violette" prefix="violette-" suffix=".toulouse.grid5000.fr" radical="1-52" power="5.1143E9" bw="1.25E8" lat="1.0E-4" bb_bw="1.25E9" bb_lat="1.0E-4"/>
-                       <link id="link_violette" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <AS id="gw_AS_toulouse" routing="Full">
-                               <router id="gw_toulouse"/>
-                       </AS>
-                       <link id="link_gw_toulouse" bandwidth="1.25E9" latency="1.0E-4"/>
-
-                       <ASroute src="AS_pastel" dst="AS_pastel" gw_src="pastel-AS_pastel_router.toulouse.grid5000.fr" gw_dst="pastel-AS_pastel_router.toulouse.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_pastel"/>
-                                       <link_ctn id="link_pastel"/>
-                       </ASroute><ASroute src="AS_violette" dst="AS_pastel" gw_src="violette-AS_violette_router.toulouse.grid5000.fr" gw_dst="pastel-AS_pastel_router.toulouse.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_violette"/>
-                                       <link_ctn id="link_pastel"/>
-                       </ASroute><ASroute src="AS_violette" dst="AS_violette" gw_src="violette-AS_violette_router.toulouse.grid5000.fr" gw_dst="violette-AS_violette_router.toulouse.grid5000.fr" symmetrical="YES">
-                                       <link_ctn id="link_violette"/>
-                                       <link_ctn id="link_violette"/>
-                       </ASroute>
-
-                       <ASroute src="AS_pastel" dst="gw_AS_toulouse" gw_src="pastel-AS_pastel_router.toulouse.grid5000.fr" gw_dst="gw_toulouse" symmetrical="NO">
-                                       <link_ctn id="link_pastel"/>
-                       </ASroute><ASroute src="AS_violette" dst="gw_AS_toulouse" gw_src="violette-AS_violette_router.toulouse.grid5000.fr" gw_dst="gw_toulouse" symmetrical="NO">
-                                       <link_ctn id="link_violette"/>
-                       </ASroute>
-
-                       <ASroute src="gw_AS_toulouse" dst="AS_pastel" gw_src="gw_toulouse" gw_dst="pastel-AS_pastel_router.toulouse.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_pastel"/>
-                       </ASroute><ASroute src="gw_AS_toulouse" dst="AS_violette" gw_src="gw_toulouse" gw_dst="violette-AS_violette_router.toulouse.grid5000.fr" symmetrical="NO">
-                                       <link_ctn id="link_violette"/>
-                       </ASroute>
-
-               </AS>
-               <ASroute src="AS_toulouse" dst="AS_interne" gw_src="gw_toulouse" gw_dst="toulouse" symmetrical="YES">
-                       <link_ctn id="link_gw_toulouse"/>
-               </ASroute>
-               <ASroute src="AS_sophia" dst="AS_interne" gw_src="gw_sophia" gw_dst="sophia" symmetrical="YES">
-                       <link_ctn id="link_gw_sophia"/>
-               </ASroute>
-               <ASroute src="AS_rennes" dst="AS_interne" gw_src="gw_rennes" gw_dst="rennes" symmetrical="YES">
-                       <link_ctn id="link_gw_rennes"/>
-               </ASroute>
-               <ASroute src="AS_orsay" dst="AS_interne" gw_src="gw_orsay" gw_dst="paris" symmetrical="YES">
-                       <link_ctn id="link_gw_orsay"/>
-               </ASroute>
-               <ASroute src="AS_nancy" dst="AS_interne" gw_src="gw_nancy" gw_dst="nancy" symmetrical="YES">
-                       <link_ctn id="link_gw_nancy"/>
-               </ASroute>
-               <ASroute src="AS_lyon" dst="AS_interne" gw_src="gw_lyon" gw_dst="lyon" symmetrical="YES">
-                       <link_ctn id="link_gw_lyon"/>
-               </ASroute>
-               <ASroute src="AS_lille" dst="AS_interne" gw_src="gw_lille" gw_dst="lille" symmetrical="YES">
-                       <link_ctn id="link_gw_lille"/>
-               </ASroute>
-               <ASroute src="AS_grenoble" dst="AS_interne" gw_src="gw_grenoble" gw_dst="grenoble" symmetrical="YES">
-                       <link_ctn id="link_gw_grenoble"/>
-               </ASroute>
-               <ASroute src="AS_bordeaux" dst="AS_interne" gw_src="gw_bordeaux" gw_dst="bordeaux" symmetrical="YES">
-                       <link_ctn id="link_gw_bordeaux"/>
-               </ASroute>
-       </AS>
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="AS_grid5000" routing="Floyd">
+    <AS id="AS_interne" routing="Floyd">
+      <router id="lille"/>
+      <router id="paris"/>
+      <router id="nancy"/>
+      <router id="rennes"/>
+      <router id="lyon"/>
+      <router id="bordeaux"/>
+      <router id="grenoble"/>
+      <router id="marseille"/>
+      <router id="toulouse"/>
+      <router id="sophia"/>
+
+      <link id="Lille_Paris" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Paris_Nancy" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Paris_Rennes" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Paris_Lyon" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Bordeaux_Lyon" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Lyon_Grenoble" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Lyon_Marseille" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Marseille_Sophia" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+      <link id="Marseille_Toulouse" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <route src="lille" dst="paris"><link_ctn id="Lille_Paris"/></route>
+      <route src="paris" dst="nancy"><link_ctn id="Paris_Nancy"/></route>
+      <route src="paris" dst="rennes"><link_ctn id="Paris_Rennes"/></route>
+      <route src="paris" dst="lyon"><link_ctn id="Paris_Lyon"/></route>
+      <route src="bordeaux" dst="lyon"><link_ctn id="Bordeaux_Lyon"/></route>
+      <route src="lyon" dst="grenoble"><link_ctn id="Lyon_Grenoble"/></route>
+      <route src="lyon" dst="marseille"><link_ctn id="Lyon_Marseille"/></route>
+      <route src="marseille" dst="sophia"><link_ctn id="Marseille_Sophia"/></route>
+      <route src="marseille" dst="toulouse"><link_ctn id="Marseille_Toulouse"/></route>
+    </AS>
+    <AS id="AS_bordeaux" routing="Full">
+      <cluster id="AS_bordeplage" prefix="bordeplage-" suffix=".bordeaux.grid5000.fr" radical="1-51" speed="5.2297E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_bordeplage" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_bordereau" prefix="bordereau-" suffix=".bordeaux.grid5000.fr" radical="1-93" speed="8.8925E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_bordereau" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_borderline" prefix="borderline-" suffix=".bordeaux.grid5000.fr" radical="1-10" speed="13.357E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_borderline" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_bordeaux" routing="Full">
+        <router id="gw_bordeaux"/>
+      </AS>
+      <link id="link_gw_bordeaux" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_bordeplage" dst="AS_bordereau" gw_src="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_bordeplage"/><link_ctn id="link_bordereau"/>
+      </ASroute>
+      <ASroute src="AS_borderline" dst="AS_bordereau" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_borderline"/><link_ctn id="link_bordereau"/>
+      </ASroute>
+      <ASroute src="AS_borderline" dst="AS_bordeplage" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_borderline"/><link_ctn id="link_bordeplage"/>
+      </ASroute>
+
+      <ASroute src="AS_bordereau" dst="gw_AS_bordeaux" gw_src="bordereau-AS_bordereau_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="YES">
+          <link_ctn id="link_bordereau"/>
+      </ASroute>
+      <ASroute src="AS_bordeplage" dst="gw_AS_bordeaux" gw_src="bordeplage-AS_bordeplage_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="YES">
+          <link_ctn id="link_bordeplage"/>
+      </ASroute>
+      <ASroute src="AS_borderline" dst="gw_AS_bordeaux" gw_src="borderline-AS_borderline_router.bordeaux.grid5000.fr" gw_dst="gw_bordeaux" symmetrical="YES">
+          <link_ctn id="link_borderline"/>
+      </ASroute>
+   </AS>
+
+    <AS id="AS_grenoble" routing="Full">
+      <cluster id="AS_adonis" prefix="adonis-" suffix=".grenoble.grid5000.fr" radical="1-12" speed="23.681E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_adonis" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_edel" prefix="edel-" suffix=".grenoble.grid5000.fr" radical="1-72" speed="23.492E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_edel" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_genepi" prefix="genepi-" suffix=".grenoble.grid5000.fr" radical="1-34" speed="21.175E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_genepi" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_grenoble" routing="Full">
+        <router id="gw_grenoble"/>
+      </AS>
+      <link id="link_gw_grenoble" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_genepi" dst="AS_adonis" gw_src="genepi-AS_genepi_router.grenoble.grid5000.fr" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_genepi"/><link_ctn id="link_adonis"/>
+      </ASroute>
+      <ASroute src="AS_edel" dst="AS_adonis" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="adonis-AS_adonis_router.grenoble.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_edel"/><link_ctn id="link_adonis"/>
+      </ASroute>
+      <ASroute src="AS_edel" dst="AS_genepi" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="genepi-AS_genepi_router.grenoble.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_edel"/><link_ctn id="link_genepi"/>
+      </ASroute>
+
+      <ASroute src="AS_adonis" dst="gw_AS_grenoble" gw_src="adonis-AS_adonis_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="YES">
+          <link_ctn id="link_adonis"/>
+      </ASroute>
+      <ASroute src="AS_genepi" dst="gw_AS_grenoble" gw_src="genepi-AS_genepi_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="YES">
+          <link_ctn id="link_genepi"/>
+      </ASroute>
+      <ASroute src="AS_edel" dst="gw_AS_grenoble" gw_src="edel-AS_edel_router.grenoble.grid5000.fr" gw_dst="gw_grenoble" symmetrical="YES">
+          <link_ctn id="link_edel"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_lille" routing="Full">
+      <cluster id="AS_chicon" prefix="chicon-" suffix=".lille.grid5000.fr" radical="1-26" speed="8.9618E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_chicon" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_chimint" prefix="chimint-" suffix=".lille.grid5000.fr" radical="1-20" speed="23.531E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_chimint" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_chinqchint" prefix="chinqchint-" suffix=".lille.grid5000.fr" radical="1-46" speed="22.270E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_chinqchint" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_chirloute" prefix="chirloute-" suffix=".lille.grid5000.fr" radical="1-8" speed="24.473E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_chirloute" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_lille" routing="Full">
+        <router id="gw_lille"/>
+      </AS>
+      <link id="link_gw_lille" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_chirloute" dst="AS_chinqchint" gw_src="chirloute-AS_chirloute_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chirloute"/><link_ctn id="link_chinqchint"/>
+      </ASroute>
+      <ASroute src="AS_chimint" dst="AS_chinqchint" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chimint"/><link_ctn id="link_chinqchint"/>
+      </ASroute>
+      <ASroute src="AS_chimint" dst="AS_chirloute" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chimint"/><link_ctn id="link_chirloute"/>
+      </ASroute>
+      <ASroute src="AS_chicon" dst="AS_chinqchint" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chinqchint-AS_chinqchint_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chicon"/><link_ctn id="link_chinqchint"/>
+      </ASroute>
+      <ASroute src="AS_chicon" dst="AS_chirloute" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chirloute-AS_chirloute_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chicon"/><link_ctn id="link_chirloute"/>
+      </ASroute>
+      <ASroute src="AS_chicon" dst="AS_chimint" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="chimint-AS_chimint_router.lille.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_chicon"/><link_ctn id="link_chimint"/>
+      </ASroute>
+
+      <ASroute src="AS_chinqchint" dst="gw_AS_lille" gw_src="chinqchint-AS_chinqchint_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="YES">
+          <link_ctn id="link_chinqchint"/>
+      </ASroute>
+      <ASroute src="AS_chirloute" dst="gw_AS_lille" gw_src="chirloute-AS_chirloute_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="YES">
+          <link_ctn id="link_chirloute"/>
+      </ASroute>
+      <ASroute src="AS_chimint" dst="gw_AS_lille" gw_src="chimint-AS_chimint_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="YES">
+          <link_ctn id="link_chimint"/>
+      </ASroute>
+      <ASroute src="AS_chicon" dst="gw_AS_lille" gw_src="chicon-AS_chicon_router.lille.grid5000.fr" gw_dst="gw_lille" symmetrical="YES">
+          <link_ctn id="link_chicon"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_lyon" routing="Full">
+      <cluster id="AS_capricorne" prefix="capricorne-" suffix=".lyon.grid5000.fr" radical="1-56" speed="4.7233E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_capricorne" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_sagittaire" prefix="sagittaire-" suffix=".lyon.grid5000.fr" radical="1-79" speed="5.6693E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_sagittaire" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_lyon" routing="Full">
+        <router id="gw_lyon"/>
+      </AS>
+      <link id="link_gw_lyon" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_capricorne" dst="AS_sagittaire" gw_src="capricorne-AS_capricorne_router.lyon.grid5000.fr" gw_dst="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_capricorne"/><link_ctn id="link_sagittaire"/>
+      </ASroute>
+
+      <ASroute src="AS_sagittaire" dst="gw_AS_lyon" gw_src="sagittaire-AS_sagittaire_router.lyon.grid5000.fr" gw_dst="gw_lyon" symmetrical="YES">
+          <link_ctn id="link_sagittaire"/>
+      </ASroute>
+      <ASroute src="AS_capricorne" dst="gw_AS_lyon" gw_src="capricorne-AS_capricorne_router.lyon.grid5000.fr" gw_dst="gw_lyon" symmetrical="YES">
+          <link_ctn id="link_capricorne"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_nancy" routing="Full">
+      <AS id="AS_graphene" routing="Full">
+        <cluster id="AS_sgraphene1" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="1-39" speed="16.673E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_sgraphene2" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="40-74" speed="16.673E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_sgraphene3" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="75-104" speed="16.673E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_sgraphene4" prefix="graphene-" suffix=".nancy.grid5000.fr" radical="105-144" speed="16.673E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+
+        <AS id="gw_AS_graphene" routing="Full">
+          <router id="graphene-AS_graphene_router.nancy.grid5000.fr"/>
+        </AS>
+        <link id="switch-graphene" bandwidth="1250000000Bps" latency="5E-4s"/>
+
+        <ASroute src="AS_sgraphene2" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene2_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene3" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene3" dst="AS_sgraphene2" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene2_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene1" dst="AS_sgraphene4" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene4_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene1" dst="AS_sgraphene2" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene2_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene1" dst="AS_sgraphene3" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_sgraphene3_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+
+        <ASroute src="AS_sgraphene4" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene4_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene2" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene2_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene3" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene3_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        <ASroute src="AS_sgraphene1" dst="gw_AS_graphene" gw_src="graphene-AS_sgraphene1_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr">
+          <link_ctn id="switch-graphene"/>
+        </ASroute>
+        </AS>
+      <link id="link_graphene" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="AS_griffon" routing="Full">
+        <cluster id="AS_sgriffon1" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="1-29,58-60" speed="20.678E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_sgriffon2" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="30-57" speed="20.678E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_sgriffon3" prefix="griffon-" suffix=".nancy.grid5000.fr" radical="61-92" speed="20.678E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+
+        <AS id="gw_AS_griffon" routing="Full">
+          <router id="griffon-AS_griffon_router.nancy.grid5000.fr"/>
+        </AS>
+        <link id="switch-griffon" bandwidth="1250000000Bps" latency="5E-4s"/>
+
+        <ASroute src="AS_sgriffon2" dst="AS_sgriffon1" gw_src="griffon-AS_sgriffon2_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon1_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute>
+        <ASroute src="AS_sgriffon3" dst="AS_sgriffon1" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon1_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute>
+        <ASroute src="AS_sgriffon3" dst="AS_sgriffon2" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_sgriffon2_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute>
+
+        <ASroute src="AS_sgriffon1" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon1_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute><ASroute src="AS_sgriffon2" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon2_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute><ASroute src="AS_sgriffon3" dst="gw_AS_griffon" gw_src="griffon-AS_sgriffon3_router.nancy.grid5000.fr" gw_dst="griffon-AS_griffon_router.nancy.grid5000.fr">
+          <link_ctn id="switch-griffon"/>
+        </ASroute>
+        </AS>
+      <link id="link_griffon" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_nancy" routing="Full">
+        <router id="gw_nancy"/>
+      </AS>
+      <link id="link_gw_nancy" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_griffon" dst="AS_graphene" gw_src="griffon-AS_griffon_router.nancy.grid5000.fr" gw_dst="graphene-AS_graphene_router.nancy.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_griffon"/><link_ctn id="link_graphene"/>
+      </ASroute>
+
+      <ASroute src="AS_graphene" dst="gw_AS_nancy" gw_src="graphene-AS_graphene_router.nancy.grid5000.fr" gw_dst="gw_nancy" symmetrical="YES">
+          <link_ctn id="link_graphene"/>
+      </ASroute>
+      <ASroute src="AS_griffon" dst="gw_AS_nancy" gw_src="griffon-AS_griffon_router.nancy.grid5000.fr" gw_dst="gw_nancy" symmetrical="YES">
+          <link_ctn id="link_griffon"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_orsay" routing="Full">
+      <AS id="AS_gdx" routing="Full">
+        <cluster id="AS_netgear01.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="1-36" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear02.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="37-72" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear03.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="73-108" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear04.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="109-144" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear05.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="145-180" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear06.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="193-216" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear07.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="217-252" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_netgear08.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="253-288" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_procurve-bmc-09.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="289-310" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_switch14.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="181-186" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+        <cluster id="AS_switch15.orsay.grid5000.fr" prefix="gdx-" suffix=".orsay.grid5000.fr" radical="187-192" speed="4.7153E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+
+        <AS id="gw_AS_gdx" routing="Full">
+          <router id="gdx-AS_gdx_router.orsay.grid5000.fr"/>
+        </AS>
+        <link id="switch-gdx" bandwidth="1250000000Bps" latency="5E-4s"/>
+
+        <ASroute src="AS_netgear06.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear08.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear08.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch14.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear05.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="AS_switch15.orsay.grid5000.fr" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_procurve-bmc-09.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear06.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear08.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_switch14.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear05.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear03.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear07.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear01.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_switch15.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="AS_netgear02.orsay.grid5000.fr" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+
+        <ASroute src="AS_procurve-bmc-09.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_procurve-bmc-09.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear06.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear06.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear08.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear08.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch14.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_switch14.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear05.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear05.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear03.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear03.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear07.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear07.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear01.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear01.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_switch15.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_switch15.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear02.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear02.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+        <ASroute src="AS_netgear04.orsay.grid5000.fr" dst="gw_AS_gdx" gw_src="gdx-AS_netgear04.orsay.grid5000.fr_router.orsay.grid5000.fr" gw_dst="gdx-AS_gdx_router.orsay.grid5000.fr">
+          <link_ctn id="switch-gdx"/>
+        </ASroute>
+      </AS>
+      <link id="link_gdx" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_netgdx" prefix="netgdx-" suffix=".orsay.grid5000.fr" radical="1-30" speed="4.7144E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_netgdx" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_orsay" routing="Full">
+        <router id="gw_orsay"/>
+      </AS>
+      <link id="link_gw_orsay" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_gdx" dst="AS_netgdx" gw_src="gdx-AS_gdx_router.orsay.grid5000.fr" gw_dst="netgdx-AS_netgdx_router.orsay.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_gdx"/><link_ctn id="link_netgdx"/>
+      </ASroute>
+
+      <ASroute src="AS_netgdx" dst="gw_AS_orsay" gw_src="netgdx-AS_netgdx_router.orsay.grid5000.fr" gw_dst="gw_orsay" symmetrical="YES">
+          <link_ctn id="link_netgdx"/>
+      </ASroute><ASroute src="AS_gdx" dst="gw_AS_orsay" gw_src="gdx-AS_gdx_router.orsay.grid5000.fr" gw_dst="gw_orsay" symmetrical="YES">
+          <link_ctn id="link_gdx"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_rennes" routing="Full">
+      <cluster id="AS_paradent" prefix="paradent-" suffix=".rennes.grid5000.fr" radical="1-64" speed="21.496E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_paradent" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_paramount" prefix="paramount-" suffix=".rennes.grid5000.fr" radical="1-33" speed="12.910E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_paramount" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_parapide" prefix="parapide-" suffix=".rennes.grid5000.fr" radical="1-25" speed="30.130E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_parapide" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_parapluie" prefix="parapluie-" suffix=".rennes.grid5000.fr" radical="1-40" speed="27.391E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_parapluie" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_rennes" routing="Full">
+        <router id="gw_rennes"/>
+      </AS>
+      <link id="link_gw_rennes" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_parapluie" dst="AS_paradent" gw_src="parapluie-AS_parapluie_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_parapluie"/><link_ctn id="link_paradent"/>
+      </ASroute>
+      <ASroute src="AS_parapide" dst="AS_paradent" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_parapide"/><link_ctn id="link_paradent"/>
+      </ASroute>
+      <ASroute src="AS_parapide" dst="AS_parapluie" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_parapide"/><link_ctn id="link_parapluie"/>
+      </ASroute>
+      <ASroute src="AS_paramount" dst="AS_paradent" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="paradent-AS_paradent_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_paramount"/><link_ctn id="link_paradent"/>
+      </ASroute><ASroute src="AS_paramount" dst="AS_parapluie" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="parapluie-AS_parapluie_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_paramount"/><link_ctn id="link_parapluie"/>
+      </ASroute>
+      <ASroute src="AS_paramount" dst="AS_parapide" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="parapide-AS_parapide_router.rennes.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_paramount"/><link_ctn id="link_parapide"/>
+      </ASroute>
+
+      <ASroute src="AS_paradent" dst="gw_AS_rennes" gw_src="paradent-AS_paradent_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="YES">
+          <link_ctn id="link_paradent"/>
+      </ASroute>
+      <ASroute src="AS_parapluie" dst="gw_AS_rennes" gw_src="parapluie-AS_parapluie_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="YES">
+          <link_ctn id="link_parapluie"/>
+      </ASroute>
+      <ASroute src="AS_parapide" dst="gw_AS_rennes" gw_src="parapide-AS_parapide_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="YES">
+          <link_ctn id="link_parapide"/>
+      </ASroute>
+      <ASroute src="AS_paramount" dst="gw_AS_rennes" gw_src="paramount-AS_paramount_router.rennes.grid5000.fr" gw_dst="gw_rennes" symmetrical="YES">
+          <link_ctn id="link_paramount"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_sophia" routing="Full">
+      <cluster id="AS_helios" prefix="helios-" suffix=".sophia.grid5000.fr" radical="1-56" speed="7.7318E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_helios" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_sol" prefix="sol-" suffix=".sophia.grid5000.fr" radical="1-50" speed="8.9388E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_sol" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_suno" prefix="suno-" suffix=".sophia.grid5000.fr" radical="1-45" speed="23.530E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_suno" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_sophia" routing="Full">
+        <router id="gw_sophia"/>
+      </AS>
+      <link id="link_gw_sophia" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_helios" dst="AS_sol" gw_src="helios-AS_helios_router.sophia.grid5000.fr" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_helios"/><link_ctn id="link_sol"/>
+      </ASroute>
+      <ASroute src="AS_suno" dst="AS_sol" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="sol-AS_sol_router.sophia.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_suno"/><link_ctn id="link_sol"/>
+      </ASroute>
+      <ASroute src="AS_suno" dst="AS_helios" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="helios-AS_helios_router.sophia.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_suno"/><link_ctn id="link_helios"/>
+      </ASroute>
+
+      <ASroute src="AS_sol" dst="gw_AS_sophia" gw_src="sol-AS_sol_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="YES">
+          <link_ctn id="link_sol"/>
+      </ASroute>
+      <ASroute src="AS_helios" dst="gw_AS_sophia" gw_src="helios-AS_helios_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="YES">
+          <link_ctn id="link_helios"/>
+      </ASroute>
+      <ASroute src="AS_suno" dst="gw_AS_sophia" gw_src="suno-AS_suno_router.sophia.grid5000.fr" gw_dst="gw_sophia" symmetrical="YES">
+          <link_ctn id="link_suno"/>
+      </ASroute>
+    </AS>
+
+    <AS id="AS_toulouse" routing="Full">
+      <cluster id="AS_pastel" prefix="pastel-" suffix=".toulouse.grid5000.fr" radical="1-80" speed="9.5674E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_pastel" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <cluster id="AS_violette" prefix="violette-" suffix=".toulouse.grid5000.fr" radical="1-52" speed="5.1143E9f" bw="1.25E8Bps" lat="1.0E-4s" bb_bw="1.25E9Bps" bb_lat="1.0E-4s"/>
+      <link id="link_violette" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <AS id="gw_AS_toulouse" routing="Full">
+        <router id="gw_toulouse"/>
+      </AS>
+      <link id="link_gw_toulouse" bandwidth="1.25E9Bps" latency="1.0E-4s"/>
+
+      <ASroute src="AS_violette" dst="AS_pastel" gw_src="violette-AS_violette_router.toulouse.grid5000.fr" gw_dst="pastel-AS_pastel_router.toulouse.grid5000.fr" symmetrical="YES">
+          <link_ctn id="link_violette"/>
+          <link_ctn id="link_pastel"/>
+      </ASroute>
+
+      <ASroute src="AS_pastel" dst="gw_AS_toulouse" gw_src="pastel-AS_pastel_router.toulouse.grid5000.fr" gw_dst="gw_toulouse" symmetrical="YES">
+          <link_ctn id="link_pastel"/>
+      </ASroute><ASroute src="AS_violette" dst="gw_AS_toulouse" gw_src="violette-AS_violette_router.toulouse.grid5000.fr" gw_dst="gw_toulouse" symmetrical="YES">
+          <link_ctn id="link_violette"/>
+      </ASroute>
+   </AS>
+
+    <ASroute src="AS_toulouse" dst="AS_interne" gw_src="gw_toulouse" gw_dst="toulouse" symmetrical="YES">
+      <link_ctn id="link_gw_toulouse"/>
+    </ASroute>
+    <ASroute src="AS_sophia" dst="AS_interne" gw_src="gw_sophia" gw_dst="sophia" symmetrical="YES">
+      <link_ctn id="link_gw_sophia"/>
+    </ASroute>
+    <ASroute src="AS_rennes" dst="AS_interne" gw_src="gw_rennes" gw_dst="rennes" symmetrical="YES">
+      <link_ctn id="link_gw_rennes"/>
+    </ASroute>
+    <ASroute src="AS_orsay" dst="AS_interne" gw_src="gw_orsay" gw_dst="paris" symmetrical="YES">
+      <link_ctn id="link_gw_orsay"/>
+    </ASroute>
+    <ASroute src="AS_nancy" dst="AS_interne" gw_src="gw_nancy" gw_dst="nancy" symmetrical="YES">
+      <link_ctn id="link_gw_nancy"/>
+    </ASroute>
+    <ASroute src="AS_lyon" dst="AS_interne" gw_src="gw_lyon" gw_dst="lyon" symmetrical="YES">
+      <link_ctn id="link_gw_lyon"/>
+    </ASroute>
+    <ASroute src="AS_lille" dst="AS_interne" gw_src="gw_lille" gw_dst="lille" symmetrical="YES">
+      <link_ctn id="link_gw_lille"/>
+    </ASroute>
+    <ASroute src="AS_grenoble" dst="AS_interne" gw_src="gw_grenoble" gw_dst="grenoble" symmetrical="YES">
+      <link_ctn id="link_gw_grenoble"/>
+    </ASroute>
+    <ASroute src="AS_bordeaux" dst="AS_interne" gw_src="gw_bordeaux" gw_dst="bordeaux" symmetrical="YES">
+      <link_ctn id="link_gw_bordeaux"/>
+    </ASroute>
+  </AS>
 </platform>
diff --git a/examples/platforms/generation_scripts/create_hierarchical_clusters.pl b/examples/platforms/generation_scripts/create_hierarchical_clusters.pl
deleted file mode 100755 (executable)
index f655761..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-#! /usr/bin/env perl
-
-# Copyright (c) 2011-2012, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-# Quick script to generate hierarchical clusters. Usage : <the script> p s d  where :
-# - p : 2^p gives the total number of hosts.
-# - s : cluster size
-# - d : degree of inner nodes.
-#
-# output is the standard one.
-#
-#
-#Each node is numbered by a DFS in the tree. Each cluster is numbered by the DFS number of the leaf it is attached to and the number of cluster for each leaf. 
-# Other infos : 
-# - Same bb_lat used for any routers inside (not that complicated to modify too).
-# - constants defined in the first part of the script corresponding to classic cluster parameters. links_bw and links_lat added for the inner tree links
-# - bb_lat and bb_bw used in any backbone of the tree.
-# - fails if you set an obviously too small total number of hosts compared to the cluster size (generates a lot of stuff for nothing actually).
-#
-
-use Math::BigInt;
-
-$prefix= ""; 
-$suffix= "";
-$bw= "125000000";
-$power= "1000000000";
-$lat= "5E-5";
-$bb_bw= "2250000000";
-$bb_lat= "5E-4"; 
-$links_bw= "2250000000";
-$links_lat= "5E-5";
-$id= "";
-
-$p = $ARGV[0];
-$s = $ARGV[1];
-$d = $ARGV[2];
-
-$p = Math::BigInt->new($p);
-$d = Math::BigInt->new($d);
-$s = Math::BigInt->new($s);
-
-$cabinetnodes= $d;
-$nbsons= $d;
-$radical= "1-" . $s;
-$last=$s;
-
-# Number of clusters to generate ? Update: I hate this bigInt package, the way it behaves is SO stupid 
-$totalnumberofhosts = Math::BigInt->new("2");
-$totalnumberofhosts->bpow($p);
-
-$totalnumberofCluster= $totalnumberofhosts->copy();
-
-$totalnumberofCluster->bdiv($s);
-
-# checking if we have to have something non homogeneous
-if ($totalnumberofhosts->copy()->bmod($s) != 0 ) 
-       {
-               $totalnumberofCluster++;
-               $last= $totalnumberofhosts->copy()->bmod($s);
-       }
-
-# Calculating height
-
-$height= $totalnumberofCluster->copy();
-$height->broot($d);
-
-# Checking if an exact root exists
-if ( $height->bcmp(Math::BigInt->new("1")) != 0 && ($height->copy()->bpow($d))->bcmp($totalnumberofCluster)) { 
-       
-       $height++; #will have to deal with empty set of clusters.       
-       }
-# debug stuff  
-# print "Computed : \n";
-# print STDERR "height: " . $height . "\n";
-# print STDERR "totalnumberofhosts: " . $totalnumberofhosts . "\n";
-# print STDERR "totalnumberofcluster: " .  $totalnumberofCluster . "\n";
-# print STDERR "last cluster size (if equals to cluster size, then all clusters will be homogeneous) : " . $last . "\n";
-
-# Counter for giving unique IDs to ASes.
-$ASnumber;
-$ASnumber = 0;
-
-# Printing preamble
-print "<?xml version='1.0'?>\n";
-print "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n";
-print "<platform version=\"3\">\n\n";
-
-       
-# Initiate recursion ...
-&DF_creation(0);
-
-# Closing tag, and then back home
-print "</platform>\n"; 
-
-
-# Recursive stuff for depth first Se... Creation
-sub DF_creation {
-       my($currDepth) = @_;
-       
-       # Curr AS creation
-       print "<AS id=\"". $prefix . "AS_" . $ASnumber . $suffix . "\"  routing=\"Full\">\n";   
-       
-       # Curr router AS creation stuff
-       print "<AS id=\"". $prefix . "exitAS_" . $ASnumber . $suffix . "\"  routing=\"Full\">\n";                        
-       print " <router id=\"" . $prefix . "router_" . $ASnumber . $suffix . "\"/>\n";
-       print "</AS>\n";
-       # Saving my current number to return it to my father
-       my $toReturn = $ASnumber;
-       $ASnumber++;
-       if ($currDepth<=$height && $totalnumberofCluster > 0)
-               {               
-               # Creating current AS inner stuff
-               # I should have a table of sons numbers.
-               my @tsons = ();
-               my $createdSons = 0;
-               for (my $i =1; $i<=$nbsons && $totalnumberofCluster > 0 ; $i++)
-               {
-               #saving this son in my tab ...  recursive call to create ASes and cluster underneath
-               push(@tsons, &DF_creation($currDepth + 1)); 
-               $createdSons++;
-               #               
-               # Creating link to this son
-               print "<link id=\"". $prefix . $tsons[$i-1] . $suffix . "\" bandwidth=\"" . $links_bw . "\" latency=\"" . $links_lat . "\"/>\n";        
-               }
-               # curr backbone creation 
-               print "<link id=\"". $prefix . "bb_" . $toReturn . $suffix . "\" bandwidth=\"" . $bb_bw . "\" latency=\"" . $bb_lat . "\"/>\n";
-               # Full routing AS to AS declaration
-               for (my $i =1; $i<=$createdSons ; $i++)
-               {
-                                       for (my $j =$i+1; $j<=$createdSons ; $j++)
-                                       {
-                                               print  "<ASroute src=\"" . $prefix . "AS_" . $tsons[$i-1] . $suffix . "\"\n";
-                                               print " dst=\"" . $prefix . "AS_" . $tsons[$j-1] . $suffix . "\"\n";
-                                               print " gw_src=\"" . $prefix . "router_" . $tsons[$i-1] . $suffix . "\"\n";
-                                               print " gw_dst=\"" . $prefix . "router_" . $tsons[$j-1] . $suffix . "\"\n";
-                                               print " symmetrical=\"YES\">\n";
-                                               
-                                               print "         <link_ctn id=\"" . $prefix . $tsons[$i-1] . $suffix . "\"/>\n";
-                                               print "         <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                                               print "         <link_ctn id=\"" . $prefix . $tsons[$j-1] . $suffix . "\"/>\n";
-                                               print "</ASroute>\n";
-                                       }
-               }
-               # Now routes to the exit AS
-               for (my $i =1; $i<=$createdSons ; $i++)
-               {
-                       print  "<ASroute src=\"" . $prefix . "AS_" . $tsons[$i-1] . $suffix . "\"\n";
-                       print " dst=\"" . $prefix . "exitAS_" . $toReturn . $suffix . "\"\n";
-                       print " gw_src=\"" . $prefix . "router_" . $tsons[$i-1] . $suffix . "\"\n";
-                       print " gw_dst=\"" . $prefix . "router_" . $toReturn . $suffix . "\"\n";
-                       print " symmetrical=\"YES\">\n";                                                
-                       print "         <link_ctn id=\"" . $prefix . $tsons[$i-1] . $suffix . "\"/>\n";
-                       print "         <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                       print "</ASroute>\n";                   
-               }
-               print "</AS>\n";
-               # DO I have extra stuff to add ? I don't think so.              
-               return $toReturn;
-               }
-       else { # On leaves, 
-               my $lastNumberOfClusterCreated = 0;     
-               #I must create clusters now
-               for(my $i = 1; $i <= $cabinetnodes && $totalnumberofCluster>0 ; $i++) {
-                       $lastNumberOfClusterCreated++;
-                       if ($totalnumberofCluster==1)
-                       {
-                       print "<cluster id=\"". $prefix . "cl_" . $toReturn . "_" . $i . $suffix . "\" prefix=\"" . $prefix . "c_" . $toReturn . "_" . $i . "-\" suffix=\"" . $suffix . "\" radical=\"1-"
-                               . $last . "\" power=\"" . $power . "\" bw=\"" . $bw . "\" lat=\"" . $lat . "\" bb_bw=\"" . $bb_bw . "\" bb_lat=\"" . $bb_lat . "\"/>\n";        
-                       }
-                       else 
-                       {       
-                       print "<cluster id=\"". $prefix . "cl_" . $toReturn . "_" . $i . $suffix . "\" prefix=\"" . $prefix . "c_" . $toReturn . "_" . $i . "-\" suffix=\"" . $suffix . "\" radical=\""
-                               . $radical . "\" power=\"" . $power . "\" bw=\"" . $bw . "\" lat=\"" . $lat . "\" bb_bw=\"" . $bb_bw . "\" bb_lat=\"" . $bb_lat . "\"/>\n";     
-                       }
-                       $totalnumberofCluster--;
-                       }       
-               # Creating links to clusters
-               for(my $i = 1; $i <= $lastNumberOfClusterCreated ; $i++) {
-                       print "<link id=\"". $prefix . $toReturn . "_" . $i . $suffix . "\" bandwidth=\"" . $links_bw . "\" latency=\"" . $links_lat . "\"/>\n";
-               }
-
-               # 
-               # curr backbone creation 
-               print "<link id=\"". $prefix . "bb_" . $toReturn . $suffix . "\" bandwidth=\"" . $bb_bw . "\" latency=\"" . $bb_lat . "\"/>\n";
-       
-               # I must create routes between clusters now 
-               for (my $i =1; $i<=$lastNumberOfClusterCreated ; $i++)
-                       {
-                                       for (my $j =$i+1; $j<=$lastNumberOfClusterCreated ; $j++)
-                                       {
-                                               print  "<ASroute src=\"" . $prefix . "cl_" . $toReturn . "_" . $i . $suffix .  "\"\n";
-                                               print " dst=\"" .  $prefix . "cl_" . $toReturn . "_" . $j . $suffix .  "\"\n";
-
-                                               print " gw_src=\"" . $prefix . "c_" . $toReturn . "_" . $i . "-" . $prefix . "cl_" . $toReturn . "_" . $i . $suffix . "_router" . $suffix  ."\"\n";
-                                               print " gw_dst=\"" . $prefix . "c_" . $toReturn . "_" . $j . "-" . $prefix . "cl_" . $toReturn . "_" . $j . $suffix  . "_router" . $suffix . "\"\n";
-                                               print " symmetrical=\"YES\">\n";
-                                               
-                                               print "         <link_ctn id=\"" . $prefix . $toReturn. "_" . $i . $suffix . "\"/>\n";
-                                               print "         <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                                               print "         <link_ctn id=\"" . $prefix . $toReturn . "_" . $j . $suffix . "\"/>\n";
-                                               print "</ASroute>\n";
-                                       }
-                       }
-               # Now routes to the exit AS
-               for (my $i =1; $i<=$lastNumberOfClusterCreated ; $i++)
-               {
-                       print  "<ASroute src=\""  . $prefix . "cl_" . $toReturn . "_" . $i . $suffix  . "\"\n";
-                       print " dst=\"" . $prefix . "exitAS_" . $toReturn . $suffix . "\"\n";
-                       # SAME HERE !!
-                       print " gw_src=\"" . $prefix . "c_" . $toReturn . "_" . $i . "-" . $prefix . "cl_" . $toReturn . "_" . $i . $suffix . "_router" . $suffix  ."\"\n";
-                       print " gw_dst=\"" . $prefix . "router_" . $toReturn . $suffix . "\"\n";
-                       print " symmetrical=\"YES\">\n";                                                
-                       print "         <link_ctn id=\"" . $prefix . $toReturn . "_" . $i . $suffix . "\"/>\n";
-                       print "         <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                       print "</ASroute>\n";                   
-               }
-               print "</AS>\n";
-       # Should be done with it...
-       return $toReturn;
-       }
-
-}
diff --git a/examples/platforms/generation_scripts/enhancedDTDwithHierarchicalCluster.pl b/examples/platforms/generation_scripts/enhancedDTDwithHierarchicalCluster.pl
deleted file mode 100755 (executable)
index dd56ba8..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-#! /usr/bin/env perl
-
-# Copyright (c) 2011-2012, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-# Quick script to generate hierarchical clusters. Usage : add the special cluster tag (description below) in your "normal" platform file. Then run the script :
-# - First arg : the input file where you midified your cluster tag
-# - Second one : the output file where all the stuff will be generated.
-# Builds a complete tree to access clusters ; each node of the tree is inclosed in an AS, where full routing applies.
-#
-# Number of cluster per leaf is given by cabinetnodes attr.
-#
-#
-# Choosed to modify a cluster tag to allow to give additional informations : 
-# - nbsons : degree of inner  
-# - height : tree heigth
-# - cabinetnodes : cluster per leaf
-#
-# Each node is numbered by a DFS in the tree. Each cluster is numbered by the DFS number of the leaf it is attached to and the number of cluster for each leaf. 
-#
-#
-# Example syntax for hierarchical cluster creation : 
-# <cluster id="AS_cb1" prefix="cb1-" suffix=".dc1.acloud.com" power="5.2297E9" bw="1.25E8" lat="1.0E-4 bb_bw="1.25E9" bb_lat="1.0E-4" radical="0-99" cabinetnodes="4" height="3" nbsons="2" links_lat="1.0E-4" links_bw="1.25E9"/>
-# Other infos : 
-# - special tag has to be on one line because I don't want to bother with parsing issues
-# - Same bb_lat used for any routers inside (not that complicated to modify too)
-# - lame perl ? I'm a script kiddie in perl, it may well be my first perl stuff. 
-# - Don't try to check or validate the modified file with the DTD, of course, as this is not a part of it.
-
-# Counter for giving unique IDs to ASes.
-$ASnumber;
-$ASnumber = 0;
-
-$infile;
-$outfile; 
-
-$infile = $ARGV[0];
-$outfile = $ARGV[1];
-open IN, "$infile" || die "Cannot parse " . $infile . " ...\n";
-open OUT,">$outfile" || die "Cannot use the output file " . $outfile . " ...\n";
-my $line;
-while ($line = <IN>) {
-# looking for good lines. 
-if ($line =~ / cabinetnodes=/) 
-{ #Retrieving informations
-       ($line=~ /cabinetnodes=\"([^\"]*)/);
-       $cabinetnodes= $1;
-       ($line=~ /height=\"([^\"]*)/);
-       $height= $1;
-       ($line=~ /nbsons=\"([^\"]*)/);
-       $nbsons= $1;
-        ($line=~ /id=\"([^\"]*)/);
-       $id= $1;
-       ($line=~ /prefix=\"([^\"]*)/);
-       $prefix= $1; 
-       ($line=~ /suffix=\"([^\"]*)/);
-       $suffix= $1;
-       ($line=~ /bw=\"([^\"]*)/);
-       $bw= $1;
-       ($line=~ /power=\"([^\"]*)/);
-       $power= $1;
-       ($line=~ /lat=\"([^\"]*)/);
-       $lat= $1;
-       ($line=~ /bb_bw=\"([^\"]*)/);
-       $bb_bw= $1;
-       ($line=~ /bb_lat=\"([^\"]*)/);
-       $bb_lat= $1; 
-       ($line=~ /links_bw=\"([^\"]*)/);
-       $links_bw= $1;
-       ($line=~ /links_lat=\"([^\"]*)/);
-       $links_lat= $1;
-       ($line=~ /radical=\"([^\"]*)/);
-       $radical= $1;
-
-       print "Variables read : \n";
-       print "number of clusters in each cabinet: " . $cabinetnodes . "\n";
-       print "Tree heigth: " . $height . "\n";
-       print "Degree of each node: " . $nbsons . "\n";
-       print "General id: ". $id . "\n";
-       print "General prefix: " . $prefix . "\n";
-       print "General suffix: ". $suffix . "\n";
-       print "Bandwidth for cluster inner links: " . $bw . "\n";
-       print "Power for cluster nodes: " . $power . "\n";
-       print "Latency for clusters inner links :" . $lat . "\n";
-       print "Backbone bandwwidth (used in all backbones, including the tree ones):" . $bb_bw . "\n";
-       print "Backbone latency (used in all backbones, including the tree ones):" . $bb_lat . "\n";
-       print "Tree links bandwidth: " . $links_bw . "\n";
-       print "Tree links latency: " . $links_lat . "\n";
-       print "Radical: " . $radical . "\n";
-
-       
-       
-       &DF_creation(0);
-       }
-else {
-print OUT $line;
-}
-} #End while
-close IN;
-close OUT;
-print $infile . " -> " . $outfile . " ... Done.\n";
-
-# Recursive stuff for depth first Se... Creation
-sub DF_creation {
-       my($currDepth) = @_;
-       
-       # Curr AS creation
-       print OUT "<AS id=\"". $prefix . "AS_" . $ASnumber . $suffix . "\"  routing=\"Full\">\n";       
-       
-       # Curr router AS creation stuff
-       print OUT "<AS id=\"". $prefix . "exitAS_" . $ASnumber . $suffix . "\"  routing=\"Full\">\n";                    
-       print OUT "     <router id=\"" . $prefix . "router_" . $ASnumber . $suffix . "\"/>\n";
-       print OUT "</AS>\n";
-       # Saving my current number to return it to my father
-       my $toReturn = $ASnumber;
-       $ASnumber++;
-       if ($currDepth<$height)
-               {                               
-               # Creating current AS inner stuff
-               # I should have a table of sons numbers.
-               my @tsons = ();
-               for (my $i =1; $i<=$nbsons ; $i++)
-               {
-               #saving this son in my tab ...  recursive call to create ASes and cluster underneath
-               push(@tsons, &DF_creation($currDepth + 1)); 
-               #               
-               # Creating link to this son
-               print OUT "<link id=\"". $prefix . $tsons[$i-1] . $suffix . "\" bandwidth=\"" . $links_bw . "\" latency=\"" . $links_lat . "\"/>\n";    
-               }
-               # curr backbone creation 
-               print OUT "<link id=\"". $prefix . "bb_" . $toReturn . $suffix . "\" bandwidth=\"" . $bb_bw . "\" latency=\"" . $bb_lat . "\"/>\n";
-               # Full routing AS to AS declaration
-               for (my $i =1; $i<=$nbsons ; $i++)
-               {
-                                       for (my $j =$i+1; $j<=$nbsons ; $j++)
-                                       {
-                                               print OUT  "<ASroute src=\"" . $prefix . "AS_" . $tsons[$i-1] . $suffix . "\"\n";
-                                               print OUT "     dst=\"" . $prefix . "AS_" . $tsons[$j-1] . $suffix . "\"\n";
-                                               print OUT "     gw_src=\"" . $prefix . "router_" . $tsons[$i-1] . $suffix . "\"\n";
-                                               print OUT "     gw_dst=\"" . $prefix . "router_" . $tsons[$j-1] . $suffix . "\"\n";
-                                               print OUT "     symmetrical=\"YES\">\n";
-                                               
-                                               print OUT "             <link_ctn id=\"" . $prefix . $tsons[$i-1] . $suffix . "\"/>\n";
-                                               print OUT "             <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                                               print OUT "             <link_ctn id=\"" . $prefix . $tsons[$j-1] . $suffix . "\"/>\n";
-                                               print OUT "</ASroute>\n";
-                                       }
-               }
-               # Now routes to the exit AS
-               for (my $i =1; $i<=$nbsons ; $i++)
-               {
-                       print OUT  "<ASroute src=\"" . $prefix . "AS_" . $tsons[$i-1] . $suffix . "\"\n";
-                       print OUT "     dst=\"" . $prefix . "exitAS_" . $toReturn . $suffix . "\"\n";
-                       print OUT "     gw_src=\"" . $prefix . "router_" . $tsons[$i-1] . $suffix . "\"\n";
-                       print OUT "     gw_dst=\"" . $prefix . "router_" . $toReturn . $suffix . "\"\n";
-                       print OUT "     symmetrical=\"YES\">\n";                                                
-                       print OUT "             <link_ctn id=\"" . $prefix . $tsons[$i-1] . $suffix . "\"/>\n";
-                       print OUT "             <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                       print OUT "</ASroute>\n";                       
-               }
-               print OUT "</AS>\n";
-               # DO I have extra stuff to add ? I don't think so.              
-               return $toReturn;
-               }
-       else { # On leaves, 
-                       
-               #I must create clusters now
-               for(my $i = 1; $i <= $cabinetnodes; $i++) {
-                       print OUT "<cluster id=\"". $prefix . "cluster_" . $toReturn . $i . $suffix . "\" prefix=\"" . $prefix . "c_" . $toReturn. $i . "-\" suffix=\"" . $suffix . "\" radical=\""
-                               . $radical . "\" power=\"" . $power . "\" bw=\"" . $bw . "\" lat=\"" . $lat . "\" bb_bw=\"" . $bb_bw . "\" bb_lat=\"" . $bb_lat . "\"/>\n";     
-                       }       
-               # Creating links to clusters
-               for(my $i = 1; $i <= $cabinetnodes; $i++) {
-                       print OUT "<link id=\"". $prefix . $toReturn . "_" . $i . $suffix . "\" bandwidth=\"" . $links_bw . "\" latency=\"" . $links_lat . "\"/>\n";
-               }
-
-               # 
-               # curr backbone creation 
-               print OUT "<link id=\"". $prefix . "bb_" . $toReturn . $suffix . "\" bandwidth=\"" . $bb_bw . "\" latency=\"" . $bb_lat . "\"/>\n";
-       
-               # I must create routes between clusters now
-               for (my $i =1; $i<=$cabinetnodes ; $i++)
-                       {
-                                       for (my $j =$i+1; $j<=$cabinetnodes ; $j++)
-                                       {
-                                               print OUT  "<ASroute src=\"" . $prefix . "cluster_" . $toReturn . $i . $suffix .  "\"\n";
-                                               print OUT "     dst=\"" .  $prefix . "cluster_" . $toReturn . $j . $suffix .  "\"\n";
-
-                                               print OUT "     gw_src=\"" . $prefix . "c_" . $toReturn. $i . "-" . $prefix . "cluster_" . $toReturn . $i . $suffix . "_router" . $suffix  ."\"\n";
-                                               print OUT "     gw_dst=\"" . $prefix . "c_" . $toReturn. $j . "-" . $prefix . "cluster_" . $toReturn . $j . $suffix  . "_router" . $suffix . "\"\n";
-                                               print OUT "     symmetrical=\"YES\">\n";
-                                               
-                                               print OUT "             <link_ctn id=\"" . $prefix . $toReturn. "_" . $i . $suffix . "\"/>\n";
-                                               print OUT "             <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                                               print OUT "             <link_ctn id=\"" . $prefix . $toReturn . "_" . $j . $suffix . "\"/>\n";
-                                               print OUT "</ASroute>\n";
-                                       }
-                       }
-               # Now routes to the exit AS
-               for (my $i =1; $i<=$cabinetnodes ; $i++)
-               {
-                       print OUT  "<ASroute src=\""  . $prefix . "cluster_" . $toReturn . $i . $suffix  . "\"\n";
-                       print OUT "     dst=\"" . $prefix . "exitAS_" . $toReturn . $suffix . "\"\n";
-                       # SAME HERE !!
-                       print OUT "     gw_src=\"" . $prefix . "c_" . $toReturn. $i . "-" . $prefix . "cluster_" . $toReturn . $i . $suffix . "_router" . $suffix  ."\"\n";
-                       print OUT "     gw_dst=\"" . $prefix . "router_" . $toReturn . $suffix . "\"\n";
-                       print OUT "     symmetrical=\"YES\">\n";                                                
-                       print OUT "             <link_ctn id=\"" . $prefix . $toReturn . "_" . $i . $suffix . "\"/>\n";
-                       print OUT "             <link_ctn id=\"" . $prefix . "bb_" . $toReturn . $suffix . "\"/>\n"; 
-                       print OUT "</ASroute>\n";                       
-               }
-               print OUT "</AS>\n";
-       # Should be done with it...
-       return $toReturn;
-       }
-
-}
diff --git a/examples/platforms/generation_scripts/generate_g5k_platform.pl b/examples/platforms/generation_scripts/generate_g5k_platform.pl
deleted file mode 100755 (executable)
index 048143f..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/env perl
-
-# Copyright (c) 2011, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use strict;
-use warnings;
-use Switch;
-my $toversion=3;
-
-if($#ARGV!=1) {
-    die "Usage: ./generate_g5k_platform.pl g5k_username g5k_password\n";
-}
-
-print "<?xml version='1.0'?>\n";
-print "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n";
-print "<platform version=\"$toversion\">\n";
-print "\t<AS id=\"AS_grid5000\" routing=\"Floyd\" >\n";
-
-`rm -rf temp_g5k`;
-`mkdir -p temp_g5k`;
-chdir("./temp_g5k");
-`wget https://api.grid5000.fr/2.0/grid5000/sites --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-
-open SITES_LIGNE, 'sites' or die "Unable to open sites $!\n";
-my $line = "";
-my $site = "";
-my $cluster = "";
-my $nodes = "";
-my @AS_route = ();
-
-print "\t\t<AS id=\"AS_interne\" routing=\"Floyd\">\n";
-printf "\t\t\t<router id=\"lille\"/>\n";
-printf "\t\t\t<router id=\"paris\"/>\n";
-printf "\t\t\t<router id=\"nancy\"/>\n";
-printf "\t\t\t<router id=\"rennes\"/>\n";
-printf "\t\t\t<router id=\"lyon\"/>\n";
-printf "\t\t\t<router id=\"bordeaux\"/>\n";
-printf "\t\t\t<router id=\"grenoble\"/>\n";
-printf "\t\t\t<router id=\"marseille\"/>\n";
-printf "\t\t\t<router id=\"toulouse\"/>\n";
-printf "\t\t\t<router id=\"sophia\"/>\n";
-#printf "\t\t\t<router id=\"luxembourg\">\n";
-print "\n";
-printf "\t\t\t<link id=\"Lille_Paris\"        bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Nancy\"        bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Rennes\"       bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Lyon\"         bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Bordeaux_Lyon\"      bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Lyon_Grenoble\"      bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Lyon_Marseille\"     bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Marseille_Sophia\"   bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Marseille_Toulouse\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-#printf "\t\t<link id=\"Luxemburg_Nancy\"    bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-print "\n";
-
-print "\t\t<route src=\"lille\"     dst=\"paris\"     ><link_ctn id=\"Lille_Paris\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"nancy\"     ><link_ctn id=\"Paris_Nancy\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"rennes\"    ><link_ctn id=\"Paris_Rennes\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"lyon\"      ><link_ctn id=\"Paris_Lyon\"/></route>\n";
-print "\t\t<route src=\"bordeaux\"  dst=\"lyon\"      ><link_ctn id=\"Bordeaux_Lyon\"/></route>\n";
-print "\t\t<route src=\"lyon\"      dst=\"grenoble\"  ><link_ctn id=\"Lyon_Grenoble\"/></route>\n";
-print "\t\t<route src=\"lyon\"      dst=\"marseille\" ><link_ctn id=\"Lyon_Marseille\"/></route>\n";
-print "\t\t<route src=\"marseille\" dst=\"sophia\"    ><link_ctn id=\"Marseille_Sophia\"/></route>\n";
-print "\t\t<route src=\"marseille\" dst=\"toulouse\"  ><link_ctn id=\"Marseille_Toulouse\"/></route>\n";
-#print "\t\t<route src=\"Luxemburg\" dst=\"Nancy\"     ><link_ctn id=\"Luxemburg_Nancy\"/></route>\n";
-print "\t\t</AS>\n";    
-
-while(defined($line=<SITES_LIGNE>))
-{
-       if($line =~ /"uid": "(.*)",/){
-               $site = $1;
-               print "\t\t<AS id=\"AS_$site\" routing=\"RuleBased\" >\n";
-               `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-               open CLUSTERS_LIGNE, 'clusters' or die "Unable to open clusters $!\n";
-               while(defined($line=<CLUSTERS_LIGNE>))
-               {
-                       if($line =~ /"uid": "(.*)",/){
-                               $cluster = $1;
-                               print "\t\t\t<cluster id=\"AS_$cluster\" prefix=\"$cluster-\" suffix=\".$site.grid5000.fr\"\n";
-                               `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters/$cluster/nodes --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-                               open NODES_LIGNE, 'nodes' or die "Unable to open nodes $!\n";
-                               while(defined($line=<NODES_LIGNE>))
-                               {
-                                       if($line =~ /"total": (.*),/){
-                                               print "\t\t\t\tradical=\"1-$1\" power=\"";
-                                               &get_gflops($cluster);
-                                               print "\" bw=\"1.25E8\" lat=\"1.0E-4\""."\n";
-                                               print "\t\t\t\tbb_bw=\"1.25E9\" bb_lat=\"1.0E-4\"></cluster>\n";
-                                       }
-                               }
-                               print "\t\t\t<link   id=\"link_$cluster\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n\n";
-                               close NODES_LIGNE;
-                               `rm nodes`;
-                       }
-               }
-               close CLUSTERS_LIGNE;
-               `rm clusters`;
-               
-               print "\t\t\t<AS id=\"gw_AS_$site\" routing=\"Full\">\n";
-               print "\t\t\t\t<router id=\"gw_$site\"/>\n";
-               print "\t\t\t</AS>\n";
-               print "\t\t\t<link   id=\"link_gw_$site\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-               print "\n";
-               
-               print "\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"\$1src-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tgw_dst=\"\$1dst-AS_\$1dst_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tsymmetrical=\"YES\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1src\"/>\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1dst\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-
-               print "\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^gw_AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"\$1src-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tgw_dst=\"gw_\$1dst\"\n";
-               print "\t\t\t\tsymmetrical=\"NO\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1src\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-               
-               print "\t\t\t<ASroute src=\"^gw_AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"gw_\$1src\"\n";
-               print "\t\t\t\tgw_dst=\"\$1dst-AS_\$1dst_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tsymmetrical=\"NO\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1dst\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-               
-               print "\t\t</AS>\n";
-               
-               push @AS_route, $site;
-       }
-}
-
-while(@AS_route)
-{
-       $site = pop @AS_route;
-       print "\t\t<ASroute src=\"AS_$site\" dst=\"AS_interne\" gw_src=\"gw_$site\"";
-       if( $site =~ /^orsay$/ )
-       {
-               print " gw_dst=\"paris\"";
-       }
-       else
-       {
-               print " gw_dst=\"$site\"";
-       }
-       print " symmetrical=\"YES\">\n";
-       print "\t\t\t<link_ctn id=\"link_gw_$site\"/>\n";
-       print "\t\t</ASroute>\n";
-       
-#      print "\t\t<ASroute src=\"AS_interne\" dst=\"AS_$site\" gw_dst=\"gw_$site\"";
-#      if( $site =~ /^orsay$/ )
-#      {
-#              print " gw_src=\"paris\"";
-#      }
-#      else
-#      {
-#              print " gw_src=\"$site\"";
-#      }
-#      print " symmetrical=\"NO\">\n";
-#      print "\t\t\t<link_ctn id=\"link_gw_$site\"/>\n";
-#      print "\t\t</ASroute>\n";
-}
-
-print "\t</AS>\n";
-print "</platform>\n";
-`rm sites`;
-close SITES_LIGNE;
-
-
-sub get_gflops {
-       switch ($_[0]) {
-               #Bordeaux
-               case "bordeplage" { print "5.2297E9" }
-               case "bordereau"  { print "8.8925E9" }
-               case "borderline" { print "13.357E9" }
-               #Lille
-               case "chicon"     { print "8.9618E9" }
-               case "chimint"    { print "23.531E9" }
-               case "chinqchint" { print "22.270E9" }
-               case "chirloute"  { print "24.473E9" }
-               #Grenoble
-               case "adonis"     { print "23.681E9" }
-               case "edel"       { print "23.492E9" }
-               case "genepi"     { print "21.175E9" }
-               #Lyon
-               case "capricorne" { print "4.7233E9" }
-               case "sagittaire" { print "5.6693E9" }
-               #Nancy
-               case "graphene"   { print "16.673E9" }
-               case "griffon"    { print "20.678E9" }
-               #Orsay
-               case "gdx"        { print "4.7153E9" }
-               case "netgdx"     { print "4.7144E9" }
-               #Rennes
-               case "paradent"   { print "21.496E9" }
-               case "paramount"  { print "12.910E9" }
-               case "parapide"   { print "30.130E9" }
-               case "parapluie"  { print "27.391E9" }
-               #Sophia
-               case "helios"     { print "7.7318E9" }
-               case "sol"        { print "8.9388E9" }
-               case "suno"       { print "23.530E9" }
-               #Toulouse
-               case "pastel"     { print "9.5674E9" }
-               case "violette"   { print "5.1143E9" }
-               #Reims
-               case "stremi"     { print "TODO" }
-               #Luxembourg
-               case "granduc"    { print "TODO" }
-
-               default:          { print "TODO" }
-       }
-}
diff --git a/examples/platforms/generation_scripts/generate_g5k_platform_cabinets.pl b/examples/platforms/generation_scripts/generate_g5k_platform_cabinets.pl
deleted file mode 100755 (executable)
index 9f3818e..0000000
+++ /dev/null
@@ -1,351 +0,0 @@
-#!/usr/bin/env perl
-
-# Copyright (c) 2011, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use strict;
-use warnings;
-use Switch;
-
-my $site="";
-my $cluster="";
-my $toversion=3;
-my $line;
-my $uid="";
-my $i=0;
-my @AS_route = ();
-
-if($#ARGV!=1) {
-    die "Usage: ./generate_g5k_platform.pl g5k_username g5k_password\n";
-}
-
-print "<?xml version='1.0'?>\n";
-print "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n";
-print "<platform version=\"$toversion\">\n";
-print "\t<AS id=\"AS_grid5000\" routing=\"Floyd\" >\n";
-
-print "\t\t<AS id=\"AS_interne\" routing=\"Floyd\">\n";
-printf "\t\t\t<router id=\"lille\"/>\n";
-printf "\t\t\t<router id=\"paris\"/>\n";
-printf "\t\t\t<router id=\"nancy\"/>\n";
-printf "\t\t\t<router id=\"rennes\"/>\n";
-printf "\t\t\t<router id=\"lyon\"/>\n";
-printf "\t\t\t<router id=\"bordeaux\"/>\n";
-printf "\t\t\t<router id=\"grenoble\"/>\n";
-printf "\t\t\t<router id=\"marseille\"/>\n";
-printf "\t\t\t<router id=\"toulouse\"/>\n";
-printf "\t\t\t<router id=\"sophia\"/>\n";
-#printf "\t\t\t<router id=\"luxembourg\">\n";
-print "\n";
-printf "\t\t\t<link id=\"Lille_Paris\"        bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Nancy\"        bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Rennes\"       bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Paris_Lyon\"         bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Bordeaux_Lyon\"      bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Lyon_Grenoble\"      bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Lyon_Marseille\"     bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Marseille_Sophia\"   bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-printf "\t\t\t<link id=\"Marseille_Toulouse\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-#printf "\t\t<link id=\"Luxemburg_Nancy\"    bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-print "\n";
-
-print "\t\t<route src=\"lille\"     dst=\"paris\"     ><link_ctn id=\"Lille_Paris\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"nancy\"     ><link_ctn id=\"Paris_Nancy\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"rennes\"    ><link_ctn id=\"Paris_Rennes\"/></route>\n";
-print "\t\t<route src=\"paris\"     dst=\"lyon\"      ><link_ctn id=\"Paris_Lyon\"/></route>\n";
-print "\t\t<route src=\"bordeaux\"  dst=\"lyon\"      ><link_ctn id=\"Bordeaux_Lyon\"/></route>\n";
-print "\t\t<route src=\"lyon\"      dst=\"grenoble\"  ><link_ctn id=\"Lyon_Grenoble\"/></route>\n";
-print "\t\t<route src=\"lyon\"      dst=\"marseille\" ><link_ctn id=\"Lyon_Marseille\"/></route>\n";
-print "\t\t<route src=\"marseille\" dst=\"sophia\"    ><link_ctn id=\"Marseille_Sophia\"/></route>\n";
-print "\t\t<route src=\"marseille\" dst=\"toulouse\"  ><link_ctn id=\"Marseille_Toulouse\"/></route>\n";
-#print "\t\t<route src=\"Luxemburg\" dst=\"Nancy\"     ><link_ctn id=\"Luxemburg_Nancy\"/></route>\n";
-print "\t\t</AS>\n"; 
-  
-`wget https://api.grid5000.fr/2.0/grid5000/sites --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-open SITES_LIGNE, 'sites' or die "Unable to open sites $!\n";
-while(defined($line=<SITES_LIGNE>))
-{
-       if($line =~ /"uid": "(.*)",/){
-               $site = $1;
-               print "\t\t<AS id=\"AS_$site\" routing=\"RuleBased\" >\n";
-       
-               `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-               open CLUSTERS_LIGNE, 'clusters' or die "Unable to open clusters $!\n";
-               while(defined($line=<CLUSTERS_LIGNE>))
-               {
-                       if($line =~ /"uid": "(.*)",/){
-                               $cluster = $1;
-                               &get_switch($site, $cluster);                   
-                       }
-               }
-
-               close CLUSTERS_LIGNE;
-               `rm clusters`;
-               
-               print "\t\t\t<AS id=\"gw_AS_$site\" routing=\"Full\">\n";
-               print "\t\t\t\t<router id=\"gw_$site\"/>\n";
-               print "\t\t\t</AS>\n";
-               print "\t\t\t<link   id=\"link_gw_$site\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n";
-               print "\n";
-               
-               print "\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"\$1src-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tgw_dst=\"\$1dst-AS_\$1dst_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tsymmetrical=\"YES\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1src\"/>\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1dst\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-
-               print "\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^gw_AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"\$1src-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tgw_dst=\"gw_\$1dst\"\n";
-               print "\t\t\t\tsymmetrical=\"NO\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1src\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-               
-               print "\t\t\t<ASroute src=\"^gw_AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\tgw_src=\"gw_\$1src\"\n";
-               print "\t\t\t\tgw_dst=\"\$1dst-AS_\$1dst_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\tsymmetrical=\"NO\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"link_\$1dst\"/>\n";
-               print "\t\t\t</ASroute>\n\n"; 
-
-               print "\t\t</AS>\n";
-               
-               push @AS_route, $site;
-       }
-}
-close SITES_LIGNE;
-`rm sites`;
-
-printf "\n";
-
-while(@AS_route)
-{
-       $site = pop @AS_route;
-       print "\t\t<ASroute src=\"AS_$site\" dst=\"AS_interne\" gw_src=\"gw_$site\"";
-       if( $site =~ /^orsay$/ )
-       {
-               print " gw_dst=\"paris\"";
-       }
-       else
-       {
-               print " gw_dst=\"$site\"";
-       }
-       print " symmetrical=\"YES\">\n";
-       print "\t\t\t<link_ctn id=\"link_gw_$site\"/>\n";
-       print "\t\t</ASroute>\n";
-}
-
-print "\t</AS>\n";
-print "</platform>\n";
-
-sub get_switch {
-       my $total;
-       my $switch="";
-       my @switch_list=();
-
-       my @host=();
-       my @host_switch=();
-       $site="$_[0]";
-       $cluster="$_[1]";
-       `wget https://api.grid5000.fr/2.0/grid5000/sites/$site/clusters/$cluster/nodes --http-user="$ARGV[0]" --http-password="$ARGV[1]" --no-check-certificate --quiet`;
-       open NODES_LIGNE, 'nodes' or die "Unable to open nodes $!\n";
-       while(defined($line=<NODES_LIGNE>))
-       {
-               if($line =~ /"uid": "(.*)",/)
-               {
-                       $uid = $1;
-                       push(@host, $1);        
-               }
-               if($line =~ /"total": (.*),/){
-                       $total = $1;
-               }
-               if($line =~ /"switch": "(.*)",/ && !$switch)
-               {
-                       $switch = "$1"; 
-                       push(@host_switch, $1);
-               }
-               if( $uid && $switch )
-               {
-                       push(@switch_list, $switch);    
-                       $uid="";        
-                       $switch="";     
-               }
-       }
-       close NODES_LIGNE;
-       `rm nodes`;
-
-       my %count;
-       my @uniq_array = grep { ++$count{$_} < 2 } @switch_list;
-       @uniq_array = sort (@uniq_array);
-       if(@switch_list && @uniq_array != 1){
-
-               if(@switch_list != @host){
-                       printf "Take care \@host != of \@switch_list\n";
-               }               
-               
-               print "\t\t\t<AS id=\"AS_$cluster\" routing=\"RuleBased\" >\n";
-
-               my @num=();
-               my $radical;
-               foreach(@uniq_array){
-                       $switch = $_;
-                       $i=0;
-                       @num=();
-                       foreach(@host_switch){
-                               if($_ =~ $switch){
-                                       if($host[$i] =~ /$cluster-(.*)/){
-                                               push(@num, $1);
-                                       }       
-                               }
-                               $i++;
-                       }
-       
-                       my $deb;
-                       my $fin;
-                       @num=sort {$a <=> $b} (@num);
-                       $radical = "";
-       
-                       $i=0;
-                       foreach(@num){  
-                               if($i == 0){
-                               $deb = $num[$i];
-                               $fin = $num[$i];
-                               }
-                               else{
-                                       if($num[$i] == ($num[$i-1]+1) )
-                                       {
-                                               $fin = $num[$i];
-                                               if(@num == ($i+1)){
-                                                       if($deb != $fin)
-                                                       {
-                                                               if(!($radical =~ /^$/))
-                                                               {
-                                                                       $radical = $radical.";";
-                                                               }
-                                                               $radical = $radical.$deb."-".$fin;
-                                                               $deb = $num[$i];
-                                                               $fin = $num[$i];
-                                                       }
-                                                       else
-                                                       {
-                                                               $radical=$radical.";".$num[$i];
-                                                       }                               
-                                               }
-                                       }
-                                       else
-                                       {
-                                               if($deb != $fin)
-                                               {
-                                                       if(!($radical =~ /^$/))
-                                                       {
-                                                               $radical = $radical.",";
-                                                       }
-                                                       $radical = $radical.$deb."-".$fin;
-                                                       $deb = $num[$i];
-                                                       $fin = $num[$i];
-                                               }
-                                               else
-                                               {
-                                                       $radical=$radical.",".$num[$i];
-                                               }
-                       
-                                       }
-                               }
-                               $i++;
-                       }
-                       print "\t\t\t\t<cluster id=\"AS_$switch\" prefix=\"$cluster-\" suffix=\".$site.grid5000.fr\"\n";
-                       print "\t\t\t\t\tradical=\"$radical\" power=\"";
-                       &get_gflops($cluster);
-                       print "\" bw=\"1.25E8\" lat=\"1.0E-4\""."\n";
-                       print "\t\t\t\t\tbb_bw=\"1.25E9\" bb_lat=\"1.0E-4\"></cluster>\n";
-               }
-               
-               print "\n\t\t\t\t<AS id=\"gw_AS_$cluster\" routing=\"Full\">\n";
-               print "\t\t\t\t\t<router id=\"".$cluster."-AS_".$cluster."_router.".$site.".grid5000.fr\"/>\n";
-               print "\t\t\t\t</AS>\n";
-               
-               print "\t\t\t\t<link id=\"switch-$cluster\" bandwidth=\"1250000000\" latency=\"5E-4\"/>\n\n";
-       
-       print "\t\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\t gw_src=\"$cluster-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\t gw_dst=\"$cluster-AS_\$1dst_router.$site.grid5000.fr\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"switch-$cluster\"/>\n";
-       print "\t\t\t\t</ASroute>\n";
-       
-       print "\t\t\t\t<ASroute src=\"^AS_(.*)\$\" dst=\"^gw_AS_(.*)\$\"\n";
-               print "\t\t\t\t gw_src=\"$cluster-AS_\$1src_router.$site.grid5000.fr\"\n";
-               print "\t\t\t\t gw_dst=\"".$cluster."-AS_".$cluster."_router.".$site.".grid5000.fr\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"switch-$cluster\"/>\n";
-       print "\t\t\t\t</ASroute>\n";
-       
-       print "\t\t\t\t<ASroute src=\"^gw_AS_(.*)\$\" dst=\"^AS_(.*)\$\"\n";
-               print "\t\t\t\t gw_src=\"".$cluster."-AS_".$cluster."_router.".$site.".grid5000.fr\"\n";
-               print "\t\t\t\t gw_dst=\"$cluster-AS_\$1dst_router.$site.grid5000.fr\">\n";
-               print "\t\t\t\t\t<link_ctn id=\"switch-$cluster\"/>\n";
-       print "\t\t\t\t</ASroute>\n";
-       
-       
-               print "\t\t\t</AS>\n";
-               
-                       
-       }
-       else{
-               print "\t\t\t<cluster id=\"AS_$cluster\" prefix=\"$cluster-\" suffix=\".$site.grid5000.fr\"\n";
-               print "\t\t\t\tradical=\"1-$total\" power=\"";
-               &get_gflops($cluster);
-               print "\" bw=\"1.25E8\" lat=\"1.0E-4\""."\n";
-               print "\t\t\t\tbb_bw=\"1.25E9\" bb_lat=\"1.0E-4\"></cluster>\n";
-       }
-       print "\t\t\t<link   id=\"link_$cluster\" bandwidth=\"1.25E9\" latency=\"1.0E-4\"/>\n\n";
-}
-
-
-sub get_gflops {
-       switch ($_[0]) {
-               #Bordeaux
-               case "bordeplage" { print "5.2297E9" }
-               case "bordereau"  { print "8.8925E9" }
-               case "borderline" { print "13.357E9" }
-               #Lille
-               case "chicon"     { print "8.9618E9" }
-               case "chimint"    { print "23.531E9" }
-               case "chinqchint" { print "22.270E9" }
-               case "chirloute"  { print "24.473E9" }
-               #Grenoble
-               case "adonis"     { print "23.681E9" }
-               case "edel"       { print "23.492E9" }
-               case "genepi"     { print "21.175E9" }
-               #Lyon
-               case "capricorne" { print "4.7233E9" }
-               case "sagittaire" { print "5.6693E9" }
-               #Nancy
-               case "graphene"   { print "16.673E9" }
-               case "griffon"    { print "20.678E9" }
-               #Orsay
-               case "gdx"        { print "4.7153E9" }
-               case "netgdx"     { print "4.7144E9" }
-               #Rennes
-               case "paradent"   { print "21.496E9" }
-               case "paramount"  { print "12.910E9" }
-               case "parapide"   { print "30.130E9" }
-               case "parapluie"  { print "27.391E9" }
-               #Sophia
-               case "helios"     { print "7.7318E9" }
-               case "sol"        { print "8.9388E9" }
-               case "suno"       { print "23.530E9" }
-               #Toulouse
-               case "pastel"     { print "9.5674E9" }
-               case "violette"   { print "5.1143E9" }
-               #Reims
-               case "stremi"     { print "TODO" }
-               #Luxembourg
-               case "granduc"    { print "TODO" }
-
-               default:          { print "TODO" }
-       }
-}
index b6f5d8f..2e94700 100644 (file)
@@ -1,39 +1,34 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS_griffon"  routing="Full">
-       
-     <cluster id="griffon_cluster_cabinet1" prefix="griffon-" suffix=".nancy.grid5000.fr"
-           radical="1-29,58,59,60" power="286.087kf" bw="125MBps" lat="24us"
-           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/> 
-     <cluster id="griffon_cluster_cabinet2" prefix="griffon-" suffix=".nancy.grid5000.fr"
-           radical="30-57" power="286.087kf" bw="125MBps" lat="24us" 
-           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/>    
-     <cluster id="griffon_cluster_cabinet3" prefix="griffon-" suffix=".nancy.grid5000.fr"
-           radical="61-92" power="286.087kf" bw="125MBps" lat="24us" 
-           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS id="AS_griffon"  routing="Full">
+  <cluster id="griffon_cluster_cabinet1" prefix="griffon-" suffix=".nancy.grid5000.fr"
+           radical="1-29,58,59,60" speed="286.087kf" bw="125MBps" lat="24us"
+           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/>
+  <cluster id="griffon_cluster_cabinet2" prefix="griffon-" suffix=".nancy.grid5000.fr"
+           radical="30-57" speed="286.087kf" bw="125MBps" lat="24us" 
+           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/>
+  <cluster id="griffon_cluster_cabinet3" prefix="griffon-" suffix=".nancy.grid5000.fr"
+           radical="61-92" speed="286.087kf" bw="125MBps" lat="24us" 
+           bb_bw="1.25GBps" bb_lat="0" sharing_policy="FULLDUPLEX" bb_sharing_policy="SHARED"/>
 
-     <link id="backbone" bandwidth="1.25GBps" latency="24us" sharing_policy="SHARED"/>
-       
-     <ASroute src="griffon_cluster_cabinet1" dst="griffon_cluster_cabinet2" 
-        gw_src="griffon-griffon_cluster_cabinet1_router.nancy.grid5000.fr" 
-        gw_dst="griffon-griffon_cluster_cabinet2_router.nancy.grid5000.fr" 
-        symmetrical="YES">
-               <link_ctn id="backbone"/>
-     </ASroute>     
-     <ASroute src="griffon_cluster_cabinet2" dst="griffon_cluster_cabinet3" 
-        gw_src="griffon-griffon_cluster_cabinet2_router.nancy.grid5000.fr" 
-        gw_dst="griffon-griffon_cluster_cabinet3_router.nancy.grid5000.fr" 
-        symmetrical="YES">
-               <link_ctn id="backbone"/>
-     </ASroute>      
-     <ASroute src="griffon_cluster_cabinet1" dst="griffon_cluster_cabinet3" 
-        gw_src="griffon-griffon_cluster_cabinet1_router.nancy.grid5000.fr" 
-        gw_dst="griffon-griffon_cluster_cabinet3_router.nancy.grid5000.fr" 
-        symmetrical="YES">
-               <link_ctn id="backbone"/>
-     </ASroute> 
-               
+  <link id="backbone" bandwidth="1.25GBps" latency="24us" sharing_policy="SHARED"/>
+
+  <ASroute src="griffon_cluster_cabinet1" dst="griffon_cluster_cabinet2" 
+           gw_src="griffon-griffon_cluster_cabinet1_router.nancy.grid5000.fr"
+           gw_dst="griffon-griffon_cluster_cabinet2_router.nancy.grid5000.fr" symmetrical="YES">
+    <link_ctn id="backbone"/>
+  </ASroute>
+  <ASroute src="griffon_cluster_cabinet2" dst="griffon_cluster_cabinet3" 
+           gw_src="griffon-griffon_cluster_cabinet2_router.nancy.grid5000.fr"
+           gw_dst="griffon-griffon_cluster_cabinet3_router.nancy.grid5000.fr" symmetrical="YES">
+    <link_ctn id="backbone"/>
+  </ASroute>
+  <ASroute src="griffon_cluster_cabinet1" dst="griffon_cluster_cabinet3" 
+           gw_src="griffon-griffon_cluster_cabinet1_router.nancy.grid5000.fr"
+           gw_dst="griffon-griffon_cluster_cabinet3_router.nancy.grid5000.fr" symmetrical="YES">
+    <link_ctn id="backbone"/>
+  </ASroute>
 </AS>
 </platform>
 
index fc87589..4e4e36a 100644 (file)
@@ -1,40 +1,29 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-
   <AS  id="my_cluster1"  routing="Cluster">
-    <cabinet id="cabinet1" prefix="host-" suffix=".cluster1" 
-      power="1Gf" bw="125MBps" lat="100us" radical="1-10"/>
-    <cabinet id="cabinet2" prefix="host-" suffix=".cluster1" 
-      power="1Gf" bw="125MBps" lat="100us" radical="11-20"/>
-    <cabinet id="cabinet3" prefix="host-" suffix=".cluster1" 
-      power="1Gf" bw="125MBps" lat="100us" radical="21-30"/>
-    
+    <cabinet id="cabinet1" prefix="host-" suffix=".cluster1" speed="1Gf" bw="125MBps" lat="100us" radical="1-10"/>
+    <cabinet id="cabinet2" prefix="host-" suffix=".cluster1" speed="1Gf" bw="125MBps" lat="100us" radical="11-20"/>
+    <cabinet id="cabinet3" prefix="host-" suffix=".cluster1" speed="1Gf" bw="125MBps" lat="100us" radical="21-30"/>
+
     <router  id="router1"/>
     <backbone id="backbone1" bandwidth="2.25GBps" latency="500us"/>
   </AS>
-  
+
   <AS  id="my_cluster2"  routing="Cluster">
-    <cabinet id="cabinet1" prefix="host-" suffix=".cluster2" 
-      power="1Gf" bw="125MBps" lat="100us" radical="1-10"/>
-    <cabinet id="cabinet2" prefix="host-" suffix=".cluster2" 
-      power="1Gf" bw="125MBps" lat="100us" radical="11-20"/>
-    <cabinet id="cabinet3" prefix="host-" suffix=".cluster2" 
-      power="1Gf" bw="125MBps" lat="100us" radical="21-30"/>
-    
+    <cabinet id="cabinet1" prefix="host-" suffix=".cluster2" speed="1Gf" bw="125MBps" lat="100us" radical="1-10"/>
+    <cabinet id="cabinet2" prefix="host-" suffix=".cluster2" speed="1Gf" bw="125MBps" lat="100us" radical="11-20"/>
+    <cabinet id="cabinet3" prefix="host-" suffix=".cluster2" speed="1Gf" bw="125MBps" lat="100us" radical="21-30"/>
+
     <router  id="router2"/>
     <backbone id="backbone2" bandwidth="2.25GBps" latency="500us"/>
   </AS>
-  
+
   <link id="link1-2" bandwidth="2.25GBps" latency="500us"/>
-  
-  <ASroute src="my_cluster1" dst="my_cluster2"
-    gw_src="router1"
-    gw_dst="router2">
+
+  <ASroute src="my_cluster1" dst="my_cluster2" gw_src="router1" gw_dst="router2">
     <link_ctn id="link1-2" />
   </ASroute>
-  
-</AS>  
+</AS>
 </platform>
index 040ab76..93134dc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
<AS  id="AS0"  routing="Full">
-   <host id="Tremblay" power="98.095Mf" core="6"/>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0" routing="Full">
+    <host id="Tremblay" speed="98.095Mf" core="6"/>
 </AS>
+</platform>
diff --git a/examples/platforms/platform.lua b/examples/platforms/platform.lua
deleted file mode 100644 (file)
index 52490b7..0000000
+++ /dev/null
@@ -1,8298 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="Jacquelin" speed="137.333Mf"/>
-   <host id="Boivin" speed="98.095Mf"/>
-   <host id="Jean_Yves" speed="98.095Mf"/>
-   <host id="TeX" speed="68.667Mf"/>
-   <host id="Geoff" speed="42.917Mf"/>
-   <host id="Disney" speed="114.444Mf"/>
-   <host id="iRMX" speed="68.667Mf"/>
-   <host id="McGee" speed="42.917Mf"/>
-   <host id="Gatien" speed="114.444Mf"/>
-   <host id="Laroche" speed="98.095Mf"/>
-   <host id="Tanguay" speed="68.667Mf"/>
-   <host id="Morin" speed="85.833Mf"/>
-   <host id="Ethernet" speed="98.095Mf"/>
-   <host id="Bellemarre" speed="34.333Mf"/>
-   <host id="Kuenning" speed="85.833Mf"/>
-   <host id="Gaston" speed="98.095Mf"/>
-   <host id="Harry" speed="42.917Mf"/>
-   <host id="Bousquet" speed="42.917Mf"/>
-   <host id="Paul" speed="76.296Mf"/>
-   <host id="St_Jean" speed="76.296Mf"/>
-   <host id="Jill" speed="114.444Mf"/>
-   <host id="Marcel" speed="171.667Mf"/>
-   <host id="Wright" speed="48.492Mf"/>
-   <host id="Jackson" speed="48.492Mf"/>
-   <host id="Fernand" speed="22.151Mf"/>
-   <host id="Soucy" speed="137.333Mf"/>
-   <host id="Ste_Julie" speed="85.833Mf"/>
-   <host id="Victoria" speed="85.833Mf"/>
-   <host id="Lessard" speed="85.833Mf"/>
-   <host id="Florient" speed="114.444Mf"/>
-   <host id="Marcoux" speed="98.095Mf"/>
-   <host id="Gavrel" speed="85.833Mf"/>
-   <host id="Bescherelle" speed="137.333Mf"/>
-   <host id="Pierre" speed="114.444Mf"/>
-   <host id="Jamie" speed="76.296Mf"/>
-   <host id="Rubin" speed="42.917Mf"/>
-   <host id="Olivier" speed="114.444Mf"/>
-   <host id="Boucherville" speed="48.492Mf"/>
-   <host id="Pointe_Claire" speed="48.492Mf"/>
-   <host id="Kansas" speed="137.333Mf"/>
-   <host id="King" speed="114.444Mf"/>
-   <host id="Lapointe" speed="68.667Mf"/>
-   <host id="Julian" speed="114.444Mf"/>
-   <host id="Lafontaine" speed="68.667Mf"/>
-   <host id="Gordon" speed="76.296Mf"/>
-   <host id="Drouin" speed="42.917Mf"/>
-   <host id="Robert" speed="137.333Mf"/>
-   <host id="Jocelyne" speed="34.333Mf"/>
-   <host id="Stephen" speed="68.667Mf"/>
-   <host id="Provost" speed="137.333Mf"/>
-   <host id="Juneau" speed="22.151Mf"/>
-   <host id="Casavant" speed="48.492Mf"/>
-   <host id="St_Antoine" speed="34.333Mf"/>
-   <host id="Louis" speed="98.095Mf"/>
-   <host id="Julien" speed="22.151Mf"/>
-   <host id="St_Paul" speed="114.444Mf"/>
-   <host id="Mathematica" speed="137.333Mf"/>
-   <host id="LaTeX" speed="85.833Mf"/>
-   <host id="Sirois" speed="114.444Mf"/>
-   <host id="Monique" speed="114.444Mf"/>
-   <host id="Audy" speed="34.333Mf"/>
-   <host id="Bourassa" speed="85.833Mf"/>
-   <host id="OHara" speed="42.917Mf"/>
-   <host id="Boston" speed="42.917Mf"/>
-   <host id="Papineau" speed="85.833Mf"/>
-   <host id="Fraser" speed="98.095Mf"/>
-   <host id="Browne" speed="137.333Mf"/>
-   <host id="SunOS" speed="34.333Mf"/>
-   <host id="Varennes" speed="68.667Mf"/>
-   <host id="Jacques" speed="98.095Mf"/>
-   <host id="Thierry" speed="137.333Mf"/>
-   <host id="Lachapelle" speed="42.917Mf"/>
-   <host id="kV" speed="68.667Mf"/>
-   <host id="Yolande" speed="42.917Mf"/>
-   <host id="Pronovost" speed="114.444Mf"/>
-   <host id="SPICE" speed="68.667Mf"/>
-   <host id="Europe" speed="48.492Mf"/>
-   <host id="Roy" speed="34.333Mf"/>
-   <host id="Amadeus" speed="114.444Mf"/>
-   <host id="Intel" speed="137.333Mf"/>
-   <host id="Cambridge" speed="114.444Mf"/>
-   <host id="Tremblay" speed="171.667Mf"/>
-   <host id="UNIX" speed="76.296Mf"/>
-   <host id="Domey" speed="76.296Mf"/>
-   <host id="St_Bruno" speed="42.917Mf"/>
-   <host id="Jean_Claude" speed="85.833Mf"/>
-   <host id="Doyon" speed="68.667Mf"/>
-   <host id="Fafard" speed="137.333Mf"/>
-   <host id="Croteau" speed="42.917Mf"/>
-   <host id="Dodge" speed="114.444Mf"/>
-   <link id="127" bandwidth="3.430125MBps" lat="536.941us"/>
-   <link id="32" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="90" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="118" bandwidth="1.467625MBps" lat="869.727us"/>
-   <link id="71" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="102" bandwidth="4.817MBps" lat="117.352us"/>
-   <link id="18" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="125" bandwidth="5.574625MBps" lat="227.43us"/>
-   <link id="16" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="44" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="55" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="84" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="27" bandwidth="8.015125MBps" lat="35.076518ms"/>
-   <link id="190" bandwidth="1.23025MBps" lat="1.502106ms"/>
-   <link id="161" bandwidth="1.469125MBps" lat="1.114548ms"/>
-   <link id="95" bandwidth="5.7585MBps" lat="4.760145ms"/>
-   <link id="57" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="20" bandwidth="255.228625MBps" lat="7.413073ms"/>
-   <link id="163" bandwidth="2.583375MBps" lat="410.463us"/>
-   <link id="109" bandwidth="1.858MBps" lat="820.952us"/>
-   <link id="151" bandwidth="1.564125MBps" lat="788.956us"/>
-   <link id="89" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="175" bandwidth="1.37675MBps" lat="449.267us"/>
-   <link id="148" bandwidth="578.625kBps" lat="5.473705ms"/>
-   <link id="31" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="35" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="11" bandwidth="118.6825MBps" lat="136.931us"/>
-   <link id="78" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="93" bandwidth="2.608MBps" lat="637.001us"/>
-   <link id="106" bandwidth="251.625kBps" lat="4.455826ms"/>
-   <link id="157" bandwidth="274.375kBps" lat="4.669142ms"/>
-   <link id="65" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="29" bandwidth="8.158MBps" lat="270.544us"/>
-   <link id="138" bandwidth="253.125kBps" lat="5.652577ms"/>
-   <link id="114" bandwidth="253.125kBps" lat="5.652577ms"/>
-   <link id="58" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="153" bandwidth="4.817MBps" lat="117.352us"/>
-   <link id="15" bandwidth="132.977875MBps" lat="131.098us"/>
-   <link id="137" bandwidth="4.416625MBps" lat="19.773us"/>
-   <link id="81" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="60" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="101" bandwidth="290.125kBps" lat="4.522355ms"/>
-   <link id="73" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="86" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="76" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="62" bandwidth="8.015125MBps" lat="35.076518ms"/>
-   <link id="67" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="165" bandwidth="253.125kBps" lat="5.652577ms"/>
-   <link id="139" bandwidth="1.888875MBps" lat="1.081287ms"/>
-   <link id="129" bandwidth="1.467625MBps" lat="869.727us"/>
-   <link id="2" bandwidth="132.977875MBps" lat="131.098us"/>
-   <link id="17" bandwidth="118.6825MBps" lat="136.931us"/>
-   <link id="186" bandwidth="4.39725MBps" lat="677.601us"/>
-   <link id="110" bandwidth="5.574625MBps" lat="227.43us"/>
-   <link id="82" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="147" bandwidth="2.368MBps" lat="9.547561ms"/>
-   <link id="168" bandwidth="1.858MBps" lat="820.952us"/>
-   <link id="184" bandwidth="303.375kBps" lat="4.062241ms"/>
-   <link id="135" bandwidth="1.37675MBps" lat="449.267us"/>
-   <link id="14" bandwidth="118.6825MBps" lat="136.931us"/>
-   <link id="112" bandwidth="4.133375MBps" lat="9.693542ms"/>
-   <link id="69" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="191" bandwidth="1.467625MBps" lat="869.727us"/>
-   <link id="172" bandwidth="605kBps" lat="87.981858ms"/>
-   <link id="145" bandwidth="2.583375MBps" lat="410.463us"/>
-   <link id="49" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="178" bandwidth="1.469125MBps" lat="1.114548ms"/>
-   <link id="24" bandwidth="10.099625MBps" lat="479.78us"/>
-   <link id="187" bandwidth="1.467625MBps" lat="869.727us"/>
-   <link id="140" bandwidth="1.4655MBps" lat="863.872us"/>
-   <link id="124" bandwidth="556kBps" lat="3.101854ms"/>
-   <link id="104" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="131" bandwidth="317.375kBps" lat="4.583831ms"/>
-   <link id="181" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="121" bandwidth="4.817MBps" lat="117.352us"/>
-   <link id="79" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="154" bandwidth="272.375kBps" lat="5.922616ms"/>
-   <link id="0" bandwidth="255.228625MBps" lat="7.413073ms"/>
-   <link id="23" bandwidth="10.099625MBps" lat="479.78us"/>
-   <link id="96" bandwidth="4.97825MBps" lat="7.164412ms"/>
-   <link id="126" bandwidth="3.9955MBps" lat="678.645us"/>
-   <link id="159" bandwidth="4.817MBps" lat="117.352us"/>
-   <link id="160" bandwidth="274.375kBps" lat="4.669142ms"/>
-   <link id="176" bandwidth="3.1755MBps" lat="472.524us"/>
-   <link id="47" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="8" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="98" bandwidth="556kBps" lat="3.101854ms"/>
-   <link id="37" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="117" bandwidth="1.51525MBps" lat="844.683us"/>
-   <link id="43" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="5" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="170" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="33" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="21" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="63" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="7" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="26" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="80" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="119" bandwidth="317.375kBps" lat="4.583831ms"/>
-   <link id="180" bandwidth="251.625kBps" lat="4.455826ms"/>
-   <link id="99" bandwidth="253.125kBps" lat="5.652577ms"/>
-   <link id="179" bandwidth="5.816375MBps" lat="164.758us"/>
-   <link id="162" bandwidth="556kBps" lat="3.101854ms"/>
-   <link id="72" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="74" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="182" bandwidth="4.416625MBps" lat="19.773us"/>
-   <link id="61" bandwidth="8.015125MBps" lat="35.076518ms"/>
-   <link id="108" bandwidth="990.5kBps" lat="1.742977ms"/>
-   <link id="115" bandwidth="926.625kBps" lat="601.375us"/>
-   <link id="92" bandwidth="1.564125MBps" lat="788.956us"/>
-   <link id="103" bandwidth="472.125kBps" lat="5.161451ms"/>
-   <link id="10" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="113" bandwidth="1.858MBps" lat="820.952us"/>
-   <link id="152" bandwidth="7.20975MBps" lat="1.461517ms"/>
-   <link id="189" bandwidth="251.625kBps" lat="4.455826ms"/>
-   <link id="142" bandwidth="1.62775MBps" lat="278.175us"/>
-   <link id="91" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="167" bandwidth="768.75kBps" lat="8.76244ms"/>
-   <link id="48" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="107" bandwidth="1.281875MBps" lat="6.104672ms"/>
-   <link id="87" bandwidth="8.158MBps" lat="270.544us"/>
-   <link id="174" bandwidth="290.875kBps" lat="4.47727ms"/>
-   <link id="77" bandwidth="27.94625MBps" lat="278.066us"/>
-   <link id="133" bandwidth="1.469125MBps" lat="1.114548ms"/>
-   <link id="149" bandwidth="1.04925MBps" lat="9.647856ms"/>
-   <link id="123" bandwidth="3.430125MBps" lat="536.941us"/>
-   <link id="50" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="39" bandwidth="8.015125MBps" lat="35.076518ms"/>
-   <link id="64" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="97" bandwidth="7.534MBps" lat="125.428us"/>
-   <link id="12" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="41" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="52" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="173" bandwidth="7.534MBps" lat="125.428us"/>
-   <link id="56" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="45" bandwidth="8.158MBps" lat="270.544us"/>
-   <link id="66" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="19" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="54" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="70" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="188" bandwidth="3.1755MBps" lat="472.524us"/>
-   <link id="68" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="166" bandwidth="3.9955MBps" lat="678.645us"/>
-   <link id="1" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="136" bandwidth="926.625kBps" lat="601.375us"/>
-   <link id="88" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="116" bandwidth="2.368MBps" lat="9.547561ms"/>
-   <link id="144" bandwidth="259.125kBps" lat="4.460898ms"/>
-   <link id="141" bandwidth="472.125kBps" lat="5.161451ms"/>
-   <link id="30" bandwidth="10.099625MBps" lat="479.78us"/>
-   <link id="100" bandwidth="721.625kBps" lat="6.406us"/>
-   <link id="25" bandwidth="8.015125MBps" lat="35.076518ms"/>
-   <link id="128" bandwidth="1.469125MBps" lat="1.114548ms"/>
-   <link id="28" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="120" bandwidth="4.461125MBps" lat="106.949us"/>
-   <link id="156" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="134" bandwidth="259.125kBps" lat="4.460898ms"/>
-   <link id="40" bandwidth="21.41475MBps" lat="29.5890617ms"/>
-   <link id="75" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="83" bandwidth="10.314625MBps" lat="6.932556ms"/>
-   <link id="59" bandwidth="11.845375MBps" lat="370.788us"/>
-   <link id="177" bandwidth="990.5kBps" lat="1.742977ms"/>
-   <link id="150" bandwidth="4.27025MBps" lat="672.289us"/>
-   <link id="155" bandwidth="1.37675MBps" lat="449.267us"/>
-   <link id="130" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="53" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="122" bandwidth="1.126875MBps" lat="287.84us"/>
-   <link id="143" bandwidth="7.20975MBps" lat="1.461517ms"/>
-   <link id="158" bandwidth="3.028375MBps" lat="677.908us"/>
-   <link id="42" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="22" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="46" bandwidth="8.158MBps" lat="270.544us"/>
-   <link id="13" bandwidth="255.228625MBps" lat="7.413073ms"/>
-   <link id="105" bandwidth="117.125kBps" lat="53.930106ms"/>
-   <link id="6" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="85" bandwidth="15.376875MBps" lat="35.083019ms"/>
-   <link id="185" bandwidth="2.3485MBps" lat="259.761us"/>
-   <link id="36" bandwidth="11.618875MBps" lat="189.98us"/>
-   <link id="3" bandwidth="255.228625MBps" lat="7.413073ms"/>
-   <link id="183" bandwidth="3.9955MBps" lat="678.645us"/>
-   <link id="94" bandwidth="4.485125MBps" lat="126.045us"/>
-   <link id="146" bandwidth="3.37125MBps" lat="666.676us"/>
-   <link id="51" bandwidth="8.42725MBps" lat="156.056us"/>
-   <link id="9" bandwidth="34.285625MBps" lat="514.433us"/>
-   <link id="111" bandwidth="3.275625MBps" lat="658.142us"/>
-   <link id="38" bandwidth="41.279125MBps" lat="59.904us"/>
-   <link id="4" bandwidth="132.977875MBps" lat="131.098us"/>
-   <link id="34" bandwidth="11.845375MBps" lat="370.788us"/>
-   <link id="169" bandwidth="1.37675MBps" lat="449.267us"/>
-   <link id="164" bandwidth="768.75kBps" lat="8.76244ms"/>
-   <link id="132" bandwidth="2.179125MBps" lat="320.114us"/>
-   <link id="171" bandwidth="3.29775MBps" lat="595.883us"/>
-   <route src="Jacquelin" dst="Boivin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jacquelin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jacquelin" dst="TeX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jacquelin" dst="Geoff" symmetrical="NO"><link_ctn id="145"/></route>
-   <route src="Jacquelin" dst="Disney" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jacquelin" dst="iRMX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jacquelin" dst="McGee" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jacquelin" dst="Gatien" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jacquelin" dst="Laroche" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jacquelin" dst="Tanguay" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jacquelin" dst="Morin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jacquelin" dst="Ethernet" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jacquelin" dst="Bellemarre" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jacquelin" dst="Kuenning" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jacquelin" dst="Gaston" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jacquelin" dst="Harry" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jacquelin" dst="Bousquet" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jacquelin" dst="Paul" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jacquelin" dst="St_Jean" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jacquelin" dst="Jill" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jacquelin" dst="Marcel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jacquelin" dst="Wright" symmetrical="NO"><link_ctn id="145"/><link_ctn id="147"/></route>
-   <route src="Jacquelin" dst="Jackson" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jacquelin" dst="Fernand" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jacquelin" dst="Soucy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jacquelin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jacquelin" dst="Victoria" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jacquelin" dst="Lessard" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jacquelin" dst="Florient" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jacquelin" dst="Marcoux" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jacquelin" dst="Gavrel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jacquelin" dst="Bescherelle" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jacquelin" dst="Pierre" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jacquelin" dst="Jamie" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jacquelin" dst="Rubin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="144"/></route>
-   <route src="Jacquelin" dst="Olivier" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jacquelin" dst="Boucherville" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jacquelin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jacquelin" dst="Kansas" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jacquelin" dst="King" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jacquelin" dst="Lapointe" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jacquelin" dst="Julian" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jacquelin" dst="Lafontaine" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jacquelin" dst="Gordon" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jacquelin" dst="Drouin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jacquelin" dst="Robert" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jacquelin" dst="Jocelyne" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jacquelin" dst="Stephen" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jacquelin" dst="Provost" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jacquelin" dst="Juneau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jacquelin" dst="Casavant" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jacquelin" dst="St_Antoine" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jacquelin" dst="Louis" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jacquelin" dst="Julien" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jacquelin" dst="St_Paul" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jacquelin" dst="Mathematica" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jacquelin" dst="LaTeX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jacquelin" dst="Sirois" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jacquelin" dst="Monique" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jacquelin" dst="Audy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jacquelin" dst="Bourassa" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jacquelin" dst="OHara" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jacquelin" dst="Boston" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jacquelin" dst="Papineau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jacquelin" dst="Fraser" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jacquelin" dst="Browne" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jacquelin" dst="SunOS" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jacquelin" dst="Varennes" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jacquelin" dst="Jacques" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jacquelin" dst="Thierry" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jacquelin" dst="Lachapelle" symmetrical="NO"><link_ctn id="145"/><link_ctn id="146"/></route>
-   <route src="Jacquelin" dst="kV" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jacquelin" dst="Yolande" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jacquelin" dst="Pronovost" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jacquelin" dst="SPICE" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jacquelin" dst="Europe" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jacquelin" dst="Roy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jacquelin" dst="Amadeus" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jacquelin" dst="Intel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jacquelin" dst="Cambridge" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jacquelin" dst="Tremblay" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jacquelin" dst="UNIX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jacquelin" dst="Domey" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jacquelin" dst="St_Bruno" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jacquelin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jacquelin" dst="Doyon" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jacquelin" dst="Fafard" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jacquelin" dst="Croteau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jacquelin" dst="Dodge" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boivin" dst="Jacquelin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boivin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boivin" dst="TeX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boivin" dst="Geoff" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boivin" dst="Disney" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boivin" dst="iRMX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Boivin" dst="McGee" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boivin" dst="Gatien" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boivin" dst="Laroche" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Boivin" dst="Tanguay" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boivin" dst="Morin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boivin" dst="Ethernet" symmetrical="NO"><link_ctn id="118"/></route>
-   <route src="Boivin" dst="Bellemarre" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boivin" dst="Kuenning" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boivin" dst="Gaston" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boivin" dst="Harry" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boivin" dst="Bousquet" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boivin" dst="Paul" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Boivin" dst="St_Jean" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boivin" dst="Jill" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Boivin" dst="Marcel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boivin" dst="Wright" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boivin" dst="Jackson" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boivin" dst="Fernand" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boivin" dst="Soucy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boivin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boivin" dst="Victoria" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boivin" dst="Lessard" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boivin" dst="Florient" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boivin" dst="Marcoux" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boivin" dst="Gavrel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boivin" dst="Bescherelle" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boivin" dst="Pierre" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boivin" dst="Jamie" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boivin" dst="Rubin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boivin" dst="Olivier" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boivin" dst="Boucherville" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Boivin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boivin" dst="Kansas" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boivin" dst="King" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boivin" dst="Lapointe" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Boivin" dst="Julian" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boivin" dst="Lafontaine" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boivin" dst="Gordon" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Boivin" dst="Drouin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boivin" dst="Robert" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boivin" dst="Jocelyne" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Boivin" dst="Stephen" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boivin" dst="Provost" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boivin" dst="Juneau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boivin" dst="Casavant" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Boivin" dst="St_Antoine" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boivin" dst="Louis" symmetrical="NO"><link_ctn id="117"/></route>
-   <route src="Boivin" dst="Julien" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boivin" dst="St_Paul" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boivin" dst="Mathematica" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boivin" dst="LaTeX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boivin" dst="Sirois" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boivin" dst="Monique" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boivin" dst="Audy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boivin" dst="Bourassa" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boivin" dst="OHara" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boivin" dst="Boston" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Boivin" dst="Papineau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boivin" dst="Fraser" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boivin" dst="Browne" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boivin" dst="SunOS" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boivin" dst="Varennes" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boivin" dst="Jacques" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boivin" dst="Thierry" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boivin" dst="Lachapelle" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boivin" dst="kV" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boivin" dst="Yolande" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boivin" dst="Pronovost" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boivin" dst="SPICE" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boivin" dst="Europe" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boivin" dst="Roy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boivin" dst="Amadeus" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boivin" dst="Intel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boivin" dst="Cambridge" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boivin" dst="Tremblay" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boivin" dst="UNIX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boivin" dst="Domey" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boivin" dst="St_Bruno" symmetrical="NO"><link_ctn id="119"/></route>
-   <route src="Boivin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boivin" dst="Doyon" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boivin" dst="Fafard" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boivin" dst="Croteau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Boivin" dst="Dodge" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jean_Yves" dst="Jacquelin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jean_Yves" dst="Boivin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jean_Yves" dst="TeX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jean_Yves" dst="Geoff" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Jean_Yves" dst="Disney" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jean_Yves" dst="iRMX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jean_Yves" dst="McGee" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jean_Yves" dst="Gatien" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jean_Yves" dst="Laroche" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jean_Yves" dst="Tanguay" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jean_Yves" dst="Morin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jean_Yves" dst="Ethernet" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jean_Yves" dst="Bellemarre" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jean_Yves" dst="Kuenning" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jean_Yves" dst="Gaston" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jean_Yves" dst="Harry" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jean_Yves" dst="Bousquet" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jean_Yves" dst="Paul" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jean_Yves" dst="St_Jean" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jean_Yves" dst="Jill" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jean_Yves" dst="Marcel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jean_Yves" dst="Wright" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jean_Yves" dst="Jackson" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Jean_Yves" dst="Fernand" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jean_Yves" dst="Soucy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jean_Yves" dst="Ste_Julie" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jean_Yves" dst="Victoria" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jean_Yves" dst="Lessard" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jean_Yves" dst="Florient" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jean_Yves" dst="Marcoux" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jean_Yves" dst="Gavrel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jean_Yves" dst="Bescherelle" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jean_Yves" dst="Pierre" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jean_Yves" dst="Jamie" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jean_Yves" dst="Rubin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jean_Yves" dst="Olivier" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jean_Yves" dst="Boucherville" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jean_Yves" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jean_Yves" dst="Kansas" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jean_Yves" dst="King" symmetrical="NO"><link_ctn id="138"/><link_ctn id="137"/></route>
-   <route src="Jean_Yves" dst="Lapointe" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jean_Yves" dst="Julian" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jean_Yves" dst="Lafontaine" symmetrical="NO"><link_ctn id="138"/><link_ctn id="139"/></route>
-   <route src="Jean_Yves" dst="Gordon" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jean_Yves" dst="Drouin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jean_Yves" dst="Robert" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jean_Yves" dst="Jocelyne" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jean_Yves" dst="Stephen" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jean_Yves" dst="Provost" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jean_Yves" dst="Juneau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jean_Yves" dst="Casavant" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jean_Yves" dst="St_Antoine" symmetrical="NO"><link_ctn id="138"/></route>
-   <route src="Jean_Yves" dst="Louis" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jean_Yves" dst="Julien" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jean_Yves" dst="St_Paul" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jean_Yves" dst="Mathematica" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jean_Yves" dst="LaTeX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jean_Yves" dst="Sirois" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jean_Yves" dst="Monique" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jean_Yves" dst="Audy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jean_Yves" dst="Bourassa" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jean_Yves" dst="OHara" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jean_Yves" dst="Boston" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jean_Yves" dst="Papineau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jean_Yves" dst="Fraser" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jean_Yves" dst="Browne" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jean_Yves" dst="SunOS" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jean_Yves" dst="Varennes" symmetrical="NO"><link_ctn id="138"/><link_ctn id="136"/></route>
-   <route src="Jean_Yves" dst="Jacques" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jean_Yves" dst="Thierry" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jean_Yves" dst="Lachapelle" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jean_Yves" dst="kV" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jean_Yves" dst="Yolande" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jean_Yves" dst="Pronovost" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jean_Yves" dst="SPICE" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jean_Yves" dst="Europe" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jean_Yves" dst="Roy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jean_Yves" dst="Amadeus" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jean_Yves" dst="Intel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jean_Yves" dst="Cambridge" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jean_Yves" dst="Tremblay" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jean_Yves" dst="UNIX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jean_Yves" dst="Domey" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jean_Yves" dst="St_Bruno" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jean_Yves" dst="Jean_Claude" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jean_Yves" dst="Doyon" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jean_Yves" dst="Fafard" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jean_Yves" dst="Croteau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jean_Yves" dst="Dodge" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="TeX" dst="Jacquelin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="TeX" dst="Boivin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="TeX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="TeX" dst="Geoff" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="TeX" dst="Disney" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="TeX" dst="iRMX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="TeX" dst="McGee" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="TeX" dst="Gatien" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="TeX" dst="Laroche" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="TeX" dst="Tanguay" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="TeX" dst="Morin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="TeX" dst="Ethernet" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="TeX" dst="Bellemarre" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="TeX" dst="Kuenning" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="TeX" dst="Gaston" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="TeX" dst="Harry" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="TeX" dst="Bousquet" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="TeX" dst="Paul" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="TeX" dst="St_Jean" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="TeX" dst="Jill" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="TeX" dst="Marcel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="TeX" dst="Wright" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="TeX" dst="Jackson" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="TeX" dst="Fernand" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="TeX" dst="Soucy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="TeX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="TeX" dst="Victoria" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="TeX" dst="Lessard" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="TeX" dst="Florient" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="TeX" dst="Marcoux" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="TeX" dst="Gavrel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="TeX" dst="Bescherelle" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="TeX" dst="Pierre" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="TeX" dst="Jamie" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="TeX" dst="Rubin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="TeX" dst="Olivier" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="TeX" dst="Boucherville" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="TeX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="TeX" dst="Kansas" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="TeX" dst="King" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="TeX" dst="Lapointe" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="TeX" dst="Julian" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="TeX" dst="Lafontaine" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="TeX" dst="Gordon" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="TeX" dst="Drouin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="TeX" dst="Robert" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="TeX" dst="Jocelyne" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="TeX" dst="Stephen" symmetrical="NO"><link_ctn id="100"/><link_ctn id="101"/></route>
-   <route src="TeX" dst="Provost" symmetrical="NO"><link_ctn id="100"/><link_ctn id="103"/></route>
-   <route src="TeX" dst="Juneau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="TeX" dst="Casavant" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="TeX" dst="St_Antoine" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="TeX" dst="Louis" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="TeX" dst="Julien" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="TeX" dst="St_Paul" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="TeX" dst="Mathematica" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="TeX" dst="LaTeX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="TeX" dst="Sirois" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="TeX" dst="Monique" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="TeX" dst="Audy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="TeX" dst="Bourassa" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="TeX" dst="OHara" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="TeX" dst="Boston" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="TeX" dst="Papineau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="TeX" dst="Fraser" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="TeX" dst="Browne" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="TeX" dst="SunOS" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="TeX" dst="Varennes" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="TeX" dst="Jacques" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="TeX" dst="Thierry" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="TeX" dst="Lachapelle" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="TeX" dst="kV" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="TeX" dst="Yolande" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="TeX" dst="Pronovost" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="TeX" dst="SPICE" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="TeX" dst="Europe" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="TeX" dst="Roy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="TeX" dst="Amadeus" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="TeX" dst="Intel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="TeX" dst="Cambridge" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="TeX" dst="Tremblay" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="TeX" dst="UNIX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="TeX" dst="Domey" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="TeX" dst="St_Bruno" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="TeX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="TeX" dst="Doyon" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="TeX" dst="Fafard" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="TeX" dst="Croteau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="TeX" dst="Dodge" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Geoff" dst="Jacquelin" symmetrical="NO"><link_ctn id="145"/></route>
-   <route src="Geoff" dst="Boivin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Geoff" dst="Jean_Yves" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Geoff" dst="TeX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Geoff" dst="Disney" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Geoff" dst="iRMX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Geoff" dst="McGee" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Geoff" dst="Gatien" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Geoff" dst="Laroche" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Geoff" dst="Tanguay" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Geoff" dst="Morin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Geoff" dst="Ethernet" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Geoff" dst="Bellemarre" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Geoff" dst="Kuenning" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Geoff" dst="Gaston" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Geoff" dst="Harry" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Geoff" dst="Bousquet" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Geoff" dst="Paul" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Geoff" dst="St_Jean" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Geoff" dst="Jill" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Geoff" dst="Marcel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Geoff" dst="Wright" symmetrical="NO"><link_ctn id="147"/></route>
-   <route src="Geoff" dst="Jackson" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Geoff" dst="Fernand" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Geoff" dst="Soucy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Geoff" dst="Ste_Julie" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Geoff" dst="Victoria" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Geoff" dst="Lessard" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Geoff" dst="Florient" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Geoff" dst="Marcoux" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Geoff" dst="Gavrel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Geoff" dst="Bescherelle" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Geoff" dst="Pierre" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Geoff" dst="Jamie" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Geoff" dst="Rubin" symmetrical="NO"><link_ctn id="144"/></route>
-   <route src="Geoff" dst="Olivier" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Geoff" dst="Boucherville" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Geoff" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Geoff" dst="Kansas" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Geoff" dst="King" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Geoff" dst="Lapointe" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Geoff" dst="Julian" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Geoff" dst="Lafontaine" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Geoff" dst="Gordon" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Geoff" dst="Drouin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Geoff" dst="Robert" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Geoff" dst="Jocelyne" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Geoff" dst="Stephen" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Geoff" dst="Provost" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Geoff" dst="Juneau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Geoff" dst="Casavant" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Geoff" dst="St_Antoine" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Geoff" dst="Louis" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Geoff" dst="Julien" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Geoff" dst="St_Paul" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Geoff" dst="Mathematica" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Geoff" dst="LaTeX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Geoff" dst="Sirois" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Geoff" dst="Monique" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Geoff" dst="Audy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Geoff" dst="Bourassa" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Geoff" dst="OHara" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Geoff" dst="Boston" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Geoff" dst="Papineau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Geoff" dst="Fraser" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Geoff" dst="Browne" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Geoff" dst="SunOS" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Geoff" dst="Varennes" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Geoff" dst="Jacques" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Geoff" dst="Thierry" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Geoff" dst="Lachapelle" symmetrical="NO"><link_ctn id="146"/></route>
-   <route src="Geoff" dst="kV" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Geoff" dst="Yolande" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Geoff" dst="Pronovost" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Geoff" dst="SPICE" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Geoff" dst="Europe" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Geoff" dst="Roy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Geoff" dst="Amadeus" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Geoff" dst="Intel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Geoff" dst="Cambridge" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Geoff" dst="Tremblay" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Geoff" dst="UNIX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Geoff" dst="Domey" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Geoff" dst="St_Bruno" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Geoff" dst="Jean_Claude" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Geoff" dst="Doyon" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Geoff" dst="Fafard" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Geoff" dst="Croteau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Geoff" dst="Dodge" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Disney" dst="Jacquelin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Disney" dst="Boivin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Disney" dst="Jean_Yves" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Disney" dst="TeX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Disney" dst="Geoff" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Disney" dst="iRMX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Disney" dst="McGee" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Disney" dst="Gatien" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Disney" dst="Laroche" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Disney" dst="Tanguay" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Disney" dst="Morin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Disney" dst="Ethernet" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Disney" dst="Bellemarre" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Disney" dst="Kuenning" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Disney" dst="Gaston" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Disney" dst="Harry" symmetrical="NO"><link_ctn id="111"/><link_ctn id="108"/></route>
-   <route src="Disney" dst="Bousquet" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Disney" dst="Paul" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Disney" dst="St_Jean" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Disney" dst="Jill" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Disney" dst="Marcel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Disney" dst="Wright" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Disney" dst="Jackson" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Disney" dst="Fernand" symmetrical="NO"><link_ctn id="111"/><link_ctn id="109"/></route>
-   <route src="Disney" dst="Soucy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Disney" dst="Ste_Julie" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Disney" dst="Victoria" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Disney" dst="Lessard" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Disney" dst="Florient" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Disney" dst="Marcoux" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Disney" dst="Gavrel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Disney" dst="Bescherelle" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Disney" dst="Pierre" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Disney" dst="Jamie" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Disney" dst="Rubin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Disney" dst="Olivier" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Disney" dst="Boucherville" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Disney" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Disney" dst="Kansas" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Disney" dst="King" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Disney" dst="Lapointe" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Disney" dst="Julian" symmetrical="NO"><link_ctn id="111"/></route>
-   <route src="Disney" dst="Lafontaine" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Disney" dst="Gordon" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Disney" dst="Drouin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Disney" dst="Robert" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Disney" dst="Jocelyne" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Disney" dst="Stephen" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Disney" dst="Provost" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Disney" dst="Juneau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Disney" dst="Casavant" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Disney" dst="St_Antoine" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Disney" dst="Louis" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Disney" dst="Julien" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Disney" dst="St_Paul" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Disney" dst="Mathematica" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Disney" dst="LaTeX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Disney" dst="Sirois" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Disney" dst="Monique" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Disney" dst="Audy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Disney" dst="Bourassa" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Disney" dst="OHara" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Disney" dst="Boston" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Disney" dst="Papineau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Disney" dst="Fraser" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Disney" dst="Browne" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Disney" dst="SunOS" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Disney" dst="Varennes" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Disney" dst="Jacques" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Disney" dst="Thierry" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Disney" dst="Lachapelle" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Disney" dst="kV" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Disney" dst="Yolande" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Disney" dst="Pronovost" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Disney" dst="SPICE" symmetrical="NO"><link_ctn id="111"/><link_ctn id="110"/></route>
-   <route src="Disney" dst="Europe" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Disney" dst="Roy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Disney" dst="Amadeus" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Disney" dst="Intel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Disney" dst="Cambridge" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Disney" dst="Tremblay" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Disney" dst="UNIX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Disney" dst="Domey" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Disney" dst="St_Bruno" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Disney" dst="Jean_Claude" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Disney" dst="Doyon" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Disney" dst="Fafard" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Disney" dst="Croteau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Disney" dst="Dodge" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="iRMX" dst="Jacquelin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="iRMX" dst="Boivin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="iRMX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="iRMX" dst="TeX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="iRMX" dst="Geoff" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="iRMX" dst="Disney" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="iRMX" dst="McGee" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="iRMX" dst="Gatien" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="iRMX" dst="Laroche" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="iRMX" dst="Tanguay" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="iRMX" dst="Morin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="iRMX" dst="Ethernet" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="iRMX" dst="Bellemarre" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="iRMX" dst="Kuenning" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="iRMX" dst="Gaston" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="iRMX" dst="Harry" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="iRMX" dst="Bousquet" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="iRMX" dst="Paul" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="iRMX" dst="St_Jean" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="iRMX" dst="Jill" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="iRMX" dst="Marcel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="iRMX" dst="Wright" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="iRMX" dst="Jackson" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="iRMX" dst="Fernand" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="iRMX" dst="Soucy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="iRMX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="iRMX" dst="Victoria" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="iRMX" dst="Lessard" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="iRMX" dst="Florient" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="iRMX" dst="Marcoux" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="iRMX" dst="Gavrel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="iRMX" dst="Bescherelle" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="iRMX" dst="Pierre" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="iRMX" dst="Jamie" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="iRMX" dst="Rubin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="iRMX" dst="Olivier" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="iRMX" dst="Boucherville" symmetrical="NO"><link_ctn id="172"/></route>
-   <route src="iRMX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="iRMX" dst="Kansas" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="iRMX" dst="King" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="iRMX" dst="Lapointe" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="iRMX" dst="Julian" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="iRMX" dst="Lafontaine" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="iRMX" dst="Gordon" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="iRMX" dst="Drouin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="iRMX" dst="Robert" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="iRMX" dst="Jocelyne" symmetrical="NO"><link_ctn id="172"/><link_ctn id="173"/></route>
-   <route src="iRMX" dst="Stephen" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="iRMX" dst="Provost" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="iRMX" dst="Juneau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="iRMX" dst="Casavant" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="iRMX" dst="St_Antoine" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="iRMX" dst="Louis" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="iRMX" dst="Julien" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="iRMX" dst="St_Paul" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="iRMX" dst="Mathematica" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="iRMX" dst="LaTeX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="iRMX" dst="Sirois" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="iRMX" dst="Monique" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="iRMX" dst="Audy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="iRMX" dst="Bourassa" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="iRMX" dst="OHara" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="iRMX" dst="Boston" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="iRMX" dst="Papineau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="iRMX" dst="Fraser" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="iRMX" dst="Browne" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="iRMX" dst="SunOS" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="iRMX" dst="Varennes" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="iRMX" dst="Jacques" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="iRMX" dst="Thierry" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="iRMX" dst="Lachapelle" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="iRMX" dst="kV" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="iRMX" dst="Yolande" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="iRMX" dst="Pronovost" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="iRMX" dst="SPICE" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="iRMX" dst="Europe" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="iRMX" dst="Roy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="iRMX" dst="Amadeus" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="iRMX" dst="Intel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="iRMX" dst="Cambridge" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="iRMX" dst="Tremblay" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="iRMX" dst="UNIX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="iRMX" dst="Domey" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="iRMX" dst="St_Bruno" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="iRMX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="iRMX" dst="Doyon" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="iRMX" dst="Fafard" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="iRMX" dst="Croteau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="175"/></route>
-   <route src="iRMX" dst="Dodge" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="McGee" dst="Jacquelin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="McGee" dst="Boivin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="McGee" dst="Jean_Yves" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="McGee" dst="TeX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="McGee" dst="Geoff" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="McGee" dst="Disney" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="McGee" dst="iRMX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="McGee" dst="Gatien" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="McGee" dst="Laroche" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="McGee" dst="Tanguay" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="McGee" dst="Morin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="McGee" dst="Ethernet" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="McGee" dst="Bellemarre" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="McGee" dst="Kuenning" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="McGee" dst="Gaston" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="McGee" dst="Harry" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="McGee" dst="Bousquet" symmetrical="NO"><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="McGee" dst="Paul" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="McGee" dst="St_Jean" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="McGee" dst="Jill" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="McGee" dst="Marcel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="McGee" dst="Wright" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="McGee" dst="Jackson" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="McGee" dst="Fernand" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="McGee" dst="Soucy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="McGee" dst="Ste_Julie" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="McGee" dst="Victoria" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="McGee" dst="Lessard" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="McGee" dst="Florient" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="McGee" dst="Marcoux" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="McGee" dst="Gavrel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="McGee" dst="Bescherelle" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="McGee" dst="Pierre" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="McGee" dst="Jamie" symmetrical="NO"><link_ctn id="120"/></route>
-   <route src="McGee" dst="Rubin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="McGee" dst="Olivier" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="McGee" dst="Boucherville" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="McGee" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="McGee" dst="Kansas" symmetrical="NO"><link_ctn id="122"/></route>
-   <route src="McGee" dst="King" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="McGee" dst="Lapointe" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="McGee" dst="Julian" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="McGee" dst="Lafontaine" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="McGee" dst="Gordon" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="McGee" dst="Drouin" symmetrical="NO"><link_ctn id="123"/></route>
-   <route src="McGee" dst="Robert" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="McGee" dst="Jocelyne" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="McGee" dst="Stephen" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="McGee" dst="Provost" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="McGee" dst="Juneau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="McGee" dst="Casavant" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="McGee" dst="St_Antoine" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="McGee" dst="Louis" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="McGee" dst="Julien" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="McGee" dst="St_Paul" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="McGee" dst="Mathematica" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="McGee" dst="LaTeX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="McGee" dst="Sirois" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="McGee" dst="Monique" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="McGee" dst="Audy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="McGee" dst="Bourassa" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="McGee" dst="OHara" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="McGee" dst="Boston" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="McGee" dst="Papineau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="McGee" dst="Fraser" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="McGee" dst="Browne" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="McGee" dst="SunOS" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="McGee" dst="Varennes" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="McGee" dst="Jacques" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="McGee" dst="Thierry" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="McGee" dst="Lachapelle" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="McGee" dst="kV" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="McGee" dst="Yolande" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="McGee" dst="Pronovost" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="McGee" dst="SPICE" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="McGee" dst="Europe" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="McGee" dst="Roy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="McGee" dst="Amadeus" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="McGee" dst="Intel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="McGee" dst="Cambridge" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="McGee" dst="Tremblay" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="McGee" dst="UNIX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="McGee" dst="Domey" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="McGee" dst="St_Bruno" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="McGee" dst="Jean_Claude" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="McGee" dst="Doyon" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="McGee" dst="Fafard" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="McGee" dst="Croteau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="McGee" dst="Dodge" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gatien" dst="Jacquelin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gatien" dst="Boivin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Gatien" dst="Jean_Yves" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gatien" dst="TeX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gatien" dst="Geoff" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gatien" dst="Disney" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gatien" dst="iRMX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gatien" dst="McGee" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Gatien" dst="Laroche" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gatien" dst="Tanguay" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gatien" dst="Morin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gatien" dst="Ethernet" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gatien" dst="Bellemarre" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gatien" dst="Kuenning" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gatien" dst="Gaston" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gatien" dst="Harry" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gatien" dst="Bousquet" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gatien" dst="Paul" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gatien" dst="St_Jean" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gatien" dst="Jill" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gatien" dst="Marcel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gatien" dst="Wright" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gatien" dst="Jackson" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gatien" dst="Fernand" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gatien" dst="Soucy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gatien" dst="Ste_Julie" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gatien" dst="Victoria" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gatien" dst="Lessard" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gatien" dst="Florient" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gatien" dst="Marcoux" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gatien" dst="Gavrel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gatien" dst="Bescherelle" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gatien" dst="Pierre" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gatien" dst="Jamie" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gatien" dst="Rubin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gatien" dst="Olivier" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gatien" dst="Boucherville" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gatien" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gatien" dst="Kansas" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gatien" dst="King" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gatien" dst="Lapointe" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gatien" dst="Julian" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gatien" dst="Lafontaine" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gatien" dst="Gordon" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gatien" dst="Drouin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gatien" dst="Robert" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gatien" dst="Jocelyne" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gatien" dst="Stephen" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gatien" dst="Provost" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gatien" dst="Juneau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gatien" dst="Casavant" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gatien" dst="St_Antoine" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gatien" dst="Louis" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gatien" dst="Julien" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gatien" dst="St_Paul" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gatien" dst="Mathematica" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gatien" dst="LaTeX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gatien" dst="Sirois" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gatien" dst="Monique" symmetrical="NO"><link_ctn id="115"/><link_ctn id="113"/></route>
-   <route src="Gatien" dst="Audy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gatien" dst="Bourassa" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gatien" dst="OHara" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gatien" dst="Boston" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gatien" dst="Papineau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gatien" dst="Fraser" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gatien" dst="Browne" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gatien" dst="SunOS" symmetrical="NO"><link_ctn id="115"/><link_ctn id="114"/></route>
-   <route src="Gatien" dst="Varennes" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gatien" dst="Jacques" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gatien" dst="Thierry" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gatien" dst="Lachapelle" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gatien" dst="kV" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gatien" dst="Yolande" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gatien" dst="Pronovost" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gatien" dst="SPICE" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gatien" dst="Europe" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gatien" dst="Roy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gatien" dst="Amadeus" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gatien" dst="Intel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gatien" dst="Cambridge" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gatien" dst="Tremblay" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gatien" dst="UNIX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gatien" dst="Domey" symmetrical="NO"><link_ctn id="115"/></route>
-   <route src="Gatien" dst="St_Bruno" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gatien" dst="Jean_Claude" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gatien" dst="Doyon" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gatien" dst="Fafard" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gatien" dst="Croteau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gatien" dst="Dodge" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Laroche" dst="Jacquelin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Laroche" dst="Boivin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Laroche" dst="Jean_Yves" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Laroche" dst="TeX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Laroche" dst="Geoff" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Laroche" dst="Disney" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Laroche" dst="iRMX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Laroche" dst="McGee" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Laroche" dst="Gatien" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Laroche" dst="Tanguay" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Laroche" dst="Morin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Laroche" dst="Ethernet" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Laroche" dst="Bellemarre" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Laroche" dst="Kuenning" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Laroche" dst="Gaston" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Laroche" dst="Harry" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Laroche" dst="Bousquet" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Laroche" dst="Paul" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Laroche" dst="St_Jean" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Laroche" dst="Jill" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Laroche" dst="Marcel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Laroche" dst="Wright" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Laroche" dst="Jackson" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Laroche" dst="Fernand" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Laroche" dst="Soucy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Laroche" dst="Ste_Julie" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Laroche" dst="Victoria" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Laroche" dst="Lessard" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Laroche" dst="Florient" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Laroche" dst="Marcoux" symmetrical="NO"><link_ctn id="186"/></route>
-   <route src="Laroche" dst="Gavrel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Laroche" dst="Bescherelle" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Laroche" dst="Pierre" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Laroche" dst="Jamie" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Laroche" dst="Rubin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Laroche" dst="Olivier" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Laroche" dst="Boucherville" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Laroche" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="184"/></route>
-   <route src="Laroche" dst="Kansas" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Laroche" dst="King" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Laroche" dst="Lapointe" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Laroche" dst="Julian" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Laroche" dst="Lafontaine" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Laroche" dst="Gordon" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Laroche" dst="Drouin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Laroche" dst="Robert" symmetrical="NO"><link_ctn id="187"/></route>
-   <route src="Laroche" dst="Jocelyne" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Laroche" dst="Stephen" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Laroche" dst="Provost" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Laroche" dst="Juneau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Laroche" dst="Casavant" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Laroche" dst="St_Antoine" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Laroche" dst="Louis" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Laroche" dst="Julien" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Laroche" dst="St_Paul" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Laroche" dst="Mathematica" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Laroche" dst="LaTeX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Laroche" dst="Sirois" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Laroche" dst="Monique" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Laroche" dst="Audy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Laroche" dst="Bourassa" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Laroche" dst="OHara" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Laroche" dst="Boston" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Laroche" dst="Papineau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Laroche" dst="Fraser" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Laroche" dst="Browne" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Laroche" dst="SunOS" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Laroche" dst="Varennes" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Laroche" dst="Jacques" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Laroche" dst="Thierry" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Laroche" dst="Lachapelle" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Laroche" dst="kV" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Laroche" dst="Yolande" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Laroche" dst="Pronovost" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Laroche" dst="SPICE" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Laroche" dst="Europe" symmetrical="NO"><link_ctn id="185"/></route>
-   <route src="Laroche" dst="Roy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Laroche" dst="Amadeus" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Laroche" dst="Intel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Laroche" dst="Cambridge" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Laroche" dst="Tremblay" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Laroche" dst="UNIX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Laroche" dst="Domey" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Laroche" dst="St_Bruno" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Laroche" dst="Jean_Claude" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Laroche" dst="Doyon" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Laroche" dst="Fafard" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Laroche" dst="Croteau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Laroche" dst="Dodge" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Tanguay" dst="Jacquelin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Tanguay" dst="Boivin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Tanguay" dst="Jean_Yves" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Tanguay" dst="TeX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Tanguay" dst="Geoff" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Tanguay" dst="Disney" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Tanguay" dst="iRMX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Tanguay" dst="McGee" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Tanguay" dst="Gatien" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Tanguay" dst="Laroche" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Tanguay" dst="Morin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Tanguay" dst="Ethernet" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Tanguay" dst="Bellemarre" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Tanguay" dst="Kuenning" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Tanguay" dst="Gaston" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Tanguay" dst="Harry" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Tanguay" dst="Bousquet" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Tanguay" dst="Paul" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Tanguay" dst="St_Jean" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Tanguay" dst="Jill" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Tanguay" dst="Marcel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Tanguay" dst="Wright" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Tanguay" dst="Jackson" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Tanguay" dst="Fernand" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Tanguay" dst="Soucy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Tanguay" dst="Ste_Julie" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Tanguay" dst="Victoria" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Tanguay" dst="Lessard" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Tanguay" dst="Florient" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Tanguay" dst="Marcoux" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Tanguay" dst="Gavrel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Tanguay" dst="Bescherelle" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Tanguay" dst="Pierre" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Tanguay" dst="Jamie" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Tanguay" dst="Rubin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Tanguay" dst="Olivier" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Tanguay" dst="Boucherville" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Tanguay" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Tanguay" dst="Kansas" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Tanguay" dst="King" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Tanguay" dst="Lapointe" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Tanguay" dst="Julian" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Tanguay" dst="Lafontaine" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Tanguay" dst="Gordon" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Tanguay" dst="Drouin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Tanguay" dst="Robert" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Tanguay" dst="Jocelyne" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Tanguay" dst="Stephen" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Tanguay" dst="Provost" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Tanguay" dst="Juneau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Tanguay" dst="Casavant" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Tanguay" dst="St_Antoine" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Tanguay" dst="Louis" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Tanguay" dst="Julien" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Tanguay" dst="St_Paul" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Tanguay" dst="Mathematica" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Tanguay" dst="LaTeX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Tanguay" dst="Sirois" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Tanguay" dst="Monique" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Tanguay" dst="Audy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Tanguay" dst="Bourassa" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Tanguay" dst="OHara" symmetrical="NO"><link_ctn id="162"/><link_ctn id="163"/></route>
-   <route src="Tanguay" dst="Boston" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Tanguay" dst="Papineau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Tanguay" dst="Fraser" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Tanguay" dst="Browne" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Tanguay" dst="SunOS" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Tanguay" dst="Varennes" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Tanguay" dst="Jacques" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Tanguay" dst="Thierry" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Tanguay" dst="Lachapelle" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Tanguay" dst="kV" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Tanguay" dst="Yolande" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Tanguay" dst="Pronovost" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Tanguay" dst="SPICE" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Tanguay" dst="Europe" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Tanguay" dst="Roy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Tanguay" dst="Amadeus" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Tanguay" dst="Intel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Tanguay" dst="Cambridge" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Tanguay" dst="Tremblay" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Tanguay" dst="UNIX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Tanguay" dst="Domey" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Tanguay" dst="St_Bruno" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Tanguay" dst="Jean_Claude" symmetrical="NO"><link_ctn id="162"/><link_ctn id="160"/></route>
-   <route src="Tanguay" dst="Doyon" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Tanguay" dst="Fafard" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Tanguay" dst="Croteau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Tanguay" dst="Dodge" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Morin" dst="Jacquelin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Morin" dst="Boivin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Morin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Morin" dst="TeX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Morin" dst="Geoff" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Morin" dst="Disney" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Morin" dst="iRMX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Morin" dst="McGee" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Morin" dst="Gatien" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Morin" dst="Laroche" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Morin" dst="Tanguay" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Morin" dst="Ethernet" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Morin" dst="Bellemarre" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Morin" dst="Kuenning" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Morin" dst="Gaston" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Morin" dst="Harry" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Morin" dst="Bousquet" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Morin" dst="Paul" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Morin" dst="St_Jean" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Morin" dst="Jill" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Morin" dst="Marcel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Morin" dst="Wright" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Morin" dst="Jackson" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Morin" dst="Fernand" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Morin" dst="Soucy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Morin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Morin" dst="Victoria" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Morin" dst="Lessard" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Morin" dst="Florient" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Morin" dst="Marcoux" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Morin" dst="Gavrel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Morin" dst="Bescherelle" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Morin" dst="Pierre" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Morin" dst="Jamie" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Morin" dst="Rubin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Morin" dst="Olivier" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Morin" dst="Boucherville" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Morin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Morin" dst="Kansas" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Morin" dst="King" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Morin" dst="Lapointe" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Morin" dst="Julian" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Morin" dst="Lafontaine" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Morin" dst="Gordon" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Morin" dst="Drouin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Morin" dst="Robert" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Morin" dst="Jocelyne" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Morin" dst="Stephen" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Morin" dst="Provost" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Morin" dst="Juneau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Morin" dst="Casavant" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Morin" dst="St_Antoine" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Morin" dst="Louis" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Morin" dst="Julien" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Morin" dst="St_Paul" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Morin" dst="Mathematica" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Morin" dst="LaTeX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Morin" dst="Sirois" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Morin" dst="Monique" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Morin" dst="Audy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Morin" dst="Bourassa" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Morin" dst="OHara" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Morin" dst="Boston" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Morin" dst="Papineau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Morin" dst="Fraser" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Morin" dst="Browne" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Morin" dst="SunOS" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Morin" dst="Varennes" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Morin" dst="Jacques" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Morin" dst="Thierry" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Morin" dst="Lachapelle" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Morin" dst="kV" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Morin" dst="Yolande" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Morin" dst="Pronovost" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Morin" dst="SPICE" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Morin" dst="Europe" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Morin" dst="Roy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Morin" dst="Amadeus" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Morin" dst="Intel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Morin" dst="Cambridge" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Morin" dst="Tremblay" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Morin" dst="UNIX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Morin" dst="Domey" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Morin" dst="St_Bruno" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Morin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Morin" dst="Doyon" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Morin" dst="Fafard" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Morin" dst="Croteau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Morin" dst="Dodge" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Ethernet" dst="Jacquelin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Ethernet" dst="Boivin" symmetrical="NO"><link_ctn id="118"/></route>
-   <route src="Ethernet" dst="Jean_Yves" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Ethernet" dst="TeX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Ethernet" dst="Geoff" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Ethernet" dst="Disney" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Ethernet" dst="iRMX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Ethernet" dst="McGee" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Ethernet" dst="Gatien" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Ethernet" dst="Laroche" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Ethernet" dst="Tanguay" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Ethernet" dst="Morin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Ethernet" dst="Bellemarre" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Ethernet" dst="Kuenning" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Ethernet" dst="Gaston" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Ethernet" dst="Harry" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Ethernet" dst="Bousquet" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Ethernet" dst="Paul" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Ethernet" dst="St_Jean" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Ethernet" dst="Jill" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Ethernet" dst="Marcel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Ethernet" dst="Wright" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Ethernet" dst="Jackson" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Ethernet" dst="Fernand" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Ethernet" dst="Soucy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Ethernet" dst="Ste_Julie" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Ethernet" dst="Victoria" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Ethernet" dst="Lessard" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Ethernet" dst="Florient" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Ethernet" dst="Marcoux" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Ethernet" dst="Gavrel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Ethernet" dst="Bescherelle" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Ethernet" dst="Pierre" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Ethernet" dst="Jamie" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Ethernet" dst="Rubin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Ethernet" dst="Olivier" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Ethernet" dst="Boucherville" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Ethernet" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Ethernet" dst="Kansas" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Ethernet" dst="King" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Ethernet" dst="Lapointe" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Ethernet" dst="Julian" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Ethernet" dst="Lafontaine" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Ethernet" dst="Gordon" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Ethernet" dst="Drouin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Ethernet" dst="Robert" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Ethernet" dst="Jocelyne" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Ethernet" dst="Stephen" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Ethernet" dst="Provost" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Ethernet" dst="Juneau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Ethernet" dst="Casavant" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Ethernet" dst="St_Antoine" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Ethernet" dst="Louis" symmetrical="NO"><link_ctn id="118"/><link_ctn id="117"/></route>
-   <route src="Ethernet" dst="Julien" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Ethernet" dst="St_Paul" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Ethernet" dst="Mathematica" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Ethernet" dst="LaTeX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Ethernet" dst="Sirois" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Ethernet" dst="Monique" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Ethernet" dst="Audy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Ethernet" dst="Bourassa" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Ethernet" dst="OHara" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Ethernet" dst="Boston" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Ethernet" dst="Papineau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Ethernet" dst="Fraser" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Ethernet" dst="Browne" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Ethernet" dst="SunOS" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Ethernet" dst="Varennes" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Ethernet" dst="Jacques" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Ethernet" dst="Thierry" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Ethernet" dst="Lachapelle" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Ethernet" dst="kV" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Ethernet" dst="Yolande" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Ethernet" dst="Pronovost" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Ethernet" dst="SPICE" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Ethernet" dst="Europe" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Ethernet" dst="Roy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Ethernet" dst="Amadeus" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Ethernet" dst="Intel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Ethernet" dst="Cambridge" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Ethernet" dst="Tremblay" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Ethernet" dst="UNIX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Ethernet" dst="Domey" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Ethernet" dst="St_Bruno" symmetrical="NO"><link_ctn id="118"/><link_ctn id="119"/></route>
-   <route src="Ethernet" dst="Jean_Claude" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Ethernet" dst="Doyon" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Ethernet" dst="Fafard" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Ethernet" dst="Croteau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Ethernet" dst="Dodge" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bellemarre" dst="Jacquelin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bellemarre" dst="Boivin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bellemarre" dst="Jean_Yves" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bellemarre" dst="TeX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bellemarre" dst="Geoff" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bellemarre" dst="Disney" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bellemarre" dst="iRMX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bellemarre" dst="McGee" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bellemarre" dst="Gatien" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bellemarre" dst="Laroche" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bellemarre" dst="Tanguay" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bellemarre" dst="Morin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bellemarre" dst="Ethernet" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bellemarre" dst="Kuenning" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bellemarre" dst="Gaston" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bellemarre" dst="Harry" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bellemarre" dst="Bousquet" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bellemarre" dst="Paul" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bellemarre" dst="St_Jean" symmetrical="NO"><link_ctn id="97"/></route>
-   <route src="Bellemarre" dst="Jill" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bellemarre" dst="Marcel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bellemarre" dst="Wright" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bellemarre" dst="Jackson" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bellemarre" dst="Fernand" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bellemarre" dst="Soucy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bellemarre" dst="Ste_Julie" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bellemarre" dst="Victoria" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bellemarre" dst="Lessard" symmetrical="NO"><link_ctn id="99"/></route>
-   <route src="Bellemarre" dst="Florient" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bellemarre" dst="Marcoux" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bellemarre" dst="Gavrel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bellemarre" dst="Bescherelle" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bellemarre" dst="Pierre" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bellemarre" dst="Jamie" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bellemarre" dst="Rubin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bellemarre" dst="Olivier" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bellemarre" dst="Boucherville" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bellemarre" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bellemarre" dst="Kansas" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bellemarre" dst="King" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bellemarre" dst="Lapointe" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bellemarre" dst="Julian" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bellemarre" dst="Lafontaine" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bellemarre" dst="Gordon" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bellemarre" dst="Drouin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bellemarre" dst="Robert" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bellemarre" dst="Jocelyne" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bellemarre" dst="Stephen" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bellemarre" dst="Provost" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bellemarre" dst="Juneau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bellemarre" dst="Casavant" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bellemarre" dst="St_Antoine" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bellemarre" dst="Louis" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bellemarre" dst="Julien" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bellemarre" dst="St_Paul" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bellemarre" dst="Mathematica" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bellemarre" dst="LaTeX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bellemarre" dst="Sirois" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bellemarre" dst="Monique" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bellemarre" dst="Audy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bellemarre" dst="Bourassa" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bellemarre" dst="OHara" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bellemarre" dst="Boston" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bellemarre" dst="Papineau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bellemarre" dst="Fraser" symmetrical="NO"><link_ctn id="96"/></route>
-   <route src="Bellemarre" dst="Browne" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bellemarre" dst="SunOS" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bellemarre" dst="Varennes" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bellemarre" dst="Jacques" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bellemarre" dst="Thierry" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bellemarre" dst="Lachapelle" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bellemarre" dst="kV" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bellemarre" dst="Yolande" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bellemarre" dst="Pronovost" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bellemarre" dst="SPICE" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bellemarre" dst="Europe" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bellemarre" dst="Roy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bellemarre" dst="Amadeus" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bellemarre" dst="Intel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bellemarre" dst="Cambridge" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bellemarre" dst="Tremblay" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bellemarre" dst="UNIX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bellemarre" dst="Domey" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bellemarre" dst="St_Bruno" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bellemarre" dst="Jean_Claude" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bellemarre" dst="Doyon" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bellemarre" dst="Fafard" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bellemarre" dst="Croteau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bellemarre" dst="Dodge" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Kuenning" dst="Jacquelin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Kuenning" dst="Boivin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Kuenning" dst="Jean_Yves" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Kuenning" dst="TeX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Kuenning" dst="Geoff" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Kuenning" dst="Disney" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Kuenning" dst="iRMX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Kuenning" dst="McGee" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Kuenning" dst="Gatien" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Kuenning" dst="Laroche" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Kuenning" dst="Tanguay" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Kuenning" dst="Morin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Kuenning" dst="Ethernet" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Kuenning" dst="Bellemarre" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Kuenning" dst="Gaston" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Kuenning" dst="Harry" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Kuenning" dst="Bousquet" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Kuenning" dst="Paul" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Kuenning" dst="St_Jean" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Kuenning" dst="Jill" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Kuenning" dst="Marcel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Kuenning" dst="Wright" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Kuenning" dst="Jackson" symmetrical="NO"><link_ctn id="135"/></route>
-   <route src="Kuenning" dst="Fernand" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Kuenning" dst="Soucy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Kuenning" dst="Ste_Julie" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Kuenning" dst="Victoria" symmetrical="NO"><link_ctn id="135"/><link_ctn id="133"/></route>
-   <route src="Kuenning" dst="Lessard" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Kuenning" dst="Florient" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Kuenning" dst="Marcoux" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Kuenning" dst="Gavrel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Kuenning" dst="Bescherelle" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Kuenning" dst="Pierre" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Kuenning" dst="Jamie" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Kuenning" dst="Rubin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Kuenning" dst="Olivier" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Kuenning" dst="Boucherville" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Kuenning" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Kuenning" dst="Kansas" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Kuenning" dst="King" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Kuenning" dst="Lapointe" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Kuenning" dst="Julian" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Kuenning" dst="Lafontaine" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Kuenning" dst="Gordon" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Kuenning" dst="Drouin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Kuenning" dst="Robert" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Kuenning" dst="Jocelyne" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Kuenning" dst="Stephen" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Kuenning" dst="Provost" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Kuenning" dst="Juneau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Kuenning" dst="Casavant" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Kuenning" dst="St_Antoine" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Kuenning" dst="Louis" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Kuenning" dst="Julien" symmetrical="NO"><link_ctn id="135"/><link_ctn id="134"/></route>
-   <route src="Kuenning" dst="St_Paul" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Kuenning" dst="Mathematica" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Kuenning" dst="LaTeX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Kuenning" dst="Sirois" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Kuenning" dst="Monique" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Kuenning" dst="Audy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Kuenning" dst="Bourassa" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Kuenning" dst="OHara" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Kuenning" dst="Boston" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Kuenning" dst="Papineau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Kuenning" dst="Fraser" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Kuenning" dst="Browne" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Kuenning" dst="SunOS" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Kuenning" dst="Varennes" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Kuenning" dst="Jacques" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Kuenning" dst="Thierry" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Kuenning" dst="Lachapelle" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Kuenning" dst="kV" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Kuenning" dst="Yolande" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Kuenning" dst="Pronovost" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Kuenning" dst="SPICE" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Kuenning" dst="Europe" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Kuenning" dst="Roy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Kuenning" dst="Amadeus" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Kuenning" dst="Intel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Kuenning" dst="Cambridge" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Kuenning" dst="Tremblay" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Kuenning" dst="UNIX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Kuenning" dst="Domey" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Kuenning" dst="St_Bruno" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Kuenning" dst="Jean_Claude" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Kuenning" dst="Doyon" symmetrical="NO"><link_ctn id="135"/><link_ctn id="132"/></route>
-   <route src="Kuenning" dst="Fafard" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Kuenning" dst="Croteau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Kuenning" dst="Dodge" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gaston" dst="Jacquelin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gaston" dst="Boivin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gaston" dst="Jean_Yves" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gaston" dst="TeX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gaston" dst="Geoff" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gaston" dst="Disney" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gaston" dst="iRMX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gaston" dst="McGee" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gaston" dst="Gatien" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gaston" dst="Laroche" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gaston" dst="Tanguay" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gaston" dst="Morin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gaston" dst="Ethernet" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gaston" dst="Bellemarre" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gaston" dst="Kuenning" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gaston" dst="Harry" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gaston" dst="Bousquet" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gaston" dst="Paul" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gaston" dst="St_Jean" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gaston" dst="Jill" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gaston" dst="Marcel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="155"/></route>
-   <route src="Gaston" dst="Wright" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gaston" dst="Jackson" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gaston" dst="Fernand" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gaston" dst="Soucy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gaston" dst="Ste_Julie" symmetrical="NO"><link_ctn id="153"/></route>
-   <route src="Gaston" dst="Victoria" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gaston" dst="Lessard" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gaston" dst="Florient" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gaston" dst="Marcoux" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gaston" dst="Gavrel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gaston" dst="Bescherelle" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gaston" dst="Pierre" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gaston" dst="Jamie" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gaston" dst="Rubin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gaston" dst="Olivier" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gaston" dst="Boucherville" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gaston" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gaston" dst="Kansas" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gaston" dst="King" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gaston" dst="Lapointe" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gaston" dst="Julian" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gaston" dst="Lafontaine" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gaston" dst="Gordon" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gaston" dst="Drouin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gaston" dst="Robert" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gaston" dst="Jocelyne" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gaston" dst="Stephen" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gaston" dst="Provost" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gaston" dst="Juneau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gaston" dst="Casavant" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gaston" dst="St_Antoine" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gaston" dst="Louis" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gaston" dst="Julien" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gaston" dst="St_Paul" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gaston" dst="Mathematica" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gaston" dst="LaTeX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gaston" dst="Sirois" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gaston" dst="Monique" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gaston" dst="Audy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gaston" dst="Bourassa" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gaston" dst="OHara" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gaston" dst="Boston" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gaston" dst="Papineau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gaston" dst="Fraser" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gaston" dst="Browne" symmetrical="NO"><link_ctn id="153"/><link_ctn id="152"/></route>
-   <route src="Gaston" dst="SunOS" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gaston" dst="Varennes" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gaston" dst="Jacques" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gaston" dst="Thierry" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gaston" dst="Lachapelle" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gaston" dst="kV" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gaston" dst="Yolande" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gaston" dst="Pronovost" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gaston" dst="SPICE" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gaston" dst="Europe" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gaston" dst="Roy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Gaston" dst="Amadeus" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gaston" dst="Intel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gaston" dst="Cambridge" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gaston" dst="Tremblay" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gaston" dst="UNIX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gaston" dst="Domey" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gaston" dst="St_Bruno" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gaston" dst="Jean_Claude" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gaston" dst="Doyon" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gaston" dst="Fafard" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gaston" dst="Croteau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gaston" dst="Dodge" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Harry" dst="Jacquelin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Harry" dst="Boivin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Harry" dst="Jean_Yves" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Harry" dst="TeX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Harry" dst="Geoff" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Harry" dst="Disney" symmetrical="NO"><link_ctn id="108"/><link_ctn id="111"/></route>
-   <route src="Harry" dst="iRMX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Harry" dst="McGee" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Harry" dst="Gatien" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Harry" dst="Laroche" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Harry" dst="Tanguay" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Harry" dst="Morin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Harry" dst="Ethernet" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Harry" dst="Bellemarre" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Harry" dst="Kuenning" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Harry" dst="Gaston" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Harry" dst="Bousquet" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Harry" dst="Paul" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Harry" dst="St_Jean" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Harry" dst="Jill" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Harry" dst="Marcel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Harry" dst="Wright" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Harry" dst="Jackson" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Harry" dst="Fernand" symmetrical="NO"><link_ctn id="108"/><link_ctn id="109"/></route>
-   <route src="Harry" dst="Soucy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Harry" dst="Ste_Julie" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Harry" dst="Victoria" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Harry" dst="Lessard" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Harry" dst="Florient" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Harry" dst="Marcoux" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Harry" dst="Gavrel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Harry" dst="Bescherelle" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Harry" dst="Pierre" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Harry" dst="Jamie" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Harry" dst="Rubin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Harry" dst="Olivier" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Harry" dst="Boucherville" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Harry" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Harry" dst="Kansas" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Harry" dst="King" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Harry" dst="Lapointe" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Harry" dst="Julian" symmetrical="NO"><link_ctn id="108"/></route>
-   <route src="Harry" dst="Lafontaine" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Harry" dst="Gordon" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Harry" dst="Drouin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Harry" dst="Robert" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Harry" dst="Jocelyne" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Harry" dst="Stephen" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Harry" dst="Provost" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Harry" dst="Juneau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Harry" dst="Casavant" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Harry" dst="St_Antoine" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Harry" dst="Louis" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Harry" dst="Julien" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Harry" dst="St_Paul" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Harry" dst="Mathematica" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Harry" dst="LaTeX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Harry" dst="Sirois" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Harry" dst="Monique" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Harry" dst="Audy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Harry" dst="Bourassa" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Harry" dst="OHara" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Harry" dst="Boston" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Harry" dst="Papineau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Harry" dst="Fraser" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Harry" dst="Browne" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Harry" dst="SunOS" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Harry" dst="Varennes" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Harry" dst="Jacques" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Harry" dst="Thierry" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Harry" dst="Lachapelle" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Harry" dst="kV" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Harry" dst="Yolande" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Harry" dst="Pronovost" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Harry" dst="SPICE" symmetrical="NO"><link_ctn id="108"/><link_ctn id="110"/></route>
-   <route src="Harry" dst="Europe" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Harry" dst="Roy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Harry" dst="Amadeus" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Harry" dst="Intel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Harry" dst="Cambridge" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Harry" dst="Tremblay" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Harry" dst="UNIX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Harry" dst="Domey" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Harry" dst="St_Bruno" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Harry" dst="Jean_Claude" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Harry" dst="Doyon" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Harry" dst="Fafard" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Harry" dst="Croteau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Harry" dst="Dodge" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bousquet" dst="Jacquelin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bousquet" dst="Boivin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Bousquet" dst="Jean_Yves" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bousquet" dst="TeX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bousquet" dst="Geoff" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bousquet" dst="Disney" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bousquet" dst="iRMX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bousquet" dst="McGee" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/></route>
-   <route src="Bousquet" dst="Gatien" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bousquet" dst="Laroche" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bousquet" dst="Tanguay" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bousquet" dst="Morin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bousquet" dst="Ethernet" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bousquet" dst="Bellemarre" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bousquet" dst="Kuenning" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bousquet" dst="Gaston" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bousquet" dst="Harry" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bousquet" dst="Paul" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bousquet" dst="St_Jean" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bousquet" dst="Jill" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bousquet" dst="Marcel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bousquet" dst="Wright" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bousquet" dst="Jackson" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bousquet" dst="Fernand" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bousquet" dst="Soucy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bousquet" dst="Ste_Julie" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bousquet" dst="Victoria" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bousquet" dst="Lessard" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bousquet" dst="Florient" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bousquet" dst="Marcoux" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bousquet" dst="Gavrel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bousquet" dst="Bescherelle" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bousquet" dst="Pierre" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bousquet" dst="Jamie" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bousquet" dst="Rubin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bousquet" dst="Olivier" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bousquet" dst="Boucherville" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bousquet" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bousquet" dst="Kansas" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bousquet" dst="King" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bousquet" dst="Lapointe" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bousquet" dst="Julian" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bousquet" dst="Lafontaine" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bousquet" dst="Gordon" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bousquet" dst="Drouin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bousquet" dst="Robert" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bousquet" dst="Jocelyne" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bousquet" dst="Stephen" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bousquet" dst="Provost" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bousquet" dst="Juneau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bousquet" dst="Casavant" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bousquet" dst="St_Antoine" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bousquet" dst="Louis" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bousquet" dst="Julien" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bousquet" dst="St_Paul" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bousquet" dst="Mathematica" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bousquet" dst="LaTeX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bousquet" dst="Sirois" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bousquet" dst="Monique" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bousquet" dst="Audy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bousquet" dst="Bourassa" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bousquet" dst="OHara" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bousquet" dst="Boston" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bousquet" dst="Papineau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bousquet" dst="Fraser" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bousquet" dst="Browne" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bousquet" dst="SunOS" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bousquet" dst="Varennes" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bousquet" dst="Jacques" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bousquet" dst="Thierry" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bousquet" dst="Lachapelle" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bousquet" dst="kV" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bousquet" dst="Yolande" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bousquet" dst="Pronovost" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bousquet" dst="SPICE" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bousquet" dst="Europe" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bousquet" dst="Roy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bousquet" dst="Amadeus" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bousquet" dst="Intel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bousquet" dst="Cambridge" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bousquet" dst="Tremblay" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bousquet" dst="UNIX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bousquet" dst="Domey" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/></route>
-   <route src="Bousquet" dst="St_Bruno" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bousquet" dst="Jean_Claude" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bousquet" dst="Doyon" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bousquet" dst="Fafard" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bousquet" dst="Croteau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bousquet" dst="Dodge" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Paul" dst="Jacquelin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Paul" dst="Boivin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Paul" dst="Jean_Yves" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Paul" dst="TeX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Paul" dst="Geoff" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Paul" dst="Disney" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Paul" dst="iRMX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Paul" dst="McGee" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Paul" dst="Gatien" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Paul" dst="Laroche" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Paul" dst="Tanguay" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Paul" dst="Morin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Paul" dst="Ethernet" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Paul" dst="Bellemarre" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Paul" dst="Kuenning" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Paul" dst="Gaston" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Paul" dst="Harry" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Paul" dst="Bousquet" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Paul" dst="St_Jean" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Paul" dst="Jill" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Paul" dst="Marcel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Paul" dst="Wright" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Paul" dst="Jackson" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Paul" dst="Fernand" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Paul" dst="Soucy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Paul" dst="Ste_Julie" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Paul" dst="Victoria" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Paul" dst="Lessard" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Paul" dst="Florient" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Paul" dst="Marcoux" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Paul" dst="Gavrel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Paul" dst="Bescherelle" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Paul" dst="Pierre" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Paul" dst="Jamie" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Paul" dst="Rubin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Paul" dst="Olivier" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Paul" dst="Boucherville" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Paul" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Paul" dst="Kansas" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Paul" dst="King" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Paul" dst="Lapointe" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Paul" dst="Julian" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Paul" dst="Lafontaine" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Paul" dst="Gordon" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Paul" dst="Drouin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Paul" dst="Robert" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Paul" dst="Jocelyne" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Paul" dst="Stephen" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Paul" dst="Provost" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Paul" dst="Juneau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Paul" dst="Casavant" symmetrical="NO"><link_ctn id="93"/><link_ctn id="92"/></route>
-   <route src="Paul" dst="St_Antoine" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Paul" dst="Louis" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Paul" dst="Julien" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Paul" dst="St_Paul" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Paul" dst="Mathematica" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Paul" dst="LaTeX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Paul" dst="Sirois" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Paul" dst="Monique" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Paul" dst="Audy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Paul" dst="Bourassa" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Paul" dst="OHara" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Paul" dst="Boston" symmetrical="NO"><link_ctn id="93"/><link_ctn id="95"/></route>
-   <route src="Paul" dst="Papineau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Paul" dst="Fraser" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Paul" dst="Browne" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Paul" dst="SunOS" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Paul" dst="Varennes" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Paul" dst="Jacques" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Paul" dst="Thierry" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Paul" dst="Lachapelle" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Paul" dst="kV" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Paul" dst="Yolande" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Paul" dst="Pronovost" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Paul" dst="SPICE" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Paul" dst="Europe" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Paul" dst="Roy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Paul" dst="Amadeus" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Paul" dst="Intel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Paul" dst="Cambridge" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Paul" dst="Tremblay" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Paul" dst="UNIX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Paul" dst="Domey" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Paul" dst="St_Bruno" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Paul" dst="Jean_Claude" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Paul" dst="Doyon" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Paul" dst="Fafard" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Paul" dst="Croteau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Paul" dst="Dodge" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Jean" dst="Jacquelin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Jean" dst="Boivin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Jean" dst="Jean_Yves" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Jean" dst="TeX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Jean" dst="Geoff" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Jean" dst="Disney" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Jean" dst="iRMX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Jean" dst="McGee" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Jean" dst="Gatien" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Jean" dst="Laroche" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Jean" dst="Tanguay" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Jean" dst="Morin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Jean" dst="Ethernet" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Jean" dst="Bellemarre" symmetrical="NO"><link_ctn id="97"/></route>
-   <route src="St_Jean" dst="Kuenning" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Jean" dst="Gaston" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Jean" dst="Harry" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Jean" dst="Bousquet" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Jean" dst="Paul" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Jean" dst="Jill" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Jean" dst="Marcel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Jean" dst="Wright" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Jean" dst="Jackson" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Jean" dst="Fernand" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Jean" dst="Soucy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Jean" dst="Ste_Julie" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Jean" dst="Victoria" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Jean" dst="Lessard" symmetrical="NO"><link_ctn id="97"/><link_ctn id="99"/></route>
-   <route src="St_Jean" dst="Florient" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Jean" dst="Marcoux" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Jean" dst="Gavrel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Jean" dst="Bescherelle" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Jean" dst="Pierre" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Jean" dst="Jamie" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Jean" dst="Rubin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Jean" dst="Olivier" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Jean" dst="Boucherville" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Jean" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Jean" dst="Kansas" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Jean" dst="King" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Jean" dst="Lapointe" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Jean" dst="Julian" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Jean" dst="Lafontaine" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Jean" dst="Gordon" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Jean" dst="Drouin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Jean" dst="Robert" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Jean" dst="Jocelyne" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Jean" dst="Stephen" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Jean" dst="Provost" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Jean" dst="Juneau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Jean" dst="Casavant" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Jean" dst="St_Antoine" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Jean" dst="Louis" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Jean" dst="Julien" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Jean" dst="St_Paul" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Jean" dst="Mathematica" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Jean" dst="LaTeX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Jean" dst="Sirois" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Jean" dst="Monique" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Jean" dst="Audy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Jean" dst="Bourassa" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Jean" dst="OHara" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Jean" dst="Boston" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Jean" dst="Papineau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Jean" dst="Fraser" symmetrical="NO"><link_ctn id="97"/><link_ctn id="96"/></route>
-   <route src="St_Jean" dst="Browne" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Jean" dst="SunOS" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Jean" dst="Varennes" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Jean" dst="Jacques" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Jean" dst="Thierry" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Jean" dst="Lachapelle" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Jean" dst="kV" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Jean" dst="Yolande" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Jean" dst="Pronovost" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Jean" dst="SPICE" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Jean" dst="Europe" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Jean" dst="Roy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Jean" dst="Amadeus" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Jean" dst="Intel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Jean" dst="Cambridge" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Jean" dst="Tremblay" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Jean" dst="UNIX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Jean" dst="Domey" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Jean" dst="St_Bruno" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Jean" dst="Jean_Claude" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Jean" dst="Doyon" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Jean" dst="Fafard" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Jean" dst="Croteau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Jean" dst="Dodge" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jill" dst="Jacquelin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jill" dst="Boivin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jill" dst="Jean_Yves" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jill" dst="TeX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jill" dst="Geoff" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jill" dst="Disney" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jill" dst="iRMX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jill" dst="McGee" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jill" dst="Gatien" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jill" dst="Laroche" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Jill" dst="Tanguay" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jill" dst="Morin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jill" dst="Ethernet" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jill" dst="Bellemarre" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jill" dst="Kuenning" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jill" dst="Gaston" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jill" dst="Harry" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jill" dst="Bousquet" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jill" dst="Paul" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jill" dst="St_Jean" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jill" dst="Marcel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jill" dst="Wright" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jill" dst="Jackson" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jill" dst="Fernand" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jill" dst="Soucy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jill" dst="Ste_Julie" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jill" dst="Victoria" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jill" dst="Lessard" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jill" dst="Florient" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jill" dst="Marcoux" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jill" dst="Gavrel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jill" dst="Bescherelle" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jill" dst="Pierre" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jill" dst="Jamie" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jill" dst="Rubin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jill" dst="Olivier" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jill" dst="Boucherville" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="Jill" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jill" dst="Kansas" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jill" dst="King" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jill" dst="Lapointe" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Jill" dst="Julian" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jill" dst="Lafontaine" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jill" dst="Gordon" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Jill" dst="Drouin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jill" dst="Robert" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jill" dst="Jocelyne" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jill" dst="Stephen" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jill" dst="Provost" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jill" dst="Juneau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jill" dst="Casavant" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jill" dst="St_Antoine" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jill" dst="Louis" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jill" dst="Julien" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jill" dst="St_Paul" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jill" dst="Mathematica" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jill" dst="LaTeX" symmetrical="NO"><link_ctn id="177"/></route>
-   <route src="Jill" dst="Sirois" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jill" dst="Monique" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jill" dst="Audy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jill" dst="Bourassa" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jill" dst="OHara" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jill" dst="Boston" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jill" dst="Papineau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jill" dst="Fraser" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jill" dst="Browne" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jill" dst="SunOS" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jill" dst="Varennes" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jill" dst="Jacques" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jill" dst="Thierry" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jill" dst="Lachapelle" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jill" dst="kV" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jill" dst="Yolande" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jill" dst="Pronovost" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jill" dst="SPICE" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jill" dst="Europe" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jill" dst="Roy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jill" dst="Amadeus" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jill" dst="Intel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jill" dst="Cambridge" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jill" dst="Tremblay" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jill" dst="UNIX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jill" dst="Domey" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jill" dst="St_Bruno" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jill" dst="Jean_Claude" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jill" dst="Doyon" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jill" dst="Fafard" symmetrical="NO"><link_ctn id="179"/></route>
-   <route src="Jill" dst="Croteau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jill" dst="Dodge" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Marcel" dst="Jacquelin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Marcel" dst="Boivin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Marcel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Marcel" dst="TeX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Marcel" dst="Geoff" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Marcel" dst="Disney" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Marcel" dst="iRMX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Marcel" dst="McGee" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Marcel" dst="Gatien" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Marcel" dst="Laroche" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Marcel" dst="Tanguay" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Marcel" dst="Morin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Marcel" dst="Ethernet" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Marcel" dst="Bellemarre" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Marcel" dst="Kuenning" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Marcel" dst="Gaston" symmetrical="NO"><link_ctn id="155"/><link_ctn id="153"/></route>
-   <route src="Marcel" dst="Harry" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Marcel" dst="Bousquet" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Marcel" dst="Paul" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Marcel" dst="St_Jean" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Marcel" dst="Jill" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Marcel" dst="Wright" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Marcel" dst="Jackson" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Marcel" dst="Fernand" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Marcel" dst="Soucy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Marcel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="155"/></route>
-   <route src="Marcel" dst="Victoria" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Marcel" dst="Lessard" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Marcel" dst="Florient" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Marcel" dst="Marcoux" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Marcel" dst="Gavrel" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Marcel" dst="Bescherelle" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Marcel" dst="Pierre" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Marcel" dst="Jamie" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Marcel" dst="Rubin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Marcel" dst="Olivier" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Marcel" dst="Boucherville" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Marcel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Marcel" dst="Kansas" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Marcel" dst="King" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Marcel" dst="Lapointe" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Marcel" dst="Julian" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Marcel" dst="Lafontaine" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Marcel" dst="Gordon" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Marcel" dst="Drouin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Marcel" dst="Robert" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Marcel" dst="Jocelyne" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Marcel" dst="Stephen" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Marcel" dst="Provost" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Marcel" dst="Juneau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Marcel" dst="Casavant" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Marcel" dst="St_Antoine" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Marcel" dst="Louis" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Marcel" dst="Julien" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Marcel" dst="St_Paul" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Marcel" dst="Mathematica" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Marcel" dst="LaTeX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Marcel" dst="Sirois" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Marcel" dst="Monique" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Marcel" dst="Audy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Marcel" dst="Bourassa" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Marcel" dst="OHara" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Marcel" dst="Boston" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Marcel" dst="Papineau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Marcel" dst="Fraser" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Marcel" dst="Browne" symmetrical="NO"><link_ctn id="155"/><link_ctn id="152"/></route>
-   <route src="Marcel" dst="SunOS" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Marcel" dst="Varennes" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Marcel" dst="Jacques" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Marcel" dst="Thierry" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Marcel" dst="Lachapelle" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Marcel" dst="kV" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Marcel" dst="Yolande" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Marcel" dst="Pronovost" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Marcel" dst="SPICE" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Marcel" dst="Europe" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Marcel" dst="Roy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Marcel" dst="Amadeus" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Marcel" dst="Intel" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Marcel" dst="Cambridge" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Marcel" dst="Tremblay" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Marcel" dst="UNIX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Marcel" dst="Domey" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Marcel" dst="St_Bruno" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Marcel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Marcel" dst="Doyon" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Marcel" dst="Fafard" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Marcel" dst="Croteau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Marcel" dst="Dodge" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Wright" dst="Jacquelin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="145"/></route>
-   <route src="Wright" dst="Boivin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Wright" dst="Jean_Yves" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Wright" dst="TeX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Wright" dst="Geoff" symmetrical="NO"><link_ctn id="147"/></route>
-   <route src="Wright" dst="Disney" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Wright" dst="iRMX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Wright" dst="McGee" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Wright" dst="Gatien" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Wright" dst="Laroche" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Wright" dst="Tanguay" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Wright" dst="Morin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Wright" dst="Ethernet" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Wright" dst="Bellemarre" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Wright" dst="Kuenning" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Wright" dst="Gaston" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Wright" dst="Harry" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Wright" dst="Bousquet" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Wright" dst="Paul" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Wright" dst="St_Jean" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Wright" dst="Jill" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Wright" dst="Marcel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Wright" dst="Jackson" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Wright" dst="Fernand" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Wright" dst="Soucy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Wright" dst="Ste_Julie" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Wright" dst="Victoria" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Wright" dst="Lessard" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Wright" dst="Florient" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Wright" dst="Marcoux" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Wright" dst="Gavrel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Wright" dst="Bescherelle" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Wright" dst="Pierre" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Wright" dst="Jamie" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Wright" dst="Rubin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="144"/></route>
-   <route src="Wright" dst="Olivier" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Wright" dst="Boucherville" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Wright" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Wright" dst="Kansas" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Wright" dst="King" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Wright" dst="Lapointe" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Wright" dst="Julian" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Wright" dst="Lafontaine" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Wright" dst="Gordon" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Wright" dst="Drouin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Wright" dst="Robert" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Wright" dst="Jocelyne" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Wright" dst="Stephen" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Wright" dst="Provost" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Wright" dst="Juneau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Wright" dst="Casavant" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Wright" dst="St_Antoine" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Wright" dst="Louis" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Wright" dst="Julien" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Wright" dst="St_Paul" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Wright" dst="Mathematica" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Wright" dst="LaTeX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Wright" dst="Sirois" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Wright" dst="Monique" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Wright" dst="Audy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Wright" dst="Bourassa" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Wright" dst="OHara" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Wright" dst="Boston" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Wright" dst="Papineau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Wright" dst="Fraser" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Wright" dst="Browne" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Wright" dst="SunOS" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Wright" dst="Varennes" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Wright" dst="Jacques" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Wright" dst="Thierry" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Wright" dst="Lachapelle" symmetrical="NO"><link_ctn id="147"/><link_ctn id="146"/></route>
-   <route src="Wright" dst="kV" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Wright" dst="Yolande" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Wright" dst="Pronovost" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Wright" dst="SPICE" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Wright" dst="Europe" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Wright" dst="Roy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Wright" dst="Amadeus" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Wright" dst="Intel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Wright" dst="Cambridge" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Wright" dst="Tremblay" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Wright" dst="UNIX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Wright" dst="Domey" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Wright" dst="St_Bruno" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Wright" dst="Jean_Claude" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Wright" dst="Doyon" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Wright" dst="Fafard" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Wright" dst="Croteau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Wright" dst="Dodge" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jackson" dst="Jacquelin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jackson" dst="Boivin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jackson" dst="Jean_Yves" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jackson" dst="TeX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jackson" dst="Geoff" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Jackson" dst="Disney" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jackson" dst="iRMX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jackson" dst="McGee" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jackson" dst="Gatien" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jackson" dst="Laroche" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jackson" dst="Tanguay" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jackson" dst="Morin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jackson" dst="Ethernet" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jackson" dst="Bellemarre" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jackson" dst="Kuenning" symmetrical="NO"><link_ctn id="135"/></route>
-   <route src="Jackson" dst="Gaston" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jackson" dst="Harry" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jackson" dst="Bousquet" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jackson" dst="Paul" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jackson" dst="St_Jean" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jackson" dst="Jill" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jackson" dst="Marcel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jackson" dst="Wright" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jackson" dst="Fernand" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jackson" dst="Soucy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jackson" dst="Ste_Julie" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jackson" dst="Victoria" symmetrical="NO"><link_ctn id="133"/></route>
-   <route src="Jackson" dst="Lessard" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jackson" dst="Florient" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jackson" dst="Marcoux" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jackson" dst="Gavrel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jackson" dst="Bescherelle" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jackson" dst="Pierre" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jackson" dst="Jamie" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jackson" dst="Rubin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jackson" dst="Olivier" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jackson" dst="Boucherville" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jackson" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jackson" dst="Kansas" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jackson" dst="King" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jackson" dst="Lapointe" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jackson" dst="Julian" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jackson" dst="Lafontaine" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jackson" dst="Gordon" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jackson" dst="Drouin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jackson" dst="Robert" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jackson" dst="Jocelyne" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jackson" dst="Stephen" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jackson" dst="Provost" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jackson" dst="Juneau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jackson" dst="Casavant" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jackson" dst="St_Antoine" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Jackson" dst="Louis" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jackson" dst="Julien" symmetrical="NO"><link_ctn id="134"/></route>
-   <route src="Jackson" dst="St_Paul" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jackson" dst="Mathematica" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jackson" dst="LaTeX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jackson" dst="Sirois" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jackson" dst="Monique" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jackson" dst="Audy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jackson" dst="Bourassa" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jackson" dst="OHara" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jackson" dst="Boston" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jackson" dst="Papineau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jackson" dst="Fraser" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jackson" dst="Browne" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jackson" dst="SunOS" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jackson" dst="Varennes" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jackson" dst="Jacques" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jackson" dst="Thierry" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jackson" dst="Lachapelle" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jackson" dst="kV" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jackson" dst="Yolande" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jackson" dst="Pronovost" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jackson" dst="SPICE" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jackson" dst="Europe" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jackson" dst="Roy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jackson" dst="Amadeus" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jackson" dst="Intel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jackson" dst="Cambridge" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jackson" dst="Tremblay" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jackson" dst="UNIX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jackson" dst="Domey" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jackson" dst="St_Bruno" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jackson" dst="Jean_Claude" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jackson" dst="Doyon" symmetrical="NO"><link_ctn id="132"/></route>
-   <route src="Jackson" dst="Fafard" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jackson" dst="Croteau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jackson" dst="Dodge" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Fernand" dst="Jacquelin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fernand" dst="Boivin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fernand" dst="Jean_Yves" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fernand" dst="TeX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fernand" dst="Geoff" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fernand" dst="Disney" symmetrical="NO"><link_ctn id="109"/><link_ctn id="111"/></route>
-   <route src="Fernand" dst="iRMX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fernand" dst="McGee" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fernand" dst="Gatien" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fernand" dst="Laroche" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Fernand" dst="Tanguay" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fernand" dst="Morin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fernand" dst="Ethernet" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fernand" dst="Bellemarre" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Fernand" dst="Kuenning" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fernand" dst="Gaston" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fernand" dst="Harry" symmetrical="NO"><link_ctn id="109"/><link_ctn id="108"/></route>
-   <route src="Fernand" dst="Bousquet" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fernand" dst="Paul" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fernand" dst="St_Jean" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Fernand" dst="Jill" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Fernand" dst="Marcel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fernand" dst="Wright" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fernand" dst="Jackson" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fernand" dst="Soucy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fernand" dst="Ste_Julie" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fernand" dst="Victoria" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fernand" dst="Lessard" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Fernand" dst="Florient" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fernand" dst="Marcoux" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fernand" dst="Gavrel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fernand" dst="Bescherelle" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fernand" dst="Pierre" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fernand" dst="Jamie" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fernand" dst="Rubin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fernand" dst="Olivier" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fernand" dst="Boucherville" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Fernand" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fernand" dst="Kansas" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fernand" dst="King" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fernand" dst="Lapointe" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Fernand" dst="Julian" symmetrical="NO"><link_ctn id="109"/></route>
-   <route src="Fernand" dst="Lafontaine" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fernand" dst="Gordon" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Fernand" dst="Drouin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fernand" dst="Robert" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fernand" dst="Jocelyne" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fernand" dst="Stephen" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fernand" dst="Provost" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fernand" dst="Juneau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fernand" dst="Casavant" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fernand" dst="St_Antoine" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fernand" dst="Louis" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fernand" dst="Julien" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fernand" dst="St_Paul" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fernand" dst="Mathematica" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fernand" dst="LaTeX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Fernand" dst="Sirois" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fernand" dst="Monique" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fernand" dst="Audy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fernand" dst="Bourassa" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fernand" dst="OHara" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fernand" dst="Boston" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fernand" dst="Papineau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fernand" dst="Fraser" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Fernand" dst="Browne" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fernand" dst="SunOS" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fernand" dst="Varennes" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fernand" dst="Jacques" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fernand" dst="Thierry" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fernand" dst="Lachapelle" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fernand" dst="kV" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fernand" dst="Yolande" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fernand" dst="Pronovost" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fernand" dst="SPICE" symmetrical="NO"><link_ctn id="109"/><link_ctn id="110"/></route>
-   <route src="Fernand" dst="Europe" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fernand" dst="Roy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fernand" dst="Amadeus" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fernand" dst="Intel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fernand" dst="Cambridge" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fernand" dst="Tremblay" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fernand" dst="UNIX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fernand" dst="Domey" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fernand" dst="St_Bruno" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fernand" dst="Jean_Claude" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fernand" dst="Doyon" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fernand" dst="Fafard" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Fernand" dst="Croteau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fernand" dst="Dodge" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Soucy" dst="Jacquelin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Soucy" dst="Boivin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Soucy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Soucy" dst="TeX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Soucy" dst="Geoff" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Soucy" dst="Disney" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Soucy" dst="iRMX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Soucy" dst="McGee" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Soucy" dst="Gatien" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Soucy" dst="Laroche" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Soucy" dst="Tanguay" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Soucy" dst="Morin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Soucy" dst="Ethernet" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Soucy" dst="Bellemarre" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Soucy" dst="Kuenning" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Soucy" dst="Gaston" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Soucy" dst="Harry" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Soucy" dst="Bousquet" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Soucy" dst="Paul" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Soucy" dst="St_Jean" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Soucy" dst="Jill" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Soucy" dst="Marcel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Soucy" dst="Wright" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Soucy" dst="Jackson" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Soucy" dst="Fernand" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Soucy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Soucy" dst="Victoria" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Soucy" dst="Lessard" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Soucy" dst="Florient" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Soucy" dst="Marcoux" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Soucy" dst="Gavrel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Soucy" dst="Bescherelle" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Soucy" dst="Pierre" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Soucy" dst="Jamie" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Soucy" dst="Rubin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Soucy" dst="Olivier" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Soucy" dst="Boucherville" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Soucy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Soucy" dst="Kansas" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Soucy" dst="King" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Soucy" dst="Lapointe" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Soucy" dst="Julian" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Soucy" dst="Lafontaine" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Soucy" dst="Gordon" symmetrical="NO"><link_ctn id="191"/></route>
-   <route src="Soucy" dst="Drouin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Soucy" dst="Robert" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Soucy" dst="Jocelyne" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Soucy" dst="Stephen" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Soucy" dst="Provost" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Soucy" dst="Juneau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="189"/></route>
-   <route src="Soucy" dst="Casavant" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Soucy" dst="St_Antoine" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Soucy" dst="Louis" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Soucy" dst="Julien" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Soucy" dst="St_Paul" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Soucy" dst="Mathematica" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Soucy" dst="LaTeX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Soucy" dst="Sirois" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Soucy" dst="Monique" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Soucy" dst="Audy" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Soucy" dst="Bourassa" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Soucy" dst="OHara" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Soucy" dst="Boston" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Soucy" dst="Papineau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Soucy" dst="Fraser" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Soucy" dst="Browne" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Soucy" dst="SunOS" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Soucy" dst="Varennes" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Soucy" dst="Jacques" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Soucy" dst="Thierry" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Soucy" dst="Lachapelle" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Soucy" dst="kV" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Soucy" dst="Yolande" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Soucy" dst="Pronovost" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Soucy" dst="SPICE" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Soucy" dst="Europe" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Soucy" dst="Roy" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Soucy" dst="Amadeus" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Soucy" dst="Intel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Soucy" dst="Cambridge" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Soucy" dst="Tremblay" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Soucy" dst="UNIX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Soucy" dst="Domey" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Soucy" dst="St_Bruno" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Soucy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Soucy" dst="Doyon" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Soucy" dst="Fafard" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Soucy" dst="Croteau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Soucy" dst="Dodge" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Ste_Julie" dst="Jacquelin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Ste_Julie" dst="Boivin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Ste_Julie" dst="Jean_Yves" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Ste_Julie" dst="TeX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Ste_Julie" dst="Geoff" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Ste_Julie" dst="Disney" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Ste_Julie" dst="iRMX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Ste_Julie" dst="McGee" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Ste_Julie" dst="Gatien" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Ste_Julie" dst="Laroche" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Ste_Julie" dst="Tanguay" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Ste_Julie" dst="Morin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Ste_Julie" dst="Ethernet" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Ste_Julie" dst="Bellemarre" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Ste_Julie" dst="Kuenning" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Ste_Julie" dst="Gaston" symmetrical="NO"><link_ctn id="153"/></route>
-   <route src="Ste_Julie" dst="Harry" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Ste_Julie" dst="Bousquet" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Ste_Julie" dst="Paul" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Ste_Julie" dst="St_Jean" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Ste_Julie" dst="Jill" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Ste_Julie" dst="Marcel" symmetrical="NO"><link_ctn id="155"/></route>
-   <route src="Ste_Julie" dst="Wright" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Ste_Julie" dst="Jackson" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Ste_Julie" dst="Fernand" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Ste_Julie" dst="Soucy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Ste_Julie" dst="Victoria" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Ste_Julie" dst="Lessard" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Ste_Julie" dst="Florient" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Ste_Julie" dst="Marcoux" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Ste_Julie" dst="Gavrel" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Ste_Julie" dst="Bescherelle" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Ste_Julie" dst="Pierre" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Ste_Julie" dst="Jamie" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Ste_Julie" dst="Rubin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Ste_Julie" dst="Olivier" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Ste_Julie" dst="Boucherville" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Ste_Julie" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Ste_Julie" dst="Kansas" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Ste_Julie" dst="King" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Ste_Julie" dst="Lapointe" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Ste_Julie" dst="Julian" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Ste_Julie" dst="Lafontaine" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Ste_Julie" dst="Gordon" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Ste_Julie" dst="Drouin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Ste_Julie" dst="Robert" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Ste_Julie" dst="Jocelyne" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Ste_Julie" dst="Stephen" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Ste_Julie" dst="Provost" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Ste_Julie" dst="Juneau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Ste_Julie" dst="Casavant" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Ste_Julie" dst="St_Antoine" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Ste_Julie" dst="Louis" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Ste_Julie" dst="Julien" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Ste_Julie" dst="St_Paul" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Ste_Julie" dst="Mathematica" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Ste_Julie" dst="LaTeX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Ste_Julie" dst="Sirois" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Ste_Julie" dst="Monique" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Ste_Julie" dst="Audy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Ste_Julie" dst="Bourassa" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Ste_Julie" dst="OHara" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Ste_Julie" dst="Boston" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Ste_Julie" dst="Papineau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Ste_Julie" dst="Fraser" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Ste_Julie" dst="Browne" symmetrical="NO"><link_ctn id="152"/></route>
-   <route src="Ste_Julie" dst="SunOS" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Ste_Julie" dst="Varennes" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Ste_Julie" dst="Jacques" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Ste_Julie" dst="Thierry" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Ste_Julie" dst="Lachapelle" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Ste_Julie" dst="kV" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Ste_Julie" dst="Yolande" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Ste_Julie" dst="Pronovost" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Ste_Julie" dst="SPICE" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Ste_Julie" dst="Europe" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Ste_Julie" dst="Roy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Ste_Julie" dst="Amadeus" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Ste_Julie" dst="Intel" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Ste_Julie" dst="Cambridge" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Ste_Julie" dst="Tremblay" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Ste_Julie" dst="UNIX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Ste_Julie" dst="Domey" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Ste_Julie" dst="St_Bruno" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Ste_Julie" dst="Jean_Claude" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Ste_Julie" dst="Doyon" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Ste_Julie" dst="Fafard" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Ste_Julie" dst="Croteau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Ste_Julie" dst="Dodge" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Victoria" dst="Jacquelin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Victoria" dst="Boivin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Victoria" dst="Jean_Yves" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Victoria" dst="TeX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Victoria" dst="Geoff" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Victoria" dst="Disney" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Victoria" dst="iRMX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Victoria" dst="McGee" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Victoria" dst="Gatien" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Victoria" dst="Laroche" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Victoria" dst="Tanguay" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Victoria" dst="Morin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Victoria" dst="Ethernet" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Victoria" dst="Bellemarre" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Victoria" dst="Kuenning" symmetrical="NO"><link_ctn id="133"/><link_ctn id="135"/></route>
-   <route src="Victoria" dst="Gaston" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Victoria" dst="Harry" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Victoria" dst="Bousquet" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Victoria" dst="Paul" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Victoria" dst="St_Jean" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Victoria" dst="Jill" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Victoria" dst="Marcel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Victoria" dst="Wright" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Victoria" dst="Jackson" symmetrical="NO"><link_ctn id="133"/></route>
-   <route src="Victoria" dst="Fernand" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Victoria" dst="Soucy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Victoria" dst="Ste_Julie" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Victoria" dst="Lessard" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Victoria" dst="Florient" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Victoria" dst="Marcoux" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Victoria" dst="Gavrel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Victoria" dst="Bescherelle" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Victoria" dst="Pierre" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Victoria" dst="Jamie" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Victoria" dst="Rubin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Victoria" dst="Olivier" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Victoria" dst="Boucherville" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Victoria" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Victoria" dst="Kansas" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Victoria" dst="King" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Victoria" dst="Lapointe" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Victoria" dst="Julian" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Victoria" dst="Lafontaine" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Victoria" dst="Gordon" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Victoria" dst="Drouin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Victoria" dst="Robert" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Victoria" dst="Jocelyne" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Victoria" dst="Stephen" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Victoria" dst="Provost" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Victoria" dst="Juneau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Victoria" dst="Casavant" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Victoria" dst="St_Antoine" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Victoria" dst="Louis" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Victoria" dst="Julien" symmetrical="NO"><link_ctn id="133"/><link_ctn id="134"/></route>
-   <route src="Victoria" dst="St_Paul" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Victoria" dst="Mathematica" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Victoria" dst="LaTeX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Victoria" dst="Sirois" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Victoria" dst="Monique" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Victoria" dst="Audy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Victoria" dst="Bourassa" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Victoria" dst="OHara" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Victoria" dst="Boston" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Victoria" dst="Papineau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Victoria" dst="Fraser" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Victoria" dst="Browne" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Victoria" dst="SunOS" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Victoria" dst="Varennes" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Victoria" dst="Jacques" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Victoria" dst="Thierry" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Victoria" dst="Lachapelle" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Victoria" dst="kV" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Victoria" dst="Yolande" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Victoria" dst="Pronovost" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Victoria" dst="SPICE" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Victoria" dst="Europe" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Victoria" dst="Roy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Victoria" dst="Amadeus" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Victoria" dst="Intel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Victoria" dst="Cambridge" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Victoria" dst="Tremblay" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Victoria" dst="UNIX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Victoria" dst="Domey" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Victoria" dst="St_Bruno" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Victoria" dst="Jean_Claude" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Victoria" dst="Doyon" symmetrical="NO"><link_ctn id="133"/><link_ctn id="132"/></route>
-   <route src="Victoria" dst="Fafard" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Victoria" dst="Croteau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Victoria" dst="Dodge" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lessard" dst="Jacquelin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lessard" dst="Boivin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lessard" dst="Jean_Yves" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lessard" dst="TeX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lessard" dst="Geoff" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Lessard" dst="Disney" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lessard" dst="iRMX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lessard" dst="McGee" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lessard" dst="Gatien" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lessard" dst="Laroche" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lessard" dst="Tanguay" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lessard" dst="Morin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lessard" dst="Ethernet" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lessard" dst="Bellemarre" symmetrical="NO"><link_ctn id="99"/></route>
-   <route src="Lessard" dst="Kuenning" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lessard" dst="Gaston" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lessard" dst="Harry" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lessard" dst="Bousquet" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lessard" dst="Paul" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lessard" dst="St_Jean" symmetrical="NO"><link_ctn id="99"/><link_ctn id="97"/></route>
-   <route src="Lessard" dst="Jill" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lessard" dst="Marcel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lessard" dst="Wright" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lessard" dst="Jackson" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lessard" dst="Fernand" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lessard" dst="Soucy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lessard" dst="Ste_Julie" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lessard" dst="Victoria" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lessard" dst="Florient" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lessard" dst="Marcoux" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lessard" dst="Gavrel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lessard" dst="Bescherelle" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lessard" dst="Pierre" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lessard" dst="Jamie" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lessard" dst="Rubin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lessard" dst="Olivier" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lessard" dst="Boucherville" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lessard" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lessard" dst="Kansas" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lessard" dst="King" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lessard" dst="Lapointe" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lessard" dst="Julian" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lessard" dst="Lafontaine" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lessard" dst="Gordon" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lessard" dst="Drouin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lessard" dst="Robert" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lessard" dst="Jocelyne" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lessard" dst="Stephen" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lessard" dst="Provost" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lessard" dst="Juneau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lessard" dst="Casavant" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lessard" dst="St_Antoine" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lessard" dst="Louis" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lessard" dst="Julien" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lessard" dst="St_Paul" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lessard" dst="Mathematica" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lessard" dst="LaTeX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lessard" dst="Sirois" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lessard" dst="Monique" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lessard" dst="Audy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lessard" dst="Bourassa" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lessard" dst="OHara" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lessard" dst="Boston" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lessard" dst="Papineau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lessard" dst="Fraser" symmetrical="NO"><link_ctn id="99"/><link_ctn id="96"/></route>
-   <route src="Lessard" dst="Browne" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lessard" dst="SunOS" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lessard" dst="Varennes" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lessard" dst="Jacques" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lessard" dst="Thierry" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lessard" dst="Lachapelle" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lessard" dst="kV" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Lessard" dst="Yolande" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lessard" dst="Pronovost" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lessard" dst="SPICE" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lessard" dst="Europe" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lessard" dst="Roy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lessard" dst="Amadeus" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lessard" dst="Intel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lessard" dst="Cambridge" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lessard" dst="Tremblay" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lessard" dst="UNIX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lessard" dst="Domey" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lessard" dst="St_Bruno" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lessard" dst="Jean_Claude" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lessard" dst="Doyon" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lessard" dst="Fafard" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lessard" dst="Croteau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lessard" dst="Dodge" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Florient" dst="Jacquelin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Florient" dst="Boivin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Florient" dst="Jean_Yves" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Florient" dst="TeX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Florient" dst="Geoff" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Florient" dst="Disney" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Florient" dst="iRMX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Florient" dst="McGee" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Florient" dst="Gatien" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Florient" dst="Laroche" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Florient" dst="Tanguay" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Florient" dst="Morin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Florient" dst="Ethernet" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Florient" dst="Bellemarre" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Florient" dst="Kuenning" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Florient" dst="Gaston" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Florient" dst="Harry" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Florient" dst="Bousquet" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Florient" dst="Paul" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Florient" dst="St_Jean" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Florient" dst="Jill" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Florient" dst="Marcel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Florient" dst="Wright" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Florient" dst="Jackson" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Florient" dst="Fernand" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Florient" dst="Soucy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Florient" dst="Ste_Julie" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Florient" dst="Victoria" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Florient" dst="Lessard" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Florient" dst="Marcoux" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Florient" dst="Gavrel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Florient" dst="Bescherelle" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Florient" dst="Pierre" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Florient" dst="Jamie" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Florient" dst="Rubin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Florient" dst="Olivier" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Florient" dst="Boucherville" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Florient" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Florient" dst="Kansas" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Florient" dst="King" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Florient" dst="Lapointe" symmetrical="NO"><link_ctn id="181"/></route>
-   <route src="Florient" dst="Julian" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Florient" dst="Lafontaine" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Florient" dst="Gordon" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Florient" dst="Drouin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Florient" dst="Robert" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Florient" dst="Jocelyne" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Florient" dst="Stephen" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Florient" dst="Provost" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Florient" dst="Juneau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Florient" dst="Casavant" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Florient" dst="St_Antoine" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Florient" dst="Louis" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Florient" dst="Julien" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Florient" dst="St_Paul" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Florient" dst="Mathematica" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Florient" dst="LaTeX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Florient" dst="Sirois" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Florient" dst="Monique" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Florient" dst="Audy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="183"/></route>
-   <route src="Florient" dst="Bourassa" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Florient" dst="OHara" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Florient" dst="Boston" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Florient" dst="Papineau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="182"/></route>
-   <route src="Florient" dst="Fraser" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Florient" dst="Browne" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Florient" dst="SunOS" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Florient" dst="Varennes" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Florient" dst="Jacques" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Florient" dst="Thierry" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Florient" dst="Lachapelle" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Florient" dst="kV" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Florient" dst="Yolande" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Florient" dst="Pronovost" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Florient" dst="SPICE" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Florient" dst="Europe" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Florient" dst="Roy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Florient" dst="Amadeus" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Florient" dst="Intel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Florient" dst="Cambridge" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Florient" dst="Tremblay" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Florient" dst="UNIX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Florient" dst="Domey" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Florient" dst="St_Bruno" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Florient" dst="Jean_Claude" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Florient" dst="Doyon" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Florient" dst="Fafard" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Florient" dst="Croteau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Florient" dst="Dodge" symmetrical="NO"><link_ctn id="181"/><link_ctn id="180"/></route>
-   <route src="Marcoux" dst="Jacquelin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Marcoux" dst="Boivin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Marcoux" dst="Jean_Yves" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Marcoux" dst="TeX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Marcoux" dst="Geoff" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Marcoux" dst="Disney" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Marcoux" dst="iRMX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Marcoux" dst="McGee" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Marcoux" dst="Gatien" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Marcoux" dst="Laroche" symmetrical="NO"><link_ctn id="186"/></route>
-   <route src="Marcoux" dst="Tanguay" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Marcoux" dst="Morin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Marcoux" dst="Ethernet" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Marcoux" dst="Bellemarre" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Marcoux" dst="Kuenning" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Marcoux" dst="Gaston" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Marcoux" dst="Harry" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Marcoux" dst="Bousquet" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Marcoux" dst="Paul" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Marcoux" dst="St_Jean" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Marcoux" dst="Jill" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Marcoux" dst="Marcel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Marcoux" dst="Wright" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Marcoux" dst="Jackson" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Marcoux" dst="Fernand" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Marcoux" dst="Soucy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Marcoux" dst="Ste_Julie" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Marcoux" dst="Victoria" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Marcoux" dst="Lessard" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Marcoux" dst="Florient" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Marcoux" dst="Gavrel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Marcoux" dst="Bescherelle" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Marcoux" dst="Pierre" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Marcoux" dst="Jamie" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Marcoux" dst="Rubin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Marcoux" dst="Olivier" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Marcoux" dst="Boucherville" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Marcoux" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="186"/><link_ctn id="184"/></route>
-   <route src="Marcoux" dst="Kansas" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Marcoux" dst="King" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Marcoux" dst="Lapointe" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Marcoux" dst="Julian" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Marcoux" dst="Lafontaine" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Marcoux" dst="Gordon" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Marcoux" dst="Drouin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Marcoux" dst="Robert" symmetrical="NO"><link_ctn id="186"/><link_ctn id="187"/></route>
-   <route src="Marcoux" dst="Jocelyne" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Marcoux" dst="Stephen" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Marcoux" dst="Provost" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Marcoux" dst="Juneau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Marcoux" dst="Casavant" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Marcoux" dst="St_Antoine" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Marcoux" dst="Louis" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Marcoux" dst="Julien" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Marcoux" dst="St_Paul" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Marcoux" dst="Mathematica" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Marcoux" dst="LaTeX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Marcoux" dst="Sirois" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Marcoux" dst="Monique" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Marcoux" dst="Audy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Marcoux" dst="Bourassa" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Marcoux" dst="OHara" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Marcoux" dst="Boston" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Marcoux" dst="Papineau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Marcoux" dst="Fraser" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Marcoux" dst="Browne" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Marcoux" dst="SunOS" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Marcoux" dst="Varennes" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Marcoux" dst="Jacques" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Marcoux" dst="Thierry" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Marcoux" dst="Lachapelle" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Marcoux" dst="kV" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Marcoux" dst="Yolande" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Marcoux" dst="Pronovost" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Marcoux" dst="SPICE" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Marcoux" dst="Europe" symmetrical="NO"><link_ctn id="186"/><link_ctn id="185"/></route>
-   <route src="Marcoux" dst="Roy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Marcoux" dst="Amadeus" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Marcoux" dst="Intel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Marcoux" dst="Cambridge" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Marcoux" dst="Tremblay" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Marcoux" dst="UNIX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Marcoux" dst="Domey" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Marcoux" dst="St_Bruno" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Marcoux" dst="Jean_Claude" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Marcoux" dst="Doyon" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Marcoux" dst="Fafard" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Marcoux" dst="Croteau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Marcoux" dst="Dodge" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gavrel" dst="Jacquelin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gavrel" dst="Boivin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gavrel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gavrel" dst="TeX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gavrel" dst="Geoff" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gavrel" dst="Disney" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gavrel" dst="iRMX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gavrel" dst="McGee" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gavrel" dst="Gatien" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gavrel" dst="Laroche" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gavrel" dst="Tanguay" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gavrel" dst="Morin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gavrel" dst="Ethernet" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gavrel" dst="Bellemarre" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gavrel" dst="Kuenning" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gavrel" dst="Gaston" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gavrel" dst="Harry" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gavrel" dst="Bousquet" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gavrel" dst="Paul" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gavrel" dst="St_Jean" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gavrel" dst="Jill" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gavrel" dst="Marcel" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gavrel" dst="Wright" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gavrel" dst="Jackson" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gavrel" dst="Fernand" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gavrel" dst="Soucy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gavrel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gavrel" dst="Victoria" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gavrel" dst="Lessard" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gavrel" dst="Florient" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gavrel" dst="Marcoux" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gavrel" dst="Bescherelle" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gavrel" dst="Pierre" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gavrel" dst="Jamie" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gavrel" dst="Rubin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gavrel" dst="Olivier" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gavrel" dst="Boucherville" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gavrel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gavrel" dst="Kansas" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gavrel" dst="King" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gavrel" dst="Lapointe" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gavrel" dst="Julian" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gavrel" dst="Lafontaine" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gavrel" dst="Gordon" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gavrel" dst="Drouin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gavrel" dst="Robert" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gavrel" dst="Jocelyne" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gavrel" dst="Stephen" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gavrel" dst="Provost" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gavrel" dst="Juneau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gavrel" dst="Casavant" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gavrel" dst="St_Antoine" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gavrel" dst="Louis" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gavrel" dst="Julien" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gavrel" dst="St_Paul" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gavrel" dst="Mathematica" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gavrel" dst="LaTeX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gavrel" dst="Sirois" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gavrel" dst="Monique" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gavrel" dst="Audy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gavrel" dst="Bourassa" symmetrical="NO"><link_ctn id="148"/><link_ctn id="150"/></route>
-   <route src="Gavrel" dst="OHara" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gavrel" dst="Boston" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gavrel" dst="Papineau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gavrel" dst="Fraser" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gavrel" dst="Browne" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gavrel" dst="SunOS" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gavrel" dst="Varennes" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gavrel" dst="Jacques" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gavrel" dst="Thierry" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gavrel" dst="Lachapelle" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gavrel" dst="kV" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gavrel" dst="Yolande" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gavrel" dst="Pronovost" symmetrical="NO"><link_ctn id="148"/><link_ctn id="151"/></route>
-   <route src="Gavrel" dst="SPICE" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gavrel" dst="Europe" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gavrel" dst="Roy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gavrel" dst="Amadeus" symmetrical="NO"><link_ctn id="148"/></route>
-   <route src="Gavrel" dst="Intel" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gavrel" dst="Cambridge" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gavrel" dst="Tremblay" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gavrel" dst="UNIX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gavrel" dst="Domey" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gavrel" dst="St_Bruno" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gavrel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gavrel" dst="Doyon" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gavrel" dst="Fafard" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gavrel" dst="Croteau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gavrel" dst="Dodge" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bescherelle" dst="Jacquelin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bescherelle" dst="Boivin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bescherelle" dst="Jean_Yves" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bescherelle" dst="TeX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bescherelle" dst="Geoff" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bescherelle" dst="Disney" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bescherelle" dst="iRMX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bescherelle" dst="McGee" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bescherelle" dst="Gatien" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bescherelle" dst="Laroche" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bescherelle" dst="Tanguay" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bescherelle" dst="Morin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bescherelle" dst="Ethernet" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bescherelle" dst="Bellemarre" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bescherelle" dst="Kuenning" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bescherelle" dst="Gaston" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bescherelle" dst="Harry" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bescherelle" dst="Bousquet" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bescherelle" dst="Paul" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bescherelle" dst="St_Jean" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bescherelle" dst="Jill" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bescherelle" dst="Marcel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bescherelle" dst="Wright" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bescherelle" dst="Jackson" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bescherelle" dst="Fernand" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bescherelle" dst="Soucy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bescherelle" dst="Ste_Julie" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bescherelle" dst="Victoria" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bescherelle" dst="Lessard" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bescherelle" dst="Florient" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bescherelle" dst="Marcoux" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bescherelle" dst="Gavrel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bescherelle" dst="Pierre" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bescherelle" dst="Jamie" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bescherelle" dst="Rubin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bescherelle" dst="Olivier" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bescherelle" dst="Boucherville" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bescherelle" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bescherelle" dst="Kansas" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bescherelle" dst="King" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bescherelle" dst="Lapointe" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bescherelle" dst="Julian" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bescherelle" dst="Lafontaine" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bescherelle" dst="Gordon" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bescherelle" dst="Drouin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bescherelle" dst="Robert" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bescherelle" dst="Jocelyne" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bescherelle" dst="Stephen" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bescherelle" dst="Provost" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bescherelle" dst="Juneau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bescherelle" dst="Casavant" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bescherelle" dst="St_Antoine" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bescherelle" dst="Louis" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bescherelle" dst="Julien" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bescherelle" dst="St_Paul" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bescherelle" dst="Mathematica" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bescherelle" dst="LaTeX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bescherelle" dst="Sirois" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bescherelle" dst="Monique" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bescherelle" dst="Audy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bescherelle" dst="Bourassa" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bescherelle" dst="OHara" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bescherelle" dst="Boston" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bescherelle" dst="Papineau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bescherelle" dst="Fraser" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bescherelle" dst="Browne" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bescherelle" dst="SunOS" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bescherelle" dst="Varennes" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bescherelle" dst="Jacques" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bescherelle" dst="Thierry" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bescherelle" dst="Lachapelle" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bescherelle" dst="kV" symmetrical="NO"><link_ctn id="140"/></route>
-   <route src="Bescherelle" dst="Yolande" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bescherelle" dst="Pronovost" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bescherelle" dst="SPICE" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bescherelle" dst="Europe" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bescherelle" dst="Roy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bescherelle" dst="Amadeus" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bescherelle" dst="Intel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="141"/></route>
-   <route src="Bescherelle" dst="Cambridge" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bescherelle" dst="Tremblay" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bescherelle" dst="UNIX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bescherelle" dst="Domey" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bescherelle" dst="St_Bruno" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bescherelle" dst="Jean_Claude" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bescherelle" dst="Doyon" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bescherelle" dst="Fafard" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bescherelle" dst="Croteau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bescherelle" dst="Dodge" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pierre" dst="Jacquelin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pierre" dst="Boivin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pierre" dst="Jean_Yves" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pierre" dst="TeX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pierre" dst="Geoff" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pierre" dst="Disney" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pierre" dst="iRMX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pierre" dst="McGee" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pierre" dst="Gatien" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pierre" dst="Laroche" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Pierre" dst="Tanguay" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pierre" dst="Morin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pierre" dst="Ethernet" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pierre" dst="Bellemarre" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pierre" dst="Kuenning" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pierre" dst="Gaston" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pierre" dst="Harry" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pierre" dst="Bousquet" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pierre" dst="Paul" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pierre" dst="St_Jean" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pierre" dst="Jill" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pierre" dst="Marcel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pierre" dst="Wright" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pierre" dst="Jackson" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pierre" dst="Fernand" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pierre" dst="Soucy" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pierre" dst="Ste_Julie" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pierre" dst="Victoria" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pierre" dst="Lessard" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pierre" dst="Florient" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pierre" dst="Marcoux" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Pierre" dst="Gavrel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Pierre" dst="Bescherelle" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pierre" dst="Jamie" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pierre" dst="Rubin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pierre" dst="Olivier" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pierre" dst="Boucherville" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pierre" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Pierre" dst="Kansas" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pierre" dst="King" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pierre" dst="Lapointe" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Pierre" dst="Julian" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pierre" dst="Lafontaine" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pierre" dst="Gordon" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Pierre" dst="Drouin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pierre" dst="Robert" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Pierre" dst="Jocelyne" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pierre" dst="Stephen" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pierre" dst="Provost" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pierre" dst="Juneau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pierre" dst="Casavant" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pierre" dst="St_Antoine" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pierre" dst="Louis" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pierre" dst="Julien" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pierre" dst="St_Paul" symmetrical="NO"><link_ctn id="167"/><link_ctn id="165"/></route>
-   <route src="Pierre" dst="Mathematica" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pierre" dst="LaTeX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pierre" dst="Sirois" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pierre" dst="Monique" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pierre" dst="Audy" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pierre" dst="Bourassa" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Pierre" dst="OHara" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pierre" dst="Boston" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pierre" dst="Papineau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pierre" dst="Fraser" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pierre" dst="Browne" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pierre" dst="SunOS" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pierre" dst="Varennes" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pierre" dst="Jacques" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pierre" dst="Thierry" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pierre" dst="Lachapelle" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pierre" dst="kV" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pierre" dst="Yolande" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pierre" dst="Pronovost" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Pierre" dst="SPICE" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pierre" dst="Europe" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Pierre" dst="Roy" symmetrical="NO"><link_ctn id="167"/></route>
-   <route src="Pierre" dst="Amadeus" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Pierre" dst="Intel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pierre" dst="Cambridge" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pierre" dst="Tremblay" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pierre" dst="UNIX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pierre" dst="Domey" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pierre" dst="St_Bruno" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pierre" dst="Jean_Claude" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pierre" dst="Doyon" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pierre" dst="Fafard" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pierre" dst="Croteau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pierre" dst="Dodge" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jamie" dst="Jacquelin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jamie" dst="Boivin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Jamie" dst="Jean_Yves" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jamie" dst="TeX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jamie" dst="Geoff" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jamie" dst="Disney" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jamie" dst="iRMX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jamie" dst="McGee" symmetrical="NO"><link_ctn id="120"/></route>
-   <route src="Jamie" dst="Gatien" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jamie" dst="Laroche" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jamie" dst="Tanguay" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jamie" dst="Morin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jamie" dst="Ethernet" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jamie" dst="Bellemarre" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jamie" dst="Kuenning" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jamie" dst="Gaston" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jamie" dst="Harry" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jamie" dst="Bousquet" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jamie" dst="Paul" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jamie" dst="St_Jean" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jamie" dst="Jill" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jamie" dst="Marcel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jamie" dst="Wright" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jamie" dst="Jackson" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jamie" dst="Fernand" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jamie" dst="Soucy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jamie" dst="Ste_Julie" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jamie" dst="Victoria" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jamie" dst="Lessard" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jamie" dst="Florient" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jamie" dst="Marcoux" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jamie" dst="Gavrel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jamie" dst="Bescherelle" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jamie" dst="Pierre" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jamie" dst="Rubin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jamie" dst="Olivier" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jamie" dst="Boucherville" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jamie" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jamie" dst="Kansas" symmetrical="NO"><link_ctn id="120"/><link_ctn id="122"/></route>
-   <route src="Jamie" dst="King" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jamie" dst="Lapointe" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jamie" dst="Julian" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jamie" dst="Lafontaine" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jamie" dst="Gordon" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jamie" dst="Drouin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="123"/></route>
-   <route src="Jamie" dst="Robert" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jamie" dst="Jocelyne" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jamie" dst="Stephen" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jamie" dst="Provost" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jamie" dst="Juneau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jamie" dst="Casavant" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jamie" dst="St_Antoine" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jamie" dst="Louis" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jamie" dst="Julien" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jamie" dst="St_Paul" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jamie" dst="Mathematica" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jamie" dst="LaTeX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jamie" dst="Sirois" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jamie" dst="Monique" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jamie" dst="Audy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jamie" dst="Bourassa" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jamie" dst="OHara" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jamie" dst="Boston" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jamie" dst="Papineau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jamie" dst="Fraser" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jamie" dst="Browne" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jamie" dst="SunOS" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jamie" dst="Varennes" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jamie" dst="Jacques" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jamie" dst="Thierry" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jamie" dst="Lachapelle" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jamie" dst="kV" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jamie" dst="Yolande" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jamie" dst="Pronovost" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jamie" dst="SPICE" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jamie" dst="Europe" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jamie" dst="Roy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jamie" dst="Amadeus" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jamie" dst="Intel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jamie" dst="Cambridge" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jamie" dst="Tremblay" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jamie" dst="UNIX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jamie" dst="Domey" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Jamie" dst="St_Bruno" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jamie" dst="Jean_Claude" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jamie" dst="Doyon" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jamie" dst="Fafard" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jamie" dst="Croteau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jamie" dst="Dodge" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Rubin" dst="Jacquelin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="145"/></route>
-   <route src="Rubin" dst="Boivin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Rubin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Rubin" dst="TeX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Rubin" dst="Geoff" symmetrical="NO"><link_ctn id="144"/></route>
-   <route src="Rubin" dst="Disney" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Rubin" dst="iRMX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Rubin" dst="McGee" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Rubin" dst="Gatien" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Rubin" dst="Laroche" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Rubin" dst="Tanguay" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Rubin" dst="Morin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Rubin" dst="Ethernet" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Rubin" dst="Bellemarre" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Rubin" dst="Kuenning" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Rubin" dst="Gaston" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Rubin" dst="Harry" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Rubin" dst="Bousquet" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Rubin" dst="Paul" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Rubin" dst="St_Jean" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Rubin" dst="Jill" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Rubin" dst="Marcel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Rubin" dst="Wright" symmetrical="NO"><link_ctn id="144"/><link_ctn id="147"/></route>
-   <route src="Rubin" dst="Jackson" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Rubin" dst="Fernand" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Rubin" dst="Soucy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Rubin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Rubin" dst="Victoria" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Rubin" dst="Lessard" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Rubin" dst="Florient" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Rubin" dst="Marcoux" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Rubin" dst="Gavrel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Rubin" dst="Bescherelle" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Rubin" dst="Pierre" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Rubin" dst="Jamie" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Rubin" dst="Olivier" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Rubin" dst="Boucherville" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Rubin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Rubin" dst="Kansas" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Rubin" dst="King" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Rubin" dst="Lapointe" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Rubin" dst="Julian" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Rubin" dst="Lafontaine" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Rubin" dst="Gordon" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Rubin" dst="Drouin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Rubin" dst="Robert" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Rubin" dst="Jocelyne" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Rubin" dst="Stephen" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Rubin" dst="Provost" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Rubin" dst="Juneau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Rubin" dst="Casavant" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Rubin" dst="St_Antoine" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Rubin" dst="Louis" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Rubin" dst="Julien" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Rubin" dst="St_Paul" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Rubin" dst="Mathematica" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Rubin" dst="LaTeX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Rubin" dst="Sirois" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Rubin" dst="Monique" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Rubin" dst="Audy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Rubin" dst="Bourassa" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Rubin" dst="OHara" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Rubin" dst="Boston" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Rubin" dst="Papineau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Rubin" dst="Fraser" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Rubin" dst="Browne" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Rubin" dst="SunOS" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Rubin" dst="Varennes" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Rubin" dst="Jacques" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Rubin" dst="Thierry" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Rubin" dst="Lachapelle" symmetrical="NO"><link_ctn id="144"/><link_ctn id="146"/></route>
-   <route src="Rubin" dst="kV" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Rubin" dst="Yolande" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Rubin" dst="Pronovost" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Rubin" dst="SPICE" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Rubin" dst="Europe" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Rubin" dst="Roy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Rubin" dst="Amadeus" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Rubin" dst="Intel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Rubin" dst="Cambridge" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Rubin" dst="Tremblay" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Rubin" dst="UNIX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Rubin" dst="Domey" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Rubin" dst="St_Bruno" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Rubin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Rubin" dst="Doyon" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Rubin" dst="Fafard" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Rubin" dst="Croteau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Rubin" dst="Dodge" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Olivier" dst="Jacquelin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Olivier" dst="Boivin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Olivier" dst="Jean_Yves" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Olivier" dst="TeX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Olivier" dst="Geoff" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Olivier" dst="Disney" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Olivier" dst="iRMX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Olivier" dst="McGee" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Olivier" dst="Gatien" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Olivier" dst="Laroche" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Olivier" dst="Tanguay" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Olivier" dst="Morin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Olivier" dst="Ethernet" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Olivier" dst="Bellemarre" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Olivier" dst="Kuenning" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Olivier" dst="Gaston" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Olivier" dst="Harry" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Olivier" dst="Bousquet" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Olivier" dst="Paul" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Olivier" dst="St_Jean" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Olivier" dst="Jill" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Olivier" dst="Marcel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Olivier" dst="Wright" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Olivier" dst="Jackson" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Olivier" dst="Fernand" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Olivier" dst="Soucy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Olivier" dst="Ste_Julie" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Olivier" dst="Victoria" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Olivier" dst="Lessard" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Olivier" dst="Florient" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Olivier" dst="Marcoux" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Olivier" dst="Gavrel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Olivier" dst="Bescherelle" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Olivier" dst="Pierre" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Olivier" dst="Jamie" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Olivier" dst="Rubin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Olivier" dst="Boucherville" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Olivier" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Olivier" dst="Kansas" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Olivier" dst="King" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Olivier" dst="Lapointe" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Olivier" dst="Julian" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Olivier" dst="Lafontaine" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Olivier" dst="Gordon" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Olivier" dst="Drouin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Olivier" dst="Robert" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Olivier" dst="Jocelyne" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Olivier" dst="Stephen" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Olivier" dst="Provost" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Olivier" dst="Juneau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Olivier" dst="Casavant" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Olivier" dst="St_Antoine" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Olivier" dst="Louis" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Olivier" dst="Julien" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Olivier" dst="St_Paul" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Olivier" dst="Mathematica" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Olivier" dst="LaTeX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Olivier" dst="Sirois" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Olivier" dst="Monique" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Olivier" dst="Audy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Olivier" dst="Bourassa" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Olivier" dst="OHara" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Olivier" dst="Boston" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Olivier" dst="Papineau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Olivier" dst="Fraser" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Olivier" dst="Browne" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Olivier" dst="SunOS" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Olivier" dst="Varennes" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Olivier" dst="Jacques" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Olivier" dst="Thierry" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Olivier" dst="Lachapelle" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Olivier" dst="kV" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Olivier" dst="Yolande" symmetrical="NO"><link_ctn id="171"/><link_ctn id="168"/></route>
-   <route src="Olivier" dst="Pronovost" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Olivier" dst="SPICE" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Olivier" dst="Europe" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Olivier" dst="Roy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Olivier" dst="Amadeus" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Olivier" dst="Intel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Olivier" dst="Cambridge" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Olivier" dst="Tremblay" symmetrical="NO"><link_ctn id="171"/><link_ctn id="170"/></route>
-   <route src="Olivier" dst="UNIX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Olivier" dst="Domey" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Olivier" dst="St_Bruno" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Olivier" dst="Jean_Claude" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Olivier" dst="Doyon" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Olivier" dst="Fafard" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Olivier" dst="Croteau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Olivier" dst="Dodge" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boucherville" dst="Jacquelin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boucherville" dst="Boivin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Boucherville" dst="Jean_Yves" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boucherville" dst="TeX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boucherville" dst="Geoff" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boucherville" dst="Disney" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boucherville" dst="iRMX" symmetrical="NO"><link_ctn id="172"/></route>
-   <route src="Boucherville" dst="McGee" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boucherville" dst="Gatien" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boucherville" dst="Laroche" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Boucherville" dst="Tanguay" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boucherville" dst="Morin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boucherville" dst="Ethernet" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Boucherville" dst="Bellemarre" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boucherville" dst="Kuenning" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boucherville" dst="Gaston" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boucherville" dst="Harry" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boucherville" dst="Bousquet" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boucherville" dst="Paul" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Boucherville" dst="St_Jean" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boucherville" dst="Jill" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Boucherville" dst="Marcel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boucherville" dst="Wright" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boucherville" dst="Jackson" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boucherville" dst="Fernand" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boucherville" dst="Soucy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boucherville" dst="Ste_Julie" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boucherville" dst="Victoria" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boucherville" dst="Lessard" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boucherville" dst="Florient" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boucherville" dst="Marcoux" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boucherville" dst="Gavrel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boucherville" dst="Bescherelle" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boucherville" dst="Pierre" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boucherville" dst="Jamie" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boucherville" dst="Rubin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boucherville" dst="Olivier" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boucherville" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boucherville" dst="Kansas" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boucherville" dst="King" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boucherville" dst="Lapointe" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Boucherville" dst="Julian" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boucherville" dst="Lafontaine" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boucherville" dst="Gordon" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Boucherville" dst="Drouin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boucherville" dst="Robert" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boucherville" dst="Jocelyne" symmetrical="NO"><link_ctn id="173"/></route>
-   <route src="Boucherville" dst="Stephen" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boucherville" dst="Provost" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boucherville" dst="Juneau" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boucherville" dst="Casavant" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Boucherville" dst="St_Antoine" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boucherville" dst="Louis" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Boucherville" dst="Julien" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boucherville" dst="St_Paul" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boucherville" dst="Mathematica" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boucherville" dst="LaTeX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boucherville" dst="Sirois" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boucherville" dst="Monique" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boucherville" dst="Audy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boucherville" dst="Bourassa" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boucherville" dst="OHara" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boucherville" dst="Boston" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Boucherville" dst="Papineau" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boucherville" dst="Fraser" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boucherville" dst="Browne" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boucherville" dst="SunOS" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boucherville" dst="Varennes" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boucherville" dst="Jacques" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boucherville" dst="Thierry" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boucherville" dst="Lachapelle" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boucherville" dst="kV" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boucherville" dst="Yolande" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boucherville" dst="Pronovost" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boucherville" dst="SPICE" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boucherville" dst="Europe" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boucherville" dst="Roy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boucherville" dst="Amadeus" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boucherville" dst="Intel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boucherville" dst="Cambridge" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boucherville" dst="Tremblay" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boucherville" dst="UNIX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boucherville" dst="Domey" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boucherville" dst="St_Bruno" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Boucherville" dst="Jean_Claude" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boucherville" dst="Doyon" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boucherville" dst="Fafard" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boucherville" dst="Croteau" symmetrical="NO"><link_ctn id="175"/></route>
-   <route src="Boucherville" dst="Dodge" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pointe_Claire" dst="Jacquelin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pointe_Claire" dst="Boivin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pointe_Claire" dst="Jean_Yves" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pointe_Claire" dst="TeX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pointe_Claire" dst="Geoff" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pointe_Claire" dst="Disney" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pointe_Claire" dst="iRMX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pointe_Claire" dst="McGee" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pointe_Claire" dst="Gatien" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pointe_Claire" dst="Laroche" symmetrical="NO"><link_ctn id="184"/></route>
-   <route src="Pointe_Claire" dst="Tanguay" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pointe_Claire" dst="Morin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pointe_Claire" dst="Ethernet" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pointe_Claire" dst="Bellemarre" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pointe_Claire" dst="Kuenning" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pointe_Claire" dst="Gaston" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pointe_Claire" dst="Harry" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pointe_Claire" dst="Bousquet" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pointe_Claire" dst="Paul" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pointe_Claire" dst="St_Jean" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pointe_Claire" dst="Jill" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pointe_Claire" dst="Marcel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pointe_Claire" dst="Wright" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pointe_Claire" dst="Jackson" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pointe_Claire" dst="Fernand" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pointe_Claire" dst="Soucy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pointe_Claire" dst="Ste_Julie" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pointe_Claire" dst="Victoria" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pointe_Claire" dst="Lessard" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pointe_Claire" dst="Florient" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pointe_Claire" dst="Marcoux" symmetrical="NO"><link_ctn id="184"/><link_ctn id="186"/></route>
-   <route src="Pointe_Claire" dst="Gavrel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Pointe_Claire" dst="Bescherelle" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pointe_Claire" dst="Pierre" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Pointe_Claire" dst="Jamie" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pointe_Claire" dst="Rubin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pointe_Claire" dst="Olivier" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pointe_Claire" dst="Boucherville" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pointe_Claire" dst="Kansas" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pointe_Claire" dst="King" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pointe_Claire" dst="Lapointe" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Pointe_Claire" dst="Julian" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pointe_Claire" dst="Lafontaine" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pointe_Claire" dst="Gordon" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Pointe_Claire" dst="Drouin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pointe_Claire" dst="Robert" symmetrical="NO"><link_ctn id="184"/><link_ctn id="187"/></route>
-   <route src="Pointe_Claire" dst="Jocelyne" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pointe_Claire" dst="Stephen" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pointe_Claire" dst="Provost" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pointe_Claire" dst="Juneau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pointe_Claire" dst="Casavant" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pointe_Claire" dst="St_Antoine" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pointe_Claire" dst="Louis" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pointe_Claire" dst="Julien" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pointe_Claire" dst="St_Paul" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Pointe_Claire" dst="Mathematica" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pointe_Claire" dst="LaTeX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pointe_Claire" dst="Sirois" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pointe_Claire" dst="Monique" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pointe_Claire" dst="Audy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pointe_Claire" dst="Bourassa" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Pointe_Claire" dst="OHara" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pointe_Claire" dst="Boston" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pointe_Claire" dst="Papineau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pointe_Claire" dst="Fraser" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pointe_Claire" dst="Browne" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pointe_Claire" dst="SunOS" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pointe_Claire" dst="Varennes" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pointe_Claire" dst="Jacques" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pointe_Claire" dst="Thierry" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pointe_Claire" dst="Lachapelle" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pointe_Claire" dst="kV" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pointe_Claire" dst="Yolande" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pointe_Claire" dst="Pronovost" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Pointe_Claire" dst="SPICE" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pointe_Claire" dst="Europe" symmetrical="NO"><link_ctn id="184"/><link_ctn id="185"/></route>
-   <route src="Pointe_Claire" dst="Roy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Pointe_Claire" dst="Amadeus" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Pointe_Claire" dst="Intel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pointe_Claire" dst="Cambridge" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pointe_Claire" dst="Tremblay" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pointe_Claire" dst="UNIX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pointe_Claire" dst="Domey" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pointe_Claire" dst="St_Bruno" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pointe_Claire" dst="Jean_Claude" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pointe_Claire" dst="Doyon" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pointe_Claire" dst="Fafard" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pointe_Claire" dst="Croteau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pointe_Claire" dst="Dodge" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Kansas" dst="Jacquelin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Kansas" dst="Boivin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Kansas" dst="Jean_Yves" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Kansas" dst="TeX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Kansas" dst="Geoff" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Kansas" dst="Disney" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Kansas" dst="iRMX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Kansas" dst="McGee" symmetrical="NO"><link_ctn id="122"/></route>
-   <route src="Kansas" dst="Gatien" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Kansas" dst="Laroche" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Kansas" dst="Tanguay" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Kansas" dst="Morin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Kansas" dst="Ethernet" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Kansas" dst="Bellemarre" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Kansas" dst="Kuenning" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Kansas" dst="Gaston" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Kansas" dst="Harry" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Kansas" dst="Bousquet" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Kansas" dst="Paul" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Kansas" dst="St_Jean" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Kansas" dst="Jill" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Kansas" dst="Marcel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Kansas" dst="Wright" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Kansas" dst="Jackson" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Kansas" dst="Fernand" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Kansas" dst="Soucy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Kansas" dst="Ste_Julie" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Kansas" dst="Victoria" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Kansas" dst="Lessard" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Kansas" dst="Florient" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Kansas" dst="Marcoux" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Kansas" dst="Gavrel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Kansas" dst="Bescherelle" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Kansas" dst="Pierre" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Kansas" dst="Jamie" symmetrical="NO"><link_ctn id="122"/><link_ctn id="120"/></route>
-   <route src="Kansas" dst="Rubin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Kansas" dst="Olivier" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Kansas" dst="Boucherville" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Kansas" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Kansas" dst="King" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Kansas" dst="Lapointe" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Kansas" dst="Julian" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Kansas" dst="Lafontaine" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Kansas" dst="Gordon" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Kansas" dst="Drouin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="123"/></route>
-   <route src="Kansas" dst="Robert" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Kansas" dst="Jocelyne" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Kansas" dst="Stephen" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Kansas" dst="Provost" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Kansas" dst="Juneau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Kansas" dst="Casavant" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Kansas" dst="St_Antoine" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Kansas" dst="Louis" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Kansas" dst="Julien" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Kansas" dst="St_Paul" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Kansas" dst="Mathematica" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Kansas" dst="LaTeX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Kansas" dst="Sirois" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Kansas" dst="Monique" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Kansas" dst="Audy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Kansas" dst="Bourassa" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Kansas" dst="OHara" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Kansas" dst="Boston" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Kansas" dst="Papineau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Kansas" dst="Fraser" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Kansas" dst="Browne" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Kansas" dst="SunOS" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Kansas" dst="Varennes" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Kansas" dst="Jacques" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Kansas" dst="Thierry" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Kansas" dst="Lachapelle" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Kansas" dst="kV" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Kansas" dst="Yolande" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Kansas" dst="Pronovost" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Kansas" dst="SPICE" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Kansas" dst="Europe" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Kansas" dst="Roy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Kansas" dst="Amadeus" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Kansas" dst="Intel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Kansas" dst="Cambridge" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Kansas" dst="Tremblay" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Kansas" dst="UNIX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Kansas" dst="Domey" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Kansas" dst="St_Bruno" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Kansas" dst="Jean_Claude" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Kansas" dst="Doyon" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Kansas" dst="Fafard" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Kansas" dst="Croteau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Kansas" dst="Dodge" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="King" dst="Jacquelin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="King" dst="Boivin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="King" dst="Jean_Yves" symmetrical="NO"><link_ctn id="137"/><link_ctn id="138"/></route>
-   <route src="King" dst="TeX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="King" dst="Geoff" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="King" dst="Disney" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="King" dst="iRMX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="King" dst="McGee" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="King" dst="Gatien" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="King" dst="Laroche" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="King" dst="Tanguay" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="King" dst="Morin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="King" dst="Ethernet" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="King" dst="Bellemarre" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="King" dst="Kuenning" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="King" dst="Gaston" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="King" dst="Harry" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="King" dst="Bousquet" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="King" dst="Paul" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="King" dst="St_Jean" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="King" dst="Jill" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="King" dst="Marcel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="King" dst="Wright" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="King" dst="Jackson" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="King" dst="Fernand" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="King" dst="Soucy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="King" dst="Ste_Julie" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="King" dst="Victoria" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="King" dst="Lessard" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="King" dst="Florient" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="King" dst="Marcoux" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="King" dst="Gavrel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="King" dst="Bescherelle" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="King" dst="Pierre" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="King" dst="Jamie" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="King" dst="Rubin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="King" dst="Olivier" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="King" dst="Boucherville" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="King" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="King" dst="Kansas" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="King" dst="Lapointe" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="King" dst="Julian" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="King" dst="Lafontaine" symmetrical="NO"><link_ctn id="137"/><link_ctn id="139"/></route>
-   <route src="King" dst="Gordon" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="King" dst="Drouin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="King" dst="Robert" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="King" dst="Jocelyne" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="King" dst="Stephen" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="King" dst="Provost" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="King" dst="Juneau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="King" dst="Casavant" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="King" dst="St_Antoine" symmetrical="NO"><link_ctn id="137"/></route>
-   <route src="King" dst="Louis" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="King" dst="Julien" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="King" dst="St_Paul" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="King" dst="Mathematica" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="King" dst="LaTeX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="King" dst="Sirois" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="King" dst="Monique" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="King" dst="Audy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="King" dst="Bourassa" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="King" dst="OHara" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="King" dst="Boston" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="King" dst="Papineau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="King" dst="Fraser" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="King" dst="Browne" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="King" dst="SunOS" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="King" dst="Varennes" symmetrical="NO"><link_ctn id="137"/><link_ctn id="136"/></route>
-   <route src="King" dst="Jacques" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="King" dst="Thierry" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="King" dst="Lachapelle" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="King" dst="kV" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="King" dst="Yolande" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="King" dst="Pronovost" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="King" dst="SPICE" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="King" dst="Europe" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="King" dst="Roy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="King" dst="Amadeus" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="King" dst="Intel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="King" dst="Cambridge" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="King" dst="Tremblay" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="King" dst="UNIX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="King" dst="Domey" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="King" dst="St_Bruno" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="King" dst="Jean_Claude" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="King" dst="Doyon" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="King" dst="Fafard" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="King" dst="Croteau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="King" dst="Dodge" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lapointe" dst="Jacquelin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lapointe" dst="Boivin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lapointe" dst="Jean_Yves" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lapointe" dst="TeX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lapointe" dst="Geoff" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Lapointe" dst="Disney" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lapointe" dst="iRMX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lapointe" dst="McGee" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lapointe" dst="Gatien" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lapointe" dst="Laroche" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lapointe" dst="Tanguay" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lapointe" dst="Morin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lapointe" dst="Ethernet" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lapointe" dst="Bellemarre" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lapointe" dst="Kuenning" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lapointe" dst="Gaston" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lapointe" dst="Harry" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lapointe" dst="Bousquet" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lapointe" dst="Paul" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lapointe" dst="St_Jean" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lapointe" dst="Jill" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lapointe" dst="Marcel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lapointe" dst="Wright" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lapointe" dst="Jackson" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lapointe" dst="Fernand" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lapointe" dst="Soucy" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lapointe" dst="Ste_Julie" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lapointe" dst="Victoria" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lapointe" dst="Lessard" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lapointe" dst="Florient" symmetrical="NO"><link_ctn id="181"/></route>
-   <route src="Lapointe" dst="Marcoux" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lapointe" dst="Gavrel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lapointe" dst="Bescherelle" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lapointe" dst="Pierre" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lapointe" dst="Jamie" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lapointe" dst="Rubin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lapointe" dst="Olivier" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lapointe" dst="Boucherville" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lapointe" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lapointe" dst="Kansas" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lapointe" dst="King" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lapointe" dst="Julian" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lapointe" dst="Lafontaine" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lapointe" dst="Gordon" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lapointe" dst="Drouin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lapointe" dst="Robert" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lapointe" dst="Jocelyne" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lapointe" dst="Stephen" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lapointe" dst="Provost" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lapointe" dst="Juneau" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lapointe" dst="Casavant" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lapointe" dst="St_Antoine" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lapointe" dst="Louis" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lapointe" dst="Julien" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lapointe" dst="St_Paul" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lapointe" dst="Mathematica" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lapointe" dst="LaTeX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lapointe" dst="Sirois" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lapointe" dst="Monique" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lapointe" dst="Audy" symmetrical="NO"><link_ctn id="183"/></route>
-   <route src="Lapointe" dst="Bourassa" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lapointe" dst="OHara" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lapointe" dst="Boston" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lapointe" dst="Papineau" symmetrical="NO"><link_ctn id="182"/></route>
-   <route src="Lapointe" dst="Fraser" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lapointe" dst="Browne" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lapointe" dst="SunOS" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lapointe" dst="Varennes" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lapointe" dst="Jacques" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lapointe" dst="Thierry" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lapointe" dst="Lachapelle" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lapointe" dst="kV" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Lapointe" dst="Yolande" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lapointe" dst="Pronovost" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lapointe" dst="SPICE" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lapointe" dst="Europe" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lapointe" dst="Roy" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lapointe" dst="Amadeus" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lapointe" dst="Intel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lapointe" dst="Cambridge" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lapointe" dst="Tremblay" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lapointe" dst="UNIX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lapointe" dst="Domey" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lapointe" dst="St_Bruno" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lapointe" dst="Jean_Claude" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lapointe" dst="Doyon" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lapointe" dst="Fafard" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lapointe" dst="Croteau" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lapointe" dst="Dodge" symmetrical="NO"><link_ctn id="180"/></route>
-   <route src="Julian" dst="Jacquelin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Julian" dst="Boivin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Julian" dst="Jean_Yves" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Julian" dst="TeX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Julian" dst="Geoff" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Julian" dst="Disney" symmetrical="NO"><link_ctn id="111"/></route>
-   <route src="Julian" dst="iRMX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Julian" dst="McGee" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Julian" dst="Gatien" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Julian" dst="Laroche" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Julian" dst="Tanguay" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Julian" dst="Morin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Julian" dst="Ethernet" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Julian" dst="Bellemarre" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Julian" dst="Kuenning" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Julian" dst="Gaston" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Julian" dst="Harry" symmetrical="NO"><link_ctn id="108"/></route>
-   <route src="Julian" dst="Bousquet" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Julian" dst="Paul" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Julian" dst="St_Jean" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Julian" dst="Jill" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Julian" dst="Marcel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Julian" dst="Wright" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Julian" dst="Jackson" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Julian" dst="Fernand" symmetrical="NO"><link_ctn id="109"/></route>
-   <route src="Julian" dst="Soucy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Julian" dst="Ste_Julie" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Julian" dst="Victoria" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Julian" dst="Lessard" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Julian" dst="Florient" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Julian" dst="Marcoux" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Julian" dst="Gavrel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Julian" dst="Bescherelle" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Julian" dst="Pierre" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Julian" dst="Jamie" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Julian" dst="Rubin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Julian" dst="Olivier" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Julian" dst="Boucherville" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Julian" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Julian" dst="Kansas" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Julian" dst="King" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Julian" dst="Lapointe" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Julian" dst="Lafontaine" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Julian" dst="Gordon" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Julian" dst="Drouin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Julian" dst="Robert" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Julian" dst="Jocelyne" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Julian" dst="Stephen" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Julian" dst="Provost" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Julian" dst="Juneau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Julian" dst="Casavant" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Julian" dst="St_Antoine" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Julian" dst="Louis" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Julian" dst="Julien" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Julian" dst="St_Paul" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Julian" dst="Mathematica" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Julian" dst="LaTeX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Julian" dst="Sirois" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Julian" dst="Monique" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Julian" dst="Audy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Julian" dst="Bourassa" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Julian" dst="OHara" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Julian" dst="Boston" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Julian" dst="Papineau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Julian" dst="Fraser" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Julian" dst="Browne" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Julian" dst="SunOS" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Julian" dst="Varennes" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Julian" dst="Jacques" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Julian" dst="Thierry" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Julian" dst="Lachapelle" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Julian" dst="kV" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Julian" dst="Yolande" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Julian" dst="Pronovost" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Julian" dst="SPICE" symmetrical="NO"><link_ctn id="110"/></route>
-   <route src="Julian" dst="Europe" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Julian" dst="Roy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Julian" dst="Amadeus" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Julian" dst="Intel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Julian" dst="Cambridge" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Julian" dst="Tremblay" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Julian" dst="UNIX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Julian" dst="Domey" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Julian" dst="St_Bruno" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Julian" dst="Jean_Claude" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Julian" dst="Doyon" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Julian" dst="Fafard" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Julian" dst="Croteau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Julian" dst="Dodge" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lafontaine" dst="Jacquelin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lafontaine" dst="Boivin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lafontaine" dst="Jean_Yves" symmetrical="NO"><link_ctn id="139"/><link_ctn id="138"/></route>
-   <route src="Lafontaine" dst="TeX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lafontaine" dst="Geoff" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Lafontaine" dst="Disney" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lafontaine" dst="iRMX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lafontaine" dst="McGee" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lafontaine" dst="Gatien" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lafontaine" dst="Laroche" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lafontaine" dst="Tanguay" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lafontaine" dst="Morin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lafontaine" dst="Ethernet" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lafontaine" dst="Bellemarre" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lafontaine" dst="Kuenning" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lafontaine" dst="Gaston" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lafontaine" dst="Harry" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lafontaine" dst="Bousquet" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lafontaine" dst="Paul" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lafontaine" dst="St_Jean" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lafontaine" dst="Jill" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lafontaine" dst="Marcel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lafontaine" dst="Wright" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lafontaine" dst="Jackson" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Lafontaine" dst="Fernand" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lafontaine" dst="Soucy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lafontaine" dst="Ste_Julie" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lafontaine" dst="Victoria" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lafontaine" dst="Lessard" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lafontaine" dst="Florient" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lafontaine" dst="Marcoux" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lafontaine" dst="Gavrel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lafontaine" dst="Bescherelle" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lafontaine" dst="Pierre" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lafontaine" dst="Jamie" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lafontaine" dst="Rubin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lafontaine" dst="Olivier" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lafontaine" dst="Boucherville" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lafontaine" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lafontaine" dst="Kansas" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lafontaine" dst="King" symmetrical="NO"><link_ctn id="139"/><link_ctn id="137"/></route>
-   <route src="Lafontaine" dst="Lapointe" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lafontaine" dst="Julian" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lafontaine" dst="Gordon" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lafontaine" dst="Drouin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lafontaine" dst="Robert" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lafontaine" dst="Jocelyne" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lafontaine" dst="Stephen" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lafontaine" dst="Provost" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lafontaine" dst="Juneau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lafontaine" dst="Casavant" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lafontaine" dst="St_Antoine" symmetrical="NO"><link_ctn id="139"/></route>
-   <route src="Lafontaine" dst="Louis" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lafontaine" dst="Julien" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lafontaine" dst="St_Paul" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lafontaine" dst="Mathematica" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lafontaine" dst="LaTeX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lafontaine" dst="Sirois" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lafontaine" dst="Monique" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lafontaine" dst="Audy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lafontaine" dst="Bourassa" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lafontaine" dst="OHara" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lafontaine" dst="Boston" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lafontaine" dst="Papineau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lafontaine" dst="Fraser" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lafontaine" dst="Browne" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lafontaine" dst="SunOS" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lafontaine" dst="Varennes" symmetrical="NO"><link_ctn id="139"/><link_ctn id="136"/></route>
-   <route src="Lafontaine" dst="Jacques" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lafontaine" dst="Thierry" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lafontaine" dst="Lachapelle" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lafontaine" dst="kV" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Lafontaine" dst="Yolande" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lafontaine" dst="Pronovost" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lafontaine" dst="SPICE" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lafontaine" dst="Europe" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lafontaine" dst="Roy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lafontaine" dst="Amadeus" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lafontaine" dst="Intel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lafontaine" dst="Cambridge" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lafontaine" dst="Tremblay" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lafontaine" dst="UNIX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lafontaine" dst="Domey" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lafontaine" dst="St_Bruno" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lafontaine" dst="Jean_Claude" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lafontaine" dst="Doyon" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lafontaine" dst="Fafard" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lafontaine" dst="Croteau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lafontaine" dst="Dodge" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gordon" dst="Jacquelin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gordon" dst="Boivin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gordon" dst="Jean_Yves" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gordon" dst="TeX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gordon" dst="Geoff" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gordon" dst="Disney" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gordon" dst="iRMX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gordon" dst="McGee" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gordon" dst="Gatien" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gordon" dst="Laroche" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gordon" dst="Tanguay" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gordon" dst="Morin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gordon" dst="Ethernet" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gordon" dst="Bellemarre" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gordon" dst="Kuenning" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gordon" dst="Gaston" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gordon" dst="Harry" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gordon" dst="Bousquet" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gordon" dst="Paul" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gordon" dst="St_Jean" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gordon" dst="Jill" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gordon" dst="Marcel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gordon" dst="Wright" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gordon" dst="Jackson" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gordon" dst="Fernand" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gordon" dst="Soucy" symmetrical="NO"><link_ctn id="191"/></route>
-   <route src="Gordon" dst="Ste_Julie" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gordon" dst="Victoria" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gordon" dst="Lessard" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gordon" dst="Florient" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gordon" dst="Marcoux" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gordon" dst="Gavrel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gordon" dst="Bescherelle" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gordon" dst="Pierre" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gordon" dst="Jamie" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gordon" dst="Rubin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gordon" dst="Olivier" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gordon" dst="Boucherville" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gordon" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gordon" dst="Kansas" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gordon" dst="King" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gordon" dst="Lapointe" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Gordon" dst="Julian" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gordon" dst="Lafontaine" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gordon" dst="Drouin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gordon" dst="Robert" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gordon" dst="Jocelyne" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gordon" dst="Stephen" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gordon" dst="Provost" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gordon" dst="Juneau" symmetrical="NO"><link_ctn id="189"/></route>
-   <route src="Gordon" dst="Casavant" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gordon" dst="St_Antoine" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gordon" dst="Louis" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gordon" dst="Julien" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gordon" dst="St_Paul" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gordon" dst="Mathematica" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gordon" dst="LaTeX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gordon" dst="Sirois" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gordon" dst="Monique" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gordon" dst="Audy" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gordon" dst="Bourassa" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gordon" dst="OHara" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gordon" dst="Boston" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gordon" dst="Papineau" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gordon" dst="Fraser" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gordon" dst="Browne" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gordon" dst="SunOS" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gordon" dst="Varennes" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gordon" dst="Jacques" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gordon" dst="Thierry" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gordon" dst="Lachapelle" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gordon" dst="kV" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gordon" dst="Yolande" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gordon" dst="Pronovost" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gordon" dst="SPICE" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gordon" dst="Europe" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gordon" dst="Roy" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gordon" dst="Amadeus" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gordon" dst="Intel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gordon" dst="Cambridge" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gordon" dst="Tremblay" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gordon" dst="UNIX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gordon" dst="Domey" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gordon" dst="St_Bruno" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gordon" dst="Jean_Claude" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gordon" dst="Doyon" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gordon" dst="Fafard" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gordon" dst="Croteau" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gordon" dst="Dodge" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Drouin" dst="Jacquelin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Drouin" dst="Boivin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Drouin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Drouin" dst="TeX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Drouin" dst="Geoff" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Drouin" dst="Disney" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Drouin" dst="iRMX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Drouin" dst="McGee" symmetrical="NO"><link_ctn id="123"/></route>
-   <route src="Drouin" dst="Gatien" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Drouin" dst="Laroche" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Drouin" dst="Tanguay" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Drouin" dst="Morin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Drouin" dst="Ethernet" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Drouin" dst="Bellemarre" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Drouin" dst="Kuenning" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Drouin" dst="Gaston" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Drouin" dst="Harry" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Drouin" dst="Bousquet" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Drouin" dst="Paul" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Drouin" dst="St_Jean" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Drouin" dst="Jill" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Drouin" dst="Marcel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Drouin" dst="Wright" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Drouin" dst="Jackson" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Drouin" dst="Fernand" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Drouin" dst="Soucy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Drouin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Drouin" dst="Victoria" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Drouin" dst="Lessard" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Drouin" dst="Florient" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Drouin" dst="Marcoux" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Drouin" dst="Gavrel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Drouin" dst="Bescherelle" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Drouin" dst="Pierre" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Drouin" dst="Jamie" symmetrical="NO"><link_ctn id="123"/><link_ctn id="120"/></route>
-   <route src="Drouin" dst="Rubin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Drouin" dst="Olivier" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Drouin" dst="Boucherville" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Drouin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Drouin" dst="Kansas" symmetrical="NO"><link_ctn id="123"/><link_ctn id="122"/></route>
-   <route src="Drouin" dst="King" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Drouin" dst="Lapointe" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Drouin" dst="Julian" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Drouin" dst="Lafontaine" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Drouin" dst="Gordon" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Drouin" dst="Robert" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Drouin" dst="Jocelyne" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Drouin" dst="Stephen" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Drouin" dst="Provost" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Drouin" dst="Juneau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Drouin" dst="Casavant" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Drouin" dst="St_Antoine" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Drouin" dst="Louis" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Drouin" dst="Julien" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Drouin" dst="St_Paul" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Drouin" dst="Mathematica" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Drouin" dst="LaTeX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Drouin" dst="Sirois" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Drouin" dst="Monique" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Drouin" dst="Audy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Drouin" dst="Bourassa" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Drouin" dst="OHara" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Drouin" dst="Boston" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Drouin" dst="Papineau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Drouin" dst="Fraser" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Drouin" dst="Browne" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Drouin" dst="SunOS" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Drouin" dst="Varennes" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Drouin" dst="Jacques" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Drouin" dst="Thierry" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Drouin" dst="Lachapelle" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Drouin" dst="kV" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Drouin" dst="Yolande" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Drouin" dst="Pronovost" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Drouin" dst="SPICE" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Drouin" dst="Europe" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Drouin" dst="Roy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Drouin" dst="Amadeus" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Drouin" dst="Intel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Drouin" dst="Cambridge" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Drouin" dst="Tremblay" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Drouin" dst="UNIX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Drouin" dst="Domey" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Drouin" dst="St_Bruno" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Drouin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Drouin" dst="Doyon" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Drouin" dst="Fafard" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Drouin" dst="Croteau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Drouin" dst="Dodge" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Robert" dst="Jacquelin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Robert" dst="Boivin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Robert" dst="Jean_Yves" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Robert" dst="TeX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Robert" dst="Geoff" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Robert" dst="Disney" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Robert" dst="iRMX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Robert" dst="McGee" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Robert" dst="Gatien" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Robert" dst="Laroche" symmetrical="NO"><link_ctn id="187"/></route>
-   <route src="Robert" dst="Tanguay" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Robert" dst="Morin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Robert" dst="Ethernet" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Robert" dst="Bellemarre" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Robert" dst="Kuenning" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Robert" dst="Gaston" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Robert" dst="Harry" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Robert" dst="Bousquet" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Robert" dst="Paul" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Robert" dst="St_Jean" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Robert" dst="Jill" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Robert" dst="Marcel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Robert" dst="Wright" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Robert" dst="Jackson" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Robert" dst="Fernand" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Robert" dst="Soucy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Robert" dst="Ste_Julie" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Robert" dst="Victoria" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Robert" dst="Lessard" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Robert" dst="Florient" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Robert" dst="Marcoux" symmetrical="NO"><link_ctn id="187"/><link_ctn id="186"/></route>
-   <route src="Robert" dst="Gavrel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Robert" dst="Bescherelle" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Robert" dst="Pierre" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Robert" dst="Jamie" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Robert" dst="Rubin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Robert" dst="Olivier" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Robert" dst="Boucherville" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Robert" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="187"/><link_ctn id="184"/></route>
-   <route src="Robert" dst="Kansas" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Robert" dst="King" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Robert" dst="Lapointe" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Robert" dst="Julian" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Robert" dst="Lafontaine" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Robert" dst="Gordon" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Robert" dst="Drouin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Robert" dst="Jocelyne" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Robert" dst="Stephen" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Robert" dst="Provost" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Robert" dst="Juneau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Robert" dst="Casavant" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Robert" dst="St_Antoine" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Robert" dst="Louis" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Robert" dst="Julien" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Robert" dst="St_Paul" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Robert" dst="Mathematica" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Robert" dst="LaTeX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Robert" dst="Sirois" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Robert" dst="Monique" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Robert" dst="Audy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Robert" dst="Bourassa" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Robert" dst="OHara" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Robert" dst="Boston" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Robert" dst="Papineau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Robert" dst="Fraser" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Robert" dst="Browne" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Robert" dst="SunOS" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Robert" dst="Varennes" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Robert" dst="Jacques" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Robert" dst="Thierry" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Robert" dst="Lachapelle" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Robert" dst="kV" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Robert" dst="Yolande" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Robert" dst="Pronovost" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Robert" dst="SPICE" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Robert" dst="Europe" symmetrical="NO"><link_ctn id="187"/><link_ctn id="185"/></route>
-   <route src="Robert" dst="Roy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Robert" dst="Amadeus" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Robert" dst="Intel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Robert" dst="Cambridge" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Robert" dst="Tremblay" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Robert" dst="UNIX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Robert" dst="Domey" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Robert" dst="St_Bruno" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Robert" dst="Jean_Claude" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Robert" dst="Doyon" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Robert" dst="Fafard" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Robert" dst="Croteau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Robert" dst="Dodge" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jocelyne" dst="Jacquelin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jocelyne" dst="Boivin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jocelyne" dst="Jean_Yves" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jocelyne" dst="TeX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jocelyne" dst="Geoff" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jocelyne" dst="Disney" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jocelyne" dst="iRMX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="172"/></route>
-   <route src="Jocelyne" dst="McGee" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jocelyne" dst="Gatien" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jocelyne" dst="Laroche" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Jocelyne" dst="Tanguay" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jocelyne" dst="Morin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jocelyne" dst="Ethernet" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jocelyne" dst="Bellemarre" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jocelyne" dst="Kuenning" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jocelyne" dst="Gaston" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jocelyne" dst="Harry" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jocelyne" dst="Bousquet" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jocelyne" dst="Paul" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jocelyne" dst="St_Jean" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jocelyne" dst="Jill" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Jocelyne" dst="Marcel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jocelyne" dst="Wright" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jocelyne" dst="Jackson" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jocelyne" dst="Fernand" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jocelyne" dst="Soucy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jocelyne" dst="Ste_Julie" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jocelyne" dst="Victoria" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jocelyne" dst="Lessard" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jocelyne" dst="Florient" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jocelyne" dst="Marcoux" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jocelyne" dst="Gavrel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jocelyne" dst="Bescherelle" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jocelyne" dst="Pierre" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jocelyne" dst="Jamie" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jocelyne" dst="Rubin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jocelyne" dst="Olivier" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jocelyne" dst="Boucherville" symmetrical="NO"><link_ctn id="173"/></route>
-   <route src="Jocelyne" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jocelyne" dst="Kansas" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jocelyne" dst="King" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jocelyne" dst="Lapointe" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Jocelyne" dst="Julian" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jocelyne" dst="Lafontaine" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jocelyne" dst="Gordon" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Jocelyne" dst="Drouin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jocelyne" dst="Robert" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jocelyne" dst="Stephen" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jocelyne" dst="Provost" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jocelyne" dst="Juneau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jocelyne" dst="Casavant" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jocelyne" dst="St_Antoine" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jocelyne" dst="Louis" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jocelyne" dst="Julien" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jocelyne" dst="St_Paul" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jocelyne" dst="Mathematica" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jocelyne" dst="LaTeX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jocelyne" dst="Sirois" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jocelyne" dst="Monique" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jocelyne" dst="Audy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jocelyne" dst="Bourassa" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jocelyne" dst="OHara" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jocelyne" dst="Boston" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jocelyne" dst="Papineau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jocelyne" dst="Fraser" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jocelyne" dst="Browne" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jocelyne" dst="SunOS" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jocelyne" dst="Varennes" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jocelyne" dst="Jacques" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jocelyne" dst="Thierry" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jocelyne" dst="Lachapelle" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jocelyne" dst="kV" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jocelyne" dst="Yolande" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jocelyne" dst="Pronovost" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jocelyne" dst="SPICE" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jocelyne" dst="Europe" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jocelyne" dst="Roy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jocelyne" dst="Amadeus" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jocelyne" dst="Intel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jocelyne" dst="Cambridge" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jocelyne" dst="Tremblay" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jocelyne" dst="UNIX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jocelyne" dst="Domey" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jocelyne" dst="St_Bruno" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jocelyne" dst="Jean_Claude" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jocelyne" dst="Doyon" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jocelyne" dst="Fafard" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jocelyne" dst="Croteau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="175"/></route>
-   <route src="Jocelyne" dst="Dodge" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Stephen" dst="Jacquelin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Stephen" dst="Boivin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Stephen" dst="Jean_Yves" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Stephen" dst="TeX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="100"/></route>
-   <route src="Stephen" dst="Geoff" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Stephen" dst="Disney" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Stephen" dst="iRMX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Stephen" dst="McGee" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Stephen" dst="Gatien" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Stephen" dst="Laroche" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Stephen" dst="Tanguay" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Stephen" dst="Morin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Stephen" dst="Ethernet" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Stephen" dst="Bellemarre" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="Stephen" dst="Kuenning" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Stephen" dst="Gaston" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Stephen" dst="Harry" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Stephen" dst="Bousquet" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Stephen" dst="Paul" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Stephen" dst="St_Jean" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Stephen" dst="Jill" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Stephen" dst="Marcel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Stephen" dst="Wright" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Stephen" dst="Jackson" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Stephen" dst="Fernand" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Stephen" dst="Soucy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Stephen" dst="Ste_Julie" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Stephen" dst="Victoria" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Stephen" dst="Lessard" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Stephen" dst="Florient" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Stephen" dst="Marcoux" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Stephen" dst="Gavrel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Stephen" dst="Bescherelle" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Stephen" dst="Pierre" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Stephen" dst="Jamie" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Stephen" dst="Rubin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Stephen" dst="Olivier" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Stephen" dst="Boucherville" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Stephen" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Stephen" dst="Kansas" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Stephen" dst="King" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Stephen" dst="Lapointe" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Stephen" dst="Julian" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Stephen" dst="Lafontaine" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Stephen" dst="Gordon" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Stephen" dst="Drouin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Stephen" dst="Robert" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Stephen" dst="Jocelyne" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Stephen" dst="Provost" symmetrical="NO"><link_ctn id="101"/><link_ctn id="103"/></route>
-   <route src="Stephen" dst="Juneau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Stephen" dst="Casavant" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Stephen" dst="St_Antoine" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Stephen" dst="Louis" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Stephen" dst="Julien" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Stephen" dst="St_Paul" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Stephen" dst="Mathematica" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Stephen" dst="LaTeX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Stephen" dst="Sirois" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Stephen" dst="Monique" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Stephen" dst="Audy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Stephen" dst="Bourassa" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Stephen" dst="OHara" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Stephen" dst="Boston" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Stephen" dst="Papineau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Stephen" dst="Fraser" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Stephen" dst="Browne" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Stephen" dst="SunOS" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Stephen" dst="Varennes" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Stephen" dst="Jacques" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Stephen" dst="Thierry" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Stephen" dst="Lachapelle" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Stephen" dst="kV" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Stephen" dst="Yolande" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Stephen" dst="Pronovost" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Stephen" dst="SPICE" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Stephen" dst="Europe" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Stephen" dst="Roy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Stephen" dst="Amadeus" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Stephen" dst="Intel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Stephen" dst="Cambridge" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Stephen" dst="Tremblay" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Stephen" dst="UNIX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Stephen" dst="Domey" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Stephen" dst="St_Bruno" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Stephen" dst="Jean_Claude" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Stephen" dst="Doyon" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Stephen" dst="Fafard" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Stephen" dst="Croteau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Stephen" dst="Dodge" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Provost" dst="Jacquelin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Provost" dst="Boivin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Provost" dst="Jean_Yves" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Provost" dst="TeX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="100"/></route>
-   <route src="Provost" dst="Geoff" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Provost" dst="Disney" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Provost" dst="iRMX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Provost" dst="McGee" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Provost" dst="Gatien" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Provost" dst="Laroche" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Provost" dst="Tanguay" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Provost" dst="Morin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Provost" dst="Ethernet" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Provost" dst="Bellemarre" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="Provost" dst="Kuenning" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Provost" dst="Gaston" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Provost" dst="Harry" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Provost" dst="Bousquet" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Provost" dst="Paul" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Provost" dst="St_Jean" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Provost" dst="Jill" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Provost" dst="Marcel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Provost" dst="Wright" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Provost" dst="Jackson" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Provost" dst="Fernand" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Provost" dst="Soucy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Provost" dst="Ste_Julie" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Provost" dst="Victoria" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Provost" dst="Lessard" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Provost" dst="Florient" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Provost" dst="Marcoux" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Provost" dst="Gavrel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Provost" dst="Bescherelle" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Provost" dst="Pierre" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Provost" dst="Jamie" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Provost" dst="Rubin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Provost" dst="Olivier" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Provost" dst="Boucherville" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Provost" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Provost" dst="Kansas" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Provost" dst="King" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Provost" dst="Lapointe" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Provost" dst="Julian" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Provost" dst="Lafontaine" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Provost" dst="Gordon" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Provost" dst="Drouin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Provost" dst="Robert" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Provost" dst="Jocelyne" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Provost" dst="Stephen" symmetrical="NO"><link_ctn id="103"/><link_ctn id="101"/></route>
-   <route src="Provost" dst="Juneau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Provost" dst="Casavant" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Provost" dst="St_Antoine" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Provost" dst="Louis" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Provost" dst="Julien" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Provost" dst="St_Paul" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Provost" dst="Mathematica" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Provost" dst="LaTeX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Provost" dst="Sirois" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Provost" dst="Monique" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Provost" dst="Audy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Provost" dst="Bourassa" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Provost" dst="OHara" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Provost" dst="Boston" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Provost" dst="Papineau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Provost" dst="Fraser" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Provost" dst="Browne" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Provost" dst="SunOS" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Provost" dst="Varennes" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Provost" dst="Jacques" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Provost" dst="Thierry" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Provost" dst="Lachapelle" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Provost" dst="kV" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Provost" dst="Yolande" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Provost" dst="Pronovost" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Provost" dst="SPICE" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Provost" dst="Europe" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Provost" dst="Roy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Provost" dst="Amadeus" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Provost" dst="Intel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Provost" dst="Cambridge" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Provost" dst="Tremblay" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Provost" dst="UNIX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Provost" dst="Domey" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Provost" dst="St_Bruno" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Provost" dst="Jean_Claude" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Provost" dst="Doyon" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Provost" dst="Fafard" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Provost" dst="Croteau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Provost" dst="Dodge" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Juneau" dst="Jacquelin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Juneau" dst="Boivin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Juneau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Juneau" dst="TeX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Juneau" dst="Geoff" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Juneau" dst="Disney" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Juneau" dst="iRMX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Juneau" dst="McGee" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Juneau" dst="Gatien" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Juneau" dst="Laroche" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Juneau" dst="Tanguay" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Juneau" dst="Morin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Juneau" dst="Ethernet" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Juneau" dst="Bellemarre" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Juneau" dst="Kuenning" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Juneau" dst="Gaston" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Juneau" dst="Harry" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Juneau" dst="Bousquet" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Juneau" dst="Paul" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Juneau" dst="St_Jean" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Juneau" dst="Jill" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Juneau" dst="Marcel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Juneau" dst="Wright" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Juneau" dst="Jackson" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Juneau" dst="Fernand" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Juneau" dst="Soucy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="191"/></route>
-   <route src="Juneau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Juneau" dst="Victoria" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Juneau" dst="Lessard" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Juneau" dst="Florient" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Juneau" dst="Marcoux" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Juneau" dst="Gavrel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Juneau" dst="Bescherelle" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Juneau" dst="Pierre" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Juneau" dst="Jamie" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Juneau" dst="Rubin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Juneau" dst="Olivier" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Juneau" dst="Boucherville" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Juneau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Juneau" dst="Kansas" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Juneau" dst="King" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Juneau" dst="Lapointe" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Juneau" dst="Julian" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Juneau" dst="Lafontaine" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Juneau" dst="Gordon" symmetrical="NO"><link_ctn id="189"/></route>
-   <route src="Juneau" dst="Drouin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Juneau" dst="Robert" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Juneau" dst="Jocelyne" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Juneau" dst="Stephen" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Juneau" dst="Provost" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Juneau" dst="Casavant" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Juneau" dst="St_Antoine" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Juneau" dst="Louis" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Juneau" dst="Julien" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Juneau" dst="St_Paul" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Juneau" dst="Mathematica" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Juneau" dst="LaTeX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Juneau" dst="Sirois" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Juneau" dst="Monique" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Juneau" dst="Audy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Juneau" dst="Bourassa" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Juneau" dst="OHara" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Juneau" dst="Boston" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Juneau" dst="Papineau" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Juneau" dst="Fraser" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Juneau" dst="Browne" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Juneau" dst="SunOS" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Juneau" dst="Varennes" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Juneau" dst="Jacques" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Juneau" dst="Thierry" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Juneau" dst="Lachapelle" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Juneau" dst="kV" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Juneau" dst="Yolande" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Juneau" dst="Pronovost" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Juneau" dst="SPICE" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Juneau" dst="Europe" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Juneau" dst="Roy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Juneau" dst="Amadeus" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Juneau" dst="Intel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Juneau" dst="Cambridge" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Juneau" dst="Tremblay" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Juneau" dst="UNIX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Juneau" dst="Domey" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Juneau" dst="St_Bruno" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Juneau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Juneau" dst="Doyon" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Juneau" dst="Fafard" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Juneau" dst="Croteau" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Juneau" dst="Dodge" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Casavant" dst="Jacquelin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Casavant" dst="Boivin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Casavant" dst="Jean_Yves" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Casavant" dst="TeX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Casavant" dst="Geoff" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Casavant" dst="Disney" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Casavant" dst="iRMX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Casavant" dst="McGee" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Casavant" dst="Gatien" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Casavant" dst="Laroche" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Casavant" dst="Tanguay" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Casavant" dst="Morin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Casavant" dst="Ethernet" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Casavant" dst="Bellemarre" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Casavant" dst="Kuenning" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Casavant" dst="Gaston" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Casavant" dst="Harry" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Casavant" dst="Bousquet" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Casavant" dst="Paul" symmetrical="NO"><link_ctn id="92"/><link_ctn id="93"/></route>
-   <route src="Casavant" dst="St_Jean" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Casavant" dst="Jill" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Casavant" dst="Marcel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Casavant" dst="Wright" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Casavant" dst="Jackson" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Casavant" dst="Fernand" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Casavant" dst="Soucy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Casavant" dst="Ste_Julie" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Casavant" dst="Victoria" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Casavant" dst="Lessard" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Casavant" dst="Florient" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Casavant" dst="Marcoux" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Casavant" dst="Gavrel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Casavant" dst="Bescherelle" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Casavant" dst="Pierre" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Casavant" dst="Jamie" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Casavant" dst="Rubin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Casavant" dst="Olivier" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Casavant" dst="Boucherville" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Casavant" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Casavant" dst="Kansas" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Casavant" dst="King" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Casavant" dst="Lapointe" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Casavant" dst="Julian" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Casavant" dst="Lafontaine" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Casavant" dst="Gordon" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Casavant" dst="Drouin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Casavant" dst="Robert" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Casavant" dst="Jocelyne" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Casavant" dst="Stephen" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Casavant" dst="Provost" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Casavant" dst="Juneau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Casavant" dst="St_Antoine" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Casavant" dst="Louis" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Casavant" dst="Julien" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Casavant" dst="St_Paul" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Casavant" dst="Mathematica" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Casavant" dst="LaTeX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Casavant" dst="Sirois" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Casavant" dst="Monique" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Casavant" dst="Audy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Casavant" dst="Bourassa" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Casavant" dst="OHara" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Casavant" dst="Boston" symmetrical="NO"><link_ctn id="92"/><link_ctn id="95"/></route>
-   <route src="Casavant" dst="Papineau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Casavant" dst="Fraser" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Casavant" dst="Browne" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Casavant" dst="SunOS" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Casavant" dst="Varennes" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Casavant" dst="Jacques" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Casavant" dst="Thierry" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Casavant" dst="Lachapelle" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Casavant" dst="kV" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Casavant" dst="Yolande" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Casavant" dst="Pronovost" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Casavant" dst="SPICE" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Casavant" dst="Europe" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Casavant" dst="Roy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Casavant" dst="Amadeus" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Casavant" dst="Intel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Casavant" dst="Cambridge" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Casavant" dst="Tremblay" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Casavant" dst="UNIX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Casavant" dst="Domey" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Casavant" dst="St_Bruno" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Casavant" dst="Jean_Claude" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Casavant" dst="Doyon" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Casavant" dst="Fafard" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Casavant" dst="Croteau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Casavant" dst="Dodge" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Antoine" dst="Jacquelin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Antoine" dst="Boivin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Antoine" dst="Jean_Yves" symmetrical="NO"><link_ctn id="138"/></route>
-   <route src="St_Antoine" dst="TeX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Antoine" dst="Geoff" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="St_Antoine" dst="Disney" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Antoine" dst="iRMX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Antoine" dst="McGee" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Antoine" dst="Gatien" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Antoine" dst="Laroche" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Antoine" dst="Tanguay" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Antoine" dst="Morin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Antoine" dst="Ethernet" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Antoine" dst="Bellemarre" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Antoine" dst="Kuenning" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Antoine" dst="Gaston" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Antoine" dst="Harry" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Antoine" dst="Bousquet" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Antoine" dst="Paul" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Antoine" dst="St_Jean" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Antoine" dst="Jill" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Antoine" dst="Marcel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Antoine" dst="Wright" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Antoine" dst="Jackson" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="St_Antoine" dst="Fernand" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Antoine" dst="Soucy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Antoine" dst="Ste_Julie" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Antoine" dst="Victoria" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Antoine" dst="Lessard" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Antoine" dst="Florient" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Antoine" dst="Marcoux" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Antoine" dst="Gavrel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Antoine" dst="Bescherelle" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Antoine" dst="Pierre" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Antoine" dst="Jamie" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Antoine" dst="Rubin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Antoine" dst="Olivier" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Antoine" dst="Boucherville" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Antoine" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Antoine" dst="Kansas" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Antoine" dst="King" symmetrical="NO"><link_ctn id="137"/></route>
-   <route src="St_Antoine" dst="Lapointe" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Antoine" dst="Julian" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Antoine" dst="Lafontaine" symmetrical="NO"><link_ctn id="139"/></route>
-   <route src="St_Antoine" dst="Gordon" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Antoine" dst="Drouin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Antoine" dst="Robert" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Antoine" dst="Jocelyne" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Antoine" dst="Stephen" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Antoine" dst="Provost" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Antoine" dst="Juneau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Antoine" dst="Casavant" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Antoine" dst="Louis" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Antoine" dst="Julien" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Antoine" dst="St_Paul" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Antoine" dst="Mathematica" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Antoine" dst="LaTeX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Antoine" dst="Sirois" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Antoine" dst="Monique" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Antoine" dst="Audy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Antoine" dst="Bourassa" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Antoine" dst="OHara" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Antoine" dst="Boston" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Antoine" dst="Papineau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Antoine" dst="Fraser" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Antoine" dst="Browne" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Antoine" dst="SunOS" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Antoine" dst="Varennes" symmetrical="NO"><link_ctn id="136"/></route>
-   <route src="St_Antoine" dst="Jacques" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Antoine" dst="Thierry" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Antoine" dst="Lachapelle" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Antoine" dst="kV" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="St_Antoine" dst="Yolande" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Antoine" dst="Pronovost" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Antoine" dst="SPICE" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Antoine" dst="Europe" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Antoine" dst="Roy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Antoine" dst="Amadeus" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Antoine" dst="Intel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Antoine" dst="Cambridge" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Antoine" dst="Tremblay" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Antoine" dst="UNIX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Antoine" dst="Domey" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Antoine" dst="St_Bruno" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Antoine" dst="Jean_Claude" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Antoine" dst="Doyon" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Antoine" dst="Fafard" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Antoine" dst="Croteau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Antoine" dst="Dodge" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Louis" dst="Jacquelin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Louis" dst="Boivin" symmetrical="NO"><link_ctn id="117"/></route>
-   <route src="Louis" dst="Jean_Yves" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Louis" dst="TeX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Louis" dst="Geoff" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Louis" dst="Disney" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Louis" dst="iRMX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Louis" dst="McGee" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Louis" dst="Gatien" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Louis" dst="Laroche" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Louis" dst="Tanguay" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Louis" dst="Morin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Louis" dst="Ethernet" symmetrical="NO"><link_ctn id="117"/><link_ctn id="118"/></route>
-   <route src="Louis" dst="Bellemarre" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Louis" dst="Kuenning" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Louis" dst="Gaston" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Louis" dst="Harry" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Louis" dst="Bousquet" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Louis" dst="Paul" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Louis" dst="St_Jean" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Louis" dst="Jill" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Louis" dst="Marcel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Louis" dst="Wright" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Louis" dst="Jackson" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Louis" dst="Fernand" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Louis" dst="Soucy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Louis" dst="Ste_Julie" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Louis" dst="Victoria" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Louis" dst="Lessard" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Louis" dst="Florient" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Louis" dst="Marcoux" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Louis" dst="Gavrel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Louis" dst="Bescherelle" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Louis" dst="Pierre" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Louis" dst="Jamie" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Louis" dst="Rubin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Louis" dst="Olivier" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Louis" dst="Boucherville" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Louis" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Louis" dst="Kansas" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Louis" dst="King" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Louis" dst="Lapointe" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Louis" dst="Julian" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Louis" dst="Lafontaine" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Louis" dst="Gordon" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Louis" dst="Drouin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Louis" dst="Robert" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Louis" dst="Jocelyne" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Louis" dst="Stephen" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Louis" dst="Provost" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Louis" dst="Juneau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Louis" dst="Casavant" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Louis" dst="St_Antoine" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Louis" dst="Julien" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Louis" dst="St_Paul" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Louis" dst="Mathematica" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Louis" dst="LaTeX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Louis" dst="Sirois" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Louis" dst="Monique" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Louis" dst="Audy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Louis" dst="Bourassa" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Louis" dst="OHara" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Louis" dst="Boston" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Louis" dst="Papineau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Louis" dst="Fraser" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Louis" dst="Browne" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Louis" dst="SunOS" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Louis" dst="Varennes" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Louis" dst="Jacques" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Louis" dst="Thierry" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Louis" dst="Lachapelle" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Louis" dst="kV" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Louis" dst="Yolande" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Louis" dst="Pronovost" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Louis" dst="SPICE" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Louis" dst="Europe" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Louis" dst="Roy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Louis" dst="Amadeus" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Louis" dst="Intel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Louis" dst="Cambridge" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Louis" dst="Tremblay" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Louis" dst="UNIX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Louis" dst="Domey" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Louis" dst="St_Bruno" symmetrical="NO"><link_ctn id="117"/><link_ctn id="119"/></route>
-   <route src="Louis" dst="Jean_Claude" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Louis" dst="Doyon" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Louis" dst="Fafard" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Louis" dst="Croteau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Louis" dst="Dodge" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Julien" dst="Jacquelin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Julien" dst="Boivin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Julien" dst="Jean_Yves" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Julien" dst="TeX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Julien" dst="Geoff" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Julien" dst="Disney" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Julien" dst="iRMX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Julien" dst="McGee" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Julien" dst="Gatien" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Julien" dst="Laroche" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Julien" dst="Tanguay" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Julien" dst="Morin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Julien" dst="Ethernet" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Julien" dst="Bellemarre" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Julien" dst="Kuenning" symmetrical="NO"><link_ctn id="134"/><link_ctn id="135"/></route>
-   <route src="Julien" dst="Gaston" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Julien" dst="Harry" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Julien" dst="Bousquet" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Julien" dst="Paul" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Julien" dst="St_Jean" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Julien" dst="Jill" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Julien" dst="Marcel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Julien" dst="Wright" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Julien" dst="Jackson" symmetrical="NO"><link_ctn id="134"/></route>
-   <route src="Julien" dst="Fernand" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Julien" dst="Soucy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Julien" dst="Ste_Julie" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Julien" dst="Victoria" symmetrical="NO"><link_ctn id="134"/><link_ctn id="133"/></route>
-   <route src="Julien" dst="Lessard" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Julien" dst="Florient" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Julien" dst="Marcoux" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Julien" dst="Gavrel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Julien" dst="Bescherelle" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Julien" dst="Pierre" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Julien" dst="Jamie" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Julien" dst="Rubin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Julien" dst="Olivier" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Julien" dst="Boucherville" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Julien" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Julien" dst="Kansas" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Julien" dst="King" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Julien" dst="Lapointe" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Julien" dst="Julian" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Julien" dst="Lafontaine" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Julien" dst="Gordon" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Julien" dst="Drouin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Julien" dst="Robert" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Julien" dst="Jocelyne" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Julien" dst="Stephen" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Julien" dst="Provost" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Julien" dst="Juneau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Julien" dst="Casavant" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Julien" dst="St_Antoine" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Julien" dst="Louis" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Julien" dst="St_Paul" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Julien" dst="Mathematica" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Julien" dst="LaTeX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Julien" dst="Sirois" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Julien" dst="Monique" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Julien" dst="Audy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Julien" dst="Bourassa" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Julien" dst="OHara" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Julien" dst="Boston" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Julien" dst="Papineau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Julien" dst="Fraser" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Julien" dst="Browne" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Julien" dst="SunOS" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Julien" dst="Varennes" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Julien" dst="Jacques" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Julien" dst="Thierry" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Julien" dst="Lachapelle" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Julien" dst="kV" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Julien" dst="Yolande" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Julien" dst="Pronovost" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Julien" dst="SPICE" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Julien" dst="Europe" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Julien" dst="Roy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Julien" dst="Amadeus" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Julien" dst="Intel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Julien" dst="Cambridge" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Julien" dst="Tremblay" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Julien" dst="UNIX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Julien" dst="Domey" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Julien" dst="St_Bruno" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Julien" dst="Jean_Claude" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Julien" dst="Doyon" symmetrical="NO"><link_ctn id="134"/><link_ctn id="132"/></route>
-   <route src="Julien" dst="Fafard" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Julien" dst="Croteau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Julien" dst="Dodge" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Paul" dst="Jacquelin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Paul" dst="Boivin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Paul" dst="Jean_Yves" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Paul" dst="TeX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Paul" dst="Geoff" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Paul" dst="Disney" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Paul" dst="iRMX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Paul" dst="McGee" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Paul" dst="Gatien" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Paul" dst="Laroche" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Paul" dst="Tanguay" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Paul" dst="Morin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Paul" dst="Ethernet" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Paul" dst="Bellemarre" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Paul" dst="Kuenning" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Paul" dst="Gaston" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Paul" dst="Harry" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Paul" dst="Bousquet" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Paul" dst="Paul" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Paul" dst="St_Jean" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Paul" dst="Jill" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Paul" dst="Marcel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Paul" dst="Wright" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Paul" dst="Jackson" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Paul" dst="Fernand" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Paul" dst="Soucy" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Paul" dst="Ste_Julie" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Paul" dst="Victoria" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Paul" dst="Lessard" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Paul" dst="Florient" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Paul" dst="Marcoux" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Paul" dst="Gavrel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Paul" dst="Bescherelle" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Paul" dst="Pierre" symmetrical="NO"><link_ctn id="165"/><link_ctn id="167"/></route>
-   <route src="St_Paul" dst="Jamie" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Paul" dst="Rubin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Paul" dst="Olivier" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Paul" dst="Boucherville" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Paul" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Paul" dst="Kansas" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Paul" dst="King" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Paul" dst="Lapointe" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Paul" dst="Julian" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Paul" dst="Lafontaine" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Paul" dst="Gordon" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Paul" dst="Drouin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Paul" dst="Robert" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Paul" dst="Jocelyne" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Paul" dst="Stephen" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Paul" dst="Provost" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Paul" dst="Juneau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Paul" dst="Casavant" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Paul" dst="St_Antoine" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Paul" dst="Louis" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Paul" dst="Julien" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Paul" dst="Mathematica" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Paul" dst="LaTeX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Paul" dst="Sirois" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Paul" dst="Monique" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Paul" dst="Audy" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Paul" dst="Bourassa" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Paul" dst="OHara" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Paul" dst="Boston" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Paul" dst="Papineau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Paul" dst="Fraser" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Paul" dst="Browne" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Paul" dst="SunOS" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Paul" dst="Varennes" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Paul" dst="Jacques" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Paul" dst="Thierry" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Paul" dst="Lachapelle" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Paul" dst="kV" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Paul" dst="Yolande" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Paul" dst="Pronovost" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Paul" dst="SPICE" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Paul" dst="Europe" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Paul" dst="Roy" symmetrical="NO"><link_ctn id="165"/></route>
-   <route src="St_Paul" dst="Amadeus" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Paul" dst="Intel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Paul" dst="Cambridge" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Paul" dst="Tremblay" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Paul" dst="UNIX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Paul" dst="Domey" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Paul" dst="St_Bruno" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Paul" dst="Jean_Claude" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Paul" dst="Doyon" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Paul" dst="Fafard" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Paul" dst="Croteau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Paul" dst="Dodge" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Mathematica" dst="Jacquelin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Mathematica" dst="Boivin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Mathematica" dst="Jean_Yves" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Mathematica" dst="TeX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Mathematica" dst="Geoff" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Mathematica" dst="Disney" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Mathematica" dst="iRMX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Mathematica" dst="McGee" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Mathematica" dst="Gatien" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Mathematica" dst="Laroche" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Mathematica" dst="Tanguay" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Mathematica" dst="Morin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Mathematica" dst="Ethernet" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Mathematica" dst="Bellemarre" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Mathematica" dst="Kuenning" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Mathematica" dst="Gaston" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Mathematica" dst="Harry" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Mathematica" dst="Bousquet" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Mathematica" dst="Paul" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Mathematica" dst="St_Jean" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Mathematica" dst="Jill" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Mathematica" dst="Marcel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Mathematica" dst="Wright" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Mathematica" dst="Jackson" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Mathematica" dst="Fernand" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Mathematica" dst="Soucy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Mathematica" dst="Ste_Julie" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Mathematica" dst="Victoria" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Mathematica" dst="Lessard" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Mathematica" dst="Florient" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Mathematica" dst="Marcoux" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Mathematica" dst="Gavrel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Mathematica" dst="Bescherelle" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Mathematica" dst="Pierre" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Mathematica" dst="Jamie" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Mathematica" dst="Rubin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Mathematica" dst="Olivier" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Mathematica" dst="Boucherville" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Mathematica" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Mathematica" dst="Kansas" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Mathematica" dst="King" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Mathematica" dst="Lapointe" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Mathematica" dst="Julian" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Mathematica" dst="Lafontaine" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Mathematica" dst="Gordon" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Mathematica" dst="Drouin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Mathematica" dst="Robert" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Mathematica" dst="Jocelyne" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Mathematica" dst="Stephen" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Mathematica" dst="Provost" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Mathematica" dst="Juneau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Mathematica" dst="Casavant" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Mathematica" dst="St_Antoine" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Mathematica" dst="Louis" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Mathematica" dst="Julien" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Mathematica" dst="St_Paul" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Mathematica" dst="LaTeX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Mathematica" dst="Sirois" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Mathematica" dst="Monique" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Mathematica" dst="Audy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Mathematica" dst="Bourassa" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Mathematica" dst="OHara" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Mathematica" dst="Boston" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Mathematica" dst="Papineau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Mathematica" dst="Fraser" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Mathematica" dst="Browne" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Mathematica" dst="SunOS" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Mathematica" dst="Varennes" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Mathematica" dst="Jacques" symmetrical="NO"><link_ctn id="157"/><link_ctn id="159"/></route>
-   <route src="Mathematica" dst="Thierry" symmetrical="NO"><link_ctn id="157"/><link_ctn id="156"/></route>
-   <route src="Mathematica" dst="Lachapelle" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Mathematica" dst="kV" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Mathematica" dst="Yolande" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Mathematica" dst="Pronovost" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Mathematica" dst="SPICE" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Mathematica" dst="Europe" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Mathematica" dst="Roy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Mathematica" dst="Amadeus" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Mathematica" dst="Intel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Mathematica" dst="Cambridge" symmetrical="NO"><link_ctn id="157"/><link_ctn id="158"/></route>
-   <route src="Mathematica" dst="Tremblay" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Mathematica" dst="UNIX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Mathematica" dst="Domey" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Mathematica" dst="St_Bruno" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Mathematica" dst="Jean_Claude" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Mathematica" dst="Doyon" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Mathematica" dst="Fafard" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Mathematica" dst="Croteau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Mathematica" dst="Dodge" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="LaTeX" dst="Jacquelin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="LaTeX" dst="Boivin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="LaTeX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="LaTeX" dst="TeX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="LaTeX" dst="Geoff" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="LaTeX" dst="Disney" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="LaTeX" dst="iRMX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="LaTeX" dst="McGee" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="LaTeX" dst="Gatien" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="LaTeX" dst="Laroche" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="LaTeX" dst="Tanguay" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="LaTeX" dst="Morin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="LaTeX" dst="Ethernet" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="LaTeX" dst="Bellemarre" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="LaTeX" dst="Kuenning" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="LaTeX" dst="Gaston" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="LaTeX" dst="Harry" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="LaTeX" dst="Bousquet" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="LaTeX" dst="Paul" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="LaTeX" dst="St_Jean" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="LaTeX" dst="Jill" symmetrical="NO"><link_ctn id="177"/></route>
-   <route src="LaTeX" dst="Marcel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="LaTeX" dst="Wright" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="LaTeX" dst="Jackson" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="LaTeX" dst="Fernand" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="LaTeX" dst="Soucy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="LaTeX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="LaTeX" dst="Victoria" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="LaTeX" dst="Lessard" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="LaTeX" dst="Florient" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="LaTeX" dst="Marcoux" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="LaTeX" dst="Gavrel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="LaTeX" dst="Bescherelle" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="LaTeX" dst="Pierre" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="LaTeX" dst="Jamie" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="LaTeX" dst="Rubin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="LaTeX" dst="Olivier" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="LaTeX" dst="Boucherville" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="LaTeX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="LaTeX" dst="Kansas" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="LaTeX" dst="King" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="LaTeX" dst="Lapointe" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="LaTeX" dst="Julian" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="LaTeX" dst="Lafontaine" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="LaTeX" dst="Gordon" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="LaTeX" dst="Drouin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="LaTeX" dst="Robert" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="LaTeX" dst="Jocelyne" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="LaTeX" dst="Stephen" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="LaTeX" dst="Provost" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="LaTeX" dst="Juneau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="LaTeX" dst="Casavant" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="LaTeX" dst="St_Antoine" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="LaTeX" dst="Louis" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="LaTeX" dst="Julien" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="LaTeX" dst="St_Paul" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="LaTeX" dst="Mathematica" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="LaTeX" dst="Sirois" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="LaTeX" dst="Monique" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="LaTeX" dst="Audy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="LaTeX" dst="Bourassa" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="LaTeX" dst="OHara" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="LaTeX" dst="Boston" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="LaTeX" dst="Papineau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="LaTeX" dst="Fraser" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="LaTeX" dst="Browne" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="LaTeX" dst="SunOS" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="LaTeX" dst="Varennes" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="LaTeX" dst="Jacques" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="LaTeX" dst="Thierry" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="LaTeX" dst="Lachapelle" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="LaTeX" dst="kV" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="LaTeX" dst="Yolande" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="LaTeX" dst="Pronovost" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="LaTeX" dst="SPICE" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="LaTeX" dst="Europe" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="LaTeX" dst="Roy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="LaTeX" dst="Amadeus" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="LaTeX" dst="Intel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="LaTeX" dst="Cambridge" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="LaTeX" dst="Tremblay" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="LaTeX" dst="UNIX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="LaTeX" dst="Domey" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="LaTeX" dst="St_Bruno" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="LaTeX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="LaTeX" dst="Doyon" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="LaTeX" dst="Fafard" symmetrical="NO"><link_ctn id="177"/><link_ctn id="179"/></route>
-   <route src="LaTeX" dst="Croteau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="LaTeX" dst="Dodge" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Sirois" dst="Jacquelin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Sirois" dst="Boivin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Sirois" dst="Jean_Yves" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Sirois" dst="TeX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Sirois" dst="Geoff" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Sirois" dst="Disney" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Sirois" dst="iRMX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Sirois" dst="McGee" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Sirois" dst="Gatien" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Sirois" dst="Laroche" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Sirois" dst="Tanguay" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Sirois" dst="Morin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Sirois" dst="Ethernet" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Sirois" dst="Bellemarre" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Sirois" dst="Kuenning" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Sirois" dst="Gaston" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Sirois" dst="Harry" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Sirois" dst="Bousquet" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Sirois" dst="Paul" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Sirois" dst="St_Jean" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Sirois" dst="Jill" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Sirois" dst="Marcel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Sirois" dst="Wright" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Sirois" dst="Jackson" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Sirois" dst="Fernand" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Sirois" dst="Soucy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Sirois" dst="Ste_Julie" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Sirois" dst="Victoria" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Sirois" dst="Lessard" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Sirois" dst="Florient" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Sirois" dst="Marcoux" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Sirois" dst="Gavrel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Sirois" dst="Bescherelle" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Sirois" dst="Pierre" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Sirois" dst="Jamie" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Sirois" dst="Rubin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Sirois" dst="Olivier" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Sirois" dst="Boucherville" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Sirois" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Sirois" dst="Kansas" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Sirois" dst="King" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Sirois" dst="Lapointe" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Sirois" dst="Julian" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Sirois" dst="Lafontaine" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Sirois" dst="Gordon" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Sirois" dst="Drouin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Sirois" dst="Robert" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Sirois" dst="Jocelyne" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Sirois" dst="Stephen" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Sirois" dst="Provost" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Sirois" dst="Juneau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Sirois" dst="Casavant" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Sirois" dst="St_Antoine" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Sirois" dst="Louis" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Sirois" dst="Julien" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Sirois" dst="St_Paul" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Sirois" dst="Mathematica" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Sirois" dst="LaTeX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Sirois" dst="Monique" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Sirois" dst="Audy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Sirois" dst="Bourassa" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Sirois" dst="OHara" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Sirois" dst="Boston" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Sirois" dst="Papineau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Sirois" dst="Fraser" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Sirois" dst="Browne" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Sirois" dst="SunOS" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Sirois" dst="Varennes" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Sirois" dst="Jacques" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Sirois" dst="Thierry" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Sirois" dst="Lachapelle" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Sirois" dst="kV" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Sirois" dst="Yolande" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Sirois" dst="Pronovost" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Sirois" dst="SPICE" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Sirois" dst="Europe" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Sirois" dst="Roy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Sirois" dst="Amadeus" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Sirois" dst="Intel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Sirois" dst="Cambridge" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Sirois" dst="Tremblay" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Sirois" dst="UNIX" symmetrical="NO"><link_ctn id="129"/></route>
-   <route src="Sirois" dst="Domey" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Sirois" dst="St_Bruno" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Sirois" dst="Jean_Claude" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Sirois" dst="Doyon" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Sirois" dst="Fafard" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Sirois" dst="Croteau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Sirois" dst="Dodge" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Monique" dst="Jacquelin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Monique" dst="Boivin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Monique" dst="Jean_Yves" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Monique" dst="TeX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Monique" dst="Geoff" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Monique" dst="Disney" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Monique" dst="iRMX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Monique" dst="McGee" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Monique" dst="Gatien" symmetrical="NO"><link_ctn id="113"/><link_ctn id="115"/></route>
-   <route src="Monique" dst="Laroche" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Monique" dst="Tanguay" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Monique" dst="Morin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Monique" dst="Ethernet" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Monique" dst="Bellemarre" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Monique" dst="Kuenning" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Monique" dst="Gaston" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Monique" dst="Harry" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Monique" dst="Bousquet" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Monique" dst="Paul" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Monique" dst="St_Jean" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Monique" dst="Jill" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Monique" dst="Marcel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Monique" dst="Wright" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Monique" dst="Jackson" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Monique" dst="Fernand" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Monique" dst="Soucy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Monique" dst="Ste_Julie" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Monique" dst="Victoria" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Monique" dst="Lessard" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Monique" dst="Florient" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Monique" dst="Marcoux" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Monique" dst="Gavrel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Monique" dst="Bescherelle" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Monique" dst="Pierre" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Monique" dst="Jamie" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Monique" dst="Rubin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Monique" dst="Olivier" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Monique" dst="Boucherville" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Monique" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Monique" dst="Kansas" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Monique" dst="King" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Monique" dst="Lapointe" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Monique" dst="Julian" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Monique" dst="Lafontaine" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Monique" dst="Gordon" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Monique" dst="Drouin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Monique" dst="Robert" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Monique" dst="Jocelyne" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Monique" dst="Stephen" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Monique" dst="Provost" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Monique" dst="Juneau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Monique" dst="Casavant" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Monique" dst="St_Antoine" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Monique" dst="Louis" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Monique" dst="Julien" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Monique" dst="St_Paul" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Monique" dst="Mathematica" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Monique" dst="LaTeX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Monique" dst="Sirois" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Monique" dst="Audy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Monique" dst="Bourassa" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Monique" dst="OHara" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Monique" dst="Boston" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Monique" dst="Papineau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Monique" dst="Fraser" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Monique" dst="Browne" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Monique" dst="SunOS" symmetrical="NO"><link_ctn id="113"/><link_ctn id="114"/></route>
-   <route src="Monique" dst="Varennes" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Monique" dst="Jacques" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Monique" dst="Thierry" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Monique" dst="Lachapelle" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Monique" dst="kV" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Monique" dst="Yolande" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Monique" dst="Pronovost" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Monique" dst="SPICE" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Monique" dst="Europe" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Monique" dst="Roy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Monique" dst="Amadeus" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Monique" dst="Intel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Monique" dst="Cambridge" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Monique" dst="Tremblay" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Monique" dst="UNIX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Monique" dst="Domey" symmetrical="NO"><link_ctn id="113"/></route>
-   <route src="Monique" dst="St_Bruno" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Monique" dst="Jean_Claude" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Monique" dst="Doyon" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Monique" dst="Fafard" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Monique" dst="Croteau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Monique" dst="Dodge" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Audy" dst="Jacquelin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Audy" dst="Boivin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Audy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Audy" dst="TeX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Audy" dst="Geoff" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Audy" dst="Disney" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Audy" dst="iRMX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Audy" dst="McGee" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Audy" dst="Gatien" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Audy" dst="Laroche" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Audy" dst="Tanguay" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Audy" dst="Morin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Audy" dst="Ethernet" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Audy" dst="Bellemarre" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Audy" dst="Kuenning" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Audy" dst="Gaston" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Audy" dst="Harry" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Audy" dst="Bousquet" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Audy" dst="Paul" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Audy" dst="St_Jean" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Audy" dst="Jill" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Audy" dst="Marcel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Audy" dst="Wright" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Audy" dst="Jackson" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Audy" dst="Fernand" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Audy" dst="Soucy" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Audy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Audy" dst="Victoria" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Audy" dst="Lessard" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Audy" dst="Florient" symmetrical="NO"><link_ctn id="183"/><link_ctn id="181"/></route>
-   <route src="Audy" dst="Marcoux" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Audy" dst="Gavrel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Audy" dst="Bescherelle" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Audy" dst="Pierre" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Audy" dst="Jamie" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Audy" dst="Rubin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Audy" dst="Olivier" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Audy" dst="Boucherville" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Audy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Audy" dst="Kansas" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Audy" dst="King" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Audy" dst="Lapointe" symmetrical="NO"><link_ctn id="183"/></route>
-   <route src="Audy" dst="Julian" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Audy" dst="Lafontaine" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Audy" dst="Gordon" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Audy" dst="Drouin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Audy" dst="Robert" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Audy" dst="Jocelyne" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Audy" dst="Stephen" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Audy" dst="Provost" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Audy" dst="Juneau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Audy" dst="Casavant" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Audy" dst="St_Antoine" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Audy" dst="Louis" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Audy" dst="Julien" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Audy" dst="St_Paul" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Audy" dst="Mathematica" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Audy" dst="LaTeX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Audy" dst="Sirois" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Audy" dst="Monique" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Audy" dst="Bourassa" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Audy" dst="OHara" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Audy" dst="Boston" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Audy" dst="Papineau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="182"/></route>
-   <route src="Audy" dst="Fraser" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Audy" dst="Browne" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Audy" dst="SunOS" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Audy" dst="Varennes" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Audy" dst="Jacques" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Audy" dst="Thierry" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Audy" dst="Lachapelle" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Audy" dst="kV" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Audy" dst="Yolande" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Audy" dst="Pronovost" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Audy" dst="SPICE" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Audy" dst="Europe" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Audy" dst="Roy" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Audy" dst="Amadeus" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Audy" dst="Intel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Audy" dst="Cambridge" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Audy" dst="Tremblay" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Audy" dst="UNIX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Audy" dst="Domey" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Audy" dst="St_Bruno" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Audy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Audy" dst="Doyon" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Audy" dst="Fafard" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Audy" dst="Croteau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Audy" dst="Dodge" symmetrical="NO"><link_ctn id="183"/><link_ctn id="180"/></route>
-   <route src="Bourassa" dst="Jacquelin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bourassa" dst="Boivin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bourassa" dst="Jean_Yves" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bourassa" dst="TeX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bourassa" dst="Geoff" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bourassa" dst="Disney" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bourassa" dst="iRMX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bourassa" dst="McGee" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bourassa" dst="Gatien" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bourassa" dst="Laroche" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bourassa" dst="Tanguay" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bourassa" dst="Morin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bourassa" dst="Ethernet" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bourassa" dst="Bellemarre" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bourassa" dst="Kuenning" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bourassa" dst="Gaston" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bourassa" dst="Harry" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bourassa" dst="Bousquet" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bourassa" dst="Paul" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bourassa" dst="St_Jean" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bourassa" dst="Jill" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bourassa" dst="Marcel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bourassa" dst="Wright" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bourassa" dst="Jackson" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bourassa" dst="Fernand" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bourassa" dst="Soucy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bourassa" dst="Ste_Julie" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bourassa" dst="Victoria" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bourassa" dst="Lessard" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bourassa" dst="Florient" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bourassa" dst="Marcoux" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bourassa" dst="Gavrel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="148"/></route>
-   <route src="Bourassa" dst="Bescherelle" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bourassa" dst="Pierre" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bourassa" dst="Jamie" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bourassa" dst="Rubin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bourassa" dst="Olivier" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bourassa" dst="Boucherville" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bourassa" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bourassa" dst="Kansas" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bourassa" dst="King" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bourassa" dst="Lapointe" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bourassa" dst="Julian" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bourassa" dst="Lafontaine" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bourassa" dst="Gordon" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bourassa" dst="Drouin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bourassa" dst="Robert" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bourassa" dst="Jocelyne" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bourassa" dst="Stephen" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bourassa" dst="Provost" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bourassa" dst="Juneau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bourassa" dst="Casavant" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bourassa" dst="St_Antoine" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bourassa" dst="Louis" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bourassa" dst="Julien" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bourassa" dst="St_Paul" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bourassa" dst="Mathematica" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bourassa" dst="LaTeX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bourassa" dst="Sirois" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bourassa" dst="Monique" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bourassa" dst="Audy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bourassa" dst="OHara" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bourassa" dst="Boston" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bourassa" dst="Papineau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bourassa" dst="Fraser" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bourassa" dst="Browne" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bourassa" dst="SunOS" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bourassa" dst="Varennes" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bourassa" dst="Jacques" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bourassa" dst="Thierry" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bourassa" dst="Lachapelle" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bourassa" dst="kV" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bourassa" dst="Yolande" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bourassa" dst="Pronovost" symmetrical="NO"><link_ctn id="150"/><link_ctn id="151"/></route>
-   <route src="Bourassa" dst="SPICE" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bourassa" dst="Europe" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bourassa" dst="Roy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bourassa" dst="Amadeus" symmetrical="NO"><link_ctn id="150"/></route>
-   <route src="Bourassa" dst="Intel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bourassa" dst="Cambridge" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bourassa" dst="Tremblay" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bourassa" dst="UNIX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bourassa" dst="Domey" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bourassa" dst="St_Bruno" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bourassa" dst="Jean_Claude" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bourassa" dst="Doyon" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bourassa" dst="Fafard" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bourassa" dst="Croteau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bourassa" dst="Dodge" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="OHara" dst="Jacquelin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="OHara" dst="Boivin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="OHara" dst="Jean_Yves" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="OHara" dst="TeX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="OHara" dst="Geoff" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="OHara" dst="Disney" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="OHara" dst="iRMX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="OHara" dst="McGee" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="OHara" dst="Gatien" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="OHara" dst="Laroche" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="OHara" dst="Tanguay" symmetrical="NO"><link_ctn id="163"/><link_ctn id="162"/></route>
-   <route src="OHara" dst="Morin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="OHara" dst="Ethernet" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="OHara" dst="Bellemarre" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="OHara" dst="Kuenning" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="OHara" dst="Gaston" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="OHara" dst="Harry" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="OHara" dst="Bousquet" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="OHara" dst="Paul" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="OHara" dst="St_Jean" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="OHara" dst="Jill" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="OHara" dst="Marcel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="OHara" dst="Wright" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="OHara" dst="Jackson" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="OHara" dst="Fernand" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="OHara" dst="Soucy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="OHara" dst="Ste_Julie" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="OHara" dst="Victoria" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="OHara" dst="Lessard" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="OHara" dst="Florient" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="OHara" dst="Marcoux" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="OHara" dst="Gavrel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="OHara" dst="Bescherelle" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="OHara" dst="Pierre" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="OHara" dst="Jamie" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="OHara" dst="Rubin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="OHara" dst="Olivier" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="OHara" dst="Boucherville" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="OHara" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="OHara" dst="Kansas" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="OHara" dst="King" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="OHara" dst="Lapointe" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="OHara" dst="Julian" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="OHara" dst="Lafontaine" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="OHara" dst="Gordon" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="OHara" dst="Drouin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="OHara" dst="Robert" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="OHara" dst="Jocelyne" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="OHara" dst="Stephen" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="OHara" dst="Provost" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="OHara" dst="Juneau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="OHara" dst="Casavant" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="OHara" dst="St_Antoine" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="OHara" dst="Louis" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="OHara" dst="Julien" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="OHara" dst="St_Paul" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="OHara" dst="Mathematica" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="OHara" dst="LaTeX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="OHara" dst="Sirois" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="OHara" dst="Monique" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="OHara" dst="Audy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="OHara" dst="Bourassa" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="OHara" dst="Boston" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="OHara" dst="Papineau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="OHara" dst="Fraser" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="OHara" dst="Browne" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="OHara" dst="SunOS" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="OHara" dst="Varennes" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="OHara" dst="Jacques" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="OHara" dst="Thierry" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="OHara" dst="Lachapelle" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="OHara" dst="kV" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="OHara" dst="Yolande" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="OHara" dst="Pronovost" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="OHara" dst="SPICE" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="OHara" dst="Europe" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="OHara" dst="Roy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="OHara" dst="Amadeus" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="OHara" dst="Intel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="OHara" dst="Cambridge" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="OHara" dst="Tremblay" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="OHara" dst="UNIX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="OHara" dst="Domey" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="OHara" dst="St_Bruno" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="OHara" dst="Jean_Claude" symmetrical="NO"><link_ctn id="163"/><link_ctn id="160"/></route>
-   <route src="OHara" dst="Doyon" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="OHara" dst="Fafard" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="OHara" dst="Croteau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="OHara" dst="Dodge" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boston" dst="Jacquelin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boston" dst="Boivin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Boston" dst="Jean_Yves" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boston" dst="TeX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boston" dst="Geoff" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boston" dst="Disney" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boston" dst="iRMX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Boston" dst="McGee" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boston" dst="Gatien" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boston" dst="Laroche" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Boston" dst="Tanguay" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boston" dst="Morin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boston" dst="Ethernet" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Boston" dst="Bellemarre" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boston" dst="Kuenning" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boston" dst="Gaston" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boston" dst="Harry" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boston" dst="Bousquet" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boston" dst="Paul" symmetrical="NO"><link_ctn id="95"/><link_ctn id="93"/></route>
-   <route src="Boston" dst="St_Jean" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boston" dst="Jill" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Boston" dst="Marcel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boston" dst="Wright" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boston" dst="Jackson" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boston" dst="Fernand" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boston" dst="Soucy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boston" dst="Ste_Julie" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boston" dst="Victoria" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boston" dst="Lessard" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boston" dst="Florient" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boston" dst="Marcoux" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boston" dst="Gavrel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boston" dst="Bescherelle" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boston" dst="Pierre" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boston" dst="Jamie" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boston" dst="Rubin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boston" dst="Olivier" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boston" dst="Boucherville" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Boston" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boston" dst="Kansas" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boston" dst="King" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boston" dst="Lapointe" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Boston" dst="Julian" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boston" dst="Lafontaine" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boston" dst="Gordon" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Boston" dst="Drouin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boston" dst="Robert" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boston" dst="Jocelyne" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Boston" dst="Stephen" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boston" dst="Provost" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boston" dst="Juneau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boston" dst="Casavant" symmetrical="NO"><link_ctn id="95"/><link_ctn id="92"/></route>
-   <route src="Boston" dst="St_Antoine" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boston" dst="Louis" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Boston" dst="Julien" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boston" dst="St_Paul" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boston" dst="Mathematica" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boston" dst="LaTeX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boston" dst="Sirois" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boston" dst="Monique" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boston" dst="Audy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boston" dst="Bourassa" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boston" dst="OHara" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boston" dst="Papineau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boston" dst="Fraser" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boston" dst="Browne" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boston" dst="SunOS" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boston" dst="Varennes" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boston" dst="Jacques" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boston" dst="Thierry" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boston" dst="Lachapelle" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boston" dst="kV" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boston" dst="Yolande" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boston" dst="Pronovost" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boston" dst="SPICE" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boston" dst="Europe" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boston" dst="Roy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boston" dst="Amadeus" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boston" dst="Intel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boston" dst="Cambridge" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boston" dst="Tremblay" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boston" dst="UNIX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boston" dst="Domey" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boston" dst="St_Bruno" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Boston" dst="Jean_Claude" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boston" dst="Doyon" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boston" dst="Fafard" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boston" dst="Croteau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Boston" dst="Dodge" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Papineau" dst="Jacquelin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Papineau" dst="Boivin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Papineau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Papineau" dst="TeX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Papineau" dst="Geoff" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Papineau" dst="Disney" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Papineau" dst="iRMX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Papineau" dst="McGee" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Papineau" dst="Gatien" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Papineau" dst="Laroche" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Papineau" dst="Tanguay" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Papineau" dst="Morin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Papineau" dst="Ethernet" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Papineau" dst="Bellemarre" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Papineau" dst="Kuenning" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Papineau" dst="Gaston" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Papineau" dst="Harry" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Papineau" dst="Bousquet" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Papineau" dst="Paul" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Papineau" dst="St_Jean" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Papineau" dst="Jill" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Papineau" dst="Marcel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Papineau" dst="Wright" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Papineau" dst="Jackson" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Papineau" dst="Fernand" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Papineau" dst="Soucy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Papineau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Papineau" dst="Victoria" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Papineau" dst="Lessard" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Papineau" dst="Florient" symmetrical="NO"><link_ctn id="182"/><link_ctn id="181"/></route>
-   <route src="Papineau" dst="Marcoux" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Papineau" dst="Gavrel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Papineau" dst="Bescherelle" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Papineau" dst="Pierre" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Papineau" dst="Jamie" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Papineau" dst="Rubin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Papineau" dst="Olivier" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Papineau" dst="Boucherville" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Papineau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Papineau" dst="Kansas" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Papineau" dst="King" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Papineau" dst="Lapointe" symmetrical="NO"><link_ctn id="182"/></route>
-   <route src="Papineau" dst="Julian" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Papineau" dst="Lafontaine" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Papineau" dst="Gordon" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Papineau" dst="Drouin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Papineau" dst="Robert" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Papineau" dst="Jocelyne" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Papineau" dst="Stephen" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Papineau" dst="Provost" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Papineau" dst="Juneau" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Papineau" dst="Casavant" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Papineau" dst="St_Antoine" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Papineau" dst="Louis" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Papineau" dst="Julien" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Papineau" dst="St_Paul" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Papineau" dst="Mathematica" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Papineau" dst="LaTeX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Papineau" dst="Sirois" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Papineau" dst="Monique" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Papineau" dst="Audy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="183"/></route>
-   <route src="Papineau" dst="Bourassa" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Papineau" dst="OHara" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Papineau" dst="Boston" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Papineau" dst="Fraser" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Papineau" dst="Browne" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Papineau" dst="SunOS" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Papineau" dst="Varennes" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Papineau" dst="Jacques" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Papineau" dst="Thierry" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Papineau" dst="Lachapelle" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Papineau" dst="kV" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Papineau" dst="Yolande" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Papineau" dst="Pronovost" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Papineau" dst="SPICE" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Papineau" dst="Europe" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Papineau" dst="Roy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Papineau" dst="Amadeus" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Papineau" dst="Intel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Papineau" dst="Cambridge" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Papineau" dst="Tremblay" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Papineau" dst="UNIX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Papineau" dst="Domey" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Papineau" dst="St_Bruno" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Papineau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Papineau" dst="Doyon" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Papineau" dst="Fafard" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Papineau" dst="Croteau" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Papineau" dst="Dodge" symmetrical="NO"><link_ctn id="182"/><link_ctn id="180"/></route>
-   <route src="Fraser" dst="Jacquelin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fraser" dst="Boivin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fraser" dst="Jean_Yves" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fraser" dst="TeX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fraser" dst="Geoff" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fraser" dst="Disney" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Fraser" dst="iRMX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fraser" dst="McGee" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fraser" dst="Gatien" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fraser" dst="Laroche" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Fraser" dst="Tanguay" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fraser" dst="Morin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fraser" dst="Ethernet" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fraser" dst="Bellemarre" symmetrical="NO"><link_ctn id="96"/></route>
-   <route src="Fraser" dst="Kuenning" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fraser" dst="Gaston" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fraser" dst="Harry" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Fraser" dst="Bousquet" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fraser" dst="Paul" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fraser" dst="St_Jean" symmetrical="NO"><link_ctn id="96"/><link_ctn id="97"/></route>
-   <route src="Fraser" dst="Jill" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Fraser" dst="Marcel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fraser" dst="Wright" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fraser" dst="Jackson" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fraser" dst="Fernand" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Fraser" dst="Soucy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fraser" dst="Ste_Julie" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fraser" dst="Victoria" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fraser" dst="Lessard" symmetrical="NO"><link_ctn id="96"/><link_ctn id="99"/></route>
-   <route src="Fraser" dst="Florient" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fraser" dst="Marcoux" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fraser" dst="Gavrel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fraser" dst="Bescherelle" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fraser" dst="Pierre" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fraser" dst="Jamie" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fraser" dst="Rubin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fraser" dst="Olivier" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fraser" dst="Boucherville" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Fraser" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fraser" dst="Kansas" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fraser" dst="King" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fraser" dst="Lapointe" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Fraser" dst="Julian" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Fraser" dst="Lafontaine" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fraser" dst="Gordon" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Fraser" dst="Drouin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fraser" dst="Robert" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fraser" dst="Jocelyne" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fraser" dst="Stephen" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fraser" dst="Provost" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fraser" dst="Juneau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fraser" dst="Casavant" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fraser" dst="St_Antoine" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fraser" dst="Louis" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fraser" dst="Julien" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fraser" dst="St_Paul" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fraser" dst="Mathematica" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fraser" dst="LaTeX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Fraser" dst="Sirois" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fraser" dst="Monique" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fraser" dst="Audy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fraser" dst="Bourassa" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fraser" dst="OHara" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fraser" dst="Boston" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fraser" dst="Papineau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fraser" dst="Browne" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fraser" dst="SunOS" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fraser" dst="Varennes" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fraser" dst="Jacques" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fraser" dst="Thierry" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fraser" dst="Lachapelle" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fraser" dst="kV" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fraser" dst="Yolande" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fraser" dst="Pronovost" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fraser" dst="SPICE" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Fraser" dst="Europe" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fraser" dst="Roy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fraser" dst="Amadeus" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fraser" dst="Intel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fraser" dst="Cambridge" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fraser" dst="Tremblay" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fraser" dst="UNIX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fraser" dst="Domey" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fraser" dst="St_Bruno" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fraser" dst="Jean_Claude" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fraser" dst="Doyon" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fraser" dst="Fafard" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Fraser" dst="Croteau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fraser" dst="Dodge" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Browne" dst="Jacquelin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Browne" dst="Boivin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Browne" dst="Jean_Yves" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Browne" dst="TeX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Browne" dst="Geoff" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Browne" dst="Disney" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Browne" dst="iRMX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Browne" dst="McGee" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Browne" dst="Gatien" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Browne" dst="Laroche" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Browne" dst="Tanguay" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Browne" dst="Morin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Browne" dst="Ethernet" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Browne" dst="Bellemarre" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Browne" dst="Kuenning" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Browne" dst="Gaston" symmetrical="NO"><link_ctn id="152"/><link_ctn id="153"/></route>
-   <route src="Browne" dst="Harry" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Browne" dst="Bousquet" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Browne" dst="Paul" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Browne" dst="St_Jean" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Browne" dst="Jill" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Browne" dst="Marcel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="155"/></route>
-   <route src="Browne" dst="Wright" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Browne" dst="Jackson" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Browne" dst="Fernand" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Browne" dst="Soucy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Browne" dst="Ste_Julie" symmetrical="NO"><link_ctn id="152"/></route>
-   <route src="Browne" dst="Victoria" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Browne" dst="Lessard" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Browne" dst="Florient" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Browne" dst="Marcoux" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Browne" dst="Gavrel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Browne" dst="Bescherelle" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Browne" dst="Pierre" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Browne" dst="Jamie" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Browne" dst="Rubin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Browne" dst="Olivier" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Browne" dst="Boucherville" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Browne" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Browne" dst="Kansas" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Browne" dst="King" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Browne" dst="Lapointe" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Browne" dst="Julian" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Browne" dst="Lafontaine" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Browne" dst="Gordon" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Browne" dst="Drouin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Browne" dst="Robert" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Browne" dst="Jocelyne" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Browne" dst="Stephen" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Browne" dst="Provost" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Browne" dst="Juneau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Browne" dst="Casavant" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Browne" dst="St_Antoine" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Browne" dst="Louis" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Browne" dst="Julien" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Browne" dst="St_Paul" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Browne" dst="Mathematica" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Browne" dst="LaTeX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Browne" dst="Sirois" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Browne" dst="Monique" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Browne" dst="Audy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Browne" dst="Bourassa" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Browne" dst="OHara" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Browne" dst="Boston" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Browne" dst="Papineau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Browne" dst="Fraser" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Browne" dst="SunOS" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Browne" dst="Varennes" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Browne" dst="Jacques" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Browne" dst="Thierry" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Browne" dst="Lachapelle" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Browne" dst="kV" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Browne" dst="Yolande" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Browne" dst="Pronovost" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Browne" dst="SPICE" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Browne" dst="Europe" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Browne" dst="Roy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Browne" dst="Amadeus" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Browne" dst="Intel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Browne" dst="Cambridge" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Browne" dst="Tremblay" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Browne" dst="UNIX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Browne" dst="Domey" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Browne" dst="St_Bruno" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Browne" dst="Jean_Claude" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Browne" dst="Doyon" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Browne" dst="Fafard" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Browne" dst="Croteau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Browne" dst="Dodge" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="SunOS" dst="Jacquelin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="SunOS" dst="Boivin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="SunOS" dst="Jean_Yves" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="SunOS" dst="TeX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="SunOS" dst="Geoff" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="SunOS" dst="Disney" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="SunOS" dst="iRMX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="SunOS" dst="McGee" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="SunOS" dst="Gatien" symmetrical="NO"><link_ctn id="114"/><link_ctn id="115"/></route>
-   <route src="SunOS" dst="Laroche" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="SunOS" dst="Tanguay" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="SunOS" dst="Morin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="SunOS" dst="Ethernet" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="SunOS" dst="Bellemarre" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="SunOS" dst="Kuenning" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="SunOS" dst="Gaston" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="SunOS" dst="Harry" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="SunOS" dst="Bousquet" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="SunOS" dst="Paul" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="SunOS" dst="St_Jean" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="SunOS" dst="Jill" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="SunOS" dst="Marcel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="SunOS" dst="Wright" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="SunOS" dst="Jackson" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="SunOS" dst="Fernand" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="SunOS" dst="Soucy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="SunOS" dst="Ste_Julie" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="SunOS" dst="Victoria" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="SunOS" dst="Lessard" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="SunOS" dst="Florient" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="SunOS" dst="Marcoux" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="SunOS" dst="Gavrel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="SunOS" dst="Bescherelle" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="SunOS" dst="Pierre" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="SunOS" dst="Jamie" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="SunOS" dst="Rubin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="SunOS" dst="Olivier" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="SunOS" dst="Boucherville" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="SunOS" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="SunOS" dst="Kansas" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="SunOS" dst="King" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="SunOS" dst="Lapointe" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="SunOS" dst="Julian" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="SunOS" dst="Lafontaine" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="SunOS" dst="Gordon" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="SunOS" dst="Drouin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="SunOS" dst="Robert" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="SunOS" dst="Jocelyne" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="SunOS" dst="Stephen" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="SunOS" dst="Provost" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="SunOS" dst="Juneau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="SunOS" dst="Casavant" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="SunOS" dst="St_Antoine" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="SunOS" dst="Louis" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="SunOS" dst="Julien" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="SunOS" dst="St_Paul" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="SunOS" dst="Mathematica" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="SunOS" dst="LaTeX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="SunOS" dst="Sirois" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="SunOS" dst="Monique" symmetrical="NO"><link_ctn id="114"/><link_ctn id="113"/></route>
-   <route src="SunOS" dst="Audy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="SunOS" dst="Bourassa" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="SunOS" dst="OHara" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="SunOS" dst="Boston" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="SunOS" dst="Papineau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="SunOS" dst="Fraser" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="SunOS" dst="Browne" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="SunOS" dst="Varennes" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="SunOS" dst="Jacques" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="SunOS" dst="Thierry" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="SunOS" dst="Lachapelle" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="SunOS" dst="kV" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="SunOS" dst="Yolande" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="SunOS" dst="Pronovost" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="SunOS" dst="SPICE" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="SunOS" dst="Europe" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="SunOS" dst="Roy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="SunOS" dst="Amadeus" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="SunOS" dst="Intel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="SunOS" dst="Cambridge" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="SunOS" dst="Tremblay" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="SunOS" dst="UNIX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="SunOS" dst="Domey" symmetrical="NO"><link_ctn id="114"/></route>
-   <route src="SunOS" dst="St_Bruno" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="SunOS" dst="Jean_Claude" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="SunOS" dst="Doyon" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="SunOS" dst="Fafard" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="SunOS" dst="Croteau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="SunOS" dst="Dodge" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Varennes" dst="Jacquelin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Varennes" dst="Boivin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Varennes" dst="Jean_Yves" symmetrical="NO"><link_ctn id="136"/><link_ctn id="138"/></route>
-   <route src="Varennes" dst="TeX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Varennes" dst="Geoff" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Varennes" dst="Disney" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Varennes" dst="iRMX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Varennes" dst="McGee" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Varennes" dst="Gatien" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Varennes" dst="Laroche" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Varennes" dst="Tanguay" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Varennes" dst="Morin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Varennes" dst="Ethernet" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Varennes" dst="Bellemarre" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Varennes" dst="Kuenning" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Varennes" dst="Gaston" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Varennes" dst="Harry" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Varennes" dst="Bousquet" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Varennes" dst="Paul" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Varennes" dst="St_Jean" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Varennes" dst="Jill" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Varennes" dst="Marcel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Varennes" dst="Wright" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Varennes" dst="Jackson" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Varennes" dst="Fernand" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Varennes" dst="Soucy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Varennes" dst="Ste_Julie" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Varennes" dst="Victoria" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Varennes" dst="Lessard" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Varennes" dst="Florient" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Varennes" dst="Marcoux" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Varennes" dst="Gavrel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Varennes" dst="Bescherelle" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Varennes" dst="Pierre" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Varennes" dst="Jamie" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Varennes" dst="Rubin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Varennes" dst="Olivier" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Varennes" dst="Boucherville" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Varennes" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Varennes" dst="Kansas" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Varennes" dst="King" symmetrical="NO"><link_ctn id="136"/><link_ctn id="137"/></route>
-   <route src="Varennes" dst="Lapointe" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Varennes" dst="Julian" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Varennes" dst="Lafontaine" symmetrical="NO"><link_ctn id="136"/><link_ctn id="139"/></route>
-   <route src="Varennes" dst="Gordon" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Varennes" dst="Drouin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Varennes" dst="Robert" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Varennes" dst="Jocelyne" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Varennes" dst="Stephen" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Varennes" dst="Provost" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Varennes" dst="Juneau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Varennes" dst="Casavant" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Varennes" dst="St_Antoine" symmetrical="NO"><link_ctn id="136"/></route>
-   <route src="Varennes" dst="Louis" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Varennes" dst="Julien" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Varennes" dst="St_Paul" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Varennes" dst="Mathematica" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Varennes" dst="LaTeX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Varennes" dst="Sirois" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Varennes" dst="Monique" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Varennes" dst="Audy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Varennes" dst="Bourassa" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Varennes" dst="OHara" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Varennes" dst="Boston" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Varennes" dst="Papineau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Varennes" dst="Fraser" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Varennes" dst="Browne" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Varennes" dst="SunOS" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Varennes" dst="Jacques" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Varennes" dst="Thierry" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Varennes" dst="Lachapelle" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Varennes" dst="kV" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Varennes" dst="Yolande" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Varennes" dst="Pronovost" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Varennes" dst="SPICE" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Varennes" dst="Europe" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Varennes" dst="Roy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Varennes" dst="Amadeus" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Varennes" dst="Intel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Varennes" dst="Cambridge" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Varennes" dst="Tremblay" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Varennes" dst="UNIX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Varennes" dst="Domey" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Varennes" dst="St_Bruno" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Varennes" dst="Jean_Claude" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Varennes" dst="Doyon" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Varennes" dst="Fafard" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Varennes" dst="Croteau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Varennes" dst="Dodge" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jacques" dst="Jacquelin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jacques" dst="Boivin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jacques" dst="Jean_Yves" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jacques" dst="TeX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jacques" dst="Geoff" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jacques" dst="Disney" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jacques" dst="iRMX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jacques" dst="McGee" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jacques" dst="Gatien" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jacques" dst="Laroche" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jacques" dst="Tanguay" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jacques" dst="Morin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jacques" dst="Ethernet" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jacques" dst="Bellemarre" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jacques" dst="Kuenning" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jacques" dst="Gaston" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jacques" dst="Harry" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jacques" dst="Bousquet" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jacques" dst="Paul" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jacques" dst="St_Jean" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jacques" dst="Jill" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jacques" dst="Marcel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jacques" dst="Wright" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jacques" dst="Jackson" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jacques" dst="Fernand" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jacques" dst="Soucy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jacques" dst="Ste_Julie" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Jacques" dst="Victoria" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jacques" dst="Lessard" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jacques" dst="Florient" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jacques" dst="Marcoux" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jacques" dst="Gavrel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jacques" dst="Bescherelle" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jacques" dst="Pierre" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jacques" dst="Jamie" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jacques" dst="Rubin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jacques" dst="Olivier" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jacques" dst="Boucherville" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jacques" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jacques" dst="Kansas" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jacques" dst="King" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jacques" dst="Lapointe" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jacques" dst="Julian" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jacques" dst="Lafontaine" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jacques" dst="Gordon" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jacques" dst="Drouin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jacques" dst="Robert" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jacques" dst="Jocelyne" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jacques" dst="Stephen" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jacques" dst="Provost" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jacques" dst="Juneau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jacques" dst="Casavant" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jacques" dst="St_Antoine" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jacques" dst="Louis" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jacques" dst="Julien" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jacques" dst="St_Paul" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jacques" dst="Mathematica" symmetrical="NO"><link_ctn id="159"/><link_ctn id="157"/></route>
-   <route src="Jacques" dst="LaTeX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jacques" dst="Sirois" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jacques" dst="Monique" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jacques" dst="Audy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jacques" dst="Bourassa" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jacques" dst="OHara" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jacques" dst="Boston" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jacques" dst="Papineau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jacques" dst="Fraser" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jacques" dst="Browne" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jacques" dst="SunOS" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jacques" dst="Varennes" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jacques" dst="Thierry" symmetrical="NO"><link_ctn id="159"/><link_ctn id="156"/></route>
-   <route src="Jacques" dst="Lachapelle" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jacques" dst="kV" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jacques" dst="Yolande" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jacques" dst="Pronovost" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jacques" dst="SPICE" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jacques" dst="Europe" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jacques" dst="Roy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Jacques" dst="Amadeus" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jacques" dst="Intel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jacques" dst="Cambridge" symmetrical="NO"><link_ctn id="159"/><link_ctn id="158"/></route>
-   <route src="Jacques" dst="Tremblay" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jacques" dst="UNIX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jacques" dst="Domey" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jacques" dst="St_Bruno" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jacques" dst="Jean_Claude" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jacques" dst="Doyon" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jacques" dst="Fafard" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jacques" dst="Croteau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jacques" dst="Dodge" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Thierry" dst="Jacquelin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Thierry" dst="Boivin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Thierry" dst="Jean_Yves" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Thierry" dst="TeX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Thierry" dst="Geoff" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Thierry" dst="Disney" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Thierry" dst="iRMX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Thierry" dst="McGee" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Thierry" dst="Gatien" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Thierry" dst="Laroche" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Thierry" dst="Tanguay" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Thierry" dst="Morin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Thierry" dst="Ethernet" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Thierry" dst="Bellemarre" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Thierry" dst="Kuenning" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Thierry" dst="Gaston" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Thierry" dst="Harry" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Thierry" dst="Bousquet" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Thierry" dst="Paul" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Thierry" dst="St_Jean" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Thierry" dst="Jill" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Thierry" dst="Marcel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Thierry" dst="Wright" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Thierry" dst="Jackson" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Thierry" dst="Fernand" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Thierry" dst="Soucy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Thierry" dst="Ste_Julie" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Thierry" dst="Victoria" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Thierry" dst="Lessard" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Thierry" dst="Florient" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Thierry" dst="Marcoux" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Thierry" dst="Gavrel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Thierry" dst="Bescherelle" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Thierry" dst="Pierre" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Thierry" dst="Jamie" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Thierry" dst="Rubin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Thierry" dst="Olivier" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Thierry" dst="Boucherville" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Thierry" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Thierry" dst="Kansas" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Thierry" dst="King" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Thierry" dst="Lapointe" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Thierry" dst="Julian" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Thierry" dst="Lafontaine" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Thierry" dst="Gordon" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Thierry" dst="Drouin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Thierry" dst="Robert" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Thierry" dst="Jocelyne" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Thierry" dst="Stephen" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Thierry" dst="Provost" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Thierry" dst="Juneau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Thierry" dst="Casavant" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Thierry" dst="St_Antoine" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Thierry" dst="Louis" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Thierry" dst="Julien" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Thierry" dst="St_Paul" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Thierry" dst="Mathematica" symmetrical="NO"><link_ctn id="156"/><link_ctn id="157"/></route>
-   <route src="Thierry" dst="LaTeX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Thierry" dst="Sirois" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Thierry" dst="Monique" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Thierry" dst="Audy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Thierry" dst="Bourassa" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Thierry" dst="OHara" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Thierry" dst="Boston" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Thierry" dst="Papineau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Thierry" dst="Fraser" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Thierry" dst="Browne" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Thierry" dst="SunOS" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Thierry" dst="Varennes" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Thierry" dst="Jacques" symmetrical="NO"><link_ctn id="156"/><link_ctn id="159"/></route>
-   <route src="Thierry" dst="Lachapelle" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Thierry" dst="kV" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Thierry" dst="Yolande" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Thierry" dst="Pronovost" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Thierry" dst="SPICE" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Thierry" dst="Europe" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Thierry" dst="Roy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Thierry" dst="Amadeus" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Thierry" dst="Intel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Thierry" dst="Cambridge" symmetrical="NO"><link_ctn id="156"/><link_ctn id="158"/></route>
-   <route src="Thierry" dst="Tremblay" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Thierry" dst="UNIX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Thierry" dst="Domey" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Thierry" dst="St_Bruno" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Thierry" dst="Jean_Claude" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Thierry" dst="Doyon" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Thierry" dst="Fafard" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Thierry" dst="Croteau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Thierry" dst="Dodge" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lachapelle" dst="Jacquelin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="145"/></route>
-   <route src="Lachapelle" dst="Boivin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lachapelle" dst="Jean_Yves" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lachapelle" dst="TeX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lachapelle" dst="Geoff" symmetrical="NO"><link_ctn id="146"/></route>
-   <route src="Lachapelle" dst="Disney" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lachapelle" dst="iRMX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lachapelle" dst="McGee" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lachapelle" dst="Gatien" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lachapelle" dst="Laroche" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lachapelle" dst="Tanguay" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lachapelle" dst="Morin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lachapelle" dst="Ethernet" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lachapelle" dst="Bellemarre" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lachapelle" dst="Kuenning" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lachapelle" dst="Gaston" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lachapelle" dst="Harry" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lachapelle" dst="Bousquet" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lachapelle" dst="Paul" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lachapelle" dst="St_Jean" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lachapelle" dst="Jill" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lachapelle" dst="Marcel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lachapelle" dst="Wright" symmetrical="NO"><link_ctn id="146"/><link_ctn id="147"/></route>
-   <route src="Lachapelle" dst="Jackson" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lachapelle" dst="Fernand" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lachapelle" dst="Soucy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lachapelle" dst="Ste_Julie" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lachapelle" dst="Victoria" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lachapelle" dst="Lessard" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lachapelle" dst="Florient" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lachapelle" dst="Marcoux" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lachapelle" dst="Gavrel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lachapelle" dst="Bescherelle" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lachapelle" dst="Pierre" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lachapelle" dst="Jamie" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lachapelle" dst="Rubin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="144"/></route>
-   <route src="Lachapelle" dst="Olivier" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lachapelle" dst="Boucherville" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lachapelle" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lachapelle" dst="Kansas" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lachapelle" dst="King" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lachapelle" dst="Lapointe" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lachapelle" dst="Julian" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lachapelle" dst="Lafontaine" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lachapelle" dst="Gordon" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lachapelle" dst="Drouin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lachapelle" dst="Robert" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lachapelle" dst="Jocelyne" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lachapelle" dst="Stephen" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lachapelle" dst="Provost" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lachapelle" dst="Juneau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lachapelle" dst="Casavant" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lachapelle" dst="St_Antoine" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lachapelle" dst="Louis" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lachapelle" dst="Julien" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lachapelle" dst="St_Paul" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lachapelle" dst="Mathematica" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lachapelle" dst="LaTeX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lachapelle" dst="Sirois" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lachapelle" dst="Monique" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lachapelle" dst="Audy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lachapelle" dst="Bourassa" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lachapelle" dst="OHara" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lachapelle" dst="Boston" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lachapelle" dst="Papineau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lachapelle" dst="Fraser" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lachapelle" dst="Browne" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lachapelle" dst="SunOS" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lachapelle" dst="Varennes" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lachapelle" dst="Jacques" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lachapelle" dst="Thierry" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lachapelle" dst="kV" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Lachapelle" dst="Yolande" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lachapelle" dst="Pronovost" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lachapelle" dst="SPICE" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lachapelle" dst="Europe" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lachapelle" dst="Roy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lachapelle" dst="Amadeus" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lachapelle" dst="Intel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lachapelle" dst="Cambridge" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lachapelle" dst="Tremblay" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lachapelle" dst="UNIX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lachapelle" dst="Domey" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lachapelle" dst="St_Bruno" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lachapelle" dst="Jean_Claude" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lachapelle" dst="Doyon" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lachapelle" dst="Fafard" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lachapelle" dst="Croteau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lachapelle" dst="Dodge" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="kV" dst="Jacquelin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="kV" dst="Boivin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="kV" dst="Jean_Yves" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="kV" dst="TeX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="kV" dst="Geoff" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="kV" dst="Disney" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="kV" dst="iRMX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="kV" dst="McGee" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="kV" dst="Gatien" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="kV" dst="Laroche" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="kV" dst="Tanguay" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="kV" dst="Morin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="kV" dst="Ethernet" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="kV" dst="Bellemarre" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="kV" dst="Kuenning" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="kV" dst="Gaston" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="kV" dst="Harry" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="kV" dst="Bousquet" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="kV" dst="Paul" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="kV" dst="St_Jean" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="kV" dst="Jill" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="kV" dst="Marcel" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="kV" dst="Wright" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="kV" dst="Jackson" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="kV" dst="Fernand" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="kV" dst="Soucy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="kV" dst="Ste_Julie" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="kV" dst="Victoria" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="kV" dst="Lessard" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="kV" dst="Florient" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="kV" dst="Marcoux" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="kV" dst="Gavrel" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="kV" dst="Bescherelle" symmetrical="NO"><link_ctn id="140"/></route>
-   <route src="kV" dst="Pierre" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="kV" dst="Jamie" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="kV" dst="Rubin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="kV" dst="Olivier" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="kV" dst="Boucherville" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="kV" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="kV" dst="Kansas" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="kV" dst="King" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="kV" dst="Lapointe" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="kV" dst="Julian" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="kV" dst="Lafontaine" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="kV" dst="Gordon" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="kV" dst="Drouin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="kV" dst="Robert" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="kV" dst="Jocelyne" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="kV" dst="Stephen" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="kV" dst="Provost" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="kV" dst="Juneau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="kV" dst="Casavant" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="kV" dst="St_Antoine" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="kV" dst="Louis" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="kV" dst="Julien" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="kV" dst="St_Paul" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="kV" dst="Mathematica" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="kV" dst="LaTeX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="kV" dst="Sirois" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="kV" dst="Monique" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="kV" dst="Audy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="kV" dst="Bourassa" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="kV" dst="OHara" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="kV" dst="Boston" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="kV" dst="Papineau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="kV" dst="Fraser" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="kV" dst="Browne" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="kV" dst="SunOS" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="kV" dst="Varennes" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="kV" dst="Jacques" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="kV" dst="Thierry" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="kV" dst="Lachapelle" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="kV" dst="Yolande" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="kV" dst="Pronovost" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="kV" dst="SPICE" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="kV" dst="Europe" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="kV" dst="Roy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="kV" dst="Amadeus" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="kV" dst="Intel" symmetrical="NO"><link_ctn id="141"/></route>
-   <route src="kV" dst="Cambridge" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="kV" dst="Tremblay" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="kV" dst="UNIX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="kV" dst="Domey" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="kV" dst="St_Bruno" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="kV" dst="Jean_Claude" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="kV" dst="Doyon" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="kV" dst="Fafard" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="kV" dst="Croteau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="kV" dst="Dodge" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Yolande" dst="Jacquelin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Yolande" dst="Boivin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Yolande" dst="Jean_Yves" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Yolande" dst="TeX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Yolande" dst="Geoff" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Yolande" dst="Disney" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Yolande" dst="iRMX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Yolande" dst="McGee" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Yolande" dst="Gatien" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Yolande" dst="Laroche" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Yolande" dst="Tanguay" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Yolande" dst="Morin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Yolande" dst="Ethernet" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Yolande" dst="Bellemarre" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Yolande" dst="Kuenning" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Yolande" dst="Gaston" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Yolande" dst="Harry" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Yolande" dst="Bousquet" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Yolande" dst="Paul" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Yolande" dst="St_Jean" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Yolande" dst="Jill" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Yolande" dst="Marcel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Yolande" dst="Wright" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Yolande" dst="Jackson" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Yolande" dst="Fernand" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Yolande" dst="Soucy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Yolande" dst="Ste_Julie" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Yolande" dst="Victoria" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Yolande" dst="Lessard" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Yolande" dst="Florient" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Yolande" dst="Marcoux" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Yolande" dst="Gavrel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Yolande" dst="Bescherelle" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Yolande" dst="Pierre" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Yolande" dst="Jamie" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Yolande" dst="Rubin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Yolande" dst="Olivier" symmetrical="NO"><link_ctn id="168"/><link_ctn id="171"/></route>
-   <route src="Yolande" dst="Boucherville" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Yolande" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Yolande" dst="Kansas" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Yolande" dst="King" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Yolande" dst="Lapointe" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Yolande" dst="Julian" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Yolande" dst="Lafontaine" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Yolande" dst="Gordon" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Yolande" dst="Drouin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Yolande" dst="Robert" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Yolande" dst="Jocelyne" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Yolande" dst="Stephen" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Yolande" dst="Provost" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Yolande" dst="Juneau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Yolande" dst="Casavant" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Yolande" dst="St_Antoine" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Yolande" dst="Louis" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Yolande" dst="Julien" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Yolande" dst="St_Paul" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Yolande" dst="Mathematica" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Yolande" dst="LaTeX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Yolande" dst="Sirois" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Yolande" dst="Monique" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Yolande" dst="Audy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Yolande" dst="Bourassa" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Yolande" dst="OHara" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Yolande" dst="Boston" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Yolande" dst="Papineau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Yolande" dst="Fraser" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Yolande" dst="Browne" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Yolande" dst="SunOS" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Yolande" dst="Varennes" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Yolande" dst="Jacques" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Yolande" dst="Thierry" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Yolande" dst="Lachapelle" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Yolande" dst="kV" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Yolande" dst="Pronovost" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Yolande" dst="SPICE" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Yolande" dst="Europe" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Yolande" dst="Roy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Yolande" dst="Amadeus" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Yolande" dst="Intel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Yolande" dst="Cambridge" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Yolande" dst="Tremblay" symmetrical="NO"><link_ctn id="168"/><link_ctn id="170"/></route>
-   <route src="Yolande" dst="UNIX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Yolande" dst="Domey" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Yolande" dst="St_Bruno" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Yolande" dst="Jean_Claude" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Yolande" dst="Doyon" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Yolande" dst="Fafard" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Yolande" dst="Croteau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Yolande" dst="Dodge" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pronovost" dst="Jacquelin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pronovost" dst="Boivin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pronovost" dst="Jean_Yves" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pronovost" dst="TeX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pronovost" dst="Geoff" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pronovost" dst="Disney" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pronovost" dst="iRMX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pronovost" dst="McGee" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pronovost" dst="Gatien" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pronovost" dst="Laroche" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Pronovost" dst="Tanguay" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pronovost" dst="Morin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pronovost" dst="Ethernet" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pronovost" dst="Bellemarre" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pronovost" dst="Kuenning" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pronovost" dst="Gaston" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pronovost" dst="Harry" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pronovost" dst="Bousquet" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pronovost" dst="Paul" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pronovost" dst="St_Jean" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pronovost" dst="Jill" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pronovost" dst="Marcel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pronovost" dst="Wright" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pronovost" dst="Jackson" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pronovost" dst="Fernand" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pronovost" dst="Soucy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pronovost" dst="Ste_Julie" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pronovost" dst="Victoria" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pronovost" dst="Lessard" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pronovost" dst="Florient" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pronovost" dst="Marcoux" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Pronovost" dst="Gavrel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="148"/></route>
-   <route src="Pronovost" dst="Bescherelle" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pronovost" dst="Pierre" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Pronovost" dst="Jamie" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pronovost" dst="Rubin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pronovost" dst="Olivier" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pronovost" dst="Boucherville" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pronovost" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Pronovost" dst="Kansas" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pronovost" dst="King" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pronovost" dst="Lapointe" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Pronovost" dst="Julian" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pronovost" dst="Lafontaine" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pronovost" dst="Gordon" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Pronovost" dst="Drouin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pronovost" dst="Robert" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Pronovost" dst="Jocelyne" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pronovost" dst="Stephen" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pronovost" dst="Provost" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pronovost" dst="Juneau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pronovost" dst="Casavant" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pronovost" dst="St_Antoine" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pronovost" dst="Louis" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pronovost" dst="Julien" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pronovost" dst="St_Paul" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Pronovost" dst="Mathematica" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pronovost" dst="LaTeX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pronovost" dst="Sirois" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pronovost" dst="Monique" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pronovost" dst="Audy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pronovost" dst="Bourassa" symmetrical="NO"><link_ctn id="151"/><link_ctn id="150"/></route>
-   <route src="Pronovost" dst="OHara" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pronovost" dst="Boston" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pronovost" dst="Papineau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pronovost" dst="Fraser" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pronovost" dst="Browne" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pronovost" dst="SunOS" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pronovost" dst="Varennes" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pronovost" dst="Jacques" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pronovost" dst="Thierry" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pronovost" dst="Lachapelle" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pronovost" dst="kV" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pronovost" dst="Yolande" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pronovost" dst="SPICE" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pronovost" dst="Europe" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Pronovost" dst="Roy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Pronovost" dst="Amadeus" symmetrical="NO"><link_ctn id="151"/></route>
-   <route src="Pronovost" dst="Intel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pronovost" dst="Cambridge" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pronovost" dst="Tremblay" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pronovost" dst="UNIX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pronovost" dst="Domey" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pronovost" dst="St_Bruno" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pronovost" dst="Jean_Claude" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pronovost" dst="Doyon" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pronovost" dst="Fafard" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pronovost" dst="Croteau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pronovost" dst="Dodge" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="SPICE" dst="Jacquelin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="SPICE" dst="Boivin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="SPICE" dst="Jean_Yves" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="SPICE" dst="TeX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="SPICE" dst="Geoff" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="SPICE" dst="Disney" symmetrical="NO"><link_ctn id="110"/><link_ctn id="111"/></route>
-   <route src="SPICE" dst="iRMX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="SPICE" dst="McGee" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="SPICE" dst="Gatien" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="SPICE" dst="Laroche" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="SPICE" dst="Tanguay" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="SPICE" dst="Morin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="SPICE" dst="Ethernet" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="SPICE" dst="Bellemarre" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="SPICE" dst="Kuenning" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="SPICE" dst="Gaston" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="SPICE" dst="Harry" symmetrical="NO"><link_ctn id="110"/><link_ctn id="108"/></route>
-   <route src="SPICE" dst="Bousquet" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="SPICE" dst="Paul" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="SPICE" dst="St_Jean" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="SPICE" dst="Jill" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="SPICE" dst="Marcel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="SPICE" dst="Wright" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="SPICE" dst="Jackson" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="SPICE" dst="Fernand" symmetrical="NO"><link_ctn id="110"/><link_ctn id="109"/></route>
-   <route src="SPICE" dst="Soucy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="SPICE" dst="Ste_Julie" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="SPICE" dst="Victoria" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="SPICE" dst="Lessard" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="SPICE" dst="Florient" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="SPICE" dst="Marcoux" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="SPICE" dst="Gavrel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="SPICE" dst="Bescherelle" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="SPICE" dst="Pierre" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="SPICE" dst="Jamie" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="SPICE" dst="Rubin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="SPICE" dst="Olivier" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="SPICE" dst="Boucherville" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="SPICE" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="SPICE" dst="Kansas" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="SPICE" dst="King" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="SPICE" dst="Lapointe" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="SPICE" dst="Julian" symmetrical="NO"><link_ctn id="110"/></route>
-   <route src="SPICE" dst="Lafontaine" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="SPICE" dst="Gordon" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="SPICE" dst="Drouin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="SPICE" dst="Robert" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="SPICE" dst="Jocelyne" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="SPICE" dst="Stephen" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="SPICE" dst="Provost" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="SPICE" dst="Juneau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="SPICE" dst="Casavant" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="SPICE" dst="St_Antoine" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="SPICE" dst="Louis" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="SPICE" dst="Julien" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="SPICE" dst="St_Paul" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="SPICE" dst="Mathematica" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="SPICE" dst="LaTeX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="SPICE" dst="Sirois" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="SPICE" dst="Monique" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="SPICE" dst="Audy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="SPICE" dst="Bourassa" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="SPICE" dst="OHara" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="SPICE" dst="Boston" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="SPICE" dst="Papineau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="SPICE" dst="Fraser" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="SPICE" dst="Browne" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="SPICE" dst="SunOS" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="SPICE" dst="Varennes" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="SPICE" dst="Jacques" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="SPICE" dst="Thierry" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="SPICE" dst="Lachapelle" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="SPICE" dst="kV" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="SPICE" dst="Yolande" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="SPICE" dst="Pronovost" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="SPICE" dst="Europe" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="SPICE" dst="Roy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="SPICE" dst="Amadeus" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="SPICE" dst="Intel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="SPICE" dst="Cambridge" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="SPICE" dst="Tremblay" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="SPICE" dst="UNIX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="SPICE" dst="Domey" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="SPICE" dst="St_Bruno" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="SPICE" dst="Jean_Claude" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="SPICE" dst="Doyon" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="SPICE" dst="Fafard" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="SPICE" dst="Croteau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="SPICE" dst="Dodge" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Europe" dst="Jacquelin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Europe" dst="Boivin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Europe" dst="Jean_Yves" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Europe" dst="TeX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Europe" dst="Geoff" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Europe" dst="Disney" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Europe" dst="iRMX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Europe" dst="McGee" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Europe" dst="Gatien" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Europe" dst="Laroche" symmetrical="NO"><link_ctn id="185"/></route>
-   <route src="Europe" dst="Tanguay" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Europe" dst="Morin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Europe" dst="Ethernet" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Europe" dst="Bellemarre" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Europe" dst="Kuenning" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Europe" dst="Gaston" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Europe" dst="Harry" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Europe" dst="Bousquet" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Europe" dst="Paul" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Europe" dst="St_Jean" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Europe" dst="Jill" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Europe" dst="Marcel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Europe" dst="Wright" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Europe" dst="Jackson" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Europe" dst="Fernand" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Europe" dst="Soucy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Europe" dst="Ste_Julie" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Europe" dst="Victoria" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Europe" dst="Lessard" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Europe" dst="Florient" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Europe" dst="Marcoux" symmetrical="NO"><link_ctn id="185"/><link_ctn id="186"/></route>
-   <route src="Europe" dst="Gavrel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Europe" dst="Bescherelle" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Europe" dst="Pierre" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Europe" dst="Jamie" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Europe" dst="Rubin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Europe" dst="Olivier" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Europe" dst="Boucherville" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Europe" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="185"/><link_ctn id="184"/></route>
-   <route src="Europe" dst="Kansas" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Europe" dst="King" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Europe" dst="Lapointe" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Europe" dst="Julian" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Europe" dst="Lafontaine" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Europe" dst="Gordon" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Europe" dst="Drouin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Europe" dst="Robert" symmetrical="NO"><link_ctn id="185"/><link_ctn id="187"/></route>
-   <route src="Europe" dst="Jocelyne" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Europe" dst="Stephen" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Europe" dst="Provost" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Europe" dst="Juneau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Europe" dst="Casavant" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Europe" dst="St_Antoine" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Europe" dst="Louis" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Europe" dst="Julien" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Europe" dst="St_Paul" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Europe" dst="Mathematica" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Europe" dst="LaTeX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Europe" dst="Sirois" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Europe" dst="Monique" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Europe" dst="Audy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Europe" dst="Bourassa" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Europe" dst="OHara" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Europe" dst="Boston" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Europe" dst="Papineau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Europe" dst="Fraser" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Europe" dst="Browne" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Europe" dst="SunOS" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Europe" dst="Varennes" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Europe" dst="Jacques" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Europe" dst="Thierry" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Europe" dst="Lachapelle" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Europe" dst="kV" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Europe" dst="Yolande" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Europe" dst="Pronovost" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Europe" dst="SPICE" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Europe" dst="Roy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Europe" dst="Amadeus" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Europe" dst="Intel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Europe" dst="Cambridge" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Europe" dst="Tremblay" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Europe" dst="UNIX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Europe" dst="Domey" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Europe" dst="St_Bruno" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Europe" dst="Jean_Claude" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Europe" dst="Doyon" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Europe" dst="Fafard" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Europe" dst="Croteau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Europe" dst="Dodge" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Roy" dst="Jacquelin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Roy" dst="Boivin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Roy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Roy" dst="TeX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Roy" dst="Geoff" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Roy" dst="Disney" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Roy" dst="iRMX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Roy" dst="McGee" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Roy" dst="Gatien" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Roy" dst="Laroche" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Roy" dst="Tanguay" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Roy" dst="Morin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Roy" dst="Ethernet" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Roy" dst="Bellemarre" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Roy" dst="Kuenning" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Roy" dst="Gaston" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Roy" dst="Harry" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Roy" dst="Bousquet" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Roy" dst="Paul" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Roy" dst="St_Jean" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Roy" dst="Jill" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Roy" dst="Marcel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Roy" dst="Wright" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Roy" dst="Jackson" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Roy" dst="Fernand" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Roy" dst="Soucy" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Roy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Roy" dst="Victoria" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Roy" dst="Lessard" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Roy" dst="Florient" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Roy" dst="Marcoux" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Roy" dst="Gavrel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Roy" dst="Bescherelle" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Roy" dst="Pierre" symmetrical="NO"><link_ctn id="167"/></route>
-   <route src="Roy" dst="Jamie" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Roy" dst="Rubin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Roy" dst="Olivier" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Roy" dst="Boucherville" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Roy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Roy" dst="Kansas" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Roy" dst="King" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Roy" dst="Lapointe" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Roy" dst="Julian" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Roy" dst="Lafontaine" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Roy" dst="Gordon" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Roy" dst="Drouin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Roy" dst="Robert" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Roy" dst="Jocelyne" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Roy" dst="Stephen" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Roy" dst="Provost" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Roy" dst="Juneau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Roy" dst="Casavant" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Roy" dst="St_Antoine" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Roy" dst="Louis" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Roy" dst="Julien" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Roy" dst="St_Paul" symmetrical="NO"><link_ctn id="165"/></route>
-   <route src="Roy" dst="Mathematica" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Roy" dst="LaTeX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Roy" dst="Sirois" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Roy" dst="Monique" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Roy" dst="Audy" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Roy" dst="Bourassa" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Roy" dst="OHara" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Roy" dst="Boston" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Roy" dst="Papineau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Roy" dst="Fraser" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Roy" dst="Browne" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Roy" dst="SunOS" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Roy" dst="Varennes" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Roy" dst="Jacques" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Roy" dst="Thierry" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Roy" dst="Lachapelle" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Roy" dst="kV" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Roy" dst="Yolande" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Roy" dst="Pronovost" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Roy" dst="SPICE" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Roy" dst="Europe" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Roy" dst="Amadeus" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Roy" dst="Intel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Roy" dst="Cambridge" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Roy" dst="Tremblay" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Roy" dst="UNIX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Roy" dst="Domey" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Roy" dst="St_Bruno" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Roy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Roy" dst="Doyon" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Roy" dst="Fafard" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Roy" dst="Croteau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Roy" dst="Dodge" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Amadeus" dst="Jacquelin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Amadeus" dst="Boivin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Amadeus" dst="Jean_Yves" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Amadeus" dst="TeX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Amadeus" dst="Geoff" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Amadeus" dst="Disney" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Amadeus" dst="iRMX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Amadeus" dst="McGee" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Amadeus" dst="Gatien" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Amadeus" dst="Laroche" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Amadeus" dst="Tanguay" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Amadeus" dst="Morin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Amadeus" dst="Ethernet" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Amadeus" dst="Bellemarre" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Amadeus" dst="Kuenning" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Amadeus" dst="Gaston" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Amadeus" dst="Harry" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Amadeus" dst="Bousquet" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Amadeus" dst="Paul" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Amadeus" dst="St_Jean" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Amadeus" dst="Jill" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Amadeus" dst="Marcel" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Amadeus" dst="Wright" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Amadeus" dst="Jackson" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Amadeus" dst="Fernand" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Amadeus" dst="Soucy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Amadeus" dst="Ste_Julie" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Amadeus" dst="Victoria" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Amadeus" dst="Lessard" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Amadeus" dst="Florient" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Amadeus" dst="Marcoux" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Amadeus" dst="Gavrel" symmetrical="NO"><link_ctn id="148"/></route>
-   <route src="Amadeus" dst="Bescherelle" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Amadeus" dst="Pierre" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Amadeus" dst="Jamie" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Amadeus" dst="Rubin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Amadeus" dst="Olivier" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Amadeus" dst="Boucherville" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Amadeus" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Amadeus" dst="Kansas" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Amadeus" dst="King" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Amadeus" dst="Lapointe" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Amadeus" dst="Julian" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Amadeus" dst="Lafontaine" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Amadeus" dst="Gordon" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Amadeus" dst="Drouin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Amadeus" dst="Robert" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Amadeus" dst="Jocelyne" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Amadeus" dst="Stephen" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Amadeus" dst="Provost" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Amadeus" dst="Juneau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Amadeus" dst="Casavant" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Amadeus" dst="St_Antoine" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Amadeus" dst="Louis" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Amadeus" dst="Julien" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Amadeus" dst="St_Paul" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Amadeus" dst="Mathematica" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Amadeus" dst="LaTeX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Amadeus" dst="Sirois" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Amadeus" dst="Monique" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Amadeus" dst="Audy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Amadeus" dst="Bourassa" symmetrical="NO"><link_ctn id="150"/></route>
-   <route src="Amadeus" dst="OHara" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Amadeus" dst="Boston" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Amadeus" dst="Papineau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Amadeus" dst="Fraser" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Amadeus" dst="Browne" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Amadeus" dst="SunOS" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Amadeus" dst="Varennes" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Amadeus" dst="Jacques" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Amadeus" dst="Thierry" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Amadeus" dst="Lachapelle" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Amadeus" dst="kV" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Amadeus" dst="Yolande" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Amadeus" dst="Pronovost" symmetrical="NO"><link_ctn id="151"/></route>
-   <route src="Amadeus" dst="SPICE" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Amadeus" dst="Europe" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Amadeus" dst="Roy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Amadeus" dst="Intel" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Amadeus" dst="Cambridge" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Amadeus" dst="Tremblay" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Amadeus" dst="UNIX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Amadeus" dst="Domey" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Amadeus" dst="St_Bruno" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Amadeus" dst="Jean_Claude" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Amadeus" dst="Doyon" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Amadeus" dst="Fafard" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Amadeus" dst="Croteau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Amadeus" dst="Dodge" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Intel" dst="Jacquelin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Intel" dst="Boivin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Intel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Intel" dst="TeX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Intel" dst="Geoff" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Intel" dst="Disney" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Intel" dst="iRMX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Intel" dst="McGee" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Intel" dst="Gatien" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Intel" dst="Laroche" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Intel" dst="Tanguay" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Intel" dst="Morin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Intel" dst="Ethernet" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Intel" dst="Bellemarre" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Intel" dst="Kuenning" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Intel" dst="Gaston" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Intel" dst="Harry" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Intel" dst="Bousquet" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Intel" dst="Paul" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Intel" dst="St_Jean" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Intel" dst="Jill" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Intel" dst="Marcel" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Intel" dst="Wright" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Intel" dst="Jackson" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Intel" dst="Fernand" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Intel" dst="Soucy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Intel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Intel" dst="Victoria" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Intel" dst="Lessard" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Intel" dst="Florient" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Intel" dst="Marcoux" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Intel" dst="Gavrel" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Intel" dst="Bescherelle" symmetrical="NO"><link_ctn id="141"/><link_ctn id="140"/></route>
-   <route src="Intel" dst="Pierre" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Intel" dst="Jamie" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Intel" dst="Rubin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Intel" dst="Olivier" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Intel" dst="Boucherville" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Intel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Intel" dst="Kansas" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Intel" dst="King" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Intel" dst="Lapointe" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Intel" dst="Julian" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Intel" dst="Lafontaine" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Intel" dst="Gordon" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Intel" dst="Drouin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Intel" dst="Robert" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Intel" dst="Jocelyne" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Intel" dst="Stephen" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Intel" dst="Provost" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Intel" dst="Juneau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Intel" dst="Casavant" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Intel" dst="St_Antoine" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Intel" dst="Louis" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Intel" dst="Julien" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Intel" dst="St_Paul" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Intel" dst="Mathematica" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Intel" dst="LaTeX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Intel" dst="Sirois" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Intel" dst="Monique" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Intel" dst="Audy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Intel" dst="Bourassa" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Intel" dst="OHara" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Intel" dst="Boston" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Intel" dst="Papineau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Intel" dst="Fraser" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Intel" dst="Browne" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Intel" dst="SunOS" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Intel" dst="Varennes" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Intel" dst="Jacques" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Intel" dst="Thierry" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Intel" dst="Lachapelle" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Intel" dst="kV" symmetrical="NO"><link_ctn id="141"/></route>
-   <route src="Intel" dst="Yolande" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Intel" dst="Pronovost" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Intel" dst="SPICE" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Intel" dst="Europe" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Intel" dst="Roy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Intel" dst="Amadeus" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Intel" dst="Cambridge" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Intel" dst="Tremblay" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Intel" dst="UNIX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Intel" dst="Domey" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Intel" dst="St_Bruno" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Intel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Intel" dst="Doyon" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Intel" dst="Fafard" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Intel" dst="Croteau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Intel" dst="Dodge" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Cambridge" dst="Jacquelin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Cambridge" dst="Boivin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Cambridge" dst="Jean_Yves" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Cambridge" dst="TeX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Cambridge" dst="Geoff" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Cambridge" dst="Disney" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Cambridge" dst="iRMX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Cambridge" dst="McGee" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Cambridge" dst="Gatien" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Cambridge" dst="Laroche" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Cambridge" dst="Tanguay" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Cambridge" dst="Morin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Cambridge" dst="Ethernet" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Cambridge" dst="Bellemarre" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Cambridge" dst="Kuenning" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Cambridge" dst="Gaston" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Cambridge" dst="Harry" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Cambridge" dst="Bousquet" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Cambridge" dst="Paul" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Cambridge" dst="St_Jean" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Cambridge" dst="Jill" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Cambridge" dst="Marcel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Cambridge" dst="Wright" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Cambridge" dst="Jackson" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Cambridge" dst="Fernand" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Cambridge" dst="Soucy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Cambridge" dst="Ste_Julie" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Cambridge" dst="Victoria" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Cambridge" dst="Lessard" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Cambridge" dst="Florient" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Cambridge" dst="Marcoux" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Cambridge" dst="Gavrel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Cambridge" dst="Bescherelle" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Cambridge" dst="Pierre" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Cambridge" dst="Jamie" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Cambridge" dst="Rubin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Cambridge" dst="Olivier" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Cambridge" dst="Boucherville" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Cambridge" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Cambridge" dst="Kansas" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Cambridge" dst="King" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Cambridge" dst="Lapointe" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Cambridge" dst="Julian" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Cambridge" dst="Lafontaine" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Cambridge" dst="Gordon" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Cambridge" dst="Drouin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Cambridge" dst="Robert" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Cambridge" dst="Jocelyne" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Cambridge" dst="Stephen" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Cambridge" dst="Provost" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Cambridge" dst="Juneau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Cambridge" dst="Casavant" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Cambridge" dst="St_Antoine" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Cambridge" dst="Louis" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Cambridge" dst="Julien" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Cambridge" dst="St_Paul" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Cambridge" dst="Mathematica" symmetrical="NO"><link_ctn id="158"/><link_ctn id="157"/></route>
-   <route src="Cambridge" dst="LaTeX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Cambridge" dst="Sirois" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Cambridge" dst="Monique" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Cambridge" dst="Audy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Cambridge" dst="Bourassa" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Cambridge" dst="OHara" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Cambridge" dst="Boston" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Cambridge" dst="Papineau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Cambridge" dst="Fraser" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Cambridge" dst="Browne" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Cambridge" dst="SunOS" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Cambridge" dst="Varennes" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Cambridge" dst="Jacques" symmetrical="NO"><link_ctn id="158"/><link_ctn id="159"/></route>
-   <route src="Cambridge" dst="Thierry" symmetrical="NO"><link_ctn id="158"/><link_ctn id="156"/></route>
-   <route src="Cambridge" dst="Lachapelle" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Cambridge" dst="kV" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Cambridge" dst="Yolande" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Cambridge" dst="Pronovost" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Cambridge" dst="SPICE" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Cambridge" dst="Europe" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Cambridge" dst="Roy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Cambridge" dst="Amadeus" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Cambridge" dst="Intel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Cambridge" dst="Tremblay" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Cambridge" dst="UNIX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Cambridge" dst="Domey" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Cambridge" dst="St_Bruno" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Cambridge" dst="Jean_Claude" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Cambridge" dst="Doyon" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Cambridge" dst="Fafard" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Cambridge" dst="Croteau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Cambridge" dst="Dodge" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Tremblay" dst="Jacquelin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Tremblay" dst="Boivin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Tremblay" dst="Jean_Yves" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Tremblay" dst="TeX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Tremblay" dst="Geoff" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Tremblay" dst="Disney" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Tremblay" dst="iRMX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Tremblay" dst="McGee" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Tremblay" dst="Gatien" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Tremblay" dst="Laroche" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Tremblay" dst="Tanguay" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Tremblay" dst="Morin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Tremblay" dst="Ethernet" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Tremblay" dst="Bellemarre" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Tremblay" dst="Kuenning" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Tremblay" dst="Gaston" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Tremblay" dst="Harry" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Tremblay" dst="Bousquet" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Tremblay" dst="Paul" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Tremblay" dst="St_Jean" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Tremblay" dst="Jill" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Tremblay" dst="Marcel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Tremblay" dst="Wright" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Tremblay" dst="Jackson" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Tremblay" dst="Fernand" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Tremblay" dst="Soucy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Tremblay" dst="Ste_Julie" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Tremblay" dst="Victoria" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Tremblay" dst="Lessard" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Tremblay" dst="Florient" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Tremblay" dst="Marcoux" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Tremblay" dst="Gavrel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Tremblay" dst="Bescherelle" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Tremblay" dst="Pierre" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Tremblay" dst="Jamie" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Tremblay" dst="Rubin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Tremblay" dst="Olivier" symmetrical="NO"><link_ctn id="170"/><link_ctn id="171"/></route>
-   <route src="Tremblay" dst="Boucherville" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Tremblay" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Tremblay" dst="Kansas" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Tremblay" dst="King" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Tremblay" dst="Lapointe" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Tremblay" dst="Julian" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Tremblay" dst="Lafontaine" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Tremblay" dst="Gordon" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Tremblay" dst="Drouin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Tremblay" dst="Robert" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Tremblay" dst="Jocelyne" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Tremblay" dst="Stephen" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Tremblay" dst="Provost" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Tremblay" dst="Juneau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Tremblay" dst="Casavant" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Tremblay" dst="St_Antoine" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Tremblay" dst="Louis" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Tremblay" dst="Julien" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Tremblay" dst="St_Paul" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Tremblay" dst="Mathematica" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Tremblay" dst="LaTeX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Tremblay" dst="Sirois" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Tremblay" dst="Monique" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Tremblay" dst="Audy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Tremblay" dst="Bourassa" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Tremblay" dst="OHara" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Tremblay" dst="Boston" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Tremblay" dst="Papineau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Tremblay" dst="Fraser" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Tremblay" dst="Browne" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Tremblay" dst="SunOS" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Tremblay" dst="Varennes" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Tremblay" dst="Jacques" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Tremblay" dst="Thierry" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Tremblay" dst="Lachapelle" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Tremblay" dst="kV" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Tremblay" dst="Yolande" symmetrical="NO"><link_ctn id="170"/><link_ctn id="168"/></route>
-   <route src="Tremblay" dst="Pronovost" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Tremblay" dst="SPICE" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Tremblay" dst="Europe" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Tremblay" dst="Roy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Tremblay" dst="Amadeus" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Tremblay" dst="Intel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Tremblay" dst="Cambridge" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Tremblay" dst="UNIX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Tremblay" dst="Domey" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Tremblay" dst="St_Bruno" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Tremblay" dst="Jean_Claude" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Tremblay" dst="Doyon" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Tremblay" dst="Fafard" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Tremblay" dst="Croteau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Tremblay" dst="Dodge" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="UNIX" dst="Jacquelin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="UNIX" dst="Boivin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="UNIX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="UNIX" dst="TeX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="UNIX" dst="Geoff" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="UNIX" dst="Disney" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="UNIX" dst="iRMX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="UNIX" dst="McGee" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="UNIX" dst="Gatien" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="UNIX" dst="Laroche" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="UNIX" dst="Tanguay" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="UNIX" dst="Morin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="UNIX" dst="Ethernet" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="UNIX" dst="Bellemarre" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="UNIX" dst="Kuenning" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="UNIX" dst="Gaston" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="UNIX" dst="Harry" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="UNIX" dst="Bousquet" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="UNIX" dst="Paul" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="UNIX" dst="St_Jean" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="UNIX" dst="Jill" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="UNIX" dst="Marcel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="UNIX" dst="Wright" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="UNIX" dst="Jackson" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="UNIX" dst="Fernand" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="UNIX" dst="Soucy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="UNIX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="UNIX" dst="Victoria" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="UNIX" dst="Lessard" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="UNIX" dst="Florient" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="UNIX" dst="Marcoux" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="UNIX" dst="Gavrel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="UNIX" dst="Bescherelle" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="UNIX" dst="Pierre" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="UNIX" dst="Jamie" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="UNIX" dst="Rubin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="UNIX" dst="Olivier" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="UNIX" dst="Boucherville" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="UNIX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="UNIX" dst="Kansas" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="UNIX" dst="King" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="UNIX" dst="Lapointe" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="UNIX" dst="Julian" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="UNIX" dst="Lafontaine" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="UNIX" dst="Gordon" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="UNIX" dst="Drouin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="UNIX" dst="Robert" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="UNIX" dst="Jocelyne" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="UNIX" dst="Stephen" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="UNIX" dst="Provost" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="UNIX" dst="Juneau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="UNIX" dst="Casavant" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="UNIX" dst="St_Antoine" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="UNIX" dst="Louis" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="UNIX" dst="Julien" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="UNIX" dst="St_Paul" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="UNIX" dst="Mathematica" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="UNIX" dst="LaTeX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="UNIX" dst="Sirois" symmetrical="NO"><link_ctn id="129"/></route>
-   <route src="UNIX" dst="Monique" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="UNIX" dst="Audy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="UNIX" dst="Bourassa" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="UNIX" dst="OHara" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="UNIX" dst="Boston" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="UNIX" dst="Papineau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="UNIX" dst="Fraser" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="UNIX" dst="Browne" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="UNIX" dst="SunOS" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="UNIX" dst="Varennes" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="UNIX" dst="Jacques" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="UNIX" dst="Thierry" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="UNIX" dst="Lachapelle" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="UNIX" dst="kV" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="UNIX" dst="Yolande" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="UNIX" dst="Pronovost" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="UNIX" dst="SPICE" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="UNIX" dst="Europe" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="UNIX" dst="Roy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="UNIX" dst="Amadeus" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="UNIX" dst="Intel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="UNIX" dst="Cambridge" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="UNIX" dst="Tremblay" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="UNIX" dst="Domey" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="UNIX" dst="St_Bruno" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="UNIX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="UNIX" dst="Doyon" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="UNIX" dst="Fafard" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="UNIX" dst="Croteau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="UNIX" dst="Dodge" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Domey" dst="Jacquelin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Domey" dst="Boivin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Domey" dst="Jean_Yves" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Domey" dst="TeX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Domey" dst="Geoff" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Domey" dst="Disney" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Domey" dst="iRMX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Domey" dst="McGee" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Domey" dst="Gatien" symmetrical="NO"><link_ctn id="115"/></route>
-   <route src="Domey" dst="Laroche" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Domey" dst="Tanguay" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Domey" dst="Morin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Domey" dst="Ethernet" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Domey" dst="Bellemarre" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Domey" dst="Kuenning" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Domey" dst="Gaston" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Domey" dst="Harry" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Domey" dst="Bousquet" symmetrical="NO"><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Domey" dst="Paul" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Domey" dst="St_Jean" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Domey" dst="Jill" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Domey" dst="Marcel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Domey" dst="Wright" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Domey" dst="Jackson" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Domey" dst="Fernand" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Domey" dst="Soucy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Domey" dst="Ste_Julie" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Domey" dst="Victoria" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Domey" dst="Lessard" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Domey" dst="Florient" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Domey" dst="Marcoux" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Domey" dst="Gavrel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Domey" dst="Bescherelle" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Domey" dst="Pierre" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Domey" dst="Jamie" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Domey" dst="Rubin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Domey" dst="Olivier" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Domey" dst="Boucherville" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Domey" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Domey" dst="Kansas" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Domey" dst="King" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Domey" dst="Lapointe" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Domey" dst="Julian" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Domey" dst="Lafontaine" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Domey" dst="Gordon" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Domey" dst="Drouin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Domey" dst="Robert" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Domey" dst="Jocelyne" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Domey" dst="Stephen" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Domey" dst="Provost" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Domey" dst="Juneau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Domey" dst="Casavant" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Domey" dst="St_Antoine" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Domey" dst="Louis" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Domey" dst="Julien" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Domey" dst="St_Paul" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Domey" dst="Mathematica" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Domey" dst="LaTeX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Domey" dst="Sirois" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Domey" dst="Monique" symmetrical="NO"><link_ctn id="113"/></route>
-   <route src="Domey" dst="Audy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Domey" dst="Bourassa" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Domey" dst="OHara" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Domey" dst="Boston" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Domey" dst="Papineau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Domey" dst="Fraser" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Domey" dst="Browne" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Domey" dst="SunOS" symmetrical="NO"><link_ctn id="114"/></route>
-   <route src="Domey" dst="Varennes" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Domey" dst="Jacques" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Domey" dst="Thierry" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Domey" dst="Lachapelle" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Domey" dst="kV" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Domey" dst="Yolande" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Domey" dst="Pronovost" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Domey" dst="SPICE" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Domey" dst="Europe" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Domey" dst="Roy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Domey" dst="Amadeus" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Domey" dst="Intel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Domey" dst="Cambridge" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Domey" dst="Tremblay" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Domey" dst="UNIX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Domey" dst="St_Bruno" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Domey" dst="Jean_Claude" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Domey" dst="Doyon" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Domey" dst="Fafard" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Domey" dst="Croteau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Domey" dst="Dodge" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Bruno" dst="Jacquelin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Bruno" dst="Boivin" symmetrical="NO"><link_ctn id="119"/></route>
-   <route src="St_Bruno" dst="Jean_Yves" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Bruno" dst="TeX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Bruno" dst="Geoff" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Bruno" dst="Disney" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Bruno" dst="iRMX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Bruno" dst="McGee" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Bruno" dst="Gatien" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Bruno" dst="Laroche" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Bruno" dst="Tanguay" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Bruno" dst="Morin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Bruno" dst="Ethernet" symmetrical="NO"><link_ctn id="119"/><link_ctn id="118"/></route>
-   <route src="St_Bruno" dst="Bellemarre" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Bruno" dst="Kuenning" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Bruno" dst="Gaston" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Bruno" dst="Harry" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Bruno" dst="Bousquet" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Bruno" dst="Paul" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Bruno" dst="St_Jean" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Bruno" dst="Jill" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Bruno" dst="Marcel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Bruno" dst="Wright" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Bruno" dst="Jackson" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Bruno" dst="Fernand" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Bruno" dst="Soucy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Bruno" dst="Ste_Julie" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Bruno" dst="Victoria" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Bruno" dst="Lessard" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Bruno" dst="Florient" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Bruno" dst="Marcoux" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Bruno" dst="Gavrel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Bruno" dst="Bescherelle" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Bruno" dst="Pierre" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Bruno" dst="Jamie" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Bruno" dst="Rubin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Bruno" dst="Olivier" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Bruno" dst="Boucherville" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Bruno" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Bruno" dst="Kansas" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Bruno" dst="King" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Bruno" dst="Lapointe" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Bruno" dst="Julian" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Bruno" dst="Lafontaine" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Bruno" dst="Gordon" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Bruno" dst="Drouin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Bruno" dst="Robert" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Bruno" dst="Jocelyne" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Bruno" dst="Stephen" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Bruno" dst="Provost" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Bruno" dst="Juneau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Bruno" dst="Casavant" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Bruno" dst="St_Antoine" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Bruno" dst="Louis" symmetrical="NO"><link_ctn id="119"/><link_ctn id="117"/></route>
-   <route src="St_Bruno" dst="Julien" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Bruno" dst="St_Paul" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Bruno" dst="Mathematica" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Bruno" dst="LaTeX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Bruno" dst="Sirois" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Bruno" dst="Monique" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Bruno" dst="Audy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Bruno" dst="Bourassa" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Bruno" dst="OHara" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Bruno" dst="Boston" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Bruno" dst="Papineau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Bruno" dst="Fraser" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Bruno" dst="Browne" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Bruno" dst="SunOS" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Bruno" dst="Varennes" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Bruno" dst="Jacques" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Bruno" dst="Thierry" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Bruno" dst="Lachapelle" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Bruno" dst="kV" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Bruno" dst="Yolande" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Bruno" dst="Pronovost" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Bruno" dst="SPICE" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Bruno" dst="Europe" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Bruno" dst="Roy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Bruno" dst="Amadeus" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Bruno" dst="Intel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Bruno" dst="Cambridge" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Bruno" dst="Tremblay" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Bruno" dst="UNIX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Bruno" dst="Domey" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Bruno" dst="Jean_Claude" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Bruno" dst="Doyon" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Bruno" dst="Fafard" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Bruno" dst="Croteau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Bruno" dst="Dodge" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jean_Claude" dst="Jacquelin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jean_Claude" dst="Boivin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jean_Claude" dst="Jean_Yves" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jean_Claude" dst="TeX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jean_Claude" dst="Geoff" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jean_Claude" dst="Disney" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jean_Claude" dst="iRMX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jean_Claude" dst="McGee" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jean_Claude" dst="Gatien" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jean_Claude" dst="Laroche" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jean_Claude" dst="Tanguay" symmetrical="NO"><link_ctn id="160"/><link_ctn id="162"/></route>
-   <route src="Jean_Claude" dst="Morin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jean_Claude" dst="Ethernet" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jean_Claude" dst="Bellemarre" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jean_Claude" dst="Kuenning" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jean_Claude" dst="Gaston" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jean_Claude" dst="Harry" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jean_Claude" dst="Bousquet" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jean_Claude" dst="Paul" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jean_Claude" dst="St_Jean" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jean_Claude" dst="Jill" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jean_Claude" dst="Marcel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jean_Claude" dst="Wright" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jean_Claude" dst="Jackson" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jean_Claude" dst="Fernand" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jean_Claude" dst="Soucy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jean_Claude" dst="Ste_Julie" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Jean_Claude" dst="Victoria" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jean_Claude" dst="Lessard" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jean_Claude" dst="Florient" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jean_Claude" dst="Marcoux" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jean_Claude" dst="Gavrel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jean_Claude" dst="Bescherelle" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jean_Claude" dst="Pierre" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jean_Claude" dst="Jamie" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jean_Claude" dst="Rubin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jean_Claude" dst="Olivier" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jean_Claude" dst="Boucherville" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jean_Claude" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jean_Claude" dst="Kansas" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jean_Claude" dst="King" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jean_Claude" dst="Lapointe" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jean_Claude" dst="Julian" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jean_Claude" dst="Lafontaine" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jean_Claude" dst="Gordon" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jean_Claude" dst="Drouin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jean_Claude" dst="Robert" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jean_Claude" dst="Jocelyne" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jean_Claude" dst="Stephen" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jean_Claude" dst="Provost" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jean_Claude" dst="Juneau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jean_Claude" dst="Casavant" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jean_Claude" dst="St_Antoine" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jean_Claude" dst="Louis" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jean_Claude" dst="Julien" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jean_Claude" dst="St_Paul" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jean_Claude" dst="Mathematica" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jean_Claude" dst="LaTeX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jean_Claude" dst="Sirois" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jean_Claude" dst="Monique" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jean_Claude" dst="Audy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jean_Claude" dst="Bourassa" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jean_Claude" dst="OHara" symmetrical="NO"><link_ctn id="160"/><link_ctn id="163"/></route>
-   <route src="Jean_Claude" dst="Boston" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jean_Claude" dst="Papineau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jean_Claude" dst="Fraser" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jean_Claude" dst="Browne" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jean_Claude" dst="SunOS" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jean_Claude" dst="Varennes" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jean_Claude" dst="Jacques" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jean_Claude" dst="Thierry" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jean_Claude" dst="Lachapelle" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jean_Claude" dst="kV" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jean_Claude" dst="Yolande" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jean_Claude" dst="Pronovost" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jean_Claude" dst="SPICE" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jean_Claude" dst="Europe" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jean_Claude" dst="Roy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jean_Claude" dst="Amadeus" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jean_Claude" dst="Intel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jean_Claude" dst="Cambridge" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jean_Claude" dst="Tremblay" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jean_Claude" dst="UNIX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jean_Claude" dst="Domey" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jean_Claude" dst="St_Bruno" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jean_Claude" dst="Doyon" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jean_Claude" dst="Fafard" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jean_Claude" dst="Croteau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jean_Claude" dst="Dodge" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Doyon" dst="Jacquelin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Doyon" dst="Boivin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Doyon" dst="Jean_Yves" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Doyon" dst="TeX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Doyon" dst="Geoff" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Doyon" dst="Disney" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Doyon" dst="iRMX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Doyon" dst="McGee" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Doyon" dst="Gatien" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Doyon" dst="Laroche" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Doyon" dst="Tanguay" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Doyon" dst="Morin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Doyon" dst="Ethernet" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Doyon" dst="Bellemarre" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Doyon" dst="Kuenning" symmetrical="NO"><link_ctn id="132"/><link_ctn id="135"/></route>
-   <route src="Doyon" dst="Gaston" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Doyon" dst="Harry" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Doyon" dst="Bousquet" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Doyon" dst="Paul" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Doyon" dst="St_Jean" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Doyon" dst="Jill" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Doyon" dst="Marcel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Doyon" dst="Wright" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Doyon" dst="Jackson" symmetrical="NO"><link_ctn id="132"/></route>
-   <route src="Doyon" dst="Fernand" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Doyon" dst="Soucy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Doyon" dst="Ste_Julie" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Doyon" dst="Victoria" symmetrical="NO"><link_ctn id="132"/><link_ctn id="133"/></route>
-   <route src="Doyon" dst="Lessard" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Doyon" dst="Florient" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Doyon" dst="Marcoux" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Doyon" dst="Gavrel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Doyon" dst="Bescherelle" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Doyon" dst="Pierre" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Doyon" dst="Jamie" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Doyon" dst="Rubin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Doyon" dst="Olivier" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Doyon" dst="Boucherville" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Doyon" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Doyon" dst="Kansas" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Doyon" dst="King" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Doyon" dst="Lapointe" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Doyon" dst="Julian" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Doyon" dst="Lafontaine" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Doyon" dst="Gordon" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Doyon" dst="Drouin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Doyon" dst="Robert" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Doyon" dst="Jocelyne" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Doyon" dst="Stephen" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Doyon" dst="Provost" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Doyon" dst="Juneau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Doyon" dst="Casavant" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Doyon" dst="St_Antoine" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Doyon" dst="Louis" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Doyon" dst="Julien" symmetrical="NO"><link_ctn id="132"/><link_ctn id="134"/></route>
-   <route src="Doyon" dst="St_Paul" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Doyon" dst="Mathematica" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Doyon" dst="LaTeX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Doyon" dst="Sirois" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Doyon" dst="Monique" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Doyon" dst="Audy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Doyon" dst="Bourassa" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Doyon" dst="OHara" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Doyon" dst="Boston" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Doyon" dst="Papineau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Doyon" dst="Fraser" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Doyon" dst="Browne" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Doyon" dst="SunOS" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Doyon" dst="Varennes" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Doyon" dst="Jacques" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Doyon" dst="Thierry" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Doyon" dst="Lachapelle" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Doyon" dst="kV" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Doyon" dst="Yolande" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Doyon" dst="Pronovost" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Doyon" dst="SPICE" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Doyon" dst="Europe" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Doyon" dst="Roy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Doyon" dst="Amadeus" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Doyon" dst="Intel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Doyon" dst="Cambridge" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Doyon" dst="Tremblay" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Doyon" dst="UNIX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Doyon" dst="Domey" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Doyon" dst="St_Bruno" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Doyon" dst="Jean_Claude" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Doyon" dst="Fafard" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Doyon" dst="Croteau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Doyon" dst="Dodge" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Fafard" dst="Jacquelin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fafard" dst="Boivin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fafard" dst="Jean_Yves" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fafard" dst="TeX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fafard" dst="Geoff" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fafard" dst="Disney" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Fafard" dst="iRMX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fafard" dst="McGee" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fafard" dst="Gatien" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fafard" dst="Laroche" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Fafard" dst="Tanguay" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fafard" dst="Morin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fafard" dst="Ethernet" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fafard" dst="Bellemarre" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Fafard" dst="Kuenning" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fafard" dst="Gaston" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fafard" dst="Harry" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Fafard" dst="Bousquet" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fafard" dst="Paul" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fafard" dst="St_Jean" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Fafard" dst="Jill" symmetrical="NO"><link_ctn id="179"/></route>
-   <route src="Fafard" dst="Marcel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fafard" dst="Wright" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fafard" dst="Jackson" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fafard" dst="Fernand" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Fafard" dst="Soucy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fafard" dst="Ste_Julie" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fafard" dst="Victoria" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fafard" dst="Lessard" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Fafard" dst="Florient" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fafard" dst="Marcoux" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fafard" dst="Gavrel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fafard" dst="Bescherelle" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fafard" dst="Pierre" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fafard" dst="Jamie" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fafard" dst="Rubin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fafard" dst="Olivier" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fafard" dst="Boucherville" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="Fafard" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fafard" dst="Kansas" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fafard" dst="King" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fafard" dst="Lapointe" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Fafard" dst="Julian" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Fafard" dst="Lafontaine" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fafard" dst="Gordon" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Fafard" dst="Drouin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fafard" dst="Robert" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fafard" dst="Jocelyne" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fafard" dst="Stephen" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fafard" dst="Provost" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fafard" dst="Juneau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fafard" dst="Casavant" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fafard" dst="St_Antoine" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fafard" dst="Louis" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fafard" dst="Julien" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fafard" dst="St_Paul" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fafard" dst="Mathematica" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fafard" dst="LaTeX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="177"/></route>
-   <route src="Fafard" dst="Sirois" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fafard" dst="Monique" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fafard" dst="Audy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fafard" dst="Bourassa" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fafard" dst="OHara" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fafard" dst="Boston" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fafard" dst="Papineau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fafard" dst="Fraser" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Fafard" dst="Browne" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fafard" dst="SunOS" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fafard" dst="Varennes" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fafard" dst="Jacques" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fafard" dst="Thierry" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fafard" dst="Lachapelle" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fafard" dst="kV" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fafard" dst="Yolande" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fafard" dst="Pronovost" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fafard" dst="SPICE" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Fafard" dst="Europe" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fafard" dst="Roy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fafard" dst="Amadeus" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fafard" dst="Intel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fafard" dst="Cambridge" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fafard" dst="Tremblay" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fafard" dst="UNIX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fafard" dst="Domey" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fafard" dst="St_Bruno" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fafard" dst="Jean_Claude" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fafard" dst="Doyon" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fafard" dst="Croteau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fafard" dst="Dodge" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Croteau" dst="Jacquelin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Croteau" dst="Boivin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Croteau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Croteau" dst="TeX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Croteau" dst="Geoff" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Croteau" dst="Disney" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Croteau" dst="iRMX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="172"/></route>
-   <route src="Croteau" dst="McGee" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Croteau" dst="Gatien" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Croteau" dst="Laroche" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Croteau" dst="Tanguay" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Croteau" dst="Morin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Croteau" dst="Ethernet" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Croteau" dst="Bellemarre" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Croteau" dst="Kuenning" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Croteau" dst="Gaston" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Croteau" dst="Harry" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Croteau" dst="Bousquet" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Croteau" dst="Paul" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Croteau" dst="St_Jean" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Croteau" dst="Jill" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Croteau" dst="Marcel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Croteau" dst="Wright" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Croteau" dst="Jackson" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Croteau" dst="Fernand" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Croteau" dst="Soucy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Croteau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Croteau" dst="Victoria" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Croteau" dst="Lessard" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Croteau" dst="Florient" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Croteau" dst="Marcoux" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Croteau" dst="Gavrel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Croteau" dst="Bescherelle" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Croteau" dst="Pierre" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Croteau" dst="Jamie" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Croteau" dst="Rubin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Croteau" dst="Olivier" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Croteau" dst="Boucherville" symmetrical="NO"><link_ctn id="175"/></route>
-   <route src="Croteau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Croteau" dst="Kansas" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Croteau" dst="King" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Croteau" dst="Lapointe" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Croteau" dst="Julian" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Croteau" dst="Lafontaine" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Croteau" dst="Gordon" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Croteau" dst="Drouin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Croteau" dst="Robert" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Croteau" dst="Jocelyne" symmetrical="NO"><link_ctn id="175"/><link_ctn id="173"/></route>
-   <route src="Croteau" dst="Stephen" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Croteau" dst="Provost" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Croteau" dst="Juneau" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Croteau" dst="Casavant" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Croteau" dst="St_Antoine" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Croteau" dst="Louis" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Croteau" dst="Julien" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Croteau" dst="St_Paul" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Croteau" dst="Mathematica" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Croteau" dst="LaTeX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Croteau" dst="Sirois" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Croteau" dst="Monique" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Croteau" dst="Audy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Croteau" dst="Bourassa" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Croteau" dst="OHara" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Croteau" dst="Boston" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Croteau" dst="Papineau" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Croteau" dst="Fraser" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Croteau" dst="Browne" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Croteau" dst="SunOS" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Croteau" dst="Varennes" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Croteau" dst="Jacques" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Croteau" dst="Thierry" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Croteau" dst="Lachapelle" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Croteau" dst="kV" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Croteau" dst="Yolande" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Croteau" dst="Pronovost" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Croteau" dst="SPICE" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Croteau" dst="Europe" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Croteau" dst="Roy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Croteau" dst="Amadeus" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Croteau" dst="Intel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Croteau" dst="Cambridge" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Croteau" dst="Tremblay" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Croteau" dst="UNIX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Croteau" dst="Domey" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Croteau" dst="St_Bruno" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Croteau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Croteau" dst="Doyon" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Croteau" dst="Fafard" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Croteau" dst="Dodge" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Dodge" dst="Jacquelin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Dodge" dst="Boivin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Dodge" dst="Jean_Yves" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Dodge" dst="TeX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Dodge" dst="Geoff" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Dodge" dst="Disney" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Dodge" dst="iRMX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Dodge" dst="McGee" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Dodge" dst="Gatien" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Dodge" dst="Laroche" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Dodge" dst="Tanguay" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Dodge" dst="Morin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Dodge" dst="Ethernet" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Dodge" dst="Bellemarre" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Dodge" dst="Kuenning" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Dodge" dst="Gaston" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Dodge" dst="Harry" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Dodge" dst="Bousquet" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Dodge" dst="Paul" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Dodge" dst="St_Jean" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Dodge" dst="Jill" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Dodge" dst="Marcel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Dodge" dst="Wright" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Dodge" dst="Jackson" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Dodge" dst="Fernand" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Dodge" dst="Soucy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Dodge" dst="Ste_Julie" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Dodge" dst="Victoria" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Dodge" dst="Lessard" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Dodge" dst="Florient" symmetrical="NO"><link_ctn id="180"/><link_ctn id="181"/></route>
-   <route src="Dodge" dst="Marcoux" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Dodge" dst="Gavrel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Dodge" dst="Bescherelle" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Dodge" dst="Pierre" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Dodge" dst="Jamie" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Dodge" dst="Rubin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Dodge" dst="Olivier" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Dodge" dst="Boucherville" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Dodge" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Dodge" dst="Kansas" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Dodge" dst="King" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Dodge" dst="Lapointe" symmetrical="NO"><link_ctn id="180"/></route>
-   <route src="Dodge" dst="Julian" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Dodge" dst="Lafontaine" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Dodge" dst="Gordon" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Dodge" dst="Drouin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Dodge" dst="Robert" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Dodge" dst="Jocelyne" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Dodge" dst="Stephen" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Dodge" dst="Provost" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Dodge" dst="Juneau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Dodge" dst="Casavant" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Dodge" dst="St_Antoine" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Dodge" dst="Louis" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Dodge" dst="Julien" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Dodge" dst="St_Paul" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Dodge" dst="Mathematica" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Dodge" dst="LaTeX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Dodge" dst="Sirois" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Dodge" dst="Monique" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Dodge" dst="Audy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="183"/></route>
-   <route src="Dodge" dst="Bourassa" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Dodge" dst="OHara" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Dodge" dst="Boston" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Dodge" dst="Papineau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="182"/></route>
-   <route src="Dodge" dst="Fraser" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Dodge" dst="Browne" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Dodge" dst="SunOS" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Dodge" dst="Varennes" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Dodge" dst="Jacques" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Dodge" dst="Thierry" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Dodge" dst="Lachapelle" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Dodge" dst="kV" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Dodge" dst="Yolande" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Dodge" dst="Pronovost" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Dodge" dst="SPICE" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Dodge" dst="Europe" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Dodge" dst="Roy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Dodge" dst="Amadeus" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Dodge" dst="Intel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Dodge" dst="Cambridge" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Dodge" dst="Tremblay" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Dodge" dst="UNIX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Dodge" dst="Domey" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Dodge" dst="St_Bruno" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Dodge" dst="Jean_Claude" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Dodge" dst="Doyon" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Dodge" dst="Fafard" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Dodge" dst="Croteau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
- </AS>
- </platform>
index 84db0e2..a044e8a 100644 (file)
@@ -1,97 +1,97 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
  <AS  id="AS0"  routing="Full">
-   <host id="Jacquelin" power="137.333Mf"/>
-   <host id="Boivin" power="98.095Mf"/>
-   <host id="Jean_Yves" power="98.095Mf"/>
-   <host id="TeX" power="68.667Mf"/>
-   <host id="Geoff" power="42.917Mf"/>
-   <host id="Disney" power="114.444Mf"/>
-   <host id="iRMX" power="68.667Mf"/>
-   <host id="McGee" power="42.917Mf"/>
-   <host id="Gatien" power="114.444Mf"/>
-   <host id="Laroche" power="98.095Mf"/>
-   <host id="Tanguay" power="68.667Mf"/>
-   <host id="Morin" power="85.833Mf"/>
-   <host id="Ethernet" power="98.095Mf"/>
-   <host id="Bellemarre" power="34.333Mf"/>
-   <host id="Kuenning" power="85.833Mf"/>
-   <host id="Gaston" power="98.095Mf"/>
-   <host id="Harry" power="42.917Mf"/>
-   <host id="Bousquet" power="42.917Mf"/>
-   <host id="Paul" power="76.296Mf"/>
-   <host id="St_Jean" power="76.296Mf"/>
-   <host id="Jill" power="114.444Mf"/>
-   <host id="Marcel" power="171.667Mf"/>
-   <host id="Wright" power="48.492Mf"/>
-   <host id="Jackson" power="48.492Mf"/>
-   <host id="Fernand" power="22.151Mf"/>
-   <host id="Soucy" power="137.333Mf"/>
-   <host id="Ste_Julie" power="85.833Mf"/>
-   <host id="Victoria" power="85.833Mf"/>
-   <host id="Lessard" power="85.833Mf"/>
-   <host id="Florient" power="114.444Mf"/>
-   <host id="Marcoux" power="98.095Mf"/>
-   <host id="Gavrel" power="85.833Mf"/>
-   <host id="Bescherelle" power="137.333Mf"/>
-   <host id="Pierre" power="114.444Mf"/>
-   <host id="Jamie" power="76.296Mf"/>
-   <host id="Rubin" power="42.917Mf"/>
-   <host id="Olivier" power="114.444Mf"/>
-   <host id="Boucherville" power="48.492Mf"/>
-   <host id="Pointe_Claire" power="48.492Mf"/>
-   <host id="Kansas" power="137.333Mf"/>
-   <host id="King" power="114.444Mf"/>
-   <host id="Lapointe" power="68.667Mf"/>
-   <host id="Julian" power="114.444Mf"/>
-   <host id="Lafontaine" power="68.667Mf"/>
-   <host id="Gordon" power="76.296Mf"/>
-   <host id="Drouin" power="42.917Mf"/>
-   <host id="Robert" power="137.333Mf"/>
-   <host id="Jocelyne" power="34.333Mf"/>
-   <host id="Stephen" power="68.667Mf"/>
-   <host id="Provost" power="137.333Mf"/>
-   <host id="Juneau" power="22.151Mf"/>
-   <host id="Casavant" power="48.492Mf"/>
-   <host id="St_Antoine" power="34.333Mf"/>
-   <host id="Louis" power="98.095Mf"/>
-   <host id="Julien" power="22.151Mf"/>
-   <host id="St_Paul" power="114.444Mf"/>
-   <host id="Mathematica" power="137.333Mf"/>
-   <host id="LaTeX" power="85.833Mf"/>
-   <host id="Sirois" power="114.444Mf"/>
-   <host id="Monique" power="114.444Mf"/>
-   <host id="Audy" power="34.333Mf"/>
-   <host id="Bourassa" power="85.833Mf"/>
-   <host id="OHara" power="42.917Mf"/>
-   <host id="Boston" power="42.917Mf"/>
-   <host id="Papineau" power="85.833Mf"/>
-   <host id="Fraser" power="98.095Mf"/>
-   <host id="Browne" power="137.333Mf"/>
-   <host id="SunOS" power="34.333Mf"/>
-   <host id="Varennes" power="68.667Mf"/>
-   <host id="Jacques" power="98.095Mf"/>
-   <host id="Thierry" power="137.333Mf"/>
-   <host id="Lachapelle" power="42.917Mf"/>
-   <host id="kV" power="68.667Mf"/>
-   <host id="Yolande" power="42.917Mf"/>
-   <host id="Pronovost" power="114.444Mf"/>
-   <host id="SPICE" power="68.667Mf"/>
-   <host id="Europe" power="48.492Mf"/>
-   <host id="Roy" power="34.333Mf"/>
-   <host id="Amadeus" power="114.444Mf"/>
-   <host id="Intel" power="137.333Mf"/>
-   <host id="Cambridge" power="114.444Mf"/>
-   <host id="Tremblay" power="171.667Mf"/>
-   <host id="UNIX" power="76.296Mf"/>
-   <host id="Domey" power="76.296Mf"/>
-   <host id="St_Bruno" power="42.917Mf"/>
-   <host id="Jean_Claude" power="85.833Mf"/>
-   <host id="Doyon" power="68.667Mf"/>
-   <host id="Fafard" power="137.333Mf"/>
-   <host id="Croteau" power="42.917Mf"/>
-   <host id="Dodge" power="114.444Mf"/>
+   <host id="Jacquelin" speed="137.333Mf"/>
+   <host id="Boivin" speed="98.095Mf"/>
+   <host id="Jean_Yves" speed="98.095Mf"/>
+   <host id="TeX" speed="68.667Mf"/>
+   <host id="Geoff" speed="42.917Mf"/>
+   <host id="Disney" speed="114.444Mf"/>
+   <host id="iRMX" speed="68.667Mf"/>
+   <host id="McGee" speed="42.917Mf"/>
+   <host id="Gatien" speed="114.444Mf"/>
+   <host id="Laroche" speed="98.095Mf"/>
+   <host id="Tanguay" speed="68.667Mf"/>
+   <host id="Morin" speed="85.833Mf"/>
+   <host id="Ethernet" speed="98.095Mf"/>
+   <host id="Bellemarre" speed="34.333Mf"/>
+   <host id="Kuenning" speed="85.833Mf"/>
+   <host id="Gaston" speed="98.095Mf"/>
+   <host id="Harry" speed="42.917Mf"/>
+   <host id="Bousquet" speed="42.917Mf"/>
+   <host id="Paul" speed="76.296Mf"/>
+   <host id="St_Jean" speed="76.296Mf"/>
+   <host id="Jill" speed="114.444Mf"/> <!-- -->
+   <host id="Marcel" speed="171.667Mf"/>
+   <host id="Wright" speed="48.492Mf"/>
+   <host id="Jackson" speed="48.492Mf"/>
+   <host id="Fernand" speed="22.151Mf"/>
+   <host id="Soucy" speed="137.333Mf"/>
+   <host id="Ste_Julie" speed="85.833Mf"/>
+   <host id="Victoria" speed="85.833Mf"/>
+   <host id="Lessard" speed="85.833Mf"/>
+   <host id="Florient" speed="114.444Mf"/>
+   <host id="Marcoux" speed="98.095Mf"/>
+   <host id="Gavrel" speed="85.833Mf"/>
+   <host id="Bescherelle" speed="137.333Mf"/>
+   <host id="Pierre" speed="114.444Mf"/> <!-- -->
+   <host id="Jamie" speed="76.296Mf"/>
+   <host id="Rubin" speed="42.917Mf"/>
+   <host id="Olivier" speed="114.444Mf"/>
+   <host id="Boucherville" speed="48.492Mf"/>
+   <host id="Pointe_Claire" speed="48.492Mf"/>
+   <host id="Kansas" speed="137.333Mf"/>
+   <host id="King" speed="114.444Mf"/> 
+   <host id="Lapointe" speed="68.667Mf"/>
+   <host id="Julian" speed="114.444Mf"/>
+   <host id="Lafontaine" speed="68.667Mf"/>
+   <host id="Gordon" speed="76.296Mf"/>
+   <host id="Drouin" speed="42.917Mf"/>
+   <host id="Robert" speed="137.333Mf"/>
+   <host id="Jocelyne" speed="34.333Mf"/>
+   <host id="Stephen" speed="68.667Mf"/>
+   <host id="Provost" speed="137.333Mf"/>
+   <host id="Juneau" speed="22.151Mf"/>
+   <host id="Casavant" speed="48.492Mf"/>
+   <host id="St_Antoine" speed="34.333Mf"/>  
+   <host id="Louis" speed="98.095Mf"/>
+   <host id="Julien" speed="22.151Mf"/>
+   <host id="St_Paul" speed="114.444Mf"/>
+   <host id="Mathematica" speed="137.333Mf"/>
+   <host id="LaTeX" speed="85.833Mf"/>
+   <host id="Sirois" speed="114.444Mf"/>
+   <host id="Monique" speed="114.444Mf"/>
+   <host id="Audy" speed="34.333Mf"/>
+   <host id="Bourassa" speed="85.833Mf"/>
+   <host id="OHara" speed="42.917Mf"/>
+   <host id="Boston" speed="42.917Mf"/>
+   <host id="Papineau" speed="85.833Mf"/>
+   <host id="Fraser" speed="98.095Mf"/>
+   <host id="Browne" speed="137.333Mf"/>
+   <host id="SunOS" speed="34.333Mf"/>
+   <host id="Varennes" speed="68.667Mf"/>
+   <host id="Jacques" speed="98.095Mf"/>
+   <host id="Thierry" speed="137.333Mf"/>
+   <host id="Lachapelle" speed="42.917Mf"/>
+   <host id="kV" speed="68.667Mf"/>
+   <host id="Yolande" speed="42.917Mf"/>
+   <host id="Pronovost" speed="114.444Mf"/>
+   <host id="SPICE" speed="68.667Mf"/>
+   <host id="Europe" speed="48.492Mf"/>
+   <host id="Roy" speed="34.333Mf"/>
+   <host id="Amadeus" speed="114.444Mf"/>
+   <host id="Intel" speed="137.333Mf"/>
+   <host id="Cambridge" speed="114.444Mf"/>
+   <host id="Tremblay" speed="171.667Mf"/>
+   <host id="UNIX" speed="76.296Mf"/>
+   <host id="Domey" speed="76.296Mf"/>
+   <host id="St_Bruno" speed="42.917Mf"/>
+   <host id="Jean_Claude" speed="85.833Mf"/>
+   <host id="Doyon" speed="68.667Mf"/>
+   <host id="Fafard" speed="137.333Mf"/>
+   <host id="Croteau" speed="42.917Mf"/>
+   <host id="Dodge" speed="114.444Mf"/>
    <link id="127" bandwidth="3.430125MBps" latency="536.941us"/>
    <link id="32" bandwidth="11.618875MBps" latency="189.98us"/>
    <link id="90" bandwidth="10.314625MBps" latency="6.932556ms"/>
    <link id="164" bandwidth="768.75kBps" latency="8.76244ms"/>
    <link id="132" bandwidth="2.179125MBps" latency="320.114us"/>
    <link id="171" bandwidth="3.29775MBps" latency="595.883us"/>
-   <route src="Jacquelin" dst="Boivin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jacquelin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jacquelin" dst="TeX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jacquelin" dst="Geoff" symmetrical="NO"><link_ctn id="145"/></route>
-   <route src="Jacquelin" dst="Disney" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jacquelin" dst="iRMX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jacquelin" dst="McGee" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jacquelin" dst="Gatien" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jacquelin" dst="Laroche" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jacquelin" dst="Tanguay" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jacquelin" dst="Morin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jacquelin" dst="Ethernet" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jacquelin" dst="Bellemarre" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jacquelin" dst="Kuenning" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jacquelin" dst="Gaston" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jacquelin" dst="Harry" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jacquelin" dst="Bousquet" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jacquelin" dst="Paul" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jacquelin" dst="St_Jean" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jacquelin" dst="Jill" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Jacquelin" dst="Boivin" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
+   <route src="Jacquelin" dst="Jean_Yves" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
+   <route src="Jacquelin" dst="TeX" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
+   <route src="Jacquelin" dst="Geoff" symmetrical="YES"><link_ctn id="145"/></route>
+   <route src="Jacquelin" dst="Disney" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
+   <route src="Jacquelin" dst="iRMX" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="Jacquelin" dst="McGee" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="Jacquelin" dst="Gatien" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="Jacquelin" dst="Laroche" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Jacquelin" dst="Tanguay" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Jacquelin" dst="Morin" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Jacquelin" dst="Ethernet" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Jacquelin" dst="Bellemarre" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Jacquelin" dst="Kuenning" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Jacquelin" dst="Gaston" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Jacquelin" dst="Harry" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Jacquelin" dst="Bousquet" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Jacquelin" dst="Paul" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Jacquelin" dst="St_Jean" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Jacquelin" dst="Jill" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
    <route src="Jacquelin" dst="Marcel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jacquelin" dst="Wright" symmetrical="NO"><link_ctn id="145"/><link_ctn id="147"/></route>
-   <route src="Jacquelin" dst="Jackson" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jacquelin" dst="Fernand" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jacquelin" dst="Soucy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jacquelin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jacquelin" dst="Victoria" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jacquelin" dst="Lessard" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jacquelin" dst="Florient" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jacquelin" dst="Marcoux" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jacquelin" dst="Gavrel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jacquelin" dst="Bescherelle" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jacquelin" dst="Pierre" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jacquelin" dst="Jamie" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jacquelin" dst="Rubin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="144"/></route>
-   <route src="Jacquelin" dst="Olivier" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jacquelin" dst="Boucherville" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jacquelin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jacquelin" dst="Kansas" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jacquelin" dst="King" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jacquelin" dst="Lapointe" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jacquelin" dst="Julian" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jacquelin" dst="Lafontaine" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jacquelin" dst="Gordon" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jacquelin" dst="Drouin" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jacquelin" dst="Robert" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jacquelin" dst="Jocelyne" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jacquelin" dst="Stephen" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jacquelin" dst="Provost" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jacquelin" dst="Juneau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jacquelin" dst="Casavant" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jacquelin" dst="St_Antoine" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jacquelin" dst="Louis" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jacquelin" dst="Julien" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jacquelin" dst="St_Paul" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jacquelin" dst="Mathematica" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jacquelin" dst="LaTeX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jacquelin" dst="Sirois" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jacquelin" dst="Monique" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jacquelin" dst="Audy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jacquelin" dst="Bourassa" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jacquelin" dst="OHara" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jacquelin" dst="Boston" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jacquelin" dst="Papineau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jacquelin" dst="Fraser" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jacquelin" dst="Browne" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jacquelin" dst="SunOS" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jacquelin" dst="Varennes" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jacquelin" dst="Jacques" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jacquelin" dst="Thierry" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jacquelin" dst="Lachapelle" symmetrical="NO"><link_ctn id="145"/><link_ctn id="146"/></route>
-   <route src="Jacquelin" dst="kV" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jacquelin" dst="Yolande" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jacquelin" dst="Pronovost" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jacquelin" dst="SPICE" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jacquelin" dst="Europe" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jacquelin" dst="Roy" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jacquelin" dst="Amadeus" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jacquelin" dst="Intel" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jacquelin" dst="Cambridge" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jacquelin" dst="Tremblay" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jacquelin" dst="UNIX" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jacquelin" dst="Domey" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jacquelin" dst="St_Bruno" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jacquelin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jacquelin" dst="Doyon" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jacquelin" dst="Fafard" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jacquelin" dst="Croteau" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jacquelin" dst="Dodge" symmetrical="NO"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boivin" dst="Jacquelin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boivin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boivin" dst="TeX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boivin" dst="Geoff" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boivin" dst="Disney" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boivin" dst="iRMX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Boivin" dst="McGee" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boivin" dst="Gatien" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boivin" dst="Laroche" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Boivin" dst="Tanguay" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boivin" dst="Morin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boivin" dst="Ethernet" symmetrical="NO"><link_ctn id="118"/></route>
-   <route src="Boivin" dst="Bellemarre" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boivin" dst="Kuenning" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boivin" dst="Gaston" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boivin" dst="Harry" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boivin" dst="Bousquet" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boivin" dst="Paul" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Boivin" dst="St_Jean" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boivin" dst="Jill" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Boivin" dst="Marcel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boivin" dst="Wright" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boivin" dst="Jackson" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boivin" dst="Fernand" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boivin" dst="Soucy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boivin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boivin" dst="Victoria" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boivin" dst="Lessard" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boivin" dst="Florient" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boivin" dst="Marcoux" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boivin" dst="Gavrel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boivin" dst="Bescherelle" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boivin" dst="Pierre" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boivin" dst="Jamie" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boivin" dst="Rubin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boivin" dst="Olivier" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boivin" dst="Boucherville" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Boivin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boivin" dst="Kansas" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boivin" dst="King" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boivin" dst="Lapointe" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Boivin" dst="Julian" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boivin" dst="Lafontaine" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boivin" dst="Gordon" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Boivin" dst="Drouin" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boivin" dst="Robert" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boivin" dst="Jocelyne" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Boivin" dst="Stephen" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boivin" dst="Provost" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boivin" dst="Juneau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boivin" dst="Casavant" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Boivin" dst="St_Antoine" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boivin" dst="Louis" symmetrical="NO"><link_ctn id="117"/></route>
-   <route src="Boivin" dst="Julien" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boivin" dst="St_Paul" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boivin" dst="Mathematica" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boivin" dst="LaTeX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boivin" dst="Sirois" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boivin" dst="Monique" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boivin" dst="Audy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boivin" dst="Bourassa" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boivin" dst="OHara" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boivin" dst="Boston" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Boivin" dst="Papineau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boivin" dst="Fraser" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boivin" dst="Browne" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boivin" dst="SunOS" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boivin" dst="Varennes" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boivin" dst="Jacques" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boivin" dst="Thierry" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boivin" dst="Lachapelle" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boivin" dst="kV" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boivin" dst="Yolande" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boivin" dst="Pronovost" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boivin" dst="SPICE" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boivin" dst="Europe" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boivin" dst="Roy" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boivin" dst="Amadeus" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boivin" dst="Intel" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boivin" dst="Cambridge" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boivin" dst="Tremblay" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boivin" dst="UNIX" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boivin" dst="Domey" symmetrical="NO"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boivin" dst="St_Bruno" symmetrical="NO"><link_ctn id="119"/></route>
-   <route src="Boivin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boivin" dst="Doyon" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boivin" dst="Fafard" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boivin" dst="Croteau" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Boivin" dst="Dodge" symmetrical="NO"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jean_Yves" dst="Jacquelin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jean_Yves" dst="Boivin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jean_Yves" dst="TeX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jean_Yves" dst="Geoff" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Jean_Yves" dst="Disney" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jean_Yves" dst="iRMX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jean_Yves" dst="McGee" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jean_Yves" dst="Gatien" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jean_Yves" dst="Laroche" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jean_Yves" dst="Tanguay" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jean_Yves" dst="Morin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jean_Yves" dst="Ethernet" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jean_Yves" dst="Bellemarre" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jean_Yves" dst="Kuenning" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jean_Yves" dst="Gaston" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jean_Yves" dst="Harry" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jean_Yves" dst="Bousquet" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jean_Yves" dst="Paul" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jean_Yves" dst="St_Jean" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jean_Yves" dst="Jill" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jean_Yves" dst="Marcel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jean_Yves" dst="Wright" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jean_Yves" dst="Jackson" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Jean_Yves" dst="Fernand" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jean_Yves" dst="Soucy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jean_Yves" dst="Ste_Julie" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jean_Yves" dst="Victoria" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jean_Yves" dst="Lessard" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jean_Yves" dst="Florient" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jean_Yves" dst="Marcoux" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jean_Yves" dst="Gavrel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jean_Yves" dst="Bescherelle" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jean_Yves" dst="Pierre" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jean_Yves" dst="Jamie" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jean_Yves" dst="Rubin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jean_Yves" dst="Olivier" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jean_Yves" dst="Boucherville" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jean_Yves" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jean_Yves" dst="Kansas" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jean_Yves" dst="King" symmetrical="NO"><link_ctn id="138"/><link_ctn id="137"/></route>
-   <route src="Jean_Yves" dst="Lapointe" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jean_Yves" dst="Julian" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jean_Yves" dst="Lafontaine" symmetrical="NO"><link_ctn id="138"/><link_ctn id="139"/></route>
-   <route src="Jean_Yves" dst="Gordon" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jean_Yves" dst="Drouin" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jean_Yves" dst="Robert" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jean_Yves" dst="Jocelyne" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jean_Yves" dst="Stephen" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jean_Yves" dst="Provost" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jean_Yves" dst="Juneau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jean_Yves" dst="Casavant" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jean_Yves" dst="St_Antoine" symmetrical="NO"><link_ctn id="138"/></route>
-   <route src="Jean_Yves" dst="Louis" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jean_Yves" dst="Julien" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jean_Yves" dst="St_Paul" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jean_Yves" dst="Mathematica" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jean_Yves" dst="LaTeX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jean_Yves" dst="Sirois" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jean_Yves" dst="Monique" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jean_Yves" dst="Audy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jean_Yves" dst="Bourassa" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jean_Yves" dst="OHara" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jean_Yves" dst="Boston" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jean_Yves" dst="Papineau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jean_Yves" dst="Fraser" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jean_Yves" dst="Browne" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jean_Yves" dst="SunOS" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jean_Yves" dst="Varennes" symmetrical="NO"><link_ctn id="138"/><link_ctn id="136"/></route>
-   <route src="Jean_Yves" dst="Jacques" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jean_Yves" dst="Thierry" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jean_Yves" dst="Lachapelle" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jean_Yves" dst="kV" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jean_Yves" dst="Yolande" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jean_Yves" dst="Pronovost" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jean_Yves" dst="SPICE" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jean_Yves" dst="Europe" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jean_Yves" dst="Roy" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jean_Yves" dst="Amadeus" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jean_Yves" dst="Intel" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jean_Yves" dst="Cambridge" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jean_Yves" dst="Tremblay" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jean_Yves" dst="UNIX" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jean_Yves" dst="Domey" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jean_Yves" dst="St_Bruno" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jean_Yves" dst="Jean_Claude" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jean_Yves" dst="Doyon" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jean_Yves" dst="Fafard" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jean_Yves" dst="Croteau" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jean_Yves" dst="Dodge" symmetrical="NO"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="TeX" dst="Jacquelin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="TeX" dst="Boivin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="TeX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="TeX" dst="Geoff" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="TeX" dst="Disney" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="TeX" dst="iRMX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="TeX" dst="McGee" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="TeX" dst="Gatien" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="TeX" dst="Laroche" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="TeX" dst="Tanguay" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="TeX" dst="Morin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="TeX" dst="Ethernet" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="TeX" dst="Bellemarre" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="TeX" dst="Kuenning" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="TeX" dst="Gaston" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="TeX" dst="Harry" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="TeX" dst="Bousquet" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="TeX" dst="Paul" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="TeX" dst="St_Jean" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="TeX" dst="Jill" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="TeX" dst="Marcel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="TeX" dst="Wright" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="TeX" dst="Jackson" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="TeX" dst="Fernand" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="TeX" dst="Soucy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="TeX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="TeX" dst="Victoria" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="TeX" dst="Lessard" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="TeX" dst="Florient" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="TeX" dst="Marcoux" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="TeX" dst="Gavrel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="TeX" dst="Bescherelle" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="TeX" dst="Pierre" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="TeX" dst="Jamie" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="TeX" dst="Rubin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="TeX" dst="Olivier" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="TeX" dst="Boucherville" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="TeX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="TeX" dst="Kansas" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="TeX" dst="King" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="TeX" dst="Lapointe" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="TeX" dst="Julian" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="TeX" dst="Lafontaine" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="TeX" dst="Gordon" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="TeX" dst="Drouin" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="TeX" dst="Robert" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="TeX" dst="Jocelyne" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="TeX" dst="Stephen" symmetrical="NO"><link_ctn id="100"/><link_ctn id="101"/></route>
-   <route src="TeX" dst="Provost" symmetrical="NO"><link_ctn id="100"/><link_ctn id="103"/></route>
-   <route src="TeX" dst="Juneau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="TeX" dst="Casavant" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="TeX" dst="St_Antoine" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="TeX" dst="Louis" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="TeX" dst="Julien" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="TeX" dst="St_Paul" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="TeX" dst="Mathematica" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="TeX" dst="LaTeX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="TeX" dst="Sirois" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="TeX" dst="Monique" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="TeX" dst="Audy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="TeX" dst="Bourassa" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="TeX" dst="OHara" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="TeX" dst="Boston" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="TeX" dst="Papineau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="TeX" dst="Fraser" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="TeX" dst="Browne" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="TeX" dst="SunOS" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="TeX" dst="Varennes" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="TeX" dst="Jacques" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="TeX" dst="Thierry" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="TeX" dst="Lachapelle" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="TeX" dst="kV" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="TeX" dst="Yolande" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="TeX" dst="Pronovost" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="TeX" dst="SPICE" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="TeX" dst="Europe" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="TeX" dst="Roy" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="TeX" dst="Amadeus" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="TeX" dst="Intel" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="TeX" dst="Cambridge" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="TeX" dst="Tremblay" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="TeX" dst="UNIX" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="TeX" dst="Domey" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="TeX" dst="St_Bruno" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="TeX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="TeX" dst="Doyon" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="TeX" dst="Fafard" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="TeX" dst="Croteau" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="TeX" dst="Dodge" symmetrical="NO"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Geoff" dst="Jacquelin" symmetrical="NO"><link_ctn id="145"/></route>
-   <route src="Geoff" dst="Boivin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Geoff" dst="Jean_Yves" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Geoff" dst="TeX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Geoff" dst="Disney" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Geoff" dst="iRMX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Geoff" dst="McGee" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Geoff" dst="Gatien" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Geoff" dst="Laroche" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Geoff" dst="Tanguay" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Geoff" dst="Morin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Geoff" dst="Ethernet" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Geoff" dst="Bellemarre" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Geoff" dst="Kuenning" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Geoff" dst="Gaston" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Geoff" dst="Harry" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Geoff" dst="Bousquet" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Geoff" dst="Paul" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Geoff" dst="St_Jean" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Geoff" dst="Jill" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Geoff" dst="Marcel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Geoff" dst="Wright" symmetrical="NO"><link_ctn id="147"/></route>
-   <route src="Geoff" dst="Jackson" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Geoff" dst="Fernand" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Geoff" dst="Soucy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Geoff" dst="Ste_Julie" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Geoff" dst="Victoria" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Geoff" dst="Lessard" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Geoff" dst="Florient" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Geoff" dst="Marcoux" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Geoff" dst="Gavrel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Geoff" dst="Bescherelle" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Geoff" dst="Pierre" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Geoff" dst="Jamie" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Geoff" dst="Rubin" symmetrical="NO"><link_ctn id="144"/></route>
-   <route src="Geoff" dst="Olivier" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Geoff" dst="Boucherville" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Geoff" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Geoff" dst="Kansas" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Geoff" dst="King" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Geoff" dst="Lapointe" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Geoff" dst="Julian" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Geoff" dst="Lafontaine" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Geoff" dst="Gordon" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Geoff" dst="Drouin" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Geoff" dst="Robert" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Geoff" dst="Jocelyne" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Geoff" dst="Stephen" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Geoff" dst="Provost" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Geoff" dst="Juneau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Geoff" dst="Casavant" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Geoff" dst="St_Antoine" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Geoff" dst="Louis" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Geoff" dst="Julien" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Geoff" dst="St_Paul" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Geoff" dst="Mathematica" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Geoff" dst="LaTeX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Geoff" dst="Sirois" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Geoff" dst="Monique" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Geoff" dst="Audy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Geoff" dst="Bourassa" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Geoff" dst="OHara" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Geoff" dst="Boston" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Geoff" dst="Papineau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Geoff" dst="Fraser" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Geoff" dst="Browne" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Geoff" dst="SunOS" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Geoff" dst="Varennes" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Geoff" dst="Jacques" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Geoff" dst="Thierry" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Geoff" dst="Lachapelle" symmetrical="NO"><link_ctn id="146"/></route>
-   <route src="Geoff" dst="kV" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Geoff" dst="Yolande" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Geoff" dst="Pronovost" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Geoff" dst="SPICE" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Geoff" dst="Europe" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Geoff" dst="Roy" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Geoff" dst="Amadeus" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Geoff" dst="Intel" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Geoff" dst="Cambridge" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Geoff" dst="Tremblay" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Geoff" dst="UNIX" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Geoff" dst="Domey" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Geoff" dst="St_Bruno" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Geoff" dst="Jean_Claude" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Geoff" dst="Doyon" symmetrical="NO"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Geoff" dst="Fafard" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Geoff" dst="Croteau" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Geoff" dst="Dodge" symmetrical="NO"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Disney" dst="Jacquelin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Disney" dst="Boivin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Disney" dst="Jean_Yves" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Disney" dst="TeX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Disney" dst="Geoff" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Disney" dst="iRMX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Disney" dst="McGee" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Disney" dst="Gatien" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Disney" dst="Laroche" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Disney" dst="Tanguay" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Disney" dst="Morin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Disney" dst="Ethernet" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Disney" dst="Bellemarre" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Disney" dst="Kuenning" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Disney" dst="Gaston" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Disney" dst="Harry" symmetrical="NO"><link_ctn id="111"/><link_ctn id="108"/></route>
-   <route src="Disney" dst="Bousquet" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Disney" dst="Paul" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Disney" dst="St_Jean" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Disney" dst="Jill" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Disney" dst="Marcel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Disney" dst="Wright" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Disney" dst="Jackson" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Disney" dst="Fernand" symmetrical="NO"><link_ctn id="111"/><link_ctn id="109"/></route>
-   <route src="Disney" dst="Soucy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Disney" dst="Ste_Julie" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Disney" dst="Victoria" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Disney" dst="Lessard" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Disney" dst="Florient" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Disney" dst="Marcoux" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Disney" dst="Gavrel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Disney" dst="Bescherelle" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Disney" dst="Pierre" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Disney" dst="Jamie" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Disney" dst="Rubin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Disney" dst="Olivier" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Disney" dst="Boucherville" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Disney" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Disney" dst="Kansas" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Disney" dst="King" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Disney" dst="Lapointe" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Disney" dst="Julian" symmetrical="NO"><link_ctn id="111"/></route>
-   <route src="Disney" dst="Lafontaine" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Disney" dst="Gordon" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Disney" dst="Drouin" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Disney" dst="Robert" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Disney" dst="Jocelyne" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Disney" dst="Stephen" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Disney" dst="Provost" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Disney" dst="Juneau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Disney" dst="Casavant" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Disney" dst="St_Antoine" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Disney" dst="Louis" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Disney" dst="Julien" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Disney" dst="St_Paul" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Disney" dst="Mathematica" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Disney" dst="LaTeX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Disney" dst="Sirois" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Disney" dst="Monique" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Disney" dst="Audy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Disney" dst="Bourassa" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Disney" dst="OHara" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Disney" dst="Boston" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Disney" dst="Papineau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Disney" dst="Fraser" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Disney" dst="Browne" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Disney" dst="SunOS" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Disney" dst="Varennes" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Disney" dst="Jacques" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Disney" dst="Thierry" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Disney" dst="Lachapelle" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Disney" dst="kV" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Disney" dst="Yolande" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Disney" dst="Pronovost" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Disney" dst="SPICE" symmetrical="NO"><link_ctn id="111"/><link_ctn id="110"/></route>
-   <route src="Disney" dst="Europe" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Disney" dst="Roy" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Disney" dst="Amadeus" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Disney" dst="Intel" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Disney" dst="Cambridge" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Disney" dst="Tremblay" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Disney" dst="UNIX" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Disney" dst="Domey" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Disney" dst="St_Bruno" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Disney" dst="Jean_Claude" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Disney" dst="Doyon" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Disney" dst="Fafard" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Disney" dst="Croteau" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Disney" dst="Dodge" symmetrical="NO"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="iRMX" dst="Jacquelin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="iRMX" dst="Boivin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="iRMX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="iRMX" dst="TeX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="iRMX" dst="Geoff" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="iRMX" dst="Disney" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="iRMX" dst="McGee" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="iRMX" dst="Gatien" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="iRMX" dst="Laroche" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="iRMX" dst="Tanguay" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="iRMX" dst="Morin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="iRMX" dst="Ethernet" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="iRMX" dst="Bellemarre" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="iRMX" dst="Kuenning" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="iRMX" dst="Gaston" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="iRMX" dst="Harry" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="iRMX" dst="Bousquet" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="iRMX" dst="Paul" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="iRMX" dst="St_Jean" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="iRMX" dst="Jill" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="iRMX" dst="Marcel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="iRMX" dst="Wright" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="iRMX" dst="Jackson" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="iRMX" dst="Fernand" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="iRMX" dst="Soucy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="iRMX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="iRMX" dst="Victoria" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="iRMX" dst="Lessard" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="iRMX" dst="Florient" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="iRMX" dst="Marcoux" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="iRMX" dst="Gavrel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="iRMX" dst="Bescherelle" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="iRMX" dst="Pierre" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="iRMX" dst="Jamie" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="iRMX" dst="Rubin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="iRMX" dst="Olivier" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="iRMX" dst="Boucherville" symmetrical="NO"><link_ctn id="172"/></route>
-   <route src="iRMX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="iRMX" dst="Kansas" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="iRMX" dst="King" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="iRMX" dst="Lapointe" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="iRMX" dst="Julian" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="iRMX" dst="Lafontaine" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="iRMX" dst="Gordon" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="iRMX" dst="Drouin" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="iRMX" dst="Robert" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="iRMX" dst="Jocelyne" symmetrical="NO"><link_ctn id="172"/><link_ctn id="173"/></route>
-   <route src="iRMX" dst="Stephen" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="iRMX" dst="Provost" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="iRMX" dst="Juneau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="iRMX" dst="Casavant" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="iRMX" dst="St_Antoine" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="iRMX" dst="Louis" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="iRMX" dst="Julien" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="iRMX" dst="St_Paul" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="iRMX" dst="Mathematica" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="iRMX" dst="LaTeX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="iRMX" dst="Sirois" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="iRMX" dst="Monique" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="iRMX" dst="Audy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="iRMX" dst="Bourassa" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="iRMX" dst="OHara" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="iRMX" dst="Boston" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="iRMX" dst="Papineau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="iRMX" dst="Fraser" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="iRMX" dst="Browne" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="iRMX" dst="SunOS" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="iRMX" dst="Varennes" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="iRMX" dst="Jacques" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="iRMX" dst="Thierry" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="iRMX" dst="Lachapelle" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="iRMX" dst="kV" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="iRMX" dst="Yolande" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="iRMX" dst="Pronovost" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="iRMX" dst="SPICE" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="iRMX" dst="Europe" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="iRMX" dst="Roy" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="iRMX" dst="Amadeus" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="iRMX" dst="Intel" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="iRMX" dst="Cambridge" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="iRMX" dst="Tremblay" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="iRMX" dst="UNIX" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="iRMX" dst="Domey" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="iRMX" dst="St_Bruno" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="iRMX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="iRMX" dst="Doyon" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="iRMX" dst="Fafard" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="iRMX" dst="Croteau" symmetrical="NO"><link_ctn id="172"/><link_ctn id="175"/></route>
-   <route src="iRMX" dst="Dodge" symmetrical="NO"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="McGee" dst="Jacquelin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="McGee" dst="Boivin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="McGee" dst="Jean_Yves" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="McGee" dst="TeX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="McGee" dst="Geoff" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="McGee" dst="Disney" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="McGee" dst="iRMX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="McGee" dst="Gatien" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="McGee" dst="Laroche" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="McGee" dst="Tanguay" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="McGee" dst="Morin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="McGee" dst="Ethernet" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="McGee" dst="Bellemarre" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="McGee" dst="Kuenning" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="McGee" dst="Gaston" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="McGee" dst="Harry" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="McGee" dst="Bousquet" symmetrical="NO"><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="McGee" dst="Paul" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="McGee" dst="St_Jean" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="McGee" dst="Jill" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="McGee" dst="Marcel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="McGee" dst="Wright" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="McGee" dst="Jackson" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="McGee" dst="Fernand" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="McGee" dst="Soucy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="McGee" dst="Ste_Julie" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="McGee" dst="Victoria" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="McGee" dst="Lessard" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="McGee" dst="Florient" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="McGee" dst="Marcoux" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="McGee" dst="Gavrel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="McGee" dst="Bescherelle" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="McGee" dst="Pierre" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="McGee" dst="Jamie" symmetrical="NO"><link_ctn id="120"/></route>
-   <route src="McGee" dst="Rubin" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="McGee" dst="Olivier" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="McGee" dst="Boucherville" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="McGee" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="McGee" dst="Kansas" symmetrical="NO"><link_ctn id="122"/></route>
-   <route src="McGee" dst="King" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="McGee" dst="Lapointe" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="McGee" dst="Julian" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="McGee" dst="Lafontaine" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="McGee" dst="Gordon" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="McGee" dst="Drouin" symmetrical="NO"><link_ctn id="123"/></route>
-   <route src="McGee" dst="Robert" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="McGee" dst="Jocelyne" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="McGee" dst="Stephen" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="McGee" dst="Provost" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="McGee" dst="Juneau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="McGee" dst="Casavant" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="McGee" dst="St_Antoine" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="McGee" dst="Louis" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="McGee" dst="Julien" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="McGee" dst="St_Paul" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="McGee" dst="Mathematica" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="McGee" dst="LaTeX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="McGee" dst="Sirois" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="McGee" dst="Monique" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="McGee" dst="Audy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="McGee" dst="Bourassa" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="McGee" dst="OHara" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="McGee" dst="Boston" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="McGee" dst="Papineau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="McGee" dst="Fraser" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="McGee" dst="Browne" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="McGee" dst="SunOS" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="McGee" dst="Varennes" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="McGee" dst="Jacques" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="McGee" dst="Thierry" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="McGee" dst="Lachapelle" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="McGee" dst="kV" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="McGee" dst="Yolande" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="McGee" dst="Pronovost" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="McGee" dst="SPICE" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="McGee" dst="Europe" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="McGee" dst="Roy" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="McGee" dst="Amadeus" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="McGee" dst="Intel" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="McGee" dst="Cambridge" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="McGee" dst="Tremblay" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="McGee" dst="UNIX" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="McGee" dst="Domey" symmetrical="NO"><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="McGee" dst="St_Bruno" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="McGee" dst="Jean_Claude" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="McGee" dst="Doyon" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="McGee" dst="Fafard" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="McGee" dst="Croteau" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="McGee" dst="Dodge" symmetrical="NO"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gatien" dst="Jacquelin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gatien" dst="Boivin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Gatien" dst="Jean_Yves" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gatien" dst="TeX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gatien" dst="Geoff" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gatien" dst="Disney" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gatien" dst="iRMX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gatien" dst="McGee" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Gatien" dst="Laroche" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gatien" dst="Tanguay" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gatien" dst="Morin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gatien" dst="Ethernet" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gatien" dst="Bellemarre" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gatien" dst="Kuenning" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gatien" dst="Gaston" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gatien" dst="Harry" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gatien" dst="Bousquet" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gatien" dst="Paul" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gatien" dst="St_Jean" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gatien" dst="Jill" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gatien" dst="Marcel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gatien" dst="Wright" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gatien" dst="Jackson" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gatien" dst="Fernand" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gatien" dst="Soucy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gatien" dst="Ste_Julie" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gatien" dst="Victoria" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gatien" dst="Lessard" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gatien" dst="Florient" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gatien" dst="Marcoux" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gatien" dst="Gavrel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gatien" dst="Bescherelle" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gatien" dst="Pierre" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gatien" dst="Jamie" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gatien" dst="Rubin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gatien" dst="Olivier" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gatien" dst="Boucherville" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gatien" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gatien" dst="Kansas" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gatien" dst="King" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gatien" dst="Lapointe" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gatien" dst="Julian" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gatien" dst="Lafontaine" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gatien" dst="Gordon" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gatien" dst="Drouin" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gatien" dst="Robert" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gatien" dst="Jocelyne" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gatien" dst="Stephen" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gatien" dst="Provost" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gatien" dst="Juneau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gatien" dst="Casavant" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gatien" dst="St_Antoine" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gatien" dst="Louis" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gatien" dst="Julien" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gatien" dst="St_Paul" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gatien" dst="Mathematica" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gatien" dst="LaTeX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gatien" dst="Sirois" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gatien" dst="Monique" symmetrical="NO"><link_ctn id="115"/><link_ctn id="113"/></route>
-   <route src="Gatien" dst="Audy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gatien" dst="Bourassa" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gatien" dst="OHara" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gatien" dst="Boston" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gatien" dst="Papineau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gatien" dst="Fraser" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gatien" dst="Browne" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gatien" dst="SunOS" symmetrical="NO"><link_ctn id="115"/><link_ctn id="114"/></route>
-   <route src="Gatien" dst="Varennes" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gatien" dst="Jacques" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gatien" dst="Thierry" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gatien" dst="Lachapelle" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gatien" dst="kV" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gatien" dst="Yolande" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gatien" dst="Pronovost" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gatien" dst="SPICE" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gatien" dst="Europe" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gatien" dst="Roy" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gatien" dst="Amadeus" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gatien" dst="Intel" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gatien" dst="Cambridge" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gatien" dst="Tremblay" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gatien" dst="UNIX" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gatien" dst="Domey" symmetrical="NO"><link_ctn id="115"/></route>
-   <route src="Gatien" dst="St_Bruno" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gatien" dst="Jean_Claude" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gatien" dst="Doyon" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gatien" dst="Fafard" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gatien" dst="Croteau" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gatien" dst="Dodge" symmetrical="NO"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Laroche" dst="Jacquelin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Laroche" dst="Boivin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Laroche" dst="Jean_Yves" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Laroche" dst="TeX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Laroche" dst="Geoff" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Laroche" dst="Disney" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Laroche" dst="iRMX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Laroche" dst="McGee" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Laroche" dst="Gatien" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Laroche" dst="Tanguay" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Laroche" dst="Morin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Laroche" dst="Ethernet" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Laroche" dst="Bellemarre" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Laroche" dst="Kuenning" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Laroche" dst="Gaston" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Laroche" dst="Harry" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Laroche" dst="Bousquet" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Laroche" dst="Paul" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Laroche" dst="St_Jean" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Laroche" dst="Jill" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Laroche" dst="Marcel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Laroche" dst="Wright" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Laroche" dst="Jackson" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Laroche" dst="Fernand" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Laroche" dst="Soucy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Laroche" dst="Ste_Julie" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Laroche" dst="Victoria" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Laroche" dst="Lessard" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Laroche" dst="Florient" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Laroche" dst="Marcoux" symmetrical="NO"><link_ctn id="186"/></route>
-   <route src="Laroche" dst="Gavrel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Laroche" dst="Bescherelle" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Laroche" dst="Pierre" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Laroche" dst="Jamie" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Laroche" dst="Rubin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Laroche" dst="Olivier" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Laroche" dst="Boucherville" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Laroche" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="184"/></route>
-   <route src="Laroche" dst="Kansas" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Laroche" dst="King" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Laroche" dst="Lapointe" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Laroche" dst="Julian" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Laroche" dst="Lafontaine" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Laroche" dst="Gordon" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Laroche" dst="Drouin" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Laroche" dst="Robert" symmetrical="NO"><link_ctn id="187"/></route>
-   <route src="Laroche" dst="Jocelyne" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Laroche" dst="Stephen" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Laroche" dst="Provost" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Laroche" dst="Juneau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Laroche" dst="Casavant" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Laroche" dst="St_Antoine" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Laroche" dst="Louis" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Laroche" dst="Julien" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Laroche" dst="St_Paul" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Laroche" dst="Mathematica" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Laroche" dst="LaTeX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Laroche" dst="Sirois" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Laroche" dst="Monique" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Laroche" dst="Audy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Laroche" dst="Bourassa" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Laroche" dst="OHara" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Laroche" dst="Boston" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Laroche" dst="Papineau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Laroche" dst="Fraser" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Laroche" dst="Browne" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Laroche" dst="SunOS" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Laroche" dst="Varennes" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Laroche" dst="Jacques" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Laroche" dst="Thierry" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Laroche" dst="Lachapelle" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Laroche" dst="kV" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Laroche" dst="Yolande" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Laroche" dst="Pronovost" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Laroche" dst="SPICE" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Laroche" dst="Europe" symmetrical="NO"><link_ctn id="185"/></route>
-   <route src="Laroche" dst="Roy" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Laroche" dst="Amadeus" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Laroche" dst="Intel" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Laroche" dst="Cambridge" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Laroche" dst="Tremblay" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Laroche" dst="UNIX" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Laroche" dst="Domey" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Laroche" dst="St_Bruno" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Laroche" dst="Jean_Claude" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Laroche" dst="Doyon" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Laroche" dst="Fafard" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Laroche" dst="Croteau" symmetrical="NO"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Laroche" dst="Dodge" symmetrical="NO"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Tanguay" dst="Jacquelin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Tanguay" dst="Boivin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Tanguay" dst="Jean_Yves" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Tanguay" dst="TeX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Tanguay" dst="Geoff" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Tanguay" dst="Disney" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Tanguay" dst="iRMX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Tanguay" dst="McGee" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Tanguay" dst="Gatien" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Tanguay" dst="Laroche" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Tanguay" dst="Morin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Tanguay" dst="Ethernet" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Tanguay" dst="Bellemarre" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Tanguay" dst="Kuenning" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Tanguay" dst="Gaston" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Tanguay" dst="Harry" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Tanguay" dst="Bousquet" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Tanguay" dst="Paul" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Tanguay" dst="St_Jean" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Tanguay" dst="Jill" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Tanguay" dst="Marcel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Tanguay" dst="Wright" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Tanguay" dst="Jackson" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Tanguay" dst="Fernand" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Tanguay" dst="Soucy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Tanguay" dst="Ste_Julie" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Tanguay" dst="Victoria" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Tanguay" dst="Lessard" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Tanguay" dst="Florient" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Tanguay" dst="Marcoux" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Tanguay" dst="Gavrel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Tanguay" dst="Bescherelle" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Tanguay" dst="Pierre" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Tanguay" dst="Jamie" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Tanguay" dst="Rubin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Tanguay" dst="Olivier" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Tanguay" dst="Boucherville" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Tanguay" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Tanguay" dst="Kansas" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Tanguay" dst="King" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Tanguay" dst="Lapointe" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Tanguay" dst="Julian" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Tanguay" dst="Lafontaine" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Tanguay" dst="Gordon" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Tanguay" dst="Drouin" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Tanguay" dst="Robert" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Tanguay" dst="Jocelyne" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Tanguay" dst="Stephen" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Tanguay" dst="Provost" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Tanguay" dst="Juneau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Tanguay" dst="Casavant" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Tanguay" dst="St_Antoine" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Tanguay" dst="Louis" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Tanguay" dst="Julien" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Tanguay" dst="St_Paul" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Tanguay" dst="Mathematica" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Tanguay" dst="LaTeX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Tanguay" dst="Sirois" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Tanguay" dst="Monique" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Tanguay" dst="Audy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Tanguay" dst="Bourassa" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Tanguay" dst="OHara" symmetrical="NO"><link_ctn id="162"/><link_ctn id="163"/></route>
-   <route src="Tanguay" dst="Boston" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Tanguay" dst="Papineau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Tanguay" dst="Fraser" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Tanguay" dst="Browne" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Tanguay" dst="SunOS" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Tanguay" dst="Varennes" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Tanguay" dst="Jacques" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Tanguay" dst="Thierry" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Tanguay" dst="Lachapelle" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Tanguay" dst="kV" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Tanguay" dst="Yolande" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Tanguay" dst="Pronovost" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Tanguay" dst="SPICE" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Tanguay" dst="Europe" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Tanguay" dst="Roy" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Tanguay" dst="Amadeus" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Tanguay" dst="Intel" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Tanguay" dst="Cambridge" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Tanguay" dst="Tremblay" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Tanguay" dst="UNIX" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Tanguay" dst="Domey" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Tanguay" dst="St_Bruno" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Tanguay" dst="Jean_Claude" symmetrical="NO"><link_ctn id="162"/><link_ctn id="160"/></route>
-   <route src="Tanguay" dst="Doyon" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Tanguay" dst="Fafard" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Tanguay" dst="Croteau" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Tanguay" dst="Dodge" symmetrical="NO"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Morin" dst="Jacquelin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Morin" dst="Boivin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Morin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Morin" dst="TeX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Morin" dst="Geoff" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Morin" dst="Disney" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Morin" dst="iRMX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Morin" dst="McGee" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Morin" dst="Gatien" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Morin" dst="Laroche" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Morin" dst="Tanguay" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Morin" dst="Ethernet" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Morin" dst="Bellemarre" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Morin" dst="Kuenning" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Morin" dst="Gaston" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Morin" dst="Harry" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Morin" dst="Bousquet" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Morin" dst="Paul" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Morin" dst="St_Jean" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Morin" dst="Jill" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Morin" dst="Marcel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Morin" dst="Wright" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Morin" dst="Jackson" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Morin" dst="Fernand" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Morin" dst="Soucy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Morin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Morin" dst="Victoria" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Morin" dst="Lessard" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Morin" dst="Florient" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Morin" dst="Marcoux" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Morin" dst="Gavrel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Morin" dst="Bescherelle" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Morin" dst="Pierre" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Morin" dst="Jamie" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Morin" dst="Rubin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Morin" dst="Olivier" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Morin" dst="Boucherville" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Morin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Morin" dst="Kansas" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Morin" dst="King" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Morin" dst="Lapointe" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Morin" dst="Julian" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Morin" dst="Lafontaine" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Morin" dst="Gordon" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Morin" dst="Drouin" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Morin" dst="Robert" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Morin" dst="Jocelyne" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Morin" dst="Stephen" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Morin" dst="Provost" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Morin" dst="Juneau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Morin" dst="Casavant" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Morin" dst="St_Antoine" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Morin" dst="Louis" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Morin" dst="Julien" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Morin" dst="St_Paul" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Morin" dst="Mathematica" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Morin" dst="LaTeX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Morin" dst="Sirois" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Morin" dst="Monique" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Morin" dst="Audy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Morin" dst="Bourassa" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Morin" dst="OHara" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Morin" dst="Boston" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Morin" dst="Papineau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Morin" dst="Fraser" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Morin" dst="Browne" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Morin" dst="SunOS" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Morin" dst="Varennes" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Morin" dst="Jacques" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Morin" dst="Thierry" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Morin" dst="Lachapelle" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Morin" dst="kV" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Morin" dst="Yolande" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Morin" dst="Pronovost" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Morin" dst="SPICE" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Morin" dst="Europe" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Morin" dst="Roy" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Morin" dst="Amadeus" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Morin" dst="Intel" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Morin" dst="Cambridge" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Morin" dst="Tremblay" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Morin" dst="UNIX" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Morin" dst="Domey" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Morin" dst="St_Bruno" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Morin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Morin" dst="Doyon" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Morin" dst="Fafard" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Morin" dst="Croteau" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Morin" dst="Dodge" symmetrical="NO"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Ethernet" dst="Jacquelin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Ethernet" dst="Boivin" symmetrical="NO"><link_ctn id="118"/></route>
-   <route src="Ethernet" dst="Jean_Yves" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Ethernet" dst="TeX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Ethernet" dst="Geoff" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Ethernet" dst="Disney" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Ethernet" dst="iRMX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Ethernet" dst="McGee" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Ethernet" dst="Gatien" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Ethernet" dst="Laroche" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Ethernet" dst="Tanguay" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Ethernet" dst="Morin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Ethernet" dst="Bellemarre" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Ethernet" dst="Kuenning" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Ethernet" dst="Gaston" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Ethernet" dst="Harry" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Ethernet" dst="Bousquet" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Ethernet" dst="Paul" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Ethernet" dst="St_Jean" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Ethernet" dst="Jill" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Ethernet" dst="Marcel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Ethernet" dst="Wright" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Ethernet" dst="Jackson" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Ethernet" dst="Fernand" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Ethernet" dst="Soucy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Ethernet" dst="Ste_Julie" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Ethernet" dst="Victoria" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Ethernet" dst="Lessard" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Ethernet" dst="Florient" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Ethernet" dst="Marcoux" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Ethernet" dst="Gavrel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Ethernet" dst="Bescherelle" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Ethernet" dst="Pierre" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Ethernet" dst="Jamie" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Ethernet" dst="Rubin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Ethernet" dst="Olivier" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Ethernet" dst="Boucherville" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Ethernet" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Ethernet" dst="Kansas" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Ethernet" dst="King" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Ethernet" dst="Lapointe" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Ethernet" dst="Julian" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Ethernet" dst="Lafontaine" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Ethernet" dst="Gordon" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Ethernet" dst="Drouin" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Ethernet" dst="Robert" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Ethernet" dst="Jocelyne" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Ethernet" dst="Stephen" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Ethernet" dst="Provost" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Ethernet" dst="Juneau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Ethernet" dst="Casavant" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Ethernet" dst="St_Antoine" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Ethernet" dst="Louis" symmetrical="NO"><link_ctn id="118"/><link_ctn id="117"/></route>
-   <route src="Ethernet" dst="Julien" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Ethernet" dst="St_Paul" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Ethernet" dst="Mathematica" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Ethernet" dst="LaTeX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Ethernet" dst="Sirois" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Ethernet" dst="Monique" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Ethernet" dst="Audy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Ethernet" dst="Bourassa" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Ethernet" dst="OHara" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Ethernet" dst="Boston" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Ethernet" dst="Papineau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Ethernet" dst="Fraser" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Ethernet" dst="Browne" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Ethernet" dst="SunOS" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Ethernet" dst="Varennes" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Ethernet" dst="Jacques" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Ethernet" dst="Thierry" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Ethernet" dst="Lachapelle" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Ethernet" dst="kV" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Ethernet" dst="Yolande" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Ethernet" dst="Pronovost" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Ethernet" dst="SPICE" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Ethernet" dst="Europe" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Ethernet" dst="Roy" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Ethernet" dst="Amadeus" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Ethernet" dst="Intel" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Ethernet" dst="Cambridge" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Ethernet" dst="Tremblay" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Ethernet" dst="UNIX" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Ethernet" dst="Domey" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Ethernet" dst="St_Bruno" symmetrical="NO"><link_ctn id="118"/><link_ctn id="119"/></route>
-   <route src="Ethernet" dst="Jean_Claude" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Ethernet" dst="Doyon" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Ethernet" dst="Fafard" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Ethernet" dst="Croteau" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Ethernet" dst="Dodge" symmetrical="NO"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bellemarre" dst="Jacquelin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bellemarre" dst="Boivin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bellemarre" dst="Jean_Yves" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bellemarre" dst="TeX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bellemarre" dst="Geoff" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bellemarre" dst="Disney" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bellemarre" dst="iRMX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bellemarre" dst="McGee" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bellemarre" dst="Gatien" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bellemarre" dst="Laroche" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bellemarre" dst="Tanguay" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bellemarre" dst="Morin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bellemarre" dst="Ethernet" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bellemarre" dst="Kuenning" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bellemarre" dst="Gaston" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bellemarre" dst="Harry" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bellemarre" dst="Bousquet" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bellemarre" dst="Paul" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bellemarre" dst="St_Jean" symmetrical="NO"><link_ctn id="97"/></route>
-   <route src="Bellemarre" dst="Jill" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bellemarre" dst="Marcel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bellemarre" dst="Wright" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bellemarre" dst="Jackson" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bellemarre" dst="Fernand" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bellemarre" dst="Soucy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bellemarre" dst="Ste_Julie" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bellemarre" dst="Victoria" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bellemarre" dst="Lessard" symmetrical="NO"><link_ctn id="99"/></route>
-   <route src="Bellemarre" dst="Florient" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bellemarre" dst="Marcoux" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bellemarre" dst="Gavrel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bellemarre" dst="Bescherelle" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bellemarre" dst="Pierre" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bellemarre" dst="Jamie" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bellemarre" dst="Rubin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bellemarre" dst="Olivier" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bellemarre" dst="Boucherville" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bellemarre" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bellemarre" dst="Kansas" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bellemarre" dst="King" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bellemarre" dst="Lapointe" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bellemarre" dst="Julian" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bellemarre" dst="Lafontaine" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bellemarre" dst="Gordon" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bellemarre" dst="Drouin" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bellemarre" dst="Robert" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bellemarre" dst="Jocelyne" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bellemarre" dst="Stephen" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bellemarre" dst="Provost" symmetrical="NO"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bellemarre" dst="Juneau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bellemarre" dst="Casavant" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bellemarre" dst="St_Antoine" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bellemarre" dst="Louis" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bellemarre" dst="Julien" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bellemarre" dst="St_Paul" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bellemarre" dst="Mathematica" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bellemarre" dst="LaTeX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bellemarre" dst="Sirois" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bellemarre" dst="Monique" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bellemarre" dst="Audy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bellemarre" dst="Bourassa" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bellemarre" dst="OHara" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bellemarre" dst="Boston" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bellemarre" dst="Papineau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bellemarre" dst="Fraser" symmetrical="NO"><link_ctn id="96"/></route>
-   <route src="Bellemarre" dst="Browne" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bellemarre" dst="SunOS" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bellemarre" dst="Varennes" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bellemarre" dst="Jacques" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bellemarre" dst="Thierry" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bellemarre" dst="Lachapelle" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bellemarre" dst="kV" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bellemarre" dst="Yolande" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bellemarre" dst="Pronovost" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bellemarre" dst="SPICE" symmetrical="NO"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bellemarre" dst="Europe" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bellemarre" dst="Roy" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bellemarre" dst="Amadeus" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bellemarre" dst="Intel" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bellemarre" dst="Cambridge" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bellemarre" dst="Tremblay" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bellemarre" dst="UNIX" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bellemarre" dst="Domey" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bellemarre" dst="St_Bruno" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bellemarre" dst="Jean_Claude" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bellemarre" dst="Doyon" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bellemarre" dst="Fafard" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bellemarre" dst="Croteau" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bellemarre" dst="Dodge" symmetrical="NO"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Kuenning" dst="Jacquelin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Kuenning" dst="Boivin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Kuenning" dst="Jean_Yves" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Kuenning" dst="TeX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Kuenning" dst="Geoff" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Kuenning" dst="Disney" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Kuenning" dst="iRMX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Kuenning" dst="McGee" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Kuenning" dst="Gatien" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Kuenning" dst="Laroche" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Kuenning" dst="Tanguay" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Kuenning" dst="Morin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Kuenning" dst="Ethernet" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Kuenning" dst="Bellemarre" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Kuenning" dst="Gaston" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Kuenning" dst="Harry" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Kuenning" dst="Bousquet" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Kuenning" dst="Paul" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Kuenning" dst="St_Jean" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Kuenning" dst="Jill" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Kuenning" dst="Marcel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Kuenning" dst="Wright" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Kuenning" dst="Jackson" symmetrical="NO"><link_ctn id="135"/></route>
-   <route src="Kuenning" dst="Fernand" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Kuenning" dst="Soucy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Kuenning" dst="Ste_Julie" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Kuenning" dst="Victoria" symmetrical="NO"><link_ctn id="135"/><link_ctn id="133"/></route>
-   <route src="Kuenning" dst="Lessard" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Kuenning" dst="Florient" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Kuenning" dst="Marcoux" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Kuenning" dst="Gavrel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Kuenning" dst="Bescherelle" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Kuenning" dst="Pierre" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Kuenning" dst="Jamie" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Kuenning" dst="Rubin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Kuenning" dst="Olivier" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Kuenning" dst="Boucherville" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Kuenning" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Kuenning" dst="Kansas" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Kuenning" dst="King" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Kuenning" dst="Lapointe" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Kuenning" dst="Julian" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Kuenning" dst="Lafontaine" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Kuenning" dst="Gordon" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Kuenning" dst="Drouin" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Kuenning" dst="Robert" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Kuenning" dst="Jocelyne" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Kuenning" dst="Stephen" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Kuenning" dst="Provost" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Kuenning" dst="Juneau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Kuenning" dst="Casavant" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Kuenning" dst="St_Antoine" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Kuenning" dst="Louis" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Kuenning" dst="Julien" symmetrical="NO"><link_ctn id="135"/><link_ctn id="134"/></route>
-   <route src="Kuenning" dst="St_Paul" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Kuenning" dst="Mathematica" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Kuenning" dst="LaTeX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Kuenning" dst="Sirois" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Kuenning" dst="Monique" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Kuenning" dst="Audy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Kuenning" dst="Bourassa" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Kuenning" dst="OHara" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Kuenning" dst="Boston" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Kuenning" dst="Papineau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Kuenning" dst="Fraser" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Kuenning" dst="Browne" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Kuenning" dst="SunOS" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Kuenning" dst="Varennes" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Kuenning" dst="Jacques" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Kuenning" dst="Thierry" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Kuenning" dst="Lachapelle" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Kuenning" dst="kV" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Kuenning" dst="Yolande" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Kuenning" dst="Pronovost" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Kuenning" dst="SPICE" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Kuenning" dst="Europe" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Kuenning" dst="Roy" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Kuenning" dst="Amadeus" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Kuenning" dst="Intel" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Kuenning" dst="Cambridge" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Kuenning" dst="Tremblay" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Kuenning" dst="UNIX" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Kuenning" dst="Domey" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Kuenning" dst="St_Bruno" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Kuenning" dst="Jean_Claude" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Kuenning" dst="Doyon" symmetrical="NO"><link_ctn id="135"/><link_ctn id="132"/></route>
-   <route src="Kuenning" dst="Fafard" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Kuenning" dst="Croteau" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Kuenning" dst="Dodge" symmetrical="NO"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gaston" dst="Jacquelin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gaston" dst="Boivin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gaston" dst="Jean_Yves" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gaston" dst="TeX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gaston" dst="Geoff" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gaston" dst="Disney" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gaston" dst="iRMX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gaston" dst="McGee" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gaston" dst="Gatien" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gaston" dst="Laroche" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gaston" dst="Tanguay" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gaston" dst="Morin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gaston" dst="Ethernet" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gaston" dst="Bellemarre" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gaston" dst="Kuenning" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gaston" dst="Harry" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gaston" dst="Bousquet" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gaston" dst="Paul" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gaston" dst="St_Jean" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gaston" dst="Jill" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gaston" dst="Marcel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="155"/></route>
-   <route src="Gaston" dst="Wright" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gaston" dst="Jackson" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gaston" dst="Fernand" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gaston" dst="Soucy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gaston" dst="Ste_Julie" symmetrical="NO"><link_ctn id="153"/></route>
-   <route src="Gaston" dst="Victoria" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gaston" dst="Lessard" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gaston" dst="Florient" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gaston" dst="Marcoux" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gaston" dst="Gavrel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gaston" dst="Bescherelle" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gaston" dst="Pierre" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gaston" dst="Jamie" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gaston" dst="Rubin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gaston" dst="Olivier" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gaston" dst="Boucherville" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gaston" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gaston" dst="Kansas" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gaston" dst="King" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gaston" dst="Lapointe" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gaston" dst="Julian" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gaston" dst="Lafontaine" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gaston" dst="Gordon" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gaston" dst="Drouin" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gaston" dst="Robert" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gaston" dst="Jocelyne" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gaston" dst="Stephen" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gaston" dst="Provost" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gaston" dst="Juneau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gaston" dst="Casavant" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gaston" dst="St_Antoine" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gaston" dst="Louis" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gaston" dst="Julien" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gaston" dst="St_Paul" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gaston" dst="Mathematica" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gaston" dst="LaTeX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gaston" dst="Sirois" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gaston" dst="Monique" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gaston" dst="Audy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gaston" dst="Bourassa" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gaston" dst="OHara" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gaston" dst="Boston" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gaston" dst="Papineau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gaston" dst="Fraser" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gaston" dst="Browne" symmetrical="NO"><link_ctn id="153"/><link_ctn id="152"/></route>
-   <route src="Gaston" dst="SunOS" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gaston" dst="Varennes" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gaston" dst="Jacques" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gaston" dst="Thierry" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gaston" dst="Lachapelle" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gaston" dst="kV" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gaston" dst="Yolande" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gaston" dst="Pronovost" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gaston" dst="SPICE" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gaston" dst="Europe" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gaston" dst="Roy" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Gaston" dst="Amadeus" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gaston" dst="Intel" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gaston" dst="Cambridge" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gaston" dst="Tremblay" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gaston" dst="UNIX" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gaston" dst="Domey" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gaston" dst="St_Bruno" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gaston" dst="Jean_Claude" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gaston" dst="Doyon" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gaston" dst="Fafard" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gaston" dst="Croteau" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gaston" dst="Dodge" symmetrical="NO"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Harry" dst="Jacquelin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Harry" dst="Boivin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Harry" dst="Jean_Yves" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Harry" dst="TeX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Harry" dst="Geoff" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Harry" dst="Disney" symmetrical="NO"><link_ctn id="108"/><link_ctn id="111"/></route>
-   <route src="Harry" dst="iRMX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Harry" dst="McGee" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Harry" dst="Gatien" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Harry" dst="Laroche" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Harry" dst="Tanguay" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Harry" dst="Morin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Harry" dst="Ethernet" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Harry" dst="Bellemarre" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Harry" dst="Kuenning" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Harry" dst="Gaston" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Harry" dst="Bousquet" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Harry" dst="Paul" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Harry" dst="St_Jean" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Harry" dst="Jill" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Harry" dst="Marcel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Harry" dst="Wright" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Harry" dst="Jackson" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Harry" dst="Fernand" symmetrical="NO"><link_ctn id="108"/><link_ctn id="109"/></route>
-   <route src="Harry" dst="Soucy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Harry" dst="Ste_Julie" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Harry" dst="Victoria" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Harry" dst="Lessard" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Harry" dst="Florient" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Harry" dst="Marcoux" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Harry" dst="Gavrel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Harry" dst="Bescherelle" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Harry" dst="Pierre" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Harry" dst="Jamie" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Harry" dst="Rubin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Harry" dst="Olivier" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Harry" dst="Boucherville" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Harry" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Harry" dst="Kansas" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Harry" dst="King" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Harry" dst="Lapointe" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Harry" dst="Julian" symmetrical="NO"><link_ctn id="108"/></route>
-   <route src="Harry" dst="Lafontaine" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Harry" dst="Gordon" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Harry" dst="Drouin" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Harry" dst="Robert" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Harry" dst="Jocelyne" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Harry" dst="Stephen" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Harry" dst="Provost" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Harry" dst="Juneau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Harry" dst="Casavant" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Harry" dst="St_Antoine" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Harry" dst="Louis" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Harry" dst="Julien" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Harry" dst="St_Paul" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Harry" dst="Mathematica" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Harry" dst="LaTeX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Harry" dst="Sirois" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Harry" dst="Monique" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Harry" dst="Audy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Harry" dst="Bourassa" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Harry" dst="OHara" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Harry" dst="Boston" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Harry" dst="Papineau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Harry" dst="Fraser" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Harry" dst="Browne" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Harry" dst="SunOS" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Harry" dst="Varennes" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Harry" dst="Jacques" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Harry" dst="Thierry" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Harry" dst="Lachapelle" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Harry" dst="kV" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Harry" dst="Yolande" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Harry" dst="Pronovost" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Harry" dst="SPICE" symmetrical="NO"><link_ctn id="108"/><link_ctn id="110"/></route>
-   <route src="Harry" dst="Europe" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Harry" dst="Roy" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Harry" dst="Amadeus" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Harry" dst="Intel" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Harry" dst="Cambridge" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Harry" dst="Tremblay" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Harry" dst="UNIX" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Harry" dst="Domey" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Harry" dst="St_Bruno" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Harry" dst="Jean_Claude" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Harry" dst="Doyon" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Harry" dst="Fafard" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Harry" dst="Croteau" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Harry" dst="Dodge" symmetrical="NO"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bousquet" dst="Jacquelin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bousquet" dst="Boivin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Bousquet" dst="Jean_Yves" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bousquet" dst="TeX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bousquet" dst="Geoff" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bousquet" dst="Disney" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bousquet" dst="iRMX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bousquet" dst="McGee" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/></route>
-   <route src="Bousquet" dst="Gatien" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bousquet" dst="Laroche" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bousquet" dst="Tanguay" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bousquet" dst="Morin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bousquet" dst="Ethernet" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bousquet" dst="Bellemarre" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bousquet" dst="Kuenning" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bousquet" dst="Gaston" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bousquet" dst="Harry" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bousquet" dst="Paul" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bousquet" dst="St_Jean" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bousquet" dst="Jill" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bousquet" dst="Marcel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bousquet" dst="Wright" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bousquet" dst="Jackson" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bousquet" dst="Fernand" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bousquet" dst="Soucy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bousquet" dst="Ste_Julie" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bousquet" dst="Victoria" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bousquet" dst="Lessard" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bousquet" dst="Florient" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bousquet" dst="Marcoux" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bousquet" dst="Gavrel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bousquet" dst="Bescherelle" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bousquet" dst="Pierre" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bousquet" dst="Jamie" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bousquet" dst="Rubin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bousquet" dst="Olivier" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bousquet" dst="Boucherville" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bousquet" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bousquet" dst="Kansas" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bousquet" dst="King" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bousquet" dst="Lapointe" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bousquet" dst="Julian" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bousquet" dst="Lafontaine" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bousquet" dst="Gordon" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bousquet" dst="Drouin" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bousquet" dst="Robert" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bousquet" dst="Jocelyne" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bousquet" dst="Stephen" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bousquet" dst="Provost" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bousquet" dst="Juneau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bousquet" dst="Casavant" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bousquet" dst="St_Antoine" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bousquet" dst="Louis" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bousquet" dst="Julien" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bousquet" dst="St_Paul" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bousquet" dst="Mathematica" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bousquet" dst="LaTeX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bousquet" dst="Sirois" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bousquet" dst="Monique" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bousquet" dst="Audy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bousquet" dst="Bourassa" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bousquet" dst="OHara" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bousquet" dst="Boston" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bousquet" dst="Papineau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bousquet" dst="Fraser" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bousquet" dst="Browne" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bousquet" dst="SunOS" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bousquet" dst="Varennes" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bousquet" dst="Jacques" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bousquet" dst="Thierry" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bousquet" dst="Lachapelle" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bousquet" dst="kV" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bousquet" dst="Yolande" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bousquet" dst="Pronovost" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bousquet" dst="SPICE" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bousquet" dst="Europe" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bousquet" dst="Roy" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bousquet" dst="Amadeus" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bousquet" dst="Intel" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bousquet" dst="Cambridge" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bousquet" dst="Tremblay" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bousquet" dst="UNIX" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bousquet" dst="Domey" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/></route>
-   <route src="Bousquet" dst="St_Bruno" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bousquet" dst="Jean_Claude" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bousquet" dst="Doyon" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bousquet" dst="Fafard" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bousquet" dst="Croteau" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bousquet" dst="Dodge" symmetrical="NO"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Paul" dst="Jacquelin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Paul" dst="Boivin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Paul" dst="Jean_Yves" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Paul" dst="TeX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Paul" dst="Geoff" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Paul" dst="Disney" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Paul" dst="iRMX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Paul" dst="McGee" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Paul" dst="Gatien" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Paul" dst="Laroche" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Paul" dst="Tanguay" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Paul" dst="Morin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Paul" dst="Ethernet" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Paul" dst="Bellemarre" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Paul" dst="Kuenning" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Paul" dst="Gaston" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Paul" dst="Harry" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Paul" dst="Bousquet" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Paul" dst="St_Jean" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Paul" dst="Jill" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Paul" dst="Marcel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Paul" dst="Wright" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Paul" dst="Jackson" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Paul" dst="Fernand" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Paul" dst="Soucy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Paul" dst="Ste_Julie" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Paul" dst="Victoria" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Paul" dst="Lessard" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Paul" dst="Florient" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Paul" dst="Marcoux" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Paul" dst="Gavrel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Paul" dst="Bescherelle" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Paul" dst="Pierre" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Paul" dst="Jamie" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Paul" dst="Rubin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Paul" dst="Olivier" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Paul" dst="Boucherville" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Paul" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Paul" dst="Kansas" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Paul" dst="King" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Paul" dst="Lapointe" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Paul" dst="Julian" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Paul" dst="Lafontaine" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Paul" dst="Gordon" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Paul" dst="Drouin" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Paul" dst="Robert" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Paul" dst="Jocelyne" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Paul" dst="Stephen" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Paul" dst="Provost" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Paul" dst="Juneau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Paul" dst="Casavant" symmetrical="NO"><link_ctn id="93"/><link_ctn id="92"/></route>
-   <route src="Paul" dst="St_Antoine" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Paul" dst="Louis" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Paul" dst="Julien" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Paul" dst="St_Paul" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Paul" dst="Mathematica" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Paul" dst="LaTeX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Paul" dst="Sirois" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Paul" dst="Monique" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Paul" dst="Audy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Paul" dst="Bourassa" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Paul" dst="OHara" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Paul" dst="Boston" symmetrical="NO"><link_ctn id="93"/><link_ctn id="95"/></route>
-   <route src="Paul" dst="Papineau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Paul" dst="Fraser" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Paul" dst="Browne" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Paul" dst="SunOS" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Paul" dst="Varennes" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Paul" dst="Jacques" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Paul" dst="Thierry" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Paul" dst="Lachapelle" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Paul" dst="kV" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Paul" dst="Yolande" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Paul" dst="Pronovost" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Paul" dst="SPICE" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Paul" dst="Europe" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Paul" dst="Roy" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Paul" dst="Amadeus" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Paul" dst="Intel" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Paul" dst="Cambridge" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Paul" dst="Tremblay" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Paul" dst="UNIX" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Paul" dst="Domey" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Paul" dst="St_Bruno" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Paul" dst="Jean_Claude" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Paul" dst="Doyon" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Paul" dst="Fafard" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Paul" dst="Croteau" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Paul" dst="Dodge" symmetrical="NO"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Jean" dst="Jacquelin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Jean" dst="Boivin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Jean" dst="Jean_Yves" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Jean" dst="TeX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Jean" dst="Geoff" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Jean" dst="Disney" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Jean" dst="iRMX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Jean" dst="McGee" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Jean" dst="Gatien" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Jean" dst="Laroche" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Jean" dst="Tanguay" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Jean" dst="Morin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Jean" dst="Ethernet" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Jean" dst="Bellemarre" symmetrical="NO"><link_ctn id="97"/></route>
-   <route src="St_Jean" dst="Kuenning" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Jean" dst="Gaston" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Jean" dst="Harry" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Jean" dst="Bousquet" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Jean" dst="Paul" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Jean" dst="Jill" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Jean" dst="Marcel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Jean" dst="Wright" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Jean" dst="Jackson" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Jean" dst="Fernand" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Jean" dst="Soucy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Jean" dst="Ste_Julie" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Jean" dst="Victoria" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Jean" dst="Lessard" symmetrical="NO"><link_ctn id="97"/><link_ctn id="99"/></route>
-   <route src="St_Jean" dst="Florient" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Jean" dst="Marcoux" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Jean" dst="Gavrel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Jean" dst="Bescherelle" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Jean" dst="Pierre" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Jean" dst="Jamie" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Jean" dst="Rubin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Jean" dst="Olivier" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Jean" dst="Boucherville" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Jean" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Jean" dst="Kansas" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Jean" dst="King" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Jean" dst="Lapointe" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Jean" dst="Julian" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Jean" dst="Lafontaine" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Jean" dst="Gordon" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Jean" dst="Drouin" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Jean" dst="Robert" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Jean" dst="Jocelyne" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Jean" dst="Stephen" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Jean" dst="Provost" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Jean" dst="Juneau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Jean" dst="Casavant" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Jean" dst="St_Antoine" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Jean" dst="Louis" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Jean" dst="Julien" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Jean" dst="St_Paul" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Jean" dst="Mathematica" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Jean" dst="LaTeX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Jean" dst="Sirois" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Jean" dst="Monique" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Jean" dst="Audy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Jean" dst="Bourassa" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Jean" dst="OHara" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Jean" dst="Boston" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Jean" dst="Papineau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Jean" dst="Fraser" symmetrical="NO"><link_ctn id="97"/><link_ctn id="96"/></route>
-   <route src="St_Jean" dst="Browne" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Jean" dst="SunOS" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Jean" dst="Varennes" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Jean" dst="Jacques" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Jean" dst="Thierry" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Jean" dst="Lachapelle" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Jean" dst="kV" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Jean" dst="Yolande" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Jean" dst="Pronovost" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Jean" dst="SPICE" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Jean" dst="Europe" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Jean" dst="Roy" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Jean" dst="Amadeus" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Jean" dst="Intel" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Jean" dst="Cambridge" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Jean" dst="Tremblay" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Jean" dst="UNIX" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Jean" dst="Domey" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Jean" dst="St_Bruno" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Jean" dst="Jean_Claude" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Jean" dst="Doyon" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Jean" dst="Fafard" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Jean" dst="Croteau" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Jean" dst="Dodge" symmetrical="NO"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jill" dst="Jacquelin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jill" dst="Boivin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jill" dst="Jean_Yves" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jill" dst="TeX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jill" dst="Geoff" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jill" dst="Disney" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jill" dst="iRMX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jill" dst="McGee" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jill" dst="Gatien" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jill" dst="Laroche" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Jill" dst="Tanguay" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jill" dst="Morin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jill" dst="Ethernet" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jill" dst="Bellemarre" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jill" dst="Kuenning" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jill" dst="Gaston" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jill" dst="Harry" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jill" dst="Bousquet" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jill" dst="Paul" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jill" dst="St_Jean" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jill" dst="Marcel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jill" dst="Wright" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jill" dst="Jackson" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jill" dst="Fernand" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jill" dst="Soucy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jill" dst="Ste_Julie" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jill" dst="Victoria" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jill" dst="Lessard" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jill" dst="Florient" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jill" dst="Marcoux" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jill" dst="Gavrel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jill" dst="Bescherelle" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jill" dst="Pierre" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jill" dst="Jamie" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jill" dst="Rubin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jill" dst="Olivier" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jill" dst="Boucherville" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="Jill" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jill" dst="Kansas" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jill" dst="King" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jill" dst="Lapointe" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Jill" dst="Julian" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jill" dst="Lafontaine" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jill" dst="Gordon" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Jill" dst="Drouin" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jill" dst="Robert" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jill" dst="Jocelyne" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jill" dst="Stephen" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jill" dst="Provost" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jill" dst="Juneau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jill" dst="Casavant" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jill" dst="St_Antoine" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jill" dst="Louis" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jill" dst="Julien" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jill" dst="St_Paul" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jill" dst="Mathematica" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jill" dst="LaTeX" symmetrical="NO"><link_ctn id="177"/></route>
-   <route src="Jill" dst="Sirois" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jill" dst="Monique" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jill" dst="Audy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jill" dst="Bourassa" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jill" dst="OHara" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jill" dst="Boston" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jill" dst="Papineau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jill" dst="Fraser" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jill" dst="Browne" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jill" dst="SunOS" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jill" dst="Varennes" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jill" dst="Jacques" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jill" dst="Thierry" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jill" dst="Lachapelle" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jill" dst="kV" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jill" dst="Yolande" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jill" dst="Pronovost" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jill" dst="SPICE" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jill" dst="Europe" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jill" dst="Roy" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jill" dst="Amadeus" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jill" dst="Intel" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jill" dst="Cambridge" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jill" dst="Tremblay" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jill" dst="UNIX" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jill" dst="Domey" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jill" dst="St_Bruno" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jill" dst="Jean_Claude" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jill" dst="Doyon" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jill" dst="Fafard" symmetrical="NO"><link_ctn id="179"/></route>
-   <route src="Jill" dst="Croteau" symmetrical="NO"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jill" dst="Dodge" symmetrical="NO"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jacquelin" dst="Wright" symmetrical="YES"><link_ctn id="145"/><link_ctn id="147"/></route>
+   <route src="Jacquelin" dst="Jackson" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Jacquelin" dst="Fernand" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Jacquelin" dst="Soucy" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Jacquelin" dst="Ste_Julie" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Jacquelin" dst="Victoria" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Jacquelin" dst="Lessard" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Jacquelin" dst="Florient" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Jacquelin" dst="Marcoux" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Jacquelin" dst="Gavrel" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Jacquelin" dst="Bescherelle" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Jacquelin" dst="Pierre" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Jacquelin" dst="Jamie" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Jacquelin" dst="Rubin" symmetrical="YES"><link_ctn id="145"/><link_ctn id="144"/></route>
+   <route src="Jacquelin" dst="Olivier" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Jacquelin" dst="Boucherville" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Jacquelin" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Jacquelin" dst="Kansas" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Jacquelin" dst="King" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Jacquelin" dst="Lapointe" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Jacquelin" dst="Julian" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Jacquelin" dst="Lafontaine" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Jacquelin" dst="Gordon" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Jacquelin" dst="Drouin" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Jacquelin" dst="Robert" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Jacquelin" dst="Jocelyne" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Jacquelin" dst="Stephen" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jacquelin" dst="Provost" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jacquelin" dst="Juneau" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jacquelin" dst="Casavant" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jacquelin" dst="St_Antoine" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Jacquelin" dst="Louis" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jacquelin" dst="Julien" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Jacquelin" dst="St_Paul" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jacquelin" dst="Mathematica" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jacquelin" dst="LaTeX" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Jacquelin" dst="Sirois" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jacquelin" dst="Monique" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jacquelin" dst="Audy" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jacquelin" dst="Bourassa" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jacquelin" dst="OHara" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jacquelin" dst="Boston" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jacquelin" dst="Papineau" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jacquelin" dst="Fraser" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jacquelin" dst="Browne" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jacquelin" dst="SunOS" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jacquelin" dst="Varennes" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Jacquelin" dst="Jacques" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jacquelin" dst="Thierry" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jacquelin" dst="Lachapelle" symmetrical="YES"><link_ctn id="145"/><link_ctn id="146"/></route>
+   <route src="Jacquelin" dst="kV" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Jacquelin" dst="Yolande" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jacquelin" dst="Pronovost" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jacquelin" dst="SPICE" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jacquelin" dst="Europe" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jacquelin" dst="Roy" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jacquelin" dst="Amadeus" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jacquelin" dst="Intel" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jacquelin" dst="Cambridge" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jacquelin" dst="Tremblay" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jacquelin" dst="UNIX" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jacquelin" dst="Domey" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jacquelin" dst="St_Bruno" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jacquelin" dst="Jean_Claude" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jacquelin" dst="Doyon" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jacquelin" dst="Fafard" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jacquelin" dst="Croteau" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jacquelin" dst="Dodge" symmetrical="YES"><link_ctn id="145"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Boivin" dst="Jean_Yves" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
+   <route src="Boivin" dst="TeX" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
+   <route src="Boivin" dst="Geoff" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
+   <route src="Boivin" dst="Disney" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
+   <route src="Boivin" dst="iRMX" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="Boivin" dst="McGee" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="Boivin" dst="Gatien" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="Boivin" dst="Laroche" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Boivin" dst="Tanguay" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Boivin" dst="Morin" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Boivin" dst="Ethernet" symmetrical="YES"><link_ctn id="118"/></route>
+   <route src="Boivin" dst="Bellemarre" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Boivin" dst="Kuenning" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Boivin" dst="Gaston" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Boivin" dst="Harry" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Boivin" dst="Bousquet" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Boivin" dst="Paul" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Boivin" dst="St_Jean" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Boivin" dst="Jill" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Boivin" dst="Marcel" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Boivin" dst="Wright" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Boivin" dst="Jackson" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Boivin" dst="Fernand" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Boivin" dst="Soucy" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Boivin" dst="Ste_Julie" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Boivin" dst="Victoria" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Boivin" dst="Lessard" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Boivin" dst="Florient" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Boivin" dst="Marcoux" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Boivin" dst="Gavrel" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Boivin" dst="Bescherelle" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Boivin" dst="Pierre" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Boivin" dst="Jamie" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Boivin" dst="Rubin" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Boivin" dst="Olivier" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Boivin" dst="Boucherville" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Boivin" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Boivin" dst="Kansas" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Boivin" dst="King" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Boivin" dst="Lapointe" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Boivin" dst="Julian" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Boivin" dst="Lafontaine" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Boivin" dst="Gordon" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Boivin" dst="Drouin" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Boivin" dst="Robert" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Boivin" dst="Jocelyne" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Boivin" dst="Stephen" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Boivin" dst="Provost" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Boivin" dst="Juneau" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Boivin" dst="Casavant" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Boivin" dst="St_Antoine" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Boivin" dst="Louis" symmetrical="YES"><link_ctn id="117"/></route>
+   <route src="Boivin" dst="Julien" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Boivin" dst="St_Paul" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Boivin" dst="Mathematica" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Boivin" dst="LaTeX" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Boivin" dst="Sirois" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Boivin" dst="Monique" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Boivin" dst="Audy" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Boivin" dst="Bourassa" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Boivin" dst="OHara" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Boivin" dst="Boston" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Boivin" dst="Papineau" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Boivin" dst="Fraser" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Boivin" dst="Browne" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Boivin" dst="SunOS" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Boivin" dst="Varennes" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Boivin" dst="Jacques" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Boivin" dst="Thierry" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Boivin" dst="Lachapelle" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Boivin" dst="kV" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Boivin" dst="Yolande" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Boivin" dst="Pronovost" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Boivin" dst="SPICE" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Boivin" dst="Europe" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Boivin" dst="Roy" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Boivin" dst="Amadeus" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Boivin" dst="Intel" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Boivin" dst="Cambridge" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Boivin" dst="Tremblay" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Boivin" dst="UNIX" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Boivin" dst="Domey" symmetrical="YES"><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Boivin" dst="St_Bruno" symmetrical="YES"><link_ctn id="119"/></route>
+   <route src="Boivin" dst="Jean_Claude" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Boivin" dst="Doyon" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Boivin" dst="Fafard" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Boivin" dst="Croteau" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Boivin" dst="Dodge" symmetrical="YES"><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jean_Yves" dst="TeX" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
+   <route src="Jean_Yves" dst="Geoff" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
+   <route src="Jean_Yves" dst="Disney" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
+   <route src="Jean_Yves" dst="iRMX" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="Jean_Yves" dst="McGee" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="Jean_Yves" dst="Gatien" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="Jean_Yves" dst="Laroche" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Jean_Yves" dst="Tanguay" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Jean_Yves" dst="Morin" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Jean_Yves" dst="Ethernet" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Jean_Yves" dst="Bellemarre" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Jean_Yves" dst="Kuenning" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Jean_Yves" dst="Gaston" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Jean_Yves" dst="Harry" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Jean_Yves" dst="Bousquet" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Jean_Yves" dst="Paul" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Jean_Yves" dst="St_Jean" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Jean_Yves" dst="Jill" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Jean_Yves" dst="Marcel" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Jean_Yves" dst="Wright" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Jean_Yves" dst="Jackson" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/></route>
+   <route src="Jean_Yves" dst="Fernand" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Jean_Yves" dst="Soucy" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Jean_Yves" dst="Ste_Julie" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Jean_Yves" dst="Victoria" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Jean_Yves" dst="Lessard" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Jean_Yves" dst="Florient" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Jean_Yves" dst="Marcoux" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Jean_Yves" dst="Gavrel" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Jean_Yves" dst="Bescherelle" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Jean_Yves" dst="Pierre" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Jean_Yves" dst="Jamie" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Jean_Yves" dst="Rubin" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Jean_Yves" dst="Olivier" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Jean_Yves" dst="Boucherville" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Jean_Yves" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Jean_Yves" dst="Kansas" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Jean_Yves" dst="King" symmetrical="YES"><link_ctn id="138"/><link_ctn id="137"/></route>
+   <route src="Jean_Yves" dst="Lapointe" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Jean_Yves" dst="Julian" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Jean_Yves" dst="Lafontaine" symmetrical="YES"><link_ctn id="138"/><link_ctn id="139"/></route>
+   <route src="Jean_Yves" dst="Gordon" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Jean_Yves" dst="Drouin" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Jean_Yves" dst="Robert" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Jean_Yves" dst="Jocelyne" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Jean_Yves" dst="Stephen" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jean_Yves" dst="Provost" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jean_Yves" dst="Juneau" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jean_Yves" dst="Casavant" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jean_Yves" dst="St_Antoine" symmetrical="YES"><link_ctn id="138"/></route>
+   <route src="Jean_Yves" dst="Louis" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jean_Yves" dst="Julien" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Jean_Yves" dst="St_Paul" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jean_Yves" dst="Mathematica" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jean_Yves" dst="LaTeX" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Jean_Yves" dst="Sirois" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jean_Yves" dst="Monique" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jean_Yves" dst="Audy" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jean_Yves" dst="Bourassa" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jean_Yves" dst="OHara" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jean_Yves" dst="Boston" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jean_Yves" dst="Papineau" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jean_Yves" dst="Fraser" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jean_Yves" dst="Browne" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jean_Yves" dst="SunOS" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jean_Yves" dst="Varennes" symmetrical="YES"><link_ctn id="138"/><link_ctn id="136"/></route>
+   <route src="Jean_Yves" dst="Jacques" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jean_Yves" dst="Thierry" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jean_Yves" dst="Lachapelle" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jean_Yves" dst="kV" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Jean_Yves" dst="Yolande" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jean_Yves" dst="Pronovost" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jean_Yves" dst="SPICE" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jean_Yves" dst="Europe" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jean_Yves" dst="Roy" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jean_Yves" dst="Amadeus" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jean_Yves" dst="Intel" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jean_Yves" dst="Cambridge" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jean_Yves" dst="Tremblay" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jean_Yves" dst="UNIX" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jean_Yves" dst="Domey" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jean_Yves" dst="St_Bruno" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jean_Yves" dst="Jean_Claude" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jean_Yves" dst="Doyon" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jean_Yves" dst="Fafard" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jean_Yves" dst="Croteau" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jean_Yves" dst="Dodge" symmetrical="YES"><link_ctn id="138"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="TeX" dst="Geoff" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
+   <route src="TeX" dst="Disney" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
+   <route src="TeX" dst="iRMX" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="TeX" dst="McGee" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="TeX" dst="Gatien" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="TeX" dst="Laroche" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="TeX" dst="Tanguay" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="TeX" dst="Morin" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="TeX" dst="Ethernet" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="TeX" dst="Bellemarre" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/></route>
+   <route src="TeX" dst="Kuenning" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="TeX" dst="Gaston" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="TeX" dst="Harry" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="TeX" dst="Bousquet" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="TeX" dst="Paul" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="TeX" dst="St_Jean" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="TeX" dst="Jill" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="TeX" dst="Marcel" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="TeX" dst="Wright" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="TeX" dst="Jackson" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="TeX" dst="Fernand" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="TeX" dst="Soucy" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="TeX" dst="Ste_Julie" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="TeX" dst="Victoria" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="TeX" dst="Lessard" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="TeX" dst="Florient" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="TeX" dst="Marcoux" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="TeX" dst="Gavrel" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="TeX" dst="Bescherelle" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="TeX" dst="Pierre" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="TeX" dst="Jamie" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="TeX" dst="Rubin" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="TeX" dst="Olivier" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="TeX" dst="Boucherville" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="TeX" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="TeX" dst="Kansas" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="TeX" dst="King" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="TeX" dst="Lapointe" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="TeX" dst="Julian" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="TeX" dst="Lafontaine" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="TeX" dst="Gordon" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="TeX" dst="Drouin" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="TeX" dst="Robert" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="TeX" dst="Jocelyne" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="TeX" dst="Stephen" symmetrical="YES"><link_ctn id="100"/><link_ctn id="101"/></route>
+   <route src="TeX" dst="Provost" symmetrical="YES"><link_ctn id="100"/><link_ctn id="103"/></route>
+   <route src="TeX" dst="Juneau" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="TeX" dst="Casavant" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="TeX" dst="St_Antoine" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="TeX" dst="Louis" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="TeX" dst="Julien" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="TeX" dst="St_Paul" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="TeX" dst="Mathematica" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="TeX" dst="LaTeX" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="TeX" dst="Sirois" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="TeX" dst="Monique" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="TeX" dst="Audy" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="TeX" dst="Bourassa" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="TeX" dst="OHara" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="TeX" dst="Boston" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="TeX" dst="Papineau" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="TeX" dst="Fraser" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="TeX" dst="Browne" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="TeX" dst="SunOS" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="TeX" dst="Varennes" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="TeX" dst="Jacques" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="TeX" dst="Thierry" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="TeX" dst="Lachapelle" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="TeX" dst="kV" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="TeX" dst="Yolande" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="TeX" dst="Pronovost" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="TeX" dst="SPICE" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="TeX" dst="Europe" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="TeX" dst="Roy" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="TeX" dst="Amadeus" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="TeX" dst="Intel" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="TeX" dst="Cambridge" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="TeX" dst="Tremblay" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="TeX" dst="UNIX" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="TeX" dst="Domey" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="TeX" dst="St_Bruno" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="TeX" dst="Jean_Claude" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="TeX" dst="Doyon" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="TeX" dst="Fafard" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="TeX" dst="Croteau" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="TeX" dst="Dodge" symmetrical="YES"><link_ctn id="100"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Geoff" dst="Disney" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
+   <route src="Geoff" dst="iRMX" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="Geoff" dst="McGee" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="Geoff" dst="Gatien" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="Geoff" dst="Laroche" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Geoff" dst="Tanguay" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Geoff" dst="Morin" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Geoff" dst="Ethernet" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Geoff" dst="Bellemarre" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Geoff" dst="Kuenning" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Geoff" dst="Gaston" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Geoff" dst="Harry" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Geoff" dst="Bousquet" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Geoff" dst="Paul" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Geoff" dst="St_Jean" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Geoff" dst="Jill" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Geoff" dst="Marcel" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Geoff" dst="Wright" symmetrical="YES"><link_ctn id="147"/></route>
+   <route src="Geoff" dst="Jackson" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Geoff" dst="Fernand" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Geoff" dst="Soucy" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Geoff" dst="Ste_Julie" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Geoff" dst="Victoria" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Geoff" dst="Lessard" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Geoff" dst="Florient" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Geoff" dst="Marcoux" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Geoff" dst="Gavrel" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Geoff" dst="Bescherelle" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Geoff" dst="Pierre" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Geoff" dst="Jamie" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Geoff" dst="Rubin" symmetrical="YES"><link_ctn id="144"/></route>
+   <route src="Geoff" dst="Olivier" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Geoff" dst="Boucherville" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Geoff" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Geoff" dst="Kansas" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Geoff" dst="King" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Geoff" dst="Lapointe" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Geoff" dst="Julian" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Geoff" dst="Lafontaine" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Geoff" dst="Gordon" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Geoff" dst="Drouin" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Geoff" dst="Robert" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Geoff" dst="Jocelyne" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Geoff" dst="Stephen" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Geoff" dst="Provost" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Geoff" dst="Juneau" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Geoff" dst="Casavant" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Geoff" dst="St_Antoine" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Geoff" dst="Louis" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Geoff" dst="Julien" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Geoff" dst="St_Paul" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Geoff" dst="Mathematica" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Geoff" dst="LaTeX" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Geoff" dst="Sirois" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Geoff" dst="Monique" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Geoff" dst="Audy" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Geoff" dst="Bourassa" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Geoff" dst="OHara" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Geoff" dst="Boston" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Geoff" dst="Papineau" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Geoff" dst="Fraser" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Geoff" dst="Browne" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Geoff" dst="SunOS" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Geoff" dst="Varennes" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Geoff" dst="Jacques" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Geoff" dst="Thierry" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Geoff" dst="Lachapelle" symmetrical="YES"><link_ctn id="146"/></route>
+   <route src="Geoff" dst="kV" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Geoff" dst="Yolande" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Geoff" dst="Pronovost" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Geoff" dst="SPICE" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Geoff" dst="Europe" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Geoff" dst="Roy" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Geoff" dst="Amadeus" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Geoff" dst="Intel" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Geoff" dst="Cambridge" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Geoff" dst="Tremblay" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Geoff" dst="UNIX" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Geoff" dst="Domey" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Geoff" dst="St_Bruno" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Geoff" dst="Jean_Claude" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Geoff" dst="Doyon" symmetrical="YES"><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Geoff" dst="Fafard" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Geoff" dst="Croteau" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Geoff" dst="Dodge" symmetrical="YES"><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Disney" dst="iRMX" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
+   <route src="Disney" dst="McGee" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="Disney" dst="Gatien" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="Disney" dst="Laroche" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Disney" dst="Tanguay" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Disney" dst="Morin" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Disney" dst="Ethernet" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Disney" dst="Bellemarre" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
+   <route src="Disney" dst="Kuenning" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Disney" dst="Gaston" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Disney" dst="Harry" symmetrical="YES"><link_ctn id="111"/><link_ctn id="108"/></route>
+   <route src="Disney" dst="Bousquet" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Disney" dst="Paul" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Disney" dst="St_Jean" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Disney" dst="Jill" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Disney" dst="Marcel" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Disney" dst="Wright" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Disney" dst="Jackson" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Disney" dst="Fernand" symmetrical="YES"><link_ctn id="111"/><link_ctn id="109"/></route>
+   <route src="Disney" dst="Soucy" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Disney" dst="Ste_Julie" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Disney" dst="Victoria" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Disney" dst="Lessard" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Disney" dst="Florient" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Disney" dst="Marcoux" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Disney" dst="Gavrel" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Disney" dst="Bescherelle" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Disney" dst="Pierre" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Disney" dst="Jamie" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Disney" dst="Rubin" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Disney" dst="Olivier" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Disney" dst="Boucherville" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Disney" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Disney" dst="Kansas" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Disney" dst="King" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Disney" dst="Lapointe" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Disney" dst="Julian" symmetrical="YES"><link_ctn id="111"/></route>
+   <route src="Disney" dst="Lafontaine" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Disney" dst="Gordon" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Disney" dst="Drouin" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Disney" dst="Robert" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Disney" dst="Jocelyne" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Disney" dst="Stephen" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Disney" dst="Provost" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Disney" dst="Juneau" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Disney" dst="Casavant" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Disney" dst="St_Antoine" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Disney" dst="Louis" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Disney" dst="Julien" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Disney" dst="St_Paul" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Disney" dst="Mathematica" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Disney" dst="LaTeX" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Disney" dst="Sirois" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Disney" dst="Monique" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Disney" dst="Audy" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Disney" dst="Bourassa" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Disney" dst="OHara" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Disney" dst="Boston" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Disney" dst="Papineau" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Disney" dst="Fraser" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Disney" dst="Browne" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Disney" dst="SunOS" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Disney" dst="Varennes" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Disney" dst="Jacques" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Disney" dst="Thierry" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Disney" dst="Lachapelle" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Disney" dst="kV" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Disney" dst="Yolande" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Disney" dst="Pronovost" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Disney" dst="SPICE" symmetrical="YES"><link_ctn id="111"/><link_ctn id="110"/></route>
+   <route src="Disney" dst="Europe" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Disney" dst="Roy" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Disney" dst="Amadeus" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Disney" dst="Intel" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Disney" dst="Cambridge" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Disney" dst="Tremblay" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Disney" dst="UNIX" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Disney" dst="Domey" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Disney" dst="St_Bruno" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Disney" dst="Jean_Claude" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Disney" dst="Doyon" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Disney" dst="Fafard" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Disney" dst="Croteau" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Disney" dst="Dodge" symmetrical="YES"><link_ctn id="111"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="iRMX" dst="McGee" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
+   <route src="iRMX" dst="Gatien" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="iRMX" dst="Laroche" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
+   <route src="iRMX" dst="Tanguay" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="iRMX" dst="Morin" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="iRMX" dst="Ethernet" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="iRMX" dst="Bellemarre" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="iRMX" dst="Kuenning" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="iRMX" dst="Gaston" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="iRMX" dst="Harry" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="iRMX" dst="Bousquet" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="iRMX" dst="Paul" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="iRMX" dst="St_Jean" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="iRMX" dst="Jill" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/></route>
+   <route src="iRMX" dst="Marcel" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="iRMX" dst="Wright" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="iRMX" dst="Jackson" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="iRMX" dst="Fernand" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="iRMX" dst="Soucy" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="iRMX" dst="Ste_Julie" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="iRMX" dst="Victoria" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="iRMX" dst="Lessard" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="iRMX" dst="Florient" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="iRMX" dst="Marcoux" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="iRMX" dst="Gavrel" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="iRMX" dst="Bescherelle" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="iRMX" dst="Pierre" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="iRMX" dst="Jamie" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="iRMX" dst="Rubin" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="iRMX" dst="Olivier" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="iRMX" dst="Boucherville" symmetrical="YES"><link_ctn id="172"/></route>
+   <route src="iRMX" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="iRMX" dst="Kansas" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="iRMX" dst="King" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="iRMX" dst="Lapointe" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="iRMX" dst="Julian" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="iRMX" dst="Lafontaine" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="iRMX" dst="Gordon" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="iRMX" dst="Drouin" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="iRMX" dst="Robert" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="iRMX" dst="Jocelyne" symmetrical="YES"><link_ctn id="172"/><link_ctn id="173"/></route>
+   <route src="iRMX" dst="Stephen" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="iRMX" dst="Provost" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="iRMX" dst="Juneau" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="iRMX" dst="Casavant" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="iRMX" dst="St_Antoine" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="iRMX" dst="Louis" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="iRMX" dst="Julien" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="iRMX" dst="St_Paul" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="iRMX" dst="Mathematica" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="iRMX" dst="LaTeX" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="iRMX" dst="Sirois" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="iRMX" dst="Monique" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="iRMX" dst="Audy" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="iRMX" dst="Bourassa" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="iRMX" dst="OHara" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="iRMX" dst="Boston" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="iRMX" dst="Papineau" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="iRMX" dst="Fraser" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="iRMX" dst="Browne" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="iRMX" dst="SunOS" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="iRMX" dst="Varennes" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="iRMX" dst="Jacques" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="iRMX" dst="Thierry" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="iRMX" dst="Lachapelle" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="iRMX" dst="kV" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="iRMX" dst="Yolande" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="iRMX" dst="Pronovost" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="iRMX" dst="SPICE" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="iRMX" dst="Europe" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="iRMX" dst="Roy" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="iRMX" dst="Amadeus" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="iRMX" dst="Intel" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="iRMX" dst="Cambridge" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="iRMX" dst="Tremblay" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="iRMX" dst="UNIX" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="iRMX" dst="Domey" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="iRMX" dst="St_Bruno" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="iRMX" dst="Jean_Claude" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="iRMX" dst="Doyon" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="iRMX" dst="Fafard" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="iRMX" dst="Croteau" symmetrical="YES"><link_ctn id="172"/><link_ctn id="175"/></route>
+   <route src="iRMX" dst="Dodge" symmetrical="YES"><link_ctn id="172"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="McGee" dst="Gatien" symmetrical="YES"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
+   <route src="McGee" dst="Laroche" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="McGee" dst="Tanguay" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="McGee" dst="Morin" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="McGee" dst="Ethernet" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="McGee" dst="Bellemarre" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="McGee" dst="Kuenning" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="McGee" dst="Gaston" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="McGee" dst="Harry" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="McGee" dst="Bousquet" symmetrical="YES"><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="McGee" dst="Paul" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="McGee" dst="St_Jean" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="McGee" dst="Jill" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="McGee" dst="Marcel" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="McGee" dst="Wright" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="McGee" dst="Jackson" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="McGee" dst="Fernand" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="McGee" dst="Soucy" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="McGee" dst="Ste_Julie" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="McGee" dst="Victoria" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="McGee" dst="Lessard" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="McGee" dst="Florient" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="McGee" dst="Marcoux" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="McGee" dst="Gavrel" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="McGee" dst="Bescherelle" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="McGee" dst="Pierre" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="McGee" dst="Jamie" symmetrical="YES"><link_ctn id="120"/></route>
+   <route src="McGee" dst="Rubin" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="McGee" dst="Olivier" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="McGee" dst="Boucherville" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="McGee" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="McGee" dst="Kansas" symmetrical="YES"><link_ctn id="122"/></route>
+   <route src="McGee" dst="King" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="McGee" dst="Lapointe" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="McGee" dst="Julian" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="McGee" dst="Lafontaine" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="McGee" dst="Gordon" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="McGee" dst="Drouin" symmetrical="YES"><link_ctn id="123"/></route>
+   <route src="McGee" dst="Robert" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="McGee" dst="Jocelyne" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="McGee" dst="Stephen" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="McGee" dst="Provost" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="McGee" dst="Juneau" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="McGee" dst="Casavant" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="McGee" dst="St_Antoine" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="McGee" dst="Louis" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="McGee" dst="Julien" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="McGee" dst="St_Paul" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="McGee" dst="Mathematica" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="McGee" dst="LaTeX" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="McGee" dst="Sirois" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="McGee" dst="Monique" symmetrical="YES"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="McGee" dst="Audy" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="McGee" dst="Bourassa" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="McGee" dst="OHara" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="McGee" dst="Boston" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="McGee" dst="Papineau" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="McGee" dst="Fraser" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="McGee" dst="Browne" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="McGee" dst="SunOS" symmetrical="YES"><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="McGee" dst="Varennes" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="McGee" dst="Jacques" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="McGee" dst="Thierry" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="McGee" dst="Lachapelle" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="McGee" dst="kV" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="McGee" dst="Yolande" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="McGee" dst="Pronovost" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="McGee" dst="SPICE" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="McGee" dst="Europe" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="McGee" dst="Roy" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="McGee" dst="Amadeus" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="McGee" dst="Intel" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="McGee" dst="Cambridge" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="McGee" dst="Tremblay" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="McGee" dst="UNIX" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="McGee" dst="Domey" symmetrical="YES"><link_ctn id="41"/><link_ctn id="40"/></route>
+   <route src="McGee" dst="St_Bruno" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="McGee" dst="Jean_Claude" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="McGee" dst="Doyon" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="McGee" dst="Fafard" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="McGee" dst="Croteau" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="McGee" dst="Dodge" symmetrical="YES"><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Gatien" dst="Laroche" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
+   <route src="Gatien" dst="Tanguay" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Gatien" dst="Morin" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Gatien" dst="Ethernet" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Gatien" dst="Bellemarre" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Gatien" dst="Kuenning" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Gatien" dst="Gaston" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Gatien" dst="Harry" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Gatien" dst="Bousquet" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Gatien" dst="Paul" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Gatien" dst="St_Jean" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Gatien" dst="Jill" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Gatien" dst="Marcel" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Gatien" dst="Wright" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Gatien" dst="Jackson" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Gatien" dst="Fernand" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Gatien" dst="Soucy" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Gatien" dst="Ste_Julie" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Gatien" dst="Victoria" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Gatien" dst="Lessard" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Gatien" dst="Florient" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Gatien" dst="Marcoux" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Gatien" dst="Gavrel" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Gatien" dst="Bescherelle" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Gatien" dst="Pierre" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Gatien" dst="Jamie" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Gatien" dst="Rubin" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Gatien" dst="Olivier" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Gatien" dst="Boucherville" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Gatien" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Gatien" dst="Kansas" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Gatien" dst="King" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Gatien" dst="Lapointe" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Gatien" dst="Julian" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Gatien" dst="Lafontaine" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Gatien" dst="Gordon" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Gatien" dst="Drouin" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Gatien" dst="Robert" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Gatien" dst="Jocelyne" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Gatien" dst="Stephen" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Gatien" dst="Provost" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Gatien" dst="Juneau" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Gatien" dst="Casavant" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Gatien" dst="St_Antoine" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Gatien" dst="Louis" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Gatien" dst="Julien" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Gatien" dst="St_Paul" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Gatien" dst="Mathematica" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Gatien" dst="LaTeX" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Gatien" dst="Sirois" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Gatien" dst="Monique" symmetrical="YES"><link_ctn id="115"/><link_ctn id="113"/></route>
+   <route src="Gatien" dst="Audy" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Gatien" dst="Bourassa" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Gatien" dst="OHara" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Gatien" dst="Boston" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Gatien" dst="Papineau" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Gatien" dst="Fraser" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Gatien" dst="Browne" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Gatien" dst="SunOS" symmetrical="YES"><link_ctn id="115"/><link_ctn id="114"/></route>
+   <route src="Gatien" dst="Varennes" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Gatien" dst="Jacques" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Gatien" dst="Thierry" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Gatien" dst="Lachapelle" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Gatien" dst="kV" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Gatien" dst="Yolande" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Gatien" dst="Pronovost" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Gatien" dst="SPICE" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Gatien" dst="Europe" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Gatien" dst="Roy" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Gatien" dst="Amadeus" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Gatien" dst="Intel" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Gatien" dst="Cambridge" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Gatien" dst="Tremblay" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Gatien" dst="UNIX" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Gatien" dst="Domey" symmetrical="YES"><link_ctn id="115"/></route>
+   <route src="Gatien" dst="St_Bruno" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Gatien" dst="Jean_Claude" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Gatien" dst="Doyon" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Gatien" dst="Fafard" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Gatien" dst="Croteau" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Gatien" dst="Dodge" symmetrical="YES"><link_ctn id="115"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Laroche" dst="Tanguay" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
+   <route src="Laroche" dst="Morin" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Laroche" dst="Ethernet" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Laroche" dst="Bellemarre" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Laroche" dst="Kuenning" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Laroche" dst="Gaston" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Laroche" dst="Harry" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Laroche" dst="Bousquet" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Laroche" dst="Paul" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Laroche" dst="St_Jean" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Laroche" dst="Jill" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Laroche" dst="Marcel" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Laroche" dst="Wright" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Laroche" dst="Jackson" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Laroche" dst="Fernand" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Laroche" dst="Soucy" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Laroche" dst="Ste_Julie" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Laroche" dst="Victoria" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Laroche" dst="Lessard" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Laroche" dst="Florient" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Laroche" dst="Marcoux" symmetrical="YES"><link_ctn id="186"/></route>
+   <route src="Laroche" dst="Gavrel" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Laroche" dst="Bescherelle" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Laroche" dst="Pierre" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Laroche" dst="Jamie" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Laroche" dst="Rubin" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Laroche" dst="Olivier" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Laroche" dst="Boucherville" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Laroche" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="184"/></route>
+   <route src="Laroche" dst="Kansas" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Laroche" dst="King" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Laroche" dst="Lapointe" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Laroche" dst="Julian" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Laroche" dst="Lafontaine" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Laroche" dst="Gordon" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="Laroche" dst="Drouin" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Laroche" dst="Robert" symmetrical="YES"><link_ctn id="187"/></route>
+   <route src="Laroche" dst="Jocelyne" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Laroche" dst="Stephen" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Laroche" dst="Provost" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Laroche" dst="Juneau" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Laroche" dst="Casavant" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Laroche" dst="St_Antoine" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Laroche" dst="Louis" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Laroche" dst="Julien" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Laroche" dst="St_Paul" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Laroche" dst="Mathematica" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Laroche" dst="LaTeX" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Laroche" dst="Sirois" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Laroche" dst="Monique" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Laroche" dst="Audy" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Laroche" dst="Bourassa" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Laroche" dst="OHara" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Laroche" dst="Boston" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Laroche" dst="Papineau" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Laroche" dst="Fraser" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Laroche" dst="Browne" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Laroche" dst="SunOS" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Laroche" dst="Varennes" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Laroche" dst="Jacques" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Laroche" dst="Thierry" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Laroche" dst="Lachapelle" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Laroche" dst="kV" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Laroche" dst="Yolande" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Laroche" dst="Pronovost" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Laroche" dst="SPICE" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Laroche" dst="Europe" symmetrical="YES"><link_ctn id="185"/></route>
+   <route src="Laroche" dst="Roy" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Laroche" dst="Amadeus" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Laroche" dst="Intel" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Laroche" dst="Cambridge" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Laroche" dst="Tremblay" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Laroche" dst="UNIX" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Laroche" dst="Domey" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Laroche" dst="St_Bruno" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Laroche" dst="Jean_Claude" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Laroche" dst="Doyon" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Laroche" dst="Fafard" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Laroche" dst="Croteau" symmetrical="YES"><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Laroche" dst="Dodge" symmetrical="YES"><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Tanguay" dst="Morin" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
+   <route src="Tanguay" dst="Ethernet" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Tanguay" dst="Bellemarre" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Tanguay" dst="Kuenning" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Tanguay" dst="Gaston" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Tanguay" dst="Harry" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Tanguay" dst="Bousquet" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Tanguay" dst="Paul" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Tanguay" dst="St_Jean" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Tanguay" dst="Jill" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Tanguay" dst="Marcel" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Tanguay" dst="Wright" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Tanguay" dst="Jackson" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Tanguay" dst="Fernand" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Tanguay" dst="Soucy" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Tanguay" dst="Ste_Julie" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
+   <route src="Tanguay" dst="Victoria" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Tanguay" dst="Lessard" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Tanguay" dst="Florient" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Tanguay" dst="Marcoux" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Tanguay" dst="Gavrel" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Tanguay" dst="Bescherelle" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Tanguay" dst="Pierre" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Tanguay" dst="Jamie" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Tanguay" dst="Rubin" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Tanguay" dst="Olivier" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Tanguay" dst="Boucherville" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Tanguay" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Tanguay" dst="Kansas" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Tanguay" dst="King" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Tanguay" dst="Lapointe" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Tanguay" dst="Julian" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Tanguay" dst="Lafontaine" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Tanguay" dst="Gordon" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Tanguay" dst="Drouin" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Tanguay" dst="Robert" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Tanguay" dst="Jocelyne" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Tanguay" dst="Stephen" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Tanguay" dst="Provost" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Tanguay" dst="Juneau" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Tanguay" dst="Casavant" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Tanguay" dst="St_Antoine" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Tanguay" dst="Louis" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Tanguay" dst="Julien" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Tanguay" dst="St_Paul" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Tanguay" dst="Mathematica" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Tanguay" dst="LaTeX" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Tanguay" dst="Sirois" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Tanguay" dst="Monique" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Tanguay" dst="Audy" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Tanguay" dst="Bourassa" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Tanguay" dst="OHara" symmetrical="YES"><link_ctn id="162"/><link_ctn id="163"/></route>
+   <route src="Tanguay" dst="Boston" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Tanguay" dst="Papineau" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Tanguay" dst="Fraser" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Tanguay" dst="Browne" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Tanguay" dst="SunOS" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Tanguay" dst="Varennes" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Tanguay" dst="Jacques" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Tanguay" dst="Thierry" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Tanguay" dst="Lachapelle" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Tanguay" dst="kV" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Tanguay" dst="Yolande" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Tanguay" dst="Pronovost" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Tanguay" dst="SPICE" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Tanguay" dst="Europe" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Tanguay" dst="Roy" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Tanguay" dst="Amadeus" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Tanguay" dst="Intel" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Tanguay" dst="Cambridge" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Tanguay" dst="Tremblay" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Tanguay" dst="UNIX" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Tanguay" dst="Domey" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Tanguay" dst="St_Bruno" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Tanguay" dst="Jean_Claude" symmetrical="YES"><link_ctn id="162"/><link_ctn id="160"/></route>
+   <route src="Tanguay" dst="Doyon" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Tanguay" dst="Fafard" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Tanguay" dst="Croteau" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Tanguay" dst="Dodge" symmetrical="YES"><link_ctn id="162"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Morin" dst="Ethernet" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
+   <route src="Morin" dst="Bellemarre" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Morin" dst="Kuenning" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Morin" dst="Gaston" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Morin" dst="Harry" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Morin" dst="Bousquet" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Morin" dst="Paul" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Morin" dst="St_Jean" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Morin" dst="Jill" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Morin" dst="Marcel" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Morin" dst="Wright" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Morin" dst="Jackson" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Morin" dst="Fernand" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Morin" dst="Soucy" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Morin" dst="Ste_Julie" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Morin" dst="Victoria" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Morin" dst="Lessard" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Morin" dst="Florient" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Morin" dst="Marcoux" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Morin" dst="Gavrel" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Morin" dst="Bescherelle" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Morin" dst="Pierre" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Morin" dst="Jamie" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Morin" dst="Rubin" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Morin" dst="Olivier" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Morin" dst="Boucherville" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Morin" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Morin" dst="Kansas" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Morin" dst="King" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Morin" dst="Lapointe" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Morin" dst="Julian" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Morin" dst="Lafontaine" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Morin" dst="Gordon" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Morin" dst="Drouin" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Morin" dst="Robert" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Morin" dst="Jocelyne" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Morin" dst="Stephen" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Morin" dst="Provost" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Morin" dst="Juneau" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Morin" dst="Casavant" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Morin" dst="St_Antoine" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Morin" dst="Louis" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Morin" dst="Julien" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Morin" dst="St_Paul" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Morin" dst="Mathematica" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Morin" dst="LaTeX" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Morin" dst="Sirois" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Morin" dst="Monique" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Morin" dst="Audy" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Morin" dst="Bourassa" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Morin" dst="OHara" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Morin" dst="Boston" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Morin" dst="Papineau" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Morin" dst="Fraser" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Morin" dst="Browne" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Morin" dst="SunOS" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Morin" dst="Varennes" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Morin" dst="Jacques" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Morin" dst="Thierry" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Morin" dst="Lachapelle" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Morin" dst="kV" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Morin" dst="Yolande" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Morin" dst="Pronovost" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Morin" dst="SPICE" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Morin" dst="Europe" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Morin" dst="Roy" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Morin" dst="Amadeus" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Morin" dst="Intel" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Morin" dst="Cambridge" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Morin" dst="Tremblay" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Morin" dst="UNIX" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Morin" dst="Domey" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Morin" dst="St_Bruno" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Morin" dst="Jean_Claude" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Morin" dst="Doyon" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Morin" dst="Fafard" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Morin" dst="Croteau" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Morin" dst="Dodge" symmetrical="YES"><link_ctn id="106"/><link_ctn id="31"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Ethernet" dst="Bellemarre" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
+   <route src="Ethernet" dst="Kuenning" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Ethernet" dst="Gaston" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Ethernet" dst="Harry" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Ethernet" dst="Bousquet" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Ethernet" dst="Paul" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Ethernet" dst="St_Jean" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Ethernet" dst="Jill" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Ethernet" dst="Marcel" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Ethernet" dst="Wright" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Ethernet" dst="Jackson" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Ethernet" dst="Fernand" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Ethernet" dst="Soucy" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Ethernet" dst="Ste_Julie" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Ethernet" dst="Victoria" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Ethernet" dst="Lessard" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Ethernet" dst="Florient" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Ethernet" dst="Marcoux" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Ethernet" dst="Gavrel" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Ethernet" dst="Bescherelle" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Ethernet" dst="Pierre" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Ethernet" dst="Jamie" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Ethernet" dst="Rubin" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Ethernet" dst="Olivier" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Ethernet" dst="Boucherville" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Ethernet" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Ethernet" dst="Kansas" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Ethernet" dst="King" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Ethernet" dst="Lapointe" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Ethernet" dst="Julian" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Ethernet" dst="Lafontaine" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Ethernet" dst="Gordon" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Ethernet" dst="Drouin" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Ethernet" dst="Robert" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Ethernet" dst="Jocelyne" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Ethernet" dst="Stephen" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Ethernet" dst="Provost" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Ethernet" dst="Juneau" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Ethernet" dst="Casavant" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Ethernet" dst="St_Antoine" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Ethernet" dst="Louis" symmetrical="YES"><link_ctn id="118"/><link_ctn id="117"/></route>
+   <route src="Ethernet" dst="Julien" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Ethernet" dst="St_Paul" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Ethernet" dst="Mathematica" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Ethernet" dst="LaTeX" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Ethernet" dst="Sirois" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Ethernet" dst="Monique" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Ethernet" dst="Audy" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Ethernet" dst="Bourassa" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Ethernet" dst="OHara" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Ethernet" dst="Boston" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Ethernet" dst="Papineau" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Ethernet" dst="Fraser" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Ethernet" dst="Browne" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Ethernet" dst="SunOS" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Ethernet" dst="Varennes" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Ethernet" dst="Jacques" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Ethernet" dst="Thierry" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Ethernet" dst="Lachapelle" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Ethernet" dst="kV" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Ethernet" dst="Yolande" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Ethernet" dst="Pronovost" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Ethernet" dst="SPICE" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Ethernet" dst="Europe" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Ethernet" dst="Roy" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Ethernet" dst="Amadeus" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Ethernet" dst="Intel" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Ethernet" dst="Cambridge" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Ethernet" dst="Tremblay" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Ethernet" dst="UNIX" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Ethernet" dst="Domey" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Ethernet" dst="St_Bruno" symmetrical="YES"><link_ctn id="118"/><link_ctn id="119"/></route>
+   <route src="Ethernet" dst="Jean_Claude" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Ethernet" dst="Doyon" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Ethernet" dst="Fafard" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Ethernet" dst="Croteau" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Ethernet" dst="Dodge" symmetrical="YES"><link_ctn id="118"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Bellemarre" dst="Kuenning" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
+   <route src="Bellemarre" dst="Gaston" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Bellemarre" dst="Harry" symmetrical="YES"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Bellemarre" dst="Bousquet" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Bellemarre" dst="Paul" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Bellemarre" dst="St_Jean" symmetrical="YES"><link_ctn id="97"/></route>
+   <route src="Bellemarre" dst="Jill" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Bellemarre" dst="Marcel" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Bellemarre" dst="Wright" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Bellemarre" dst="Jackson" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Bellemarre" dst="Fernand" symmetrical="YES"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Bellemarre" dst="Soucy" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Bellemarre" dst="Ste_Julie" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Bellemarre" dst="Victoria" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Bellemarre" dst="Lessard" symmetrical="YES"><link_ctn id="99"/></route>
+   <route src="Bellemarre" dst="Florient" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Bellemarre" dst="Marcoux" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Bellemarre" dst="Gavrel" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Bellemarre" dst="Bescherelle" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Bellemarre" dst="Pierre" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Bellemarre" dst="Jamie" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Bellemarre" dst="Rubin" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Bellemarre" dst="Olivier" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Bellemarre" dst="Boucherville" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Bellemarre" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Bellemarre" dst="Kansas" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Bellemarre" dst="King" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Bellemarre" dst="Lapointe" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Bellemarre" dst="Julian" symmetrical="YES"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Bellemarre" dst="Lafontaine" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Bellemarre" dst="Gordon" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Bellemarre" dst="Drouin" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Bellemarre" dst="Robert" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Bellemarre" dst="Jocelyne" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Bellemarre" dst="Stephen" symmetrical="YES"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Bellemarre" dst="Provost" symmetrical="YES"><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Bellemarre" dst="Juneau" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Bellemarre" dst="Casavant" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Bellemarre" dst="St_Antoine" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Bellemarre" dst="Louis" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Bellemarre" dst="Julien" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Bellemarre" dst="St_Paul" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Bellemarre" dst="Mathematica" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Bellemarre" dst="LaTeX" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Bellemarre" dst="Sirois" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Bellemarre" dst="Monique" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Bellemarre" dst="Audy" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Bellemarre" dst="Bourassa" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Bellemarre" dst="OHara" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Bellemarre" dst="Boston" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Bellemarre" dst="Papineau" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Bellemarre" dst="Fraser" symmetrical="YES"><link_ctn id="96"/></route>
+   <route src="Bellemarre" dst="Browne" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Bellemarre" dst="SunOS" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Bellemarre" dst="Varennes" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Bellemarre" dst="Jacques" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Bellemarre" dst="Thierry" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Bellemarre" dst="Lachapelle" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Bellemarre" dst="kV" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Bellemarre" dst="Yolande" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Bellemarre" dst="Pronovost" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Bellemarre" dst="SPICE" symmetrical="YES"><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Bellemarre" dst="Europe" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Bellemarre" dst="Roy" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Bellemarre" dst="Amadeus" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Bellemarre" dst="Intel" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Bellemarre" dst="Cambridge" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Bellemarre" dst="Tremblay" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Bellemarre" dst="UNIX" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Bellemarre" dst="Domey" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Bellemarre" dst="St_Bruno" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Bellemarre" dst="Jean_Claude" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Bellemarre" dst="Doyon" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Bellemarre" dst="Fafard" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Bellemarre" dst="Croteau" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Bellemarre" dst="Dodge" symmetrical="YES"><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Kuenning" dst="Gaston" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
+   <route src="Kuenning" dst="Harry" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Kuenning" dst="Bousquet" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Kuenning" dst="Paul" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Kuenning" dst="St_Jean" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Kuenning" dst="Jill" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Kuenning" dst="Marcel" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Kuenning" dst="Wright" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Kuenning" dst="Jackson" symmetrical="YES"><link_ctn id="135"/></route>
+   <route src="Kuenning" dst="Fernand" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Kuenning" dst="Soucy" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Kuenning" dst="Ste_Julie" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Kuenning" dst="Victoria" symmetrical="YES"><link_ctn id="135"/><link_ctn id="133"/></route>
+   <route src="Kuenning" dst="Lessard" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Kuenning" dst="Florient" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Kuenning" dst="Marcoux" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Kuenning" dst="Gavrel" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Kuenning" dst="Bescherelle" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Kuenning" dst="Pierre" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Kuenning" dst="Jamie" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Kuenning" dst="Rubin" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Kuenning" dst="Olivier" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Kuenning" dst="Boucherville" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Kuenning" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Kuenning" dst="Kansas" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Kuenning" dst="King" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Kuenning" dst="Lapointe" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Kuenning" dst="Julian" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Kuenning" dst="Lafontaine" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Kuenning" dst="Gordon" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Kuenning" dst="Drouin" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Kuenning" dst="Robert" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Kuenning" dst="Jocelyne" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Kuenning" dst="Stephen" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Kuenning" dst="Provost" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Kuenning" dst="Juneau" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Kuenning" dst="Casavant" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Kuenning" dst="St_Antoine" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/></route>
+   <route src="Kuenning" dst="Louis" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Kuenning" dst="Julien" symmetrical="YES"><link_ctn id="135"/><link_ctn id="134"/></route>
+   <route src="Kuenning" dst="St_Paul" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Kuenning" dst="Mathematica" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Kuenning" dst="LaTeX" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Kuenning" dst="Sirois" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Kuenning" dst="Monique" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Kuenning" dst="Audy" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Kuenning" dst="Bourassa" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Kuenning" dst="OHara" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Kuenning" dst="Boston" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Kuenning" dst="Papineau" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Kuenning" dst="Fraser" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Kuenning" dst="Browne" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Kuenning" dst="SunOS" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Kuenning" dst="Varennes" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Kuenning" dst="Jacques" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Kuenning" dst="Thierry" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Kuenning" dst="Lachapelle" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Kuenning" dst="kV" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Kuenning" dst="Yolande" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Kuenning" dst="Pronovost" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Kuenning" dst="SPICE" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Kuenning" dst="Europe" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Kuenning" dst="Roy" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Kuenning" dst="Amadeus" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Kuenning" dst="Intel" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Kuenning" dst="Cambridge" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Kuenning" dst="Tremblay" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Kuenning" dst="UNIX" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Kuenning" dst="Domey" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Kuenning" dst="St_Bruno" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Kuenning" dst="Jean_Claude" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Kuenning" dst="Doyon" symmetrical="YES"><link_ctn id="135"/><link_ctn id="132"/></route>
+   <route src="Kuenning" dst="Fafard" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Kuenning" dst="Croteau" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Kuenning" dst="Dodge" symmetrical="YES"><link_ctn id="135"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Gaston" dst="Harry" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
+   <route src="Gaston" dst="Bousquet" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Gaston" dst="Paul" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Gaston" dst="St_Jean" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Gaston" dst="Jill" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Gaston" dst="Marcel" symmetrical="YES"><link_ctn id="153"/><link_ctn id="155"/></route>
+   <route src="Gaston" dst="Wright" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Gaston" dst="Jackson" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Gaston" dst="Fernand" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Gaston" dst="Soucy" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Gaston" dst="Ste_Julie" symmetrical="YES"><link_ctn id="153"/></route>
+   <route src="Gaston" dst="Victoria" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Gaston" dst="Lessard" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Gaston" dst="Florient" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Gaston" dst="Marcoux" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Gaston" dst="Gavrel" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Gaston" dst="Bescherelle" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Gaston" dst="Pierre" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Gaston" dst="Jamie" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Gaston" dst="Rubin" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Gaston" dst="Olivier" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Gaston" dst="Boucherville" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Gaston" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Gaston" dst="Kansas" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Gaston" dst="King" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Gaston" dst="Lapointe" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Gaston" dst="Julian" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Gaston" dst="Lafontaine" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Gaston" dst="Gordon" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Gaston" dst="Drouin" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Gaston" dst="Robert" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Gaston" dst="Jocelyne" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Gaston" dst="Stephen" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Gaston" dst="Provost" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Gaston" dst="Juneau" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Gaston" dst="Casavant" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Gaston" dst="St_Antoine" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Gaston" dst="Louis" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Gaston" dst="Julien" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Gaston" dst="St_Paul" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Gaston" dst="Mathematica" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Gaston" dst="LaTeX" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Gaston" dst="Sirois" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Gaston" dst="Monique" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Gaston" dst="Audy" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Gaston" dst="Bourassa" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Gaston" dst="OHara" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Gaston" dst="Boston" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Gaston" dst="Papineau" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Gaston" dst="Fraser" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Gaston" dst="Browne" symmetrical="YES"><link_ctn id="153"/><link_ctn id="152"/></route>
+   <route src="Gaston" dst="SunOS" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Gaston" dst="Varennes" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Gaston" dst="Jacques" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Gaston" dst="Thierry" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Gaston" dst="Lachapelle" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Gaston" dst="kV" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Gaston" dst="Yolande" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Gaston" dst="Pronovost" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Gaston" dst="SPICE" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Gaston" dst="Europe" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Gaston" dst="Roy" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Gaston" dst="Amadeus" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Gaston" dst="Intel" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Gaston" dst="Cambridge" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Gaston" dst="Tremblay" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Gaston" dst="UNIX" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Gaston" dst="Domey" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Gaston" dst="St_Bruno" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Gaston" dst="Jean_Claude" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Gaston" dst="Doyon" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Gaston" dst="Fafard" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Gaston" dst="Croteau" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Gaston" dst="Dodge" symmetrical="YES"><link_ctn id="153"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Harry" dst="Bousquet" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
+   <route src="Harry" dst="Paul" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Harry" dst="St_Jean" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Harry" dst="Jill" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Harry" dst="Marcel" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Harry" dst="Wright" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Harry" dst="Jackson" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Harry" dst="Fernand" symmetrical="YES"><link_ctn id="108"/><link_ctn id="109"/></route>
+   <route src="Harry" dst="Soucy" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Harry" dst="Ste_Julie" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Harry" dst="Victoria" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Harry" dst="Lessard" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Harry" dst="Florient" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Harry" dst="Marcoux" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Harry" dst="Gavrel" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Harry" dst="Bescherelle" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Harry" dst="Pierre" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Harry" dst="Jamie" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Harry" dst="Rubin" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Harry" dst="Olivier" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Harry" dst="Boucherville" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Harry" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Harry" dst="Kansas" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Harry" dst="King" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Harry" dst="Lapointe" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Harry" dst="Julian" symmetrical="YES"><link_ctn id="108"/></route>
+   <route src="Harry" dst="Lafontaine" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Harry" dst="Gordon" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Harry" dst="Drouin" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Harry" dst="Robert" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Harry" dst="Jocelyne" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Harry" dst="Stephen" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Harry" dst="Provost" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Harry" dst="Juneau" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Harry" dst="Casavant" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Harry" dst="St_Antoine" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Harry" dst="Louis" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Harry" dst="Julien" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Harry" dst="St_Paul" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Harry" dst="Mathematica" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Harry" dst="LaTeX" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Harry" dst="Sirois" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Harry" dst="Monique" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Harry" dst="Audy" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Harry" dst="Bourassa" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Harry" dst="OHara" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Harry" dst="Boston" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Harry" dst="Papineau" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Harry" dst="Fraser" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Harry" dst="Browne" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Harry" dst="SunOS" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Harry" dst="Varennes" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Harry" dst="Jacques" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Harry" dst="Thierry" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Harry" dst="Lachapelle" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Harry" dst="kV" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Harry" dst="Yolande" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Harry" dst="Pronovost" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Harry" dst="SPICE" symmetrical="YES"><link_ctn id="108"/><link_ctn id="110"/></route>
+   <route src="Harry" dst="Europe" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Harry" dst="Roy" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Harry" dst="Amadeus" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Harry" dst="Intel" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Harry" dst="Cambridge" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Harry" dst="Tremblay" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Harry" dst="UNIX" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Harry" dst="Domey" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Harry" dst="St_Bruno" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Harry" dst="Jean_Claude" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Harry" dst="Doyon" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Harry" dst="Fafard" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Harry" dst="Croteau" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Harry" dst="Dodge" symmetrical="YES"><link_ctn id="108"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Bousquet" dst="Paul" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
+   <route src="Bousquet" dst="St_Jean" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Bousquet" dst="Jill" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Bousquet" dst="Marcel" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Bousquet" dst="Wright" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Bousquet" dst="Jackson" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Bousquet" dst="Fernand" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Bousquet" dst="Soucy" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Bousquet" dst="Ste_Julie" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Bousquet" dst="Victoria" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Bousquet" dst="Lessard" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Bousquet" dst="Florient" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Bousquet" dst="Marcoux" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Bousquet" dst="Gavrel" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Bousquet" dst="Bescherelle" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Bousquet" dst="Pierre" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Bousquet" dst="Jamie" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Bousquet" dst="Rubin" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Bousquet" dst="Olivier" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Bousquet" dst="Boucherville" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Bousquet" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Bousquet" dst="Kansas" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Bousquet" dst="King" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Bousquet" dst="Lapointe" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Bousquet" dst="Julian" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Bousquet" dst="Lafontaine" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Bousquet" dst="Gordon" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Bousquet" dst="Drouin" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Bousquet" dst="Robert" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Bousquet" dst="Jocelyne" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Bousquet" dst="Stephen" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Bousquet" dst="Provost" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Bousquet" dst="Juneau" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Bousquet" dst="Casavant" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Bousquet" dst="St_Antoine" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Bousquet" dst="Louis" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Bousquet" dst="Julien" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Bousquet" dst="St_Paul" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Bousquet" dst="Mathematica" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Bousquet" dst="LaTeX" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Bousquet" dst="Sirois" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Bousquet" dst="Monique" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Bousquet" dst="Audy" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Bousquet" dst="Bourassa" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Bousquet" dst="OHara" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Bousquet" dst="Boston" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Bousquet" dst="Papineau" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Bousquet" dst="Fraser" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Bousquet" dst="Browne" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Bousquet" dst="SunOS" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Bousquet" dst="Varennes" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Bousquet" dst="Jacques" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Bousquet" dst="Thierry" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Bousquet" dst="Lachapelle" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Bousquet" dst="kV" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Bousquet" dst="Yolande" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Bousquet" dst="Pronovost" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Bousquet" dst="SPICE" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Bousquet" dst="Europe" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Bousquet" dst="Roy" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Bousquet" dst="Amadeus" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Bousquet" dst="Intel" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Bousquet" dst="Cambridge" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Bousquet" dst="Tremblay" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Bousquet" dst="UNIX" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Bousquet" dst="Domey" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="40"/></route>
+   <route src="Bousquet" dst="St_Bruno" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Bousquet" dst="Jean_Claude" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Bousquet" dst="Doyon" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Bousquet" dst="Fafard" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Bousquet" dst="Croteau" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Bousquet" dst="Dodge" symmetrical="YES"><link_ctn id="124"/><link_ctn id="37"/><link_ctn id="36"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Paul" dst="St_Jean" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
+   <route src="Paul" dst="Jill" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
+   <route src="Paul" dst="Marcel" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Paul" dst="Wright" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Paul" dst="Jackson" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Paul" dst="Fernand" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Paul" dst="Soucy" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Paul" dst="Ste_Julie" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Paul" dst="Victoria" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Paul" dst="Lessard" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Paul" dst="Florient" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Paul" dst="Marcoux" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Paul" dst="Gavrel" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Paul" dst="Bescherelle" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Paul" dst="Pierre" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Paul" dst="Jamie" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Paul" dst="Rubin" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Paul" dst="Olivier" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Paul" dst="Boucherville" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Paul" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Paul" dst="Kansas" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Paul" dst="King" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Paul" dst="Lapointe" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Paul" dst="Julian" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Paul" dst="Lafontaine" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Paul" dst="Gordon" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Paul" dst="Drouin" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Paul" dst="Robert" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Paul" dst="Jocelyne" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Paul" dst="Stephen" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Paul" dst="Provost" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Paul" dst="Juneau" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Paul" dst="Casavant" symmetrical="YES"><link_ctn id="93"/><link_ctn id="92"/></route>
+   <route src="Paul" dst="St_Antoine" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Paul" dst="Louis" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Paul" dst="Julien" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Paul" dst="St_Paul" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Paul" dst="Mathematica" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Paul" dst="LaTeX" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Paul" dst="Sirois" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Paul" dst="Monique" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Paul" dst="Audy" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Paul" dst="Bourassa" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Paul" dst="OHara" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Paul" dst="Boston" symmetrical="YES"><link_ctn id="93"/><link_ctn id="95"/></route>
+   <route src="Paul" dst="Papineau" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Paul" dst="Fraser" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Paul" dst="Browne" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Paul" dst="SunOS" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Paul" dst="Varennes" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Paul" dst="Jacques" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Paul" dst="Thierry" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Paul" dst="Lachapelle" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Paul" dst="kV" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Paul" dst="Yolande" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Paul" dst="Pronovost" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Paul" dst="SPICE" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Paul" dst="Europe" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Paul" dst="Roy" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Paul" dst="Amadeus" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Paul" dst="Intel" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Paul" dst="Cambridge" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Paul" dst="Tremblay" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Paul" dst="UNIX" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Paul" dst="Domey" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Paul" dst="St_Bruno" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Paul" dst="Jean_Claude" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Paul" dst="Doyon" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Paul" dst="Fafard" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Paul" dst="Croteau" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Paul" dst="Dodge" symmetrical="YES"><link_ctn id="93"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="St_Jean" dst="Marcel" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="St_Jean" dst="Wright" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="St_Jean" dst="Jackson" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="St_Jean" dst="Fernand" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="St_Jean" dst="Soucy" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="St_Jean" dst="Ste_Julie" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="St_Jean" dst="Victoria" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="St_Jean" dst="Lessard" symmetrical="YES"><link_ctn id="97"/><link_ctn id="99"/></route>
+   <route src="St_Jean" dst="Florient" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="St_Jean" dst="Marcoux" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="St_Jean" dst="Gavrel" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="St_Jean" dst="Bescherelle" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="St_Jean" dst="Pierre" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="St_Jean" dst="Jamie" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="St_Jean" dst="Rubin" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="St_Jean" dst="Olivier" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="St_Jean" dst="Boucherville" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="St_Jean" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="St_Jean" dst="Kansas" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="St_Jean" dst="King" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="St_Jean" dst="Lapointe" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="St_Jean" dst="Julian" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="St_Jean" dst="Lafontaine" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="St_Jean" dst="Gordon" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="St_Jean" dst="Drouin" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="St_Jean" dst="Robert" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="St_Jean" dst="Jocelyne" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="St_Jean" dst="Stephen" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="St_Jean" dst="Provost" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="St_Jean" dst="Juneau" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="St_Jean" dst="Casavant" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="St_Jean" dst="St_Antoine" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="St_Jean" dst="Louis" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="St_Jean" dst="Julien" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="St_Jean" dst="St_Paul" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="St_Jean" dst="Mathematica" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="St_Jean" dst="LaTeX" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="St_Jean" dst="Sirois" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="St_Jean" dst="Monique" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="St_Jean" dst="Audy" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="St_Jean" dst="Bourassa" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="St_Jean" dst="OHara" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="St_Jean" dst="Boston" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="St_Jean" dst="Papineau" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="St_Jean" dst="Fraser" symmetrical="YES"><link_ctn id="97"/><link_ctn id="96"/></route>
+   <route src="St_Jean" dst="Browne" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="St_Jean" dst="SunOS" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="St_Jean" dst="Varennes" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="St_Jean" dst="Jacques" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="St_Jean" dst="Thierry" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="St_Jean" dst="Lachapelle" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="St_Jean" dst="kV" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="St_Jean" dst="Yolande" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="St_Jean" dst="Pronovost" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="St_Jean" dst="SPICE" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="St_Jean" dst="Europe" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="St_Jean" dst="Roy" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="St_Jean" dst="Amadeus" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="St_Jean" dst="Intel" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="St_Jean" dst="Cambridge" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="St_Jean" dst="Tremblay" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="St_Jean" dst="UNIX" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="St_Jean" dst="Domey" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="St_Jean" dst="St_Bruno" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="St_Jean" dst="Jean_Claude" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="St_Jean" dst="Doyon" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="St_Jean" dst="Fafard" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="St_Jean" dst="Croteau" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="St_Jean" dst="Dodge" symmetrical="YES"><link_ctn id="97"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jill" dst="Marcel" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
+   <route src="Jill" dst="Wright" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Jill" dst="Jackson" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Jill" dst="Fernand" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Jill" dst="Soucy" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Jill" dst="Ste_Julie" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Jill" dst="Victoria" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Jill" dst="Lessard" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Jill" dst="Florient" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Jill" dst="Marcoux" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Jill" dst="Gavrel" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Jill" dst="Bescherelle" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Jill" dst="Pierre" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Jill" dst="Jamie" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Jill" dst="Rubin" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Jill" dst="Olivier" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Jill" dst="Boucherville" symmetrical="YES"><link_ctn id="90"/><link_ctn id="89"/></route>
+   <route src="Jill" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Jill" dst="Kansas" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Jill" dst="King" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Jill" dst="Lapointe" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Jill" dst="Julian" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Jill" dst="Lafontaine" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Jill" dst="Gordon" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="Jill" dst="Drouin" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Jill" dst="Robert" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Jill" dst="Jocelyne" symmetrical="YES"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Jill" dst="Stephen" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jill" dst="Provost" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jill" dst="Juneau" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jill" dst="Casavant" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jill" dst="St_Antoine" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Jill" dst="Louis" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jill" dst="Julien" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Jill" dst="St_Paul" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jill" dst="Mathematica" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jill" dst="LaTeX" symmetrical="YES"><link_ctn id="177"/></route>
+   <route src="Jill" dst="Sirois" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jill" dst="Monique" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jill" dst="Audy" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jill" dst="Bourassa" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jill" dst="OHara" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jill" dst="Boston" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jill" dst="Papineau" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jill" dst="Fraser" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jill" dst="Browne" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jill" dst="SunOS" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jill" dst="Varennes" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Jill" dst="Jacques" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jill" dst="Thierry" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jill" dst="Lachapelle" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jill" dst="kV" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Jill" dst="Yolande" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jill" dst="Pronovost" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jill" dst="SPICE" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jill" dst="Europe" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jill" dst="Roy" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jill" dst="Amadeus" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jill" dst="Intel" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jill" dst="Cambridge" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jill" dst="Tremblay" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jill" dst="UNIX" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jill" dst="Domey" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jill" dst="St_Bruno" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jill" dst="Jean_Claude" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jill" dst="Doyon" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jill" dst="Fafard" symmetrical="YES"><link_ctn id="179"/></route>
+   <route src="Jill" dst="Croteau" symmetrical="YES"><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jill" dst="Dodge" symmetrical="YES"><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
    <route src="Marcel" dst="Jacquelin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Marcel" dst="Boivin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Marcel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Marcel" dst="TeX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Marcel" dst="Geoff" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Marcel" dst="Disney" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Marcel" dst="iRMX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Marcel" dst="McGee" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Marcel" dst="Gatien" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Marcel" dst="Laroche" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Marcel" dst="Tanguay" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Marcel" dst="Morin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Marcel" dst="Ethernet" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Marcel" dst="Bellemarre" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Marcel" dst="Kuenning" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Marcel" dst="Gaston" symmetrical="NO"><link_ctn id="155"/><link_ctn id="153"/></route>
-   <route src="Marcel" dst="Harry" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Marcel" dst="Bousquet" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Marcel" dst="Paul" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Marcel" dst="St_Jean" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Marcel" dst="Jill" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Marcel" dst="Wright" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Marcel" dst="Jackson" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Marcel" dst="Fernand" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Marcel" dst="Soucy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Marcel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="155"/></route>
-   <route src="Marcel" dst="Victoria" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Marcel" dst="Lessard" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Marcel" dst="Florient" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Marcel" dst="Marcoux" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Marcel" dst="Gavrel" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Marcel" dst="Bescherelle" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Marcel" dst="Pierre" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Marcel" dst="Jamie" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Marcel" dst="Rubin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Marcel" dst="Olivier" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Marcel" dst="Boucherville" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Marcel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Marcel" dst="Kansas" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Marcel" dst="King" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Marcel" dst="Lapointe" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Marcel" dst="Julian" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Marcel" dst="Lafontaine" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Marcel" dst="Gordon" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Marcel" dst="Drouin" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Marcel" dst="Robert" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Marcel" dst="Jocelyne" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Marcel" dst="Stephen" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Marcel" dst="Provost" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Marcel" dst="Juneau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Marcel" dst="Casavant" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Marcel" dst="St_Antoine" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Marcel" dst="Louis" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Marcel" dst="Julien" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Marcel" dst="St_Paul" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Marcel" dst="Mathematica" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Marcel" dst="LaTeX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Marcel" dst="Sirois" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Marcel" dst="Monique" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Marcel" dst="Audy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Marcel" dst="Bourassa" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Marcel" dst="OHara" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Marcel" dst="Boston" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Marcel" dst="Papineau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Marcel" dst="Fraser" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Marcel" dst="Browne" symmetrical="NO"><link_ctn id="155"/><link_ctn id="152"/></route>
-   <route src="Marcel" dst="SunOS" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Marcel" dst="Varennes" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Marcel" dst="Jacques" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Marcel" dst="Thierry" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Marcel" dst="Lachapelle" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Marcel" dst="kV" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Marcel" dst="Yolande" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Marcel" dst="Pronovost" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Marcel" dst="SPICE" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Marcel" dst="Europe" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Marcel" dst="Roy" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Marcel" dst="Amadeus" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Marcel" dst="Intel" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Marcel" dst="Cambridge" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Marcel" dst="Tremblay" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Marcel" dst="UNIX" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Marcel" dst="Domey" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Marcel" dst="St_Bruno" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Marcel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Marcel" dst="Doyon" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Marcel" dst="Fafard" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Marcel" dst="Croteau" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Marcel" dst="Dodge" symmetrical="NO"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Wright" dst="Jacquelin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="145"/></route>
-   <route src="Wright" dst="Boivin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Wright" dst="Jean_Yves" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Wright" dst="TeX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Wright" dst="Geoff" symmetrical="NO"><link_ctn id="147"/></route>
-   <route src="Wright" dst="Disney" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Wright" dst="iRMX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Wright" dst="McGee" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Wright" dst="Gatien" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Wright" dst="Laroche" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Wright" dst="Tanguay" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Wright" dst="Morin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Wright" dst="Ethernet" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Wright" dst="Bellemarre" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Wright" dst="Kuenning" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Wright" dst="Gaston" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Wright" dst="Harry" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Wright" dst="Bousquet" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Wright" dst="Paul" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Wright" dst="St_Jean" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Wright" dst="Jill" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Wright" dst="Marcel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Wright" dst="Jackson" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Wright" dst="Fernand" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Wright" dst="Soucy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Wright" dst="Ste_Julie" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Wright" dst="Victoria" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Wright" dst="Lessard" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Wright" dst="Florient" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Wright" dst="Marcoux" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Wright" dst="Gavrel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Wright" dst="Bescherelle" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Wright" dst="Pierre" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Wright" dst="Jamie" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Wright" dst="Rubin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="144"/></route>
-   <route src="Wright" dst="Olivier" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Wright" dst="Boucherville" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Wright" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Wright" dst="Kansas" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Wright" dst="King" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Wright" dst="Lapointe" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Wright" dst="Julian" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Wright" dst="Lafontaine" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Wright" dst="Gordon" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Wright" dst="Drouin" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Wright" dst="Robert" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Wright" dst="Jocelyne" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Wright" dst="Stephen" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Wright" dst="Provost" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Wright" dst="Juneau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Wright" dst="Casavant" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Wright" dst="St_Antoine" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Wright" dst="Louis" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Wright" dst="Julien" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Wright" dst="St_Paul" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Wright" dst="Mathematica" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Wright" dst="LaTeX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Wright" dst="Sirois" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Wright" dst="Monique" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Wright" dst="Audy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Wright" dst="Bourassa" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Wright" dst="OHara" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Wright" dst="Boston" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Wright" dst="Papineau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Wright" dst="Fraser" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Wright" dst="Browne" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Wright" dst="SunOS" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Wright" dst="Varennes" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Wright" dst="Jacques" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Wright" dst="Thierry" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Wright" dst="Lachapelle" symmetrical="NO"><link_ctn id="147"/><link_ctn id="146"/></route>
-   <route src="Wright" dst="kV" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Wright" dst="Yolande" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Wright" dst="Pronovost" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Wright" dst="SPICE" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Wright" dst="Europe" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Wright" dst="Roy" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Wright" dst="Amadeus" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Wright" dst="Intel" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Wright" dst="Cambridge" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Wright" dst="Tremblay" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Wright" dst="UNIX" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Wright" dst="Domey" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Wright" dst="St_Bruno" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Wright" dst="Jean_Claude" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Wright" dst="Doyon" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Wright" dst="Fafard" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Wright" dst="Croteau" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Wright" dst="Dodge" symmetrical="NO"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jackson" dst="Jacquelin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jackson" dst="Boivin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jackson" dst="Jean_Yves" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jackson" dst="TeX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jackson" dst="Geoff" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Jackson" dst="Disney" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jackson" dst="iRMX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jackson" dst="McGee" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jackson" dst="Gatien" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jackson" dst="Laroche" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jackson" dst="Tanguay" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jackson" dst="Morin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jackson" dst="Ethernet" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jackson" dst="Bellemarre" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jackson" dst="Kuenning" symmetrical="NO"><link_ctn id="135"/></route>
-   <route src="Jackson" dst="Gaston" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jackson" dst="Harry" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jackson" dst="Bousquet" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jackson" dst="Paul" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jackson" dst="St_Jean" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jackson" dst="Jill" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jackson" dst="Marcel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jackson" dst="Wright" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jackson" dst="Fernand" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jackson" dst="Soucy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jackson" dst="Ste_Julie" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jackson" dst="Victoria" symmetrical="NO"><link_ctn id="133"/></route>
-   <route src="Jackson" dst="Lessard" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jackson" dst="Florient" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jackson" dst="Marcoux" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jackson" dst="Gavrel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jackson" dst="Bescherelle" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jackson" dst="Pierre" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jackson" dst="Jamie" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jackson" dst="Rubin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jackson" dst="Olivier" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jackson" dst="Boucherville" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jackson" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jackson" dst="Kansas" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jackson" dst="King" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jackson" dst="Lapointe" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jackson" dst="Julian" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jackson" dst="Lafontaine" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jackson" dst="Gordon" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jackson" dst="Drouin" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jackson" dst="Robert" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jackson" dst="Jocelyne" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jackson" dst="Stephen" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jackson" dst="Provost" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jackson" dst="Juneau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jackson" dst="Casavant" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jackson" dst="St_Antoine" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Jackson" dst="Louis" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jackson" dst="Julien" symmetrical="NO"><link_ctn id="134"/></route>
-   <route src="Jackson" dst="St_Paul" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jackson" dst="Mathematica" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jackson" dst="LaTeX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jackson" dst="Sirois" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jackson" dst="Monique" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jackson" dst="Audy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jackson" dst="Bourassa" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jackson" dst="OHara" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jackson" dst="Boston" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jackson" dst="Papineau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jackson" dst="Fraser" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jackson" dst="Browne" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jackson" dst="SunOS" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jackson" dst="Varennes" symmetrical="NO"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jackson" dst="Jacques" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jackson" dst="Thierry" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jackson" dst="Lachapelle" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jackson" dst="kV" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Jackson" dst="Yolande" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jackson" dst="Pronovost" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jackson" dst="SPICE" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jackson" dst="Europe" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jackson" dst="Roy" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jackson" dst="Amadeus" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jackson" dst="Intel" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jackson" dst="Cambridge" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jackson" dst="Tremblay" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jackson" dst="UNIX" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jackson" dst="Domey" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jackson" dst="St_Bruno" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jackson" dst="Jean_Claude" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jackson" dst="Doyon" symmetrical="NO"><link_ctn id="132"/></route>
-   <route src="Jackson" dst="Fafard" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jackson" dst="Croteau" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jackson" dst="Dodge" symmetrical="NO"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Fernand" dst="Jacquelin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fernand" dst="Boivin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fernand" dst="Jean_Yves" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fernand" dst="TeX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fernand" dst="Geoff" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fernand" dst="Disney" symmetrical="NO"><link_ctn id="109"/><link_ctn id="111"/></route>
-   <route src="Fernand" dst="iRMX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fernand" dst="McGee" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fernand" dst="Gatien" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fernand" dst="Laroche" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Fernand" dst="Tanguay" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fernand" dst="Morin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fernand" dst="Ethernet" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fernand" dst="Bellemarre" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Fernand" dst="Kuenning" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fernand" dst="Gaston" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fernand" dst="Harry" symmetrical="NO"><link_ctn id="109"/><link_ctn id="108"/></route>
-   <route src="Fernand" dst="Bousquet" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fernand" dst="Paul" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fernand" dst="St_Jean" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Fernand" dst="Jill" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Fernand" dst="Marcel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fernand" dst="Wright" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fernand" dst="Jackson" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fernand" dst="Soucy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fernand" dst="Ste_Julie" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fernand" dst="Victoria" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fernand" dst="Lessard" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Fernand" dst="Florient" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fernand" dst="Marcoux" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fernand" dst="Gavrel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fernand" dst="Bescherelle" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fernand" dst="Pierre" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fernand" dst="Jamie" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fernand" dst="Rubin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fernand" dst="Olivier" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fernand" dst="Boucherville" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Fernand" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fernand" dst="Kansas" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fernand" dst="King" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fernand" dst="Lapointe" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Fernand" dst="Julian" symmetrical="NO"><link_ctn id="109"/></route>
-   <route src="Fernand" dst="Lafontaine" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fernand" dst="Gordon" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Fernand" dst="Drouin" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fernand" dst="Robert" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fernand" dst="Jocelyne" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fernand" dst="Stephen" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fernand" dst="Provost" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fernand" dst="Juneau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fernand" dst="Casavant" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fernand" dst="St_Antoine" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fernand" dst="Louis" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fernand" dst="Julien" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fernand" dst="St_Paul" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fernand" dst="Mathematica" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fernand" dst="LaTeX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Fernand" dst="Sirois" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fernand" dst="Monique" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fernand" dst="Audy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fernand" dst="Bourassa" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fernand" dst="OHara" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fernand" dst="Boston" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fernand" dst="Papineau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fernand" dst="Fraser" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Fernand" dst="Browne" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fernand" dst="SunOS" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fernand" dst="Varennes" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fernand" dst="Jacques" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fernand" dst="Thierry" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fernand" dst="Lachapelle" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fernand" dst="kV" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fernand" dst="Yolande" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fernand" dst="Pronovost" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fernand" dst="SPICE" symmetrical="NO"><link_ctn id="109"/><link_ctn id="110"/></route>
-   <route src="Fernand" dst="Europe" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fernand" dst="Roy" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fernand" dst="Amadeus" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fernand" dst="Intel" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fernand" dst="Cambridge" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fernand" dst="Tremblay" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fernand" dst="UNIX" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fernand" dst="Domey" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fernand" dst="St_Bruno" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fernand" dst="Jean_Claude" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fernand" dst="Doyon" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fernand" dst="Fafard" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Fernand" dst="Croteau" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fernand" dst="Dodge" symmetrical="NO"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Soucy" dst="Jacquelin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Soucy" dst="Boivin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Soucy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Soucy" dst="TeX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Soucy" dst="Geoff" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Soucy" dst="Disney" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Soucy" dst="iRMX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Soucy" dst="McGee" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Soucy" dst="Gatien" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Soucy" dst="Laroche" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Soucy" dst="Tanguay" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Soucy" dst="Morin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Soucy" dst="Ethernet" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Soucy" dst="Bellemarre" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Soucy" dst="Kuenning" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Soucy" dst="Gaston" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Soucy" dst="Harry" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Soucy" dst="Bousquet" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Soucy" dst="Paul" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Soucy" dst="St_Jean" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Soucy" dst="Jill" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Soucy" dst="Marcel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Soucy" dst="Wright" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Soucy" dst="Jackson" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Soucy" dst="Fernand" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Soucy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Soucy" dst="Victoria" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Soucy" dst="Lessard" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Soucy" dst="Florient" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Soucy" dst="Marcoux" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Soucy" dst="Gavrel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Soucy" dst="Bescherelle" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Soucy" dst="Pierre" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Soucy" dst="Jamie" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Soucy" dst="Rubin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Soucy" dst="Olivier" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Soucy" dst="Boucherville" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Soucy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Soucy" dst="Kansas" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Soucy" dst="King" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Soucy" dst="Lapointe" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Soucy" dst="Julian" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Soucy" dst="Lafontaine" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Soucy" dst="Gordon" symmetrical="NO"><link_ctn id="191"/></route>
-   <route src="Soucy" dst="Drouin" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Soucy" dst="Robert" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Soucy" dst="Jocelyne" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Soucy" dst="Stephen" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Soucy" dst="Provost" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Soucy" dst="Juneau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="189"/></route>
-   <route src="Soucy" dst="Casavant" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Soucy" dst="St_Antoine" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Soucy" dst="Louis" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Soucy" dst="Julien" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Soucy" dst="St_Paul" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Soucy" dst="Mathematica" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Soucy" dst="LaTeX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Soucy" dst="Sirois" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Soucy" dst="Monique" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Soucy" dst="Audy" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Soucy" dst="Bourassa" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Soucy" dst="OHara" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Soucy" dst="Boston" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Soucy" dst="Papineau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Soucy" dst="Fraser" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Soucy" dst="Browne" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Soucy" dst="SunOS" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Soucy" dst="Varennes" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Soucy" dst="Jacques" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Soucy" dst="Thierry" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Soucy" dst="Lachapelle" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Soucy" dst="kV" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Soucy" dst="Yolande" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Soucy" dst="Pronovost" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Soucy" dst="SPICE" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Soucy" dst="Europe" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Soucy" dst="Roy" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Soucy" dst="Amadeus" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Soucy" dst="Intel" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Soucy" dst="Cambridge" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Soucy" dst="Tremblay" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Soucy" dst="UNIX" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Soucy" dst="Domey" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Soucy" dst="St_Bruno" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Soucy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Soucy" dst="Doyon" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Soucy" dst="Fafard" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Soucy" dst="Croteau" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Soucy" dst="Dodge" symmetrical="NO"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Ste_Julie" dst="Jacquelin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Ste_Julie" dst="Boivin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Ste_Julie" dst="Jean_Yves" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Ste_Julie" dst="TeX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Ste_Julie" dst="Geoff" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Ste_Julie" dst="Disney" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Ste_Julie" dst="iRMX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Ste_Julie" dst="McGee" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Ste_Julie" dst="Gatien" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Ste_Julie" dst="Laroche" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Ste_Julie" dst="Tanguay" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Ste_Julie" dst="Morin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Ste_Julie" dst="Ethernet" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Ste_Julie" dst="Bellemarre" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Ste_Julie" dst="Kuenning" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Ste_Julie" dst="Gaston" symmetrical="NO"><link_ctn id="153"/></route>
-   <route src="Ste_Julie" dst="Harry" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Ste_Julie" dst="Bousquet" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Ste_Julie" dst="Paul" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Ste_Julie" dst="St_Jean" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Ste_Julie" dst="Jill" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Ste_Julie" dst="Marcel" symmetrical="NO"><link_ctn id="155"/></route>
-   <route src="Ste_Julie" dst="Wright" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Ste_Julie" dst="Jackson" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Ste_Julie" dst="Fernand" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Ste_Julie" dst="Soucy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Ste_Julie" dst="Victoria" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Ste_Julie" dst="Lessard" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Ste_Julie" dst="Florient" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Ste_Julie" dst="Marcoux" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Ste_Julie" dst="Gavrel" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Ste_Julie" dst="Bescherelle" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Ste_Julie" dst="Pierre" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Ste_Julie" dst="Jamie" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Ste_Julie" dst="Rubin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Ste_Julie" dst="Olivier" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Ste_Julie" dst="Boucherville" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Ste_Julie" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Ste_Julie" dst="Kansas" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Ste_Julie" dst="King" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Ste_Julie" dst="Lapointe" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Ste_Julie" dst="Julian" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Ste_Julie" dst="Lafontaine" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Ste_Julie" dst="Gordon" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Ste_Julie" dst="Drouin" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Ste_Julie" dst="Robert" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Ste_Julie" dst="Jocelyne" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Ste_Julie" dst="Stephen" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Ste_Julie" dst="Provost" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Ste_Julie" dst="Juneau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Ste_Julie" dst="Casavant" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Ste_Julie" dst="St_Antoine" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Ste_Julie" dst="Louis" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Ste_Julie" dst="Julien" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Ste_Julie" dst="St_Paul" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Ste_Julie" dst="Mathematica" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Ste_Julie" dst="LaTeX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Ste_Julie" dst="Sirois" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Ste_Julie" dst="Monique" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Ste_Julie" dst="Audy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Ste_Julie" dst="Bourassa" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Ste_Julie" dst="OHara" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Ste_Julie" dst="Boston" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Ste_Julie" dst="Papineau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Ste_Julie" dst="Fraser" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Ste_Julie" dst="Browne" symmetrical="NO"><link_ctn id="152"/></route>
-   <route src="Ste_Julie" dst="SunOS" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Ste_Julie" dst="Varennes" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Ste_Julie" dst="Jacques" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Ste_Julie" dst="Thierry" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Ste_Julie" dst="Lachapelle" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Ste_Julie" dst="kV" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Ste_Julie" dst="Yolande" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Ste_Julie" dst="Pronovost" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Ste_Julie" dst="SPICE" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Ste_Julie" dst="Europe" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Ste_Julie" dst="Roy" symmetrical="NO"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Ste_Julie" dst="Amadeus" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Ste_Julie" dst="Intel" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Ste_Julie" dst="Cambridge" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Ste_Julie" dst="Tremblay" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Ste_Julie" dst="UNIX" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Ste_Julie" dst="Domey" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Ste_Julie" dst="St_Bruno" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Ste_Julie" dst="Jean_Claude" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Ste_Julie" dst="Doyon" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Ste_Julie" dst="Fafard" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Ste_Julie" dst="Croteau" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Ste_Julie" dst="Dodge" symmetrical="NO"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Victoria" dst="Jacquelin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Victoria" dst="Boivin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Victoria" dst="Jean_Yves" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Victoria" dst="TeX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Victoria" dst="Geoff" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Victoria" dst="Disney" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Victoria" dst="iRMX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Victoria" dst="McGee" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Victoria" dst="Gatien" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Victoria" dst="Laroche" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Victoria" dst="Tanguay" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Victoria" dst="Morin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Victoria" dst="Ethernet" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Victoria" dst="Bellemarre" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Victoria" dst="Kuenning" symmetrical="NO"><link_ctn id="133"/><link_ctn id="135"/></route>
-   <route src="Victoria" dst="Gaston" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Victoria" dst="Harry" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Victoria" dst="Bousquet" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Victoria" dst="Paul" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Victoria" dst="St_Jean" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Victoria" dst="Jill" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Victoria" dst="Marcel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Victoria" dst="Wright" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Victoria" dst="Jackson" symmetrical="NO"><link_ctn id="133"/></route>
-   <route src="Victoria" dst="Fernand" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Victoria" dst="Soucy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Victoria" dst="Ste_Julie" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Victoria" dst="Lessard" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Victoria" dst="Florient" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Victoria" dst="Marcoux" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Victoria" dst="Gavrel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Victoria" dst="Bescherelle" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Victoria" dst="Pierre" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Victoria" dst="Jamie" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Victoria" dst="Rubin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Victoria" dst="Olivier" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Victoria" dst="Boucherville" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Victoria" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Victoria" dst="Kansas" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Victoria" dst="King" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Victoria" dst="Lapointe" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Victoria" dst="Julian" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Victoria" dst="Lafontaine" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Victoria" dst="Gordon" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Victoria" dst="Drouin" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Victoria" dst="Robert" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Victoria" dst="Jocelyne" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Victoria" dst="Stephen" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Victoria" dst="Provost" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Victoria" dst="Juneau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Victoria" dst="Casavant" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Victoria" dst="St_Antoine" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Victoria" dst="Louis" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Victoria" dst="Julien" symmetrical="NO"><link_ctn id="133"/><link_ctn id="134"/></route>
-   <route src="Victoria" dst="St_Paul" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Victoria" dst="Mathematica" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Victoria" dst="LaTeX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Victoria" dst="Sirois" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Victoria" dst="Monique" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Victoria" dst="Audy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Victoria" dst="Bourassa" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Victoria" dst="OHara" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Victoria" dst="Boston" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Victoria" dst="Papineau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Victoria" dst="Fraser" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Victoria" dst="Browne" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Victoria" dst="SunOS" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Victoria" dst="Varennes" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Victoria" dst="Jacques" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Victoria" dst="Thierry" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Victoria" dst="Lachapelle" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Victoria" dst="kV" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Victoria" dst="Yolande" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Victoria" dst="Pronovost" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Victoria" dst="SPICE" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Victoria" dst="Europe" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Victoria" dst="Roy" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Victoria" dst="Amadeus" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Victoria" dst="Intel" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Victoria" dst="Cambridge" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Victoria" dst="Tremblay" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Victoria" dst="UNIX" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Victoria" dst="Domey" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Victoria" dst="St_Bruno" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Victoria" dst="Jean_Claude" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Victoria" dst="Doyon" symmetrical="NO"><link_ctn id="133"/><link_ctn id="132"/></route>
-   <route src="Victoria" dst="Fafard" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Victoria" dst="Croteau" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Victoria" dst="Dodge" symmetrical="NO"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lessard" dst="Jacquelin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lessard" dst="Boivin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lessard" dst="Jean_Yves" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lessard" dst="TeX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lessard" dst="Geoff" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Lessard" dst="Disney" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lessard" dst="iRMX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lessard" dst="McGee" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lessard" dst="Gatien" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lessard" dst="Laroche" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lessard" dst="Tanguay" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lessard" dst="Morin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lessard" dst="Ethernet" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lessard" dst="Bellemarre" symmetrical="NO"><link_ctn id="99"/></route>
-   <route src="Lessard" dst="Kuenning" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lessard" dst="Gaston" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lessard" dst="Harry" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lessard" dst="Bousquet" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lessard" dst="Paul" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lessard" dst="St_Jean" symmetrical="NO"><link_ctn id="99"/><link_ctn id="97"/></route>
-   <route src="Lessard" dst="Jill" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lessard" dst="Marcel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lessard" dst="Wright" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lessard" dst="Jackson" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lessard" dst="Fernand" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lessard" dst="Soucy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lessard" dst="Ste_Julie" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lessard" dst="Victoria" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lessard" dst="Florient" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lessard" dst="Marcoux" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lessard" dst="Gavrel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lessard" dst="Bescherelle" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lessard" dst="Pierre" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lessard" dst="Jamie" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lessard" dst="Rubin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lessard" dst="Olivier" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lessard" dst="Boucherville" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lessard" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lessard" dst="Kansas" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lessard" dst="King" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lessard" dst="Lapointe" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lessard" dst="Julian" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lessard" dst="Lafontaine" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lessard" dst="Gordon" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lessard" dst="Drouin" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lessard" dst="Robert" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lessard" dst="Jocelyne" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lessard" dst="Stephen" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lessard" dst="Provost" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lessard" dst="Juneau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lessard" dst="Casavant" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lessard" dst="St_Antoine" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lessard" dst="Louis" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lessard" dst="Julien" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lessard" dst="St_Paul" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lessard" dst="Mathematica" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lessard" dst="LaTeX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lessard" dst="Sirois" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lessard" dst="Monique" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lessard" dst="Audy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lessard" dst="Bourassa" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lessard" dst="OHara" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lessard" dst="Boston" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lessard" dst="Papineau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lessard" dst="Fraser" symmetrical="NO"><link_ctn id="99"/><link_ctn id="96"/></route>
-   <route src="Lessard" dst="Browne" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lessard" dst="SunOS" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lessard" dst="Varennes" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lessard" dst="Jacques" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lessard" dst="Thierry" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lessard" dst="Lachapelle" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lessard" dst="kV" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Lessard" dst="Yolande" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lessard" dst="Pronovost" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lessard" dst="SPICE" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lessard" dst="Europe" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lessard" dst="Roy" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lessard" dst="Amadeus" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lessard" dst="Intel" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lessard" dst="Cambridge" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lessard" dst="Tremblay" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lessard" dst="UNIX" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lessard" dst="Domey" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lessard" dst="St_Bruno" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lessard" dst="Jean_Claude" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lessard" dst="Doyon" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lessard" dst="Fafard" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lessard" dst="Croteau" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lessard" dst="Dodge" symmetrical="NO"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Florient" dst="Jacquelin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Florient" dst="Boivin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Florient" dst="Jean_Yves" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Florient" dst="TeX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Florient" dst="Geoff" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Florient" dst="Disney" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Florient" dst="iRMX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Florient" dst="McGee" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Florient" dst="Gatien" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Florient" dst="Laroche" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Florient" dst="Tanguay" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Florient" dst="Morin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Florient" dst="Ethernet" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Florient" dst="Bellemarre" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Florient" dst="Kuenning" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Florient" dst="Gaston" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Florient" dst="Harry" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Florient" dst="Bousquet" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Florient" dst="Paul" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Florient" dst="St_Jean" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Florient" dst="Jill" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Florient" dst="Marcel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Florient" dst="Wright" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Florient" dst="Jackson" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Florient" dst="Fernand" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Florient" dst="Soucy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Florient" dst="Ste_Julie" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Florient" dst="Victoria" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Florient" dst="Lessard" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Florient" dst="Marcoux" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Florient" dst="Gavrel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Florient" dst="Bescherelle" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Florient" dst="Pierre" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Florient" dst="Jamie" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Florient" dst="Rubin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Florient" dst="Olivier" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Florient" dst="Boucherville" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Florient" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Florient" dst="Kansas" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Florient" dst="King" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Florient" dst="Lapointe" symmetrical="NO"><link_ctn id="181"/></route>
-   <route src="Florient" dst="Julian" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Florient" dst="Lafontaine" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Florient" dst="Gordon" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Florient" dst="Drouin" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Florient" dst="Robert" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Florient" dst="Jocelyne" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Florient" dst="Stephen" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Florient" dst="Provost" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Florient" dst="Juneau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Florient" dst="Casavant" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Florient" dst="St_Antoine" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Florient" dst="Louis" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Florient" dst="Julien" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Florient" dst="St_Paul" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Florient" dst="Mathematica" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Florient" dst="LaTeX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Florient" dst="Sirois" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Florient" dst="Monique" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Florient" dst="Audy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="183"/></route>
-   <route src="Florient" dst="Bourassa" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Florient" dst="OHara" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Florient" dst="Boston" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Florient" dst="Papineau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="182"/></route>
-   <route src="Florient" dst="Fraser" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Florient" dst="Browne" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Florient" dst="SunOS" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Florient" dst="Varennes" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Florient" dst="Jacques" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Florient" dst="Thierry" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Florient" dst="Lachapelle" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Florient" dst="kV" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Florient" dst="Yolande" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Florient" dst="Pronovost" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Florient" dst="SPICE" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Florient" dst="Europe" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Florient" dst="Roy" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Florient" dst="Amadeus" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Florient" dst="Intel" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Florient" dst="Cambridge" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Florient" dst="Tremblay" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Florient" dst="UNIX" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Florient" dst="Domey" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Florient" dst="St_Bruno" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Florient" dst="Jean_Claude" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Florient" dst="Doyon" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Florient" dst="Fafard" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Florient" dst="Croteau" symmetrical="NO"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Florient" dst="Dodge" symmetrical="NO"><link_ctn id="181"/><link_ctn id="180"/></route>
-   <route src="Marcoux" dst="Jacquelin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Marcoux" dst="Boivin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Marcoux" dst="Jean_Yves" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Marcoux" dst="TeX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Marcoux" dst="Geoff" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Marcoux" dst="Disney" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Marcoux" dst="iRMX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Marcoux" dst="McGee" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Marcoux" dst="Gatien" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Marcoux" dst="Laroche" symmetrical="NO"><link_ctn id="186"/></route>
-   <route src="Marcoux" dst="Tanguay" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Marcoux" dst="Morin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Marcoux" dst="Ethernet" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Marcoux" dst="Bellemarre" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Marcoux" dst="Kuenning" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Marcoux" dst="Gaston" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Marcoux" dst="Harry" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Marcoux" dst="Bousquet" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Marcoux" dst="Paul" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Marcoux" dst="St_Jean" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Marcoux" dst="Jill" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Marcoux" dst="Marcel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Marcoux" dst="Wright" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Marcoux" dst="Jackson" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Marcoux" dst="Fernand" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Marcoux" dst="Soucy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Marcoux" dst="Ste_Julie" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Marcoux" dst="Victoria" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Marcoux" dst="Lessard" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Marcoux" dst="Florient" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Marcoux" dst="Gavrel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Marcoux" dst="Bescherelle" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Marcoux" dst="Pierre" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Marcoux" dst="Jamie" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Marcoux" dst="Rubin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Marcoux" dst="Olivier" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Marcoux" dst="Boucherville" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Marcoux" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="186"/><link_ctn id="184"/></route>
-   <route src="Marcoux" dst="Kansas" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Marcoux" dst="King" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Marcoux" dst="Lapointe" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Marcoux" dst="Julian" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Marcoux" dst="Lafontaine" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Marcoux" dst="Gordon" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Marcoux" dst="Drouin" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Marcoux" dst="Robert" symmetrical="NO"><link_ctn id="186"/><link_ctn id="187"/></route>
-   <route src="Marcoux" dst="Jocelyne" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Marcoux" dst="Stephen" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Marcoux" dst="Provost" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Marcoux" dst="Juneau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Marcoux" dst="Casavant" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Marcoux" dst="St_Antoine" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Marcoux" dst="Louis" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Marcoux" dst="Julien" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Marcoux" dst="St_Paul" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Marcoux" dst="Mathematica" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Marcoux" dst="LaTeX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Marcoux" dst="Sirois" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Marcoux" dst="Monique" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Marcoux" dst="Audy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Marcoux" dst="Bourassa" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Marcoux" dst="OHara" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Marcoux" dst="Boston" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Marcoux" dst="Papineau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Marcoux" dst="Fraser" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Marcoux" dst="Browne" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Marcoux" dst="SunOS" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Marcoux" dst="Varennes" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Marcoux" dst="Jacques" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Marcoux" dst="Thierry" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Marcoux" dst="Lachapelle" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Marcoux" dst="kV" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Marcoux" dst="Yolande" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Marcoux" dst="Pronovost" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Marcoux" dst="SPICE" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Marcoux" dst="Europe" symmetrical="NO"><link_ctn id="186"/><link_ctn id="185"/></route>
-   <route src="Marcoux" dst="Roy" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Marcoux" dst="Amadeus" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Marcoux" dst="Intel" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Marcoux" dst="Cambridge" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Marcoux" dst="Tremblay" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Marcoux" dst="UNIX" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Marcoux" dst="Domey" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Marcoux" dst="St_Bruno" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Marcoux" dst="Jean_Claude" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Marcoux" dst="Doyon" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Marcoux" dst="Fafard" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Marcoux" dst="Croteau" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Marcoux" dst="Dodge" symmetrical="NO"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gavrel" dst="Jacquelin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gavrel" dst="Boivin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gavrel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gavrel" dst="TeX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gavrel" dst="Geoff" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gavrel" dst="Disney" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gavrel" dst="iRMX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gavrel" dst="McGee" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gavrel" dst="Gatien" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gavrel" dst="Laroche" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gavrel" dst="Tanguay" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gavrel" dst="Morin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gavrel" dst="Ethernet" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gavrel" dst="Bellemarre" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gavrel" dst="Kuenning" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gavrel" dst="Gaston" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gavrel" dst="Harry" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gavrel" dst="Bousquet" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gavrel" dst="Paul" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gavrel" dst="St_Jean" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gavrel" dst="Jill" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gavrel" dst="Marcel" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gavrel" dst="Wright" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gavrel" dst="Jackson" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gavrel" dst="Fernand" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gavrel" dst="Soucy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Gavrel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gavrel" dst="Victoria" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gavrel" dst="Lessard" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gavrel" dst="Florient" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gavrel" dst="Marcoux" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gavrel" dst="Bescherelle" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gavrel" dst="Pierre" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gavrel" dst="Jamie" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gavrel" dst="Rubin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gavrel" dst="Olivier" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gavrel" dst="Boucherville" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gavrel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gavrel" dst="Kansas" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gavrel" dst="King" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gavrel" dst="Lapointe" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Gavrel" dst="Julian" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gavrel" dst="Lafontaine" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gavrel" dst="Gordon" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Gavrel" dst="Drouin" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gavrel" dst="Robert" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gavrel" dst="Jocelyne" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gavrel" dst="Stephen" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gavrel" dst="Provost" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gavrel" dst="Juneau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Gavrel" dst="Casavant" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gavrel" dst="St_Antoine" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gavrel" dst="Louis" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gavrel" dst="Julien" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gavrel" dst="St_Paul" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gavrel" dst="Mathematica" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gavrel" dst="LaTeX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gavrel" dst="Sirois" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gavrel" dst="Monique" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gavrel" dst="Audy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gavrel" dst="Bourassa" symmetrical="NO"><link_ctn id="148"/><link_ctn id="150"/></route>
-   <route src="Gavrel" dst="OHara" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gavrel" dst="Boston" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gavrel" dst="Papineau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gavrel" dst="Fraser" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gavrel" dst="Browne" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gavrel" dst="SunOS" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gavrel" dst="Varennes" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gavrel" dst="Jacques" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gavrel" dst="Thierry" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gavrel" dst="Lachapelle" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gavrel" dst="kV" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gavrel" dst="Yolande" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gavrel" dst="Pronovost" symmetrical="NO"><link_ctn id="148"/><link_ctn id="151"/></route>
-   <route src="Gavrel" dst="SPICE" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gavrel" dst="Europe" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gavrel" dst="Roy" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gavrel" dst="Amadeus" symmetrical="NO"><link_ctn id="148"/></route>
-   <route src="Gavrel" dst="Intel" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gavrel" dst="Cambridge" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gavrel" dst="Tremblay" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gavrel" dst="UNIX" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gavrel" dst="Domey" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gavrel" dst="St_Bruno" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gavrel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gavrel" dst="Doyon" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gavrel" dst="Fafard" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gavrel" dst="Croteau" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gavrel" dst="Dodge" symmetrical="NO"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Bescherelle" dst="Jacquelin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bescherelle" dst="Boivin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bescherelle" dst="Jean_Yves" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bescherelle" dst="TeX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bescherelle" dst="Geoff" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bescherelle" dst="Disney" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bescherelle" dst="iRMX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bescherelle" dst="McGee" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bescherelle" dst="Gatien" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bescherelle" dst="Laroche" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bescherelle" dst="Tanguay" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bescherelle" dst="Morin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bescherelle" dst="Ethernet" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bescherelle" dst="Bellemarre" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bescherelle" dst="Kuenning" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bescherelle" dst="Gaston" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bescherelle" dst="Harry" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bescherelle" dst="Bousquet" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bescherelle" dst="Paul" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bescherelle" dst="St_Jean" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bescherelle" dst="Jill" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bescherelle" dst="Marcel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bescherelle" dst="Wright" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bescherelle" dst="Jackson" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bescherelle" dst="Fernand" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bescherelle" dst="Soucy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bescherelle" dst="Ste_Julie" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bescherelle" dst="Victoria" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bescherelle" dst="Lessard" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bescherelle" dst="Florient" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bescherelle" dst="Marcoux" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bescherelle" dst="Gavrel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Bescherelle" dst="Pierre" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bescherelle" dst="Jamie" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bescherelle" dst="Rubin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bescherelle" dst="Olivier" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bescherelle" dst="Boucherville" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bescherelle" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bescherelle" dst="Kansas" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bescherelle" dst="King" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bescherelle" dst="Lapointe" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bescherelle" dst="Julian" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bescherelle" dst="Lafontaine" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bescherelle" dst="Gordon" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bescherelle" dst="Drouin" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bescherelle" dst="Robert" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bescherelle" dst="Jocelyne" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bescherelle" dst="Stephen" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bescherelle" dst="Provost" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bescherelle" dst="Juneau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bescherelle" dst="Casavant" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bescherelle" dst="St_Antoine" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bescherelle" dst="Louis" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bescherelle" dst="Julien" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bescherelle" dst="St_Paul" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bescherelle" dst="Mathematica" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bescherelle" dst="LaTeX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bescherelle" dst="Sirois" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bescherelle" dst="Monique" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bescherelle" dst="Audy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bescherelle" dst="Bourassa" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Bescherelle" dst="OHara" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bescherelle" dst="Boston" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bescherelle" dst="Papineau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bescherelle" dst="Fraser" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bescherelle" dst="Browne" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bescherelle" dst="SunOS" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bescherelle" dst="Varennes" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bescherelle" dst="Jacques" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bescherelle" dst="Thierry" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bescherelle" dst="Lachapelle" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bescherelle" dst="kV" symmetrical="NO"><link_ctn id="140"/></route>
-   <route src="Bescherelle" dst="Yolande" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bescherelle" dst="Pronovost" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Bescherelle" dst="SPICE" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bescherelle" dst="Europe" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bescherelle" dst="Roy" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bescherelle" dst="Amadeus" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Bescherelle" dst="Intel" symmetrical="NO"><link_ctn id="140"/><link_ctn id="141"/></route>
-   <route src="Bescherelle" dst="Cambridge" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bescherelle" dst="Tremblay" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bescherelle" dst="UNIX" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bescherelle" dst="Domey" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bescherelle" dst="St_Bruno" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bescherelle" dst="Jean_Claude" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bescherelle" dst="Doyon" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bescherelle" dst="Fafard" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bescherelle" dst="Croteau" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bescherelle" dst="Dodge" symmetrical="NO"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pierre" dst="Jacquelin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pierre" dst="Boivin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pierre" dst="Jean_Yves" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pierre" dst="TeX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pierre" dst="Geoff" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pierre" dst="Disney" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pierre" dst="iRMX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pierre" dst="McGee" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pierre" dst="Gatien" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pierre" dst="Laroche" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Pierre" dst="Tanguay" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pierre" dst="Morin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pierre" dst="Ethernet" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pierre" dst="Bellemarre" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pierre" dst="Kuenning" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pierre" dst="Gaston" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pierre" dst="Harry" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pierre" dst="Bousquet" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pierre" dst="Paul" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pierre" dst="St_Jean" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pierre" dst="Jill" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pierre" dst="Marcel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pierre" dst="Wright" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pierre" dst="Jackson" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pierre" dst="Fernand" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pierre" dst="Soucy" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pierre" dst="Ste_Julie" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pierre" dst="Victoria" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pierre" dst="Lessard" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pierre" dst="Florient" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pierre" dst="Marcoux" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Pierre" dst="Gavrel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Pierre" dst="Bescherelle" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pierre" dst="Jamie" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pierre" dst="Rubin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pierre" dst="Olivier" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pierre" dst="Boucherville" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pierre" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Pierre" dst="Kansas" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pierre" dst="King" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pierre" dst="Lapointe" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Pierre" dst="Julian" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pierre" dst="Lafontaine" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pierre" dst="Gordon" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Pierre" dst="Drouin" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pierre" dst="Robert" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Pierre" dst="Jocelyne" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pierre" dst="Stephen" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pierre" dst="Provost" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pierre" dst="Juneau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pierre" dst="Casavant" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pierre" dst="St_Antoine" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pierre" dst="Louis" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pierre" dst="Julien" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pierre" dst="St_Paul" symmetrical="NO"><link_ctn id="167"/><link_ctn id="165"/></route>
-   <route src="Pierre" dst="Mathematica" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pierre" dst="LaTeX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pierre" dst="Sirois" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pierre" dst="Monique" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pierre" dst="Audy" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pierre" dst="Bourassa" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Pierre" dst="OHara" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pierre" dst="Boston" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pierre" dst="Papineau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pierre" dst="Fraser" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pierre" dst="Browne" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pierre" dst="SunOS" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pierre" dst="Varennes" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pierre" dst="Jacques" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pierre" dst="Thierry" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pierre" dst="Lachapelle" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pierre" dst="kV" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pierre" dst="Yolande" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pierre" dst="Pronovost" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Pierre" dst="SPICE" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pierre" dst="Europe" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Pierre" dst="Roy" symmetrical="NO"><link_ctn id="167"/></route>
-   <route src="Pierre" dst="Amadeus" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Pierre" dst="Intel" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pierre" dst="Cambridge" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pierre" dst="Tremblay" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pierre" dst="UNIX" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pierre" dst="Domey" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pierre" dst="St_Bruno" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pierre" dst="Jean_Claude" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pierre" dst="Doyon" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pierre" dst="Fafard" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pierre" dst="Croteau" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pierre" dst="Dodge" symmetrical="NO"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jamie" dst="Jacquelin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jamie" dst="Boivin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Jamie" dst="Jean_Yves" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jamie" dst="TeX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jamie" dst="Geoff" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jamie" dst="Disney" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jamie" dst="iRMX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jamie" dst="McGee" symmetrical="NO"><link_ctn id="120"/></route>
-   <route src="Jamie" dst="Gatien" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jamie" dst="Laroche" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jamie" dst="Tanguay" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jamie" dst="Morin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jamie" dst="Ethernet" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jamie" dst="Bellemarre" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jamie" dst="Kuenning" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jamie" dst="Gaston" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jamie" dst="Harry" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jamie" dst="Bousquet" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jamie" dst="Paul" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jamie" dst="St_Jean" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jamie" dst="Jill" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jamie" dst="Marcel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jamie" dst="Wright" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jamie" dst="Jackson" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jamie" dst="Fernand" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jamie" dst="Soucy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jamie" dst="Ste_Julie" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jamie" dst="Victoria" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jamie" dst="Lessard" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jamie" dst="Florient" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jamie" dst="Marcoux" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jamie" dst="Gavrel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jamie" dst="Bescherelle" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jamie" dst="Pierre" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jamie" dst="Rubin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jamie" dst="Olivier" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jamie" dst="Boucherville" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jamie" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jamie" dst="Kansas" symmetrical="NO"><link_ctn id="120"/><link_ctn id="122"/></route>
-   <route src="Jamie" dst="King" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jamie" dst="Lapointe" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jamie" dst="Julian" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jamie" dst="Lafontaine" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jamie" dst="Gordon" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jamie" dst="Drouin" symmetrical="NO"><link_ctn id="120"/><link_ctn id="123"/></route>
-   <route src="Jamie" dst="Robert" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jamie" dst="Jocelyne" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jamie" dst="Stephen" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jamie" dst="Provost" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jamie" dst="Juneau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jamie" dst="Casavant" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jamie" dst="St_Antoine" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jamie" dst="Louis" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jamie" dst="Julien" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jamie" dst="St_Paul" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jamie" dst="Mathematica" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jamie" dst="LaTeX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jamie" dst="Sirois" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jamie" dst="Monique" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jamie" dst="Audy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jamie" dst="Bourassa" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jamie" dst="OHara" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jamie" dst="Boston" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jamie" dst="Papineau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jamie" dst="Fraser" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jamie" dst="Browne" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jamie" dst="SunOS" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jamie" dst="Varennes" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jamie" dst="Jacques" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jamie" dst="Thierry" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jamie" dst="Lachapelle" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jamie" dst="kV" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jamie" dst="Yolande" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jamie" dst="Pronovost" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jamie" dst="SPICE" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jamie" dst="Europe" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jamie" dst="Roy" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jamie" dst="Amadeus" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jamie" dst="Intel" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jamie" dst="Cambridge" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jamie" dst="Tremblay" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jamie" dst="UNIX" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jamie" dst="Domey" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Jamie" dst="St_Bruno" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jamie" dst="Jean_Claude" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jamie" dst="Doyon" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jamie" dst="Fafard" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jamie" dst="Croteau" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jamie" dst="Dodge" symmetrical="NO"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Rubin" dst="Jacquelin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="145"/></route>
-   <route src="Rubin" dst="Boivin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Rubin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Rubin" dst="TeX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Rubin" dst="Geoff" symmetrical="NO"><link_ctn id="144"/></route>
-   <route src="Rubin" dst="Disney" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Rubin" dst="iRMX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Rubin" dst="McGee" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Rubin" dst="Gatien" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Rubin" dst="Laroche" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Rubin" dst="Tanguay" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Rubin" dst="Morin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Rubin" dst="Ethernet" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Rubin" dst="Bellemarre" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Rubin" dst="Kuenning" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Rubin" dst="Gaston" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Rubin" dst="Harry" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Rubin" dst="Bousquet" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Rubin" dst="Paul" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Rubin" dst="St_Jean" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Rubin" dst="Jill" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Rubin" dst="Marcel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Rubin" dst="Wright" symmetrical="NO"><link_ctn id="144"/><link_ctn id="147"/></route>
-   <route src="Rubin" dst="Jackson" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Rubin" dst="Fernand" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Rubin" dst="Soucy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Rubin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Rubin" dst="Victoria" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Rubin" dst="Lessard" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Rubin" dst="Florient" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Rubin" dst="Marcoux" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Rubin" dst="Gavrel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Rubin" dst="Bescherelle" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Rubin" dst="Pierre" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Rubin" dst="Jamie" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Rubin" dst="Olivier" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Rubin" dst="Boucherville" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Rubin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Rubin" dst="Kansas" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Rubin" dst="King" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Rubin" dst="Lapointe" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Rubin" dst="Julian" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Rubin" dst="Lafontaine" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Rubin" dst="Gordon" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Rubin" dst="Drouin" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Rubin" dst="Robert" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Rubin" dst="Jocelyne" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Rubin" dst="Stephen" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Rubin" dst="Provost" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Rubin" dst="Juneau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Rubin" dst="Casavant" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Rubin" dst="St_Antoine" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Rubin" dst="Louis" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Rubin" dst="Julien" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Rubin" dst="St_Paul" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Rubin" dst="Mathematica" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Rubin" dst="LaTeX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Rubin" dst="Sirois" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Rubin" dst="Monique" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Rubin" dst="Audy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Rubin" dst="Bourassa" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Rubin" dst="OHara" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Rubin" dst="Boston" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Rubin" dst="Papineau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Rubin" dst="Fraser" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Rubin" dst="Browne" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Rubin" dst="SunOS" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Rubin" dst="Varennes" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Rubin" dst="Jacques" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Rubin" dst="Thierry" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Rubin" dst="Lachapelle" symmetrical="NO"><link_ctn id="144"/><link_ctn id="146"/></route>
-   <route src="Rubin" dst="kV" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Rubin" dst="Yolande" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Rubin" dst="Pronovost" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Rubin" dst="SPICE" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Rubin" dst="Europe" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Rubin" dst="Roy" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Rubin" dst="Amadeus" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Rubin" dst="Intel" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Rubin" dst="Cambridge" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Rubin" dst="Tremblay" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Rubin" dst="UNIX" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Rubin" dst="Domey" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Rubin" dst="St_Bruno" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Rubin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Rubin" dst="Doyon" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Rubin" dst="Fafard" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Rubin" dst="Croteau" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Rubin" dst="Dodge" symmetrical="NO"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Olivier" dst="Jacquelin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Olivier" dst="Boivin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Olivier" dst="Jean_Yves" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Olivier" dst="TeX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Olivier" dst="Geoff" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Olivier" dst="Disney" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Olivier" dst="iRMX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Olivier" dst="McGee" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Olivier" dst="Gatien" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Olivier" dst="Laroche" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Olivier" dst="Tanguay" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Olivier" dst="Morin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Olivier" dst="Ethernet" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Olivier" dst="Bellemarre" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Olivier" dst="Kuenning" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Olivier" dst="Gaston" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Olivier" dst="Harry" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Olivier" dst="Bousquet" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Olivier" dst="Paul" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Olivier" dst="St_Jean" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Olivier" dst="Jill" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Olivier" dst="Marcel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Olivier" dst="Wright" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Olivier" dst="Jackson" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Olivier" dst="Fernand" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Olivier" dst="Soucy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Olivier" dst="Ste_Julie" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Olivier" dst="Victoria" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Olivier" dst="Lessard" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Olivier" dst="Florient" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Olivier" dst="Marcoux" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Olivier" dst="Gavrel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Olivier" dst="Bescherelle" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Olivier" dst="Pierre" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Olivier" dst="Jamie" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Olivier" dst="Rubin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Olivier" dst="Boucherville" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Olivier" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Olivier" dst="Kansas" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Olivier" dst="King" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Olivier" dst="Lapointe" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Olivier" dst="Julian" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Olivier" dst="Lafontaine" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Olivier" dst="Gordon" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Olivier" dst="Drouin" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Olivier" dst="Robert" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Olivier" dst="Jocelyne" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Olivier" dst="Stephen" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Olivier" dst="Provost" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Olivier" dst="Juneau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Olivier" dst="Casavant" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Olivier" dst="St_Antoine" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Olivier" dst="Louis" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Olivier" dst="Julien" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Olivier" dst="St_Paul" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Olivier" dst="Mathematica" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Olivier" dst="LaTeX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Olivier" dst="Sirois" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Olivier" dst="Monique" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Olivier" dst="Audy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Olivier" dst="Bourassa" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Olivier" dst="OHara" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Olivier" dst="Boston" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Olivier" dst="Papineau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Olivier" dst="Fraser" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Olivier" dst="Browne" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Olivier" dst="SunOS" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Olivier" dst="Varennes" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Olivier" dst="Jacques" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Olivier" dst="Thierry" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Olivier" dst="Lachapelle" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Olivier" dst="kV" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Olivier" dst="Yolande" symmetrical="NO"><link_ctn id="171"/><link_ctn id="168"/></route>
-   <route src="Olivier" dst="Pronovost" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Olivier" dst="SPICE" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Olivier" dst="Europe" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Olivier" dst="Roy" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Olivier" dst="Amadeus" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Olivier" dst="Intel" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Olivier" dst="Cambridge" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Olivier" dst="Tremblay" symmetrical="NO"><link_ctn id="171"/><link_ctn id="170"/></route>
-   <route src="Olivier" dst="UNIX" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Olivier" dst="Domey" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Olivier" dst="St_Bruno" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Olivier" dst="Jean_Claude" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Olivier" dst="Doyon" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Olivier" dst="Fafard" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Olivier" dst="Croteau" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Olivier" dst="Dodge" symmetrical="NO"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boucherville" dst="Jacquelin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boucherville" dst="Boivin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Boucherville" dst="Jean_Yves" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boucherville" dst="TeX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boucherville" dst="Geoff" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boucherville" dst="Disney" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boucherville" dst="iRMX" symmetrical="NO"><link_ctn id="172"/></route>
-   <route src="Boucherville" dst="McGee" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boucherville" dst="Gatien" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boucherville" dst="Laroche" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Boucherville" dst="Tanguay" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boucherville" dst="Morin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boucherville" dst="Ethernet" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Boucherville" dst="Bellemarre" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boucherville" dst="Kuenning" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boucherville" dst="Gaston" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boucherville" dst="Harry" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boucherville" dst="Bousquet" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boucherville" dst="Paul" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Boucherville" dst="St_Jean" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boucherville" dst="Jill" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Boucherville" dst="Marcel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boucherville" dst="Wright" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boucherville" dst="Jackson" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boucherville" dst="Fernand" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boucherville" dst="Soucy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boucherville" dst="Ste_Julie" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boucherville" dst="Victoria" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boucherville" dst="Lessard" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boucherville" dst="Florient" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boucherville" dst="Marcoux" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boucherville" dst="Gavrel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boucherville" dst="Bescherelle" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boucherville" dst="Pierre" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boucherville" dst="Jamie" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boucherville" dst="Rubin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boucherville" dst="Olivier" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boucherville" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boucherville" dst="Kansas" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boucherville" dst="King" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boucherville" dst="Lapointe" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Boucherville" dst="Julian" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boucherville" dst="Lafontaine" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boucherville" dst="Gordon" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Boucherville" dst="Drouin" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boucherville" dst="Robert" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boucherville" dst="Jocelyne" symmetrical="NO"><link_ctn id="173"/></route>
-   <route src="Boucherville" dst="Stephen" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boucherville" dst="Provost" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boucherville" dst="Juneau" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boucherville" dst="Casavant" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Boucherville" dst="St_Antoine" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boucherville" dst="Louis" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Boucherville" dst="Julien" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boucherville" dst="St_Paul" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boucherville" dst="Mathematica" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boucherville" dst="LaTeX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boucherville" dst="Sirois" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boucherville" dst="Monique" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boucherville" dst="Audy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boucherville" dst="Bourassa" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boucherville" dst="OHara" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boucherville" dst="Boston" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Boucherville" dst="Papineau" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boucherville" dst="Fraser" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boucherville" dst="Browne" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boucherville" dst="SunOS" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boucherville" dst="Varennes" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boucherville" dst="Jacques" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boucherville" dst="Thierry" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boucherville" dst="Lachapelle" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boucherville" dst="kV" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boucherville" dst="Yolande" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boucherville" dst="Pronovost" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boucherville" dst="SPICE" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boucherville" dst="Europe" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boucherville" dst="Roy" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boucherville" dst="Amadeus" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boucherville" dst="Intel" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boucherville" dst="Cambridge" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boucherville" dst="Tremblay" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boucherville" dst="UNIX" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boucherville" dst="Domey" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boucherville" dst="St_Bruno" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Boucherville" dst="Jean_Claude" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boucherville" dst="Doyon" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boucherville" dst="Fafard" symmetrical="NO"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boucherville" dst="Croteau" symmetrical="NO"><link_ctn id="175"/></route>
-   <route src="Boucherville" dst="Dodge" symmetrical="NO"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pointe_Claire" dst="Jacquelin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pointe_Claire" dst="Boivin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pointe_Claire" dst="Jean_Yves" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pointe_Claire" dst="TeX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pointe_Claire" dst="Geoff" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pointe_Claire" dst="Disney" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pointe_Claire" dst="iRMX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pointe_Claire" dst="McGee" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pointe_Claire" dst="Gatien" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pointe_Claire" dst="Laroche" symmetrical="NO"><link_ctn id="184"/></route>
-   <route src="Pointe_Claire" dst="Tanguay" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pointe_Claire" dst="Morin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pointe_Claire" dst="Ethernet" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pointe_Claire" dst="Bellemarre" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pointe_Claire" dst="Kuenning" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pointe_Claire" dst="Gaston" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pointe_Claire" dst="Harry" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pointe_Claire" dst="Bousquet" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pointe_Claire" dst="Paul" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pointe_Claire" dst="St_Jean" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pointe_Claire" dst="Jill" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pointe_Claire" dst="Marcel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pointe_Claire" dst="Wright" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pointe_Claire" dst="Jackson" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pointe_Claire" dst="Fernand" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pointe_Claire" dst="Soucy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pointe_Claire" dst="Ste_Julie" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pointe_Claire" dst="Victoria" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pointe_Claire" dst="Lessard" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pointe_Claire" dst="Florient" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pointe_Claire" dst="Marcoux" symmetrical="NO"><link_ctn id="184"/><link_ctn id="186"/></route>
-   <route src="Pointe_Claire" dst="Gavrel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Pointe_Claire" dst="Bescherelle" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pointe_Claire" dst="Pierre" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Pointe_Claire" dst="Jamie" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pointe_Claire" dst="Rubin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pointe_Claire" dst="Olivier" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pointe_Claire" dst="Boucherville" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pointe_Claire" dst="Kansas" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pointe_Claire" dst="King" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pointe_Claire" dst="Lapointe" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Pointe_Claire" dst="Julian" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pointe_Claire" dst="Lafontaine" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pointe_Claire" dst="Gordon" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Pointe_Claire" dst="Drouin" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pointe_Claire" dst="Robert" symmetrical="NO"><link_ctn id="184"/><link_ctn id="187"/></route>
-   <route src="Pointe_Claire" dst="Jocelyne" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pointe_Claire" dst="Stephen" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pointe_Claire" dst="Provost" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pointe_Claire" dst="Juneau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pointe_Claire" dst="Casavant" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pointe_Claire" dst="St_Antoine" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pointe_Claire" dst="Louis" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pointe_Claire" dst="Julien" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pointe_Claire" dst="St_Paul" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Pointe_Claire" dst="Mathematica" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pointe_Claire" dst="LaTeX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pointe_Claire" dst="Sirois" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pointe_Claire" dst="Monique" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pointe_Claire" dst="Audy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pointe_Claire" dst="Bourassa" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Pointe_Claire" dst="OHara" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pointe_Claire" dst="Boston" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pointe_Claire" dst="Papineau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pointe_Claire" dst="Fraser" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pointe_Claire" dst="Browne" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pointe_Claire" dst="SunOS" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pointe_Claire" dst="Varennes" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pointe_Claire" dst="Jacques" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pointe_Claire" dst="Thierry" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pointe_Claire" dst="Lachapelle" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pointe_Claire" dst="kV" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pointe_Claire" dst="Yolande" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pointe_Claire" dst="Pronovost" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Pointe_Claire" dst="SPICE" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pointe_Claire" dst="Europe" symmetrical="NO"><link_ctn id="184"/><link_ctn id="185"/></route>
-   <route src="Pointe_Claire" dst="Roy" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Pointe_Claire" dst="Amadeus" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Pointe_Claire" dst="Intel" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pointe_Claire" dst="Cambridge" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pointe_Claire" dst="Tremblay" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pointe_Claire" dst="UNIX" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pointe_Claire" dst="Domey" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pointe_Claire" dst="St_Bruno" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pointe_Claire" dst="Jean_Claude" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pointe_Claire" dst="Doyon" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pointe_Claire" dst="Fafard" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pointe_Claire" dst="Croteau" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pointe_Claire" dst="Dodge" symmetrical="NO"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Kansas" dst="Jacquelin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Kansas" dst="Boivin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Kansas" dst="Jean_Yves" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Kansas" dst="TeX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Kansas" dst="Geoff" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Kansas" dst="Disney" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Kansas" dst="iRMX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Kansas" dst="McGee" symmetrical="NO"><link_ctn id="122"/></route>
-   <route src="Kansas" dst="Gatien" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Kansas" dst="Laroche" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Kansas" dst="Tanguay" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Kansas" dst="Morin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Kansas" dst="Ethernet" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Kansas" dst="Bellemarre" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Kansas" dst="Kuenning" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Kansas" dst="Gaston" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Kansas" dst="Harry" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Kansas" dst="Bousquet" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Kansas" dst="Paul" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Kansas" dst="St_Jean" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Kansas" dst="Jill" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Kansas" dst="Marcel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Kansas" dst="Wright" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Kansas" dst="Jackson" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Kansas" dst="Fernand" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Kansas" dst="Soucy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Kansas" dst="Ste_Julie" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Kansas" dst="Victoria" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Kansas" dst="Lessard" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Kansas" dst="Florient" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Kansas" dst="Marcoux" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Kansas" dst="Gavrel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Kansas" dst="Bescherelle" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Kansas" dst="Pierre" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Kansas" dst="Jamie" symmetrical="NO"><link_ctn id="122"/><link_ctn id="120"/></route>
-   <route src="Kansas" dst="Rubin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Kansas" dst="Olivier" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Kansas" dst="Boucherville" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Kansas" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Kansas" dst="King" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Kansas" dst="Lapointe" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Kansas" dst="Julian" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Kansas" dst="Lafontaine" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Kansas" dst="Gordon" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Kansas" dst="Drouin" symmetrical="NO"><link_ctn id="122"/><link_ctn id="123"/></route>
-   <route src="Kansas" dst="Robert" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Kansas" dst="Jocelyne" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Kansas" dst="Stephen" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Kansas" dst="Provost" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Kansas" dst="Juneau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Kansas" dst="Casavant" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Kansas" dst="St_Antoine" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Kansas" dst="Louis" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Kansas" dst="Julien" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Kansas" dst="St_Paul" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Kansas" dst="Mathematica" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Kansas" dst="LaTeX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Kansas" dst="Sirois" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Kansas" dst="Monique" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Kansas" dst="Audy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Kansas" dst="Bourassa" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Kansas" dst="OHara" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Kansas" dst="Boston" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Kansas" dst="Papineau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Kansas" dst="Fraser" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Kansas" dst="Browne" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Kansas" dst="SunOS" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Kansas" dst="Varennes" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Kansas" dst="Jacques" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Kansas" dst="Thierry" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Kansas" dst="Lachapelle" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Kansas" dst="kV" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Kansas" dst="Yolande" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Kansas" dst="Pronovost" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Kansas" dst="SPICE" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Kansas" dst="Europe" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Kansas" dst="Roy" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Kansas" dst="Amadeus" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Kansas" dst="Intel" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Kansas" dst="Cambridge" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Kansas" dst="Tremblay" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Kansas" dst="UNIX" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Kansas" dst="Domey" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Kansas" dst="St_Bruno" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Kansas" dst="Jean_Claude" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Kansas" dst="Doyon" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Kansas" dst="Fafard" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Kansas" dst="Croteau" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Kansas" dst="Dodge" symmetrical="NO"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="King" dst="Jacquelin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="King" dst="Boivin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="King" dst="Jean_Yves" symmetrical="NO"><link_ctn id="137"/><link_ctn id="138"/></route>
-   <route src="King" dst="TeX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="King" dst="Geoff" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="King" dst="Disney" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="King" dst="iRMX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="King" dst="McGee" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="King" dst="Gatien" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="King" dst="Laroche" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="King" dst="Tanguay" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="King" dst="Morin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="King" dst="Ethernet" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="King" dst="Bellemarre" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="King" dst="Kuenning" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="King" dst="Gaston" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="King" dst="Harry" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="King" dst="Bousquet" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="King" dst="Paul" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="King" dst="St_Jean" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="King" dst="Jill" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="King" dst="Marcel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="King" dst="Wright" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="King" dst="Jackson" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="King" dst="Fernand" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="King" dst="Soucy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="King" dst="Ste_Julie" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="King" dst="Victoria" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="King" dst="Lessard" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="King" dst="Florient" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="King" dst="Marcoux" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="King" dst="Gavrel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="King" dst="Bescherelle" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="King" dst="Pierre" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="King" dst="Jamie" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="King" dst="Rubin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="King" dst="Olivier" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="King" dst="Boucherville" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="King" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="King" dst="Kansas" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="King" dst="Lapointe" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="King" dst="Julian" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="King" dst="Lafontaine" symmetrical="NO"><link_ctn id="137"/><link_ctn id="139"/></route>
-   <route src="King" dst="Gordon" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="King" dst="Drouin" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="King" dst="Robert" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="King" dst="Jocelyne" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="King" dst="Stephen" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="King" dst="Provost" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="King" dst="Juneau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="King" dst="Casavant" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="King" dst="St_Antoine" symmetrical="NO"><link_ctn id="137"/></route>
-   <route src="King" dst="Louis" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="King" dst="Julien" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="King" dst="St_Paul" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="King" dst="Mathematica" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="King" dst="LaTeX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="King" dst="Sirois" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="King" dst="Monique" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="King" dst="Audy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="King" dst="Bourassa" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="King" dst="OHara" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="King" dst="Boston" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="King" dst="Papineau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="King" dst="Fraser" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="King" dst="Browne" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="King" dst="SunOS" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="King" dst="Varennes" symmetrical="NO"><link_ctn id="137"/><link_ctn id="136"/></route>
-   <route src="King" dst="Jacques" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="King" dst="Thierry" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="King" dst="Lachapelle" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="King" dst="kV" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="King" dst="Yolande" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="King" dst="Pronovost" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="King" dst="SPICE" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="King" dst="Europe" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="King" dst="Roy" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="King" dst="Amadeus" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="King" dst="Intel" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="King" dst="Cambridge" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="King" dst="Tremblay" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="King" dst="UNIX" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="King" dst="Domey" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="King" dst="St_Bruno" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="King" dst="Jean_Claude" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="King" dst="Doyon" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="King" dst="Fafard" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="King" dst="Croteau" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="King" dst="Dodge" symmetrical="NO"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lapointe" dst="Jacquelin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lapointe" dst="Boivin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lapointe" dst="Jean_Yves" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lapointe" dst="TeX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lapointe" dst="Geoff" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Lapointe" dst="Disney" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lapointe" dst="iRMX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lapointe" dst="McGee" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lapointe" dst="Gatien" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lapointe" dst="Laroche" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lapointe" dst="Tanguay" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lapointe" dst="Morin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lapointe" dst="Ethernet" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lapointe" dst="Bellemarre" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lapointe" dst="Kuenning" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lapointe" dst="Gaston" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lapointe" dst="Harry" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lapointe" dst="Bousquet" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lapointe" dst="Paul" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lapointe" dst="St_Jean" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lapointe" dst="Jill" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lapointe" dst="Marcel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lapointe" dst="Wright" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lapointe" dst="Jackson" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lapointe" dst="Fernand" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lapointe" dst="Soucy" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lapointe" dst="Ste_Julie" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lapointe" dst="Victoria" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lapointe" dst="Lessard" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lapointe" dst="Florient" symmetrical="NO"><link_ctn id="181"/></route>
-   <route src="Lapointe" dst="Marcoux" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lapointe" dst="Gavrel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lapointe" dst="Bescherelle" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lapointe" dst="Pierre" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lapointe" dst="Jamie" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lapointe" dst="Rubin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lapointe" dst="Olivier" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lapointe" dst="Boucherville" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lapointe" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lapointe" dst="Kansas" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lapointe" dst="King" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lapointe" dst="Julian" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lapointe" dst="Lafontaine" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lapointe" dst="Gordon" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lapointe" dst="Drouin" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lapointe" dst="Robert" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lapointe" dst="Jocelyne" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lapointe" dst="Stephen" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lapointe" dst="Provost" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lapointe" dst="Juneau" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lapointe" dst="Casavant" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lapointe" dst="St_Antoine" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lapointe" dst="Louis" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lapointe" dst="Julien" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lapointe" dst="St_Paul" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lapointe" dst="Mathematica" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lapointe" dst="LaTeX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lapointe" dst="Sirois" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lapointe" dst="Monique" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lapointe" dst="Audy" symmetrical="NO"><link_ctn id="183"/></route>
-   <route src="Lapointe" dst="Bourassa" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lapointe" dst="OHara" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lapointe" dst="Boston" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lapointe" dst="Papineau" symmetrical="NO"><link_ctn id="182"/></route>
-   <route src="Lapointe" dst="Fraser" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lapointe" dst="Browne" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lapointe" dst="SunOS" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lapointe" dst="Varennes" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lapointe" dst="Jacques" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lapointe" dst="Thierry" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lapointe" dst="Lachapelle" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lapointe" dst="kV" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Lapointe" dst="Yolande" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lapointe" dst="Pronovost" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lapointe" dst="SPICE" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lapointe" dst="Europe" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lapointe" dst="Roy" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lapointe" dst="Amadeus" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lapointe" dst="Intel" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lapointe" dst="Cambridge" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lapointe" dst="Tremblay" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lapointe" dst="UNIX" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lapointe" dst="Domey" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lapointe" dst="St_Bruno" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lapointe" dst="Jean_Claude" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lapointe" dst="Doyon" symmetrical="NO"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lapointe" dst="Fafard" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lapointe" dst="Croteau" symmetrical="NO"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lapointe" dst="Dodge" symmetrical="NO"><link_ctn id="180"/></route>
-   <route src="Julian" dst="Jacquelin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Julian" dst="Boivin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Julian" dst="Jean_Yves" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Julian" dst="TeX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Julian" dst="Geoff" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Julian" dst="Disney" symmetrical="NO"><link_ctn id="111"/></route>
-   <route src="Julian" dst="iRMX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Julian" dst="McGee" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Julian" dst="Gatien" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Julian" dst="Laroche" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Julian" dst="Tanguay" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Julian" dst="Morin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Julian" dst="Ethernet" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Julian" dst="Bellemarre" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="Julian" dst="Kuenning" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Julian" dst="Gaston" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Julian" dst="Harry" symmetrical="NO"><link_ctn id="108"/></route>
-   <route src="Julian" dst="Bousquet" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Julian" dst="Paul" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Julian" dst="St_Jean" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Julian" dst="Jill" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Julian" dst="Marcel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Julian" dst="Wright" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Julian" dst="Jackson" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Julian" dst="Fernand" symmetrical="NO"><link_ctn id="109"/></route>
-   <route src="Julian" dst="Soucy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Julian" dst="Ste_Julie" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Julian" dst="Victoria" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Julian" dst="Lessard" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Julian" dst="Florient" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Julian" dst="Marcoux" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Julian" dst="Gavrel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Julian" dst="Bescherelle" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Julian" dst="Pierre" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Julian" dst="Jamie" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Julian" dst="Rubin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Julian" dst="Olivier" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Julian" dst="Boucherville" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Julian" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Julian" dst="Kansas" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Julian" dst="King" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Julian" dst="Lapointe" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Julian" dst="Lafontaine" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Julian" dst="Gordon" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Julian" dst="Drouin" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Julian" dst="Robert" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Julian" dst="Jocelyne" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Julian" dst="Stephen" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Julian" dst="Provost" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Julian" dst="Juneau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Julian" dst="Casavant" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Julian" dst="St_Antoine" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Julian" dst="Louis" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Julian" dst="Julien" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Julian" dst="St_Paul" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Julian" dst="Mathematica" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Julian" dst="LaTeX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Julian" dst="Sirois" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Julian" dst="Monique" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Julian" dst="Audy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Julian" dst="Bourassa" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Julian" dst="OHara" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Julian" dst="Boston" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Julian" dst="Papineau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Julian" dst="Fraser" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Julian" dst="Browne" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Julian" dst="SunOS" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Julian" dst="Varennes" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Julian" dst="Jacques" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Julian" dst="Thierry" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Julian" dst="Lachapelle" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Julian" dst="kV" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Julian" dst="Yolande" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Julian" dst="Pronovost" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Julian" dst="SPICE" symmetrical="NO"><link_ctn id="110"/></route>
-   <route src="Julian" dst="Europe" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Julian" dst="Roy" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Julian" dst="Amadeus" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Julian" dst="Intel" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Julian" dst="Cambridge" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Julian" dst="Tremblay" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Julian" dst="UNIX" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Julian" dst="Domey" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Julian" dst="St_Bruno" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Julian" dst="Jean_Claude" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Julian" dst="Doyon" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Julian" dst="Fafard" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Julian" dst="Croteau" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Julian" dst="Dodge" symmetrical="NO"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lafontaine" dst="Jacquelin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Lafontaine" dst="Boivin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lafontaine" dst="Jean_Yves" symmetrical="NO"><link_ctn id="139"/><link_ctn id="138"/></route>
-   <route src="Lafontaine" dst="TeX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lafontaine" dst="Geoff" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Lafontaine" dst="Disney" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lafontaine" dst="iRMX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lafontaine" dst="McGee" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lafontaine" dst="Gatien" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lafontaine" dst="Laroche" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lafontaine" dst="Tanguay" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lafontaine" dst="Morin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lafontaine" dst="Ethernet" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lafontaine" dst="Bellemarre" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lafontaine" dst="Kuenning" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lafontaine" dst="Gaston" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lafontaine" dst="Harry" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lafontaine" dst="Bousquet" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lafontaine" dst="Paul" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lafontaine" dst="St_Jean" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lafontaine" dst="Jill" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lafontaine" dst="Marcel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lafontaine" dst="Wright" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Lafontaine" dst="Jackson" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Lafontaine" dst="Fernand" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lafontaine" dst="Soucy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lafontaine" dst="Ste_Julie" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lafontaine" dst="Victoria" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lafontaine" dst="Lessard" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lafontaine" dst="Florient" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lafontaine" dst="Marcoux" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lafontaine" dst="Gavrel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lafontaine" dst="Bescherelle" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lafontaine" dst="Pierre" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lafontaine" dst="Jamie" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lafontaine" dst="Rubin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Lafontaine" dst="Olivier" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lafontaine" dst="Boucherville" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lafontaine" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lafontaine" dst="Kansas" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lafontaine" dst="King" symmetrical="NO"><link_ctn id="139"/><link_ctn id="137"/></route>
-   <route src="Lafontaine" dst="Lapointe" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lafontaine" dst="Julian" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lafontaine" dst="Gordon" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lafontaine" dst="Drouin" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lafontaine" dst="Robert" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lafontaine" dst="Jocelyne" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lafontaine" dst="Stephen" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lafontaine" dst="Provost" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lafontaine" dst="Juneau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lafontaine" dst="Casavant" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lafontaine" dst="St_Antoine" symmetrical="NO"><link_ctn id="139"/></route>
-   <route src="Lafontaine" dst="Louis" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lafontaine" dst="Julien" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lafontaine" dst="St_Paul" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lafontaine" dst="Mathematica" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lafontaine" dst="LaTeX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lafontaine" dst="Sirois" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lafontaine" dst="Monique" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lafontaine" dst="Audy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lafontaine" dst="Bourassa" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lafontaine" dst="OHara" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lafontaine" dst="Boston" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lafontaine" dst="Papineau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lafontaine" dst="Fraser" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lafontaine" dst="Browne" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lafontaine" dst="SunOS" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lafontaine" dst="Varennes" symmetrical="NO"><link_ctn id="139"/><link_ctn id="136"/></route>
-   <route src="Lafontaine" dst="Jacques" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lafontaine" dst="Thierry" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lafontaine" dst="Lachapelle" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Lafontaine" dst="kV" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Lafontaine" dst="Yolande" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lafontaine" dst="Pronovost" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lafontaine" dst="SPICE" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lafontaine" dst="Europe" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lafontaine" dst="Roy" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lafontaine" dst="Amadeus" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lafontaine" dst="Intel" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lafontaine" dst="Cambridge" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lafontaine" dst="Tremblay" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lafontaine" dst="UNIX" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lafontaine" dst="Domey" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lafontaine" dst="St_Bruno" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lafontaine" dst="Jean_Claude" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lafontaine" dst="Doyon" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lafontaine" dst="Fafard" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lafontaine" dst="Croteau" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lafontaine" dst="Dodge" symmetrical="NO"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Gordon" dst="Jacquelin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Gordon" dst="Boivin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Gordon" dst="Jean_Yves" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Gordon" dst="TeX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Gordon" dst="Geoff" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Gordon" dst="Disney" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Gordon" dst="iRMX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Gordon" dst="McGee" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Gordon" dst="Gatien" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Gordon" dst="Laroche" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Gordon" dst="Tanguay" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Gordon" dst="Morin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Gordon" dst="Ethernet" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Gordon" dst="Bellemarre" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Gordon" dst="Kuenning" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Gordon" dst="Gaston" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Gordon" dst="Harry" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Gordon" dst="Bousquet" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Gordon" dst="Paul" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Gordon" dst="St_Jean" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Gordon" dst="Jill" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Gordon" dst="Marcel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Gordon" dst="Wright" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Gordon" dst="Jackson" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Gordon" dst="Fernand" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Gordon" dst="Soucy" symmetrical="NO"><link_ctn id="191"/></route>
-   <route src="Gordon" dst="Ste_Julie" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Gordon" dst="Victoria" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Gordon" dst="Lessard" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Gordon" dst="Florient" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Gordon" dst="Marcoux" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Gordon" dst="Gavrel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Gordon" dst="Bescherelle" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Gordon" dst="Pierre" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Gordon" dst="Jamie" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Gordon" dst="Rubin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Gordon" dst="Olivier" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Gordon" dst="Boucherville" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Gordon" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Gordon" dst="Kansas" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Gordon" dst="King" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Gordon" dst="Lapointe" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Gordon" dst="Julian" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Gordon" dst="Lafontaine" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Gordon" dst="Drouin" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Gordon" dst="Robert" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Gordon" dst="Jocelyne" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Gordon" dst="Stephen" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Gordon" dst="Provost" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Gordon" dst="Juneau" symmetrical="NO"><link_ctn id="189"/></route>
-   <route src="Gordon" dst="Casavant" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Gordon" dst="St_Antoine" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Gordon" dst="Louis" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Gordon" dst="Julien" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Gordon" dst="St_Paul" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Gordon" dst="Mathematica" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Gordon" dst="LaTeX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Gordon" dst="Sirois" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Gordon" dst="Monique" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Gordon" dst="Audy" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Gordon" dst="Bourassa" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Gordon" dst="OHara" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Gordon" dst="Boston" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Gordon" dst="Papineau" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Gordon" dst="Fraser" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Gordon" dst="Browne" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Gordon" dst="SunOS" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Gordon" dst="Varennes" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Gordon" dst="Jacques" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Gordon" dst="Thierry" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Gordon" dst="Lachapelle" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Gordon" dst="kV" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Gordon" dst="Yolande" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Gordon" dst="Pronovost" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Gordon" dst="SPICE" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Gordon" dst="Europe" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Gordon" dst="Roy" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Gordon" dst="Amadeus" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Gordon" dst="Intel" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Gordon" dst="Cambridge" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Gordon" dst="Tremblay" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Gordon" dst="UNIX" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Gordon" dst="Domey" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Gordon" dst="St_Bruno" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Gordon" dst="Jean_Claude" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Gordon" dst="Doyon" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Gordon" dst="Fafard" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Gordon" dst="Croteau" symmetrical="NO"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Gordon" dst="Dodge" symmetrical="NO"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Drouin" dst="Jacquelin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Drouin" dst="Boivin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Drouin" dst="Jean_Yves" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Drouin" dst="TeX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Drouin" dst="Geoff" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Drouin" dst="Disney" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Drouin" dst="iRMX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Drouin" dst="McGee" symmetrical="NO"><link_ctn id="123"/></route>
-   <route src="Drouin" dst="Gatien" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Drouin" dst="Laroche" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Drouin" dst="Tanguay" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Drouin" dst="Morin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Drouin" dst="Ethernet" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Drouin" dst="Bellemarre" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Drouin" dst="Kuenning" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Drouin" dst="Gaston" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Drouin" dst="Harry" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Drouin" dst="Bousquet" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Drouin" dst="Paul" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Drouin" dst="St_Jean" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Drouin" dst="Jill" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Drouin" dst="Marcel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Drouin" dst="Wright" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Drouin" dst="Jackson" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Drouin" dst="Fernand" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Drouin" dst="Soucy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Drouin" dst="Ste_Julie" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Drouin" dst="Victoria" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Drouin" dst="Lessard" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Drouin" dst="Florient" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Drouin" dst="Marcoux" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Drouin" dst="Gavrel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Drouin" dst="Bescherelle" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Drouin" dst="Pierre" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Drouin" dst="Jamie" symmetrical="NO"><link_ctn id="123"/><link_ctn id="120"/></route>
-   <route src="Drouin" dst="Rubin" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Drouin" dst="Olivier" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Drouin" dst="Boucherville" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Drouin" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Drouin" dst="Kansas" symmetrical="NO"><link_ctn id="123"/><link_ctn id="122"/></route>
-   <route src="Drouin" dst="King" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Drouin" dst="Lapointe" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Drouin" dst="Julian" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Drouin" dst="Lafontaine" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Drouin" dst="Gordon" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Drouin" dst="Robert" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Drouin" dst="Jocelyne" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Drouin" dst="Stephen" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Drouin" dst="Provost" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Drouin" dst="Juneau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Drouin" dst="Casavant" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Drouin" dst="St_Antoine" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Drouin" dst="Louis" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Drouin" dst="Julien" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Drouin" dst="St_Paul" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Drouin" dst="Mathematica" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Drouin" dst="LaTeX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Drouin" dst="Sirois" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Drouin" dst="Monique" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Drouin" dst="Audy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Drouin" dst="Bourassa" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Drouin" dst="OHara" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Drouin" dst="Boston" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Drouin" dst="Papineau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Drouin" dst="Fraser" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Drouin" dst="Browne" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Drouin" dst="SunOS" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Drouin" dst="Varennes" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Drouin" dst="Jacques" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Drouin" dst="Thierry" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Drouin" dst="Lachapelle" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Drouin" dst="kV" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Drouin" dst="Yolande" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Drouin" dst="Pronovost" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Drouin" dst="SPICE" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Drouin" dst="Europe" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Drouin" dst="Roy" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Drouin" dst="Amadeus" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Drouin" dst="Intel" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Drouin" dst="Cambridge" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Drouin" dst="Tremblay" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Drouin" dst="UNIX" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Drouin" dst="Domey" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/></route>
-   <route src="Drouin" dst="St_Bruno" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Drouin" dst="Jean_Claude" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Drouin" dst="Doyon" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Drouin" dst="Fafard" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Drouin" dst="Croteau" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Drouin" dst="Dodge" symmetrical="NO"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Robert" dst="Jacquelin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Robert" dst="Boivin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Robert" dst="Jean_Yves" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Robert" dst="TeX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Robert" dst="Geoff" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Robert" dst="Disney" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Robert" dst="iRMX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Robert" dst="McGee" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Robert" dst="Gatien" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Robert" dst="Laroche" symmetrical="NO"><link_ctn id="187"/></route>
-   <route src="Robert" dst="Tanguay" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Robert" dst="Morin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Robert" dst="Ethernet" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Robert" dst="Bellemarre" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Robert" dst="Kuenning" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Robert" dst="Gaston" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Robert" dst="Harry" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Robert" dst="Bousquet" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Robert" dst="Paul" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Robert" dst="St_Jean" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Robert" dst="Jill" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Robert" dst="Marcel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Robert" dst="Wright" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Robert" dst="Jackson" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Robert" dst="Fernand" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Robert" dst="Soucy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Robert" dst="Ste_Julie" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Robert" dst="Victoria" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Robert" dst="Lessard" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Robert" dst="Florient" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Robert" dst="Marcoux" symmetrical="NO"><link_ctn id="187"/><link_ctn id="186"/></route>
-   <route src="Robert" dst="Gavrel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Robert" dst="Bescherelle" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Robert" dst="Pierre" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Robert" dst="Jamie" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Robert" dst="Rubin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Robert" dst="Olivier" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Robert" dst="Boucherville" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Robert" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="187"/><link_ctn id="184"/></route>
-   <route src="Robert" dst="Kansas" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Robert" dst="King" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Robert" dst="Lapointe" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Robert" dst="Julian" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Robert" dst="Lafontaine" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Robert" dst="Gordon" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Robert" dst="Drouin" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Robert" dst="Jocelyne" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Robert" dst="Stephen" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Robert" dst="Provost" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Robert" dst="Juneau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Robert" dst="Casavant" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Robert" dst="St_Antoine" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Robert" dst="Louis" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Robert" dst="Julien" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Robert" dst="St_Paul" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Robert" dst="Mathematica" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Robert" dst="LaTeX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Robert" dst="Sirois" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Robert" dst="Monique" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Robert" dst="Audy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Robert" dst="Bourassa" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Robert" dst="OHara" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Robert" dst="Boston" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Robert" dst="Papineau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Robert" dst="Fraser" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Robert" dst="Browne" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Robert" dst="SunOS" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Robert" dst="Varennes" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Robert" dst="Jacques" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Robert" dst="Thierry" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Robert" dst="Lachapelle" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Robert" dst="kV" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Robert" dst="Yolande" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Robert" dst="Pronovost" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Robert" dst="SPICE" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Robert" dst="Europe" symmetrical="NO"><link_ctn id="187"/><link_ctn id="185"/></route>
-   <route src="Robert" dst="Roy" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Robert" dst="Amadeus" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Robert" dst="Intel" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Robert" dst="Cambridge" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Robert" dst="Tremblay" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Robert" dst="UNIX" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Robert" dst="Domey" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Robert" dst="St_Bruno" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Robert" dst="Jean_Claude" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Robert" dst="Doyon" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Robert" dst="Fafard" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Robert" dst="Croteau" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Robert" dst="Dodge" symmetrical="NO"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jocelyne" dst="Jacquelin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jocelyne" dst="Boivin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jocelyne" dst="Jean_Yves" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jocelyne" dst="TeX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jocelyne" dst="Geoff" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jocelyne" dst="Disney" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jocelyne" dst="iRMX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="172"/></route>
-   <route src="Jocelyne" dst="McGee" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jocelyne" dst="Gatien" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jocelyne" dst="Laroche" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Jocelyne" dst="Tanguay" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jocelyne" dst="Morin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jocelyne" dst="Ethernet" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jocelyne" dst="Bellemarre" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jocelyne" dst="Kuenning" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jocelyne" dst="Gaston" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jocelyne" dst="Harry" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jocelyne" dst="Bousquet" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jocelyne" dst="Paul" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jocelyne" dst="St_Jean" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jocelyne" dst="Jill" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Jocelyne" dst="Marcel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jocelyne" dst="Wright" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jocelyne" dst="Jackson" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jocelyne" dst="Fernand" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jocelyne" dst="Soucy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jocelyne" dst="Ste_Julie" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Jocelyne" dst="Victoria" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jocelyne" dst="Lessard" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jocelyne" dst="Florient" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jocelyne" dst="Marcoux" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jocelyne" dst="Gavrel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jocelyne" dst="Bescherelle" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jocelyne" dst="Pierre" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jocelyne" dst="Jamie" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jocelyne" dst="Rubin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jocelyne" dst="Olivier" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jocelyne" dst="Boucherville" symmetrical="NO"><link_ctn id="173"/></route>
-   <route src="Jocelyne" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jocelyne" dst="Kansas" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jocelyne" dst="King" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jocelyne" dst="Lapointe" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Jocelyne" dst="Julian" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jocelyne" dst="Lafontaine" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jocelyne" dst="Gordon" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Jocelyne" dst="Drouin" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jocelyne" dst="Robert" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jocelyne" dst="Stephen" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jocelyne" dst="Provost" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jocelyne" dst="Juneau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jocelyne" dst="Casavant" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jocelyne" dst="St_Antoine" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jocelyne" dst="Louis" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jocelyne" dst="Julien" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jocelyne" dst="St_Paul" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jocelyne" dst="Mathematica" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jocelyne" dst="LaTeX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jocelyne" dst="Sirois" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jocelyne" dst="Monique" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jocelyne" dst="Audy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jocelyne" dst="Bourassa" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jocelyne" dst="OHara" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jocelyne" dst="Boston" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jocelyne" dst="Papineau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jocelyne" dst="Fraser" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jocelyne" dst="Browne" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jocelyne" dst="SunOS" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jocelyne" dst="Varennes" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jocelyne" dst="Jacques" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jocelyne" dst="Thierry" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jocelyne" dst="Lachapelle" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jocelyne" dst="kV" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jocelyne" dst="Yolande" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jocelyne" dst="Pronovost" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jocelyne" dst="SPICE" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jocelyne" dst="Europe" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jocelyne" dst="Roy" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jocelyne" dst="Amadeus" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jocelyne" dst="Intel" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jocelyne" dst="Cambridge" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jocelyne" dst="Tremblay" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jocelyne" dst="UNIX" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jocelyne" dst="Domey" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jocelyne" dst="St_Bruno" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jocelyne" dst="Jean_Claude" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jocelyne" dst="Doyon" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jocelyne" dst="Fafard" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jocelyne" dst="Croteau" symmetrical="NO"><link_ctn id="173"/><link_ctn id="175"/></route>
-   <route src="Jocelyne" dst="Dodge" symmetrical="NO"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Stephen" dst="Jacquelin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Stephen" dst="Boivin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Stephen" dst="Jean_Yves" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Stephen" dst="TeX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="100"/></route>
-   <route src="Stephen" dst="Geoff" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Stephen" dst="Disney" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Stephen" dst="iRMX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Stephen" dst="McGee" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Stephen" dst="Gatien" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Stephen" dst="Laroche" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Stephen" dst="Tanguay" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Stephen" dst="Morin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Stephen" dst="Ethernet" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Stephen" dst="Bellemarre" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="Stephen" dst="Kuenning" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Stephen" dst="Gaston" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Stephen" dst="Harry" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Stephen" dst="Bousquet" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Stephen" dst="Paul" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Stephen" dst="St_Jean" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Stephen" dst="Jill" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Stephen" dst="Marcel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Stephen" dst="Wright" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Stephen" dst="Jackson" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Stephen" dst="Fernand" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Stephen" dst="Soucy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Stephen" dst="Ste_Julie" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Stephen" dst="Victoria" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Stephen" dst="Lessard" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Stephen" dst="Florient" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Stephen" dst="Marcoux" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Stephen" dst="Gavrel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Stephen" dst="Bescherelle" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Stephen" dst="Pierre" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Stephen" dst="Jamie" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Stephen" dst="Rubin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Stephen" dst="Olivier" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Stephen" dst="Boucherville" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Stephen" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Stephen" dst="Kansas" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Stephen" dst="King" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Stephen" dst="Lapointe" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Stephen" dst="Julian" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Stephen" dst="Lafontaine" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Stephen" dst="Gordon" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Stephen" dst="Drouin" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Stephen" dst="Robert" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Stephen" dst="Jocelyne" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Stephen" dst="Provost" symmetrical="NO"><link_ctn id="101"/><link_ctn id="103"/></route>
-   <route src="Stephen" dst="Juneau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Stephen" dst="Casavant" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Stephen" dst="St_Antoine" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Stephen" dst="Louis" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Stephen" dst="Julien" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Stephen" dst="St_Paul" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Stephen" dst="Mathematica" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Stephen" dst="LaTeX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Stephen" dst="Sirois" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Stephen" dst="Monique" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Stephen" dst="Audy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Stephen" dst="Bourassa" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Stephen" dst="OHara" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Stephen" dst="Boston" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Stephen" dst="Papineau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Stephen" dst="Fraser" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Stephen" dst="Browne" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Stephen" dst="SunOS" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Stephen" dst="Varennes" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Stephen" dst="Jacques" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Stephen" dst="Thierry" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Stephen" dst="Lachapelle" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Stephen" dst="kV" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Stephen" dst="Yolande" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Stephen" dst="Pronovost" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Stephen" dst="SPICE" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Stephen" dst="Europe" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Stephen" dst="Roy" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Stephen" dst="Amadeus" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Stephen" dst="Intel" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Stephen" dst="Cambridge" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Stephen" dst="Tremblay" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Stephen" dst="UNIX" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Stephen" dst="Domey" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Stephen" dst="St_Bruno" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Stephen" dst="Jean_Claude" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Stephen" dst="Doyon" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Stephen" dst="Fafard" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Stephen" dst="Croteau" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Stephen" dst="Dodge" symmetrical="NO"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Provost" dst="Jacquelin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Provost" dst="Boivin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Provost" dst="Jean_Yves" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Provost" dst="TeX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="100"/></route>
-   <route src="Provost" dst="Geoff" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Provost" dst="Disney" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Provost" dst="iRMX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Provost" dst="McGee" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Provost" dst="Gatien" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Provost" dst="Laroche" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Provost" dst="Tanguay" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Provost" dst="Morin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Provost" dst="Ethernet" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Provost" dst="Bellemarre" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/></route>
-   <route src="Provost" dst="Kuenning" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Provost" dst="Gaston" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Provost" dst="Harry" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Provost" dst="Bousquet" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Provost" dst="Paul" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Provost" dst="St_Jean" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Provost" dst="Jill" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Provost" dst="Marcel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Provost" dst="Wright" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Provost" dst="Jackson" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Provost" dst="Fernand" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Provost" dst="Soucy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Provost" dst="Ste_Julie" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Provost" dst="Victoria" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Provost" dst="Lessard" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Provost" dst="Florient" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Provost" dst="Marcoux" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Provost" dst="Gavrel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Provost" dst="Bescherelle" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Provost" dst="Pierre" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Provost" dst="Jamie" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Provost" dst="Rubin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Provost" dst="Olivier" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Provost" dst="Boucherville" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Provost" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Provost" dst="Kansas" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Provost" dst="King" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Provost" dst="Lapointe" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Provost" dst="Julian" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Provost" dst="Lafontaine" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Provost" dst="Gordon" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Provost" dst="Drouin" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Provost" dst="Robert" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Provost" dst="Jocelyne" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Provost" dst="Stephen" symmetrical="NO"><link_ctn id="103"/><link_ctn id="101"/></route>
-   <route src="Provost" dst="Juneau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Provost" dst="Casavant" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Provost" dst="St_Antoine" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Provost" dst="Louis" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Provost" dst="Julien" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Provost" dst="St_Paul" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Provost" dst="Mathematica" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Provost" dst="LaTeX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Provost" dst="Sirois" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Provost" dst="Monique" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Provost" dst="Audy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Provost" dst="Bourassa" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Provost" dst="OHara" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Provost" dst="Boston" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Provost" dst="Papineau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Provost" dst="Fraser" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Provost" dst="Browne" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Provost" dst="SunOS" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Provost" dst="Varennes" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Provost" dst="Jacques" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Provost" dst="Thierry" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Provost" dst="Lachapelle" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Provost" dst="kV" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Provost" dst="Yolande" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Provost" dst="Pronovost" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Provost" dst="SPICE" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Provost" dst="Europe" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Provost" dst="Roy" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Provost" dst="Amadeus" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Provost" dst="Intel" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Provost" dst="Cambridge" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Provost" dst="Tremblay" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Provost" dst="UNIX" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Provost" dst="Domey" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Provost" dst="St_Bruno" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Provost" dst="Jean_Claude" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Provost" dst="Doyon" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Provost" dst="Fafard" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Provost" dst="Croteau" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Provost" dst="Dodge" symmetrical="NO"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Juneau" dst="Jacquelin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Juneau" dst="Boivin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Juneau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Juneau" dst="TeX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Juneau" dst="Geoff" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Juneau" dst="Disney" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Juneau" dst="iRMX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Juneau" dst="McGee" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Juneau" dst="Gatien" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Juneau" dst="Laroche" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Juneau" dst="Tanguay" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Juneau" dst="Morin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Juneau" dst="Ethernet" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Juneau" dst="Bellemarre" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Juneau" dst="Kuenning" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Juneau" dst="Gaston" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Juneau" dst="Harry" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Juneau" dst="Bousquet" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Juneau" dst="Paul" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Juneau" dst="St_Jean" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Juneau" dst="Jill" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Juneau" dst="Marcel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Juneau" dst="Wright" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Juneau" dst="Jackson" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Juneau" dst="Fernand" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Juneau" dst="Soucy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="191"/></route>
-   <route src="Juneau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Juneau" dst="Victoria" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Juneau" dst="Lessard" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Juneau" dst="Florient" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Juneau" dst="Marcoux" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Juneau" dst="Gavrel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Juneau" dst="Bescherelle" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Juneau" dst="Pierre" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Juneau" dst="Jamie" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Juneau" dst="Rubin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Juneau" dst="Olivier" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Juneau" dst="Boucherville" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Juneau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Juneau" dst="Kansas" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Juneau" dst="King" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Juneau" dst="Lapointe" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Juneau" dst="Julian" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Juneau" dst="Lafontaine" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Juneau" dst="Gordon" symmetrical="NO"><link_ctn id="189"/></route>
-   <route src="Juneau" dst="Drouin" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Juneau" dst="Robert" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Juneau" dst="Jocelyne" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Juneau" dst="Stephen" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Juneau" dst="Provost" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Juneau" dst="Casavant" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Juneau" dst="St_Antoine" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Juneau" dst="Louis" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Juneau" dst="Julien" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Juneau" dst="St_Paul" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Juneau" dst="Mathematica" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Juneau" dst="LaTeX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Juneau" dst="Sirois" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Juneau" dst="Monique" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Juneau" dst="Audy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Juneau" dst="Bourassa" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Juneau" dst="OHara" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Juneau" dst="Boston" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Juneau" dst="Papineau" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Juneau" dst="Fraser" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Juneau" dst="Browne" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Juneau" dst="SunOS" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Juneau" dst="Varennes" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Juneau" dst="Jacques" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Juneau" dst="Thierry" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Juneau" dst="Lachapelle" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Juneau" dst="kV" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Juneau" dst="Yolande" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Juneau" dst="Pronovost" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Juneau" dst="SPICE" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Juneau" dst="Europe" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Juneau" dst="Roy" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Juneau" dst="Amadeus" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Juneau" dst="Intel" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Juneau" dst="Cambridge" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Juneau" dst="Tremblay" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Juneau" dst="UNIX" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Juneau" dst="Domey" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Juneau" dst="St_Bruno" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Juneau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Juneau" dst="Doyon" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Juneau" dst="Fafard" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Juneau" dst="Croteau" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Juneau" dst="Dodge" symmetrical="NO"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Casavant" dst="Jacquelin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Casavant" dst="Boivin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Casavant" dst="Jean_Yves" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Casavant" dst="TeX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Casavant" dst="Geoff" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Casavant" dst="Disney" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Casavant" dst="iRMX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Casavant" dst="McGee" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Casavant" dst="Gatien" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Casavant" dst="Laroche" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Casavant" dst="Tanguay" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Casavant" dst="Morin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Casavant" dst="Ethernet" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Casavant" dst="Bellemarre" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Casavant" dst="Kuenning" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Casavant" dst="Gaston" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Casavant" dst="Harry" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Casavant" dst="Bousquet" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Casavant" dst="Paul" symmetrical="NO"><link_ctn id="92"/><link_ctn id="93"/></route>
-   <route src="Casavant" dst="St_Jean" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Casavant" dst="Jill" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Casavant" dst="Marcel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Casavant" dst="Wright" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Casavant" dst="Jackson" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Casavant" dst="Fernand" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Casavant" dst="Soucy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Casavant" dst="Ste_Julie" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Casavant" dst="Victoria" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Casavant" dst="Lessard" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Casavant" dst="Florient" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Casavant" dst="Marcoux" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Casavant" dst="Gavrel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Casavant" dst="Bescherelle" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Casavant" dst="Pierre" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Casavant" dst="Jamie" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Casavant" dst="Rubin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Casavant" dst="Olivier" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Casavant" dst="Boucherville" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Casavant" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Casavant" dst="Kansas" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Casavant" dst="King" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Casavant" dst="Lapointe" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Casavant" dst="Julian" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Casavant" dst="Lafontaine" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Casavant" dst="Gordon" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Casavant" dst="Drouin" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Casavant" dst="Robert" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Casavant" dst="Jocelyne" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Casavant" dst="Stephen" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Casavant" dst="Provost" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Casavant" dst="Juneau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Casavant" dst="St_Antoine" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Casavant" dst="Louis" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Casavant" dst="Julien" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Casavant" dst="St_Paul" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Casavant" dst="Mathematica" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Casavant" dst="LaTeX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Casavant" dst="Sirois" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Casavant" dst="Monique" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Casavant" dst="Audy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Casavant" dst="Bourassa" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Casavant" dst="OHara" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Casavant" dst="Boston" symmetrical="NO"><link_ctn id="92"/><link_ctn id="95"/></route>
-   <route src="Casavant" dst="Papineau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Casavant" dst="Fraser" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Casavant" dst="Browne" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Casavant" dst="SunOS" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Casavant" dst="Varennes" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Casavant" dst="Jacques" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Casavant" dst="Thierry" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Casavant" dst="Lachapelle" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Casavant" dst="kV" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Casavant" dst="Yolande" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Casavant" dst="Pronovost" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Casavant" dst="SPICE" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Casavant" dst="Europe" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Casavant" dst="Roy" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Casavant" dst="Amadeus" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Casavant" dst="Intel" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Casavant" dst="Cambridge" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Casavant" dst="Tremblay" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Casavant" dst="UNIX" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Casavant" dst="Domey" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Casavant" dst="St_Bruno" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Casavant" dst="Jean_Claude" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Casavant" dst="Doyon" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Casavant" dst="Fafard" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Casavant" dst="Croteau" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Casavant" dst="Dodge" symmetrical="NO"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Antoine" dst="Jacquelin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Antoine" dst="Boivin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Antoine" dst="Jean_Yves" symmetrical="NO"><link_ctn id="138"/></route>
-   <route src="St_Antoine" dst="TeX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Antoine" dst="Geoff" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="St_Antoine" dst="Disney" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Antoine" dst="iRMX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Antoine" dst="McGee" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Antoine" dst="Gatien" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Antoine" dst="Laroche" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Antoine" dst="Tanguay" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Antoine" dst="Morin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Antoine" dst="Ethernet" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Antoine" dst="Bellemarre" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Antoine" dst="Kuenning" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Antoine" dst="Gaston" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Antoine" dst="Harry" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Antoine" dst="Bousquet" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Antoine" dst="Paul" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Antoine" dst="St_Jean" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Antoine" dst="Jill" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Antoine" dst="Marcel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Antoine" dst="Wright" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Antoine" dst="Jackson" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="St_Antoine" dst="Fernand" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Antoine" dst="Soucy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Antoine" dst="Ste_Julie" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Antoine" dst="Victoria" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Antoine" dst="Lessard" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Antoine" dst="Florient" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Antoine" dst="Marcoux" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Antoine" dst="Gavrel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Antoine" dst="Bescherelle" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Antoine" dst="Pierre" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Antoine" dst="Jamie" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Antoine" dst="Rubin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Antoine" dst="Olivier" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Antoine" dst="Boucherville" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Antoine" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Antoine" dst="Kansas" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Antoine" dst="King" symmetrical="NO"><link_ctn id="137"/></route>
-   <route src="St_Antoine" dst="Lapointe" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Antoine" dst="Julian" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Antoine" dst="Lafontaine" symmetrical="NO"><link_ctn id="139"/></route>
-   <route src="St_Antoine" dst="Gordon" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Antoine" dst="Drouin" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Antoine" dst="Robert" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Antoine" dst="Jocelyne" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Antoine" dst="Stephen" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Antoine" dst="Provost" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Antoine" dst="Juneau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Antoine" dst="Casavant" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Antoine" dst="Louis" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Antoine" dst="Julien" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Antoine" dst="St_Paul" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Antoine" dst="Mathematica" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Antoine" dst="LaTeX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Antoine" dst="Sirois" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Antoine" dst="Monique" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Antoine" dst="Audy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Antoine" dst="Bourassa" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Antoine" dst="OHara" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Antoine" dst="Boston" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Antoine" dst="Papineau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Antoine" dst="Fraser" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Antoine" dst="Browne" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Antoine" dst="SunOS" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Antoine" dst="Varennes" symmetrical="NO"><link_ctn id="136"/></route>
-   <route src="St_Antoine" dst="Jacques" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Antoine" dst="Thierry" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Antoine" dst="Lachapelle" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Antoine" dst="kV" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="St_Antoine" dst="Yolande" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Antoine" dst="Pronovost" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Antoine" dst="SPICE" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Antoine" dst="Europe" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Antoine" dst="Roy" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Antoine" dst="Amadeus" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Antoine" dst="Intel" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Antoine" dst="Cambridge" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Antoine" dst="Tremblay" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Antoine" dst="UNIX" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Antoine" dst="Domey" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Antoine" dst="St_Bruno" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Antoine" dst="Jean_Claude" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Antoine" dst="Doyon" symmetrical="NO"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Antoine" dst="Fafard" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Antoine" dst="Croteau" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Antoine" dst="Dodge" symmetrical="NO"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Louis" dst="Jacquelin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Louis" dst="Boivin" symmetrical="NO"><link_ctn id="117"/></route>
-   <route src="Louis" dst="Jean_Yves" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Louis" dst="TeX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Louis" dst="Geoff" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Louis" dst="Disney" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Louis" dst="iRMX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Louis" dst="McGee" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Louis" dst="Gatien" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Louis" dst="Laroche" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Louis" dst="Tanguay" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Louis" dst="Morin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Louis" dst="Ethernet" symmetrical="NO"><link_ctn id="117"/><link_ctn id="118"/></route>
-   <route src="Louis" dst="Bellemarre" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Louis" dst="Kuenning" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Louis" dst="Gaston" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Louis" dst="Harry" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Louis" dst="Bousquet" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Louis" dst="Paul" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Louis" dst="St_Jean" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Louis" dst="Jill" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Louis" dst="Marcel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Louis" dst="Wright" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Louis" dst="Jackson" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Louis" dst="Fernand" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Louis" dst="Soucy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Louis" dst="Ste_Julie" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Louis" dst="Victoria" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Louis" dst="Lessard" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Louis" dst="Florient" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Louis" dst="Marcoux" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Louis" dst="Gavrel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Louis" dst="Bescherelle" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Louis" dst="Pierre" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Louis" dst="Jamie" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Louis" dst="Rubin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Louis" dst="Olivier" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Louis" dst="Boucherville" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Louis" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Louis" dst="Kansas" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Louis" dst="King" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Louis" dst="Lapointe" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Louis" dst="Julian" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Louis" dst="Lafontaine" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Louis" dst="Gordon" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Louis" dst="Drouin" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Louis" dst="Robert" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Louis" dst="Jocelyne" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Louis" dst="Stephen" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Louis" dst="Provost" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Louis" dst="Juneau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Louis" dst="Casavant" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Louis" dst="St_Antoine" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Louis" dst="Julien" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Louis" dst="St_Paul" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Louis" dst="Mathematica" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Louis" dst="LaTeX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Louis" dst="Sirois" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Louis" dst="Monique" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Louis" dst="Audy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Louis" dst="Bourassa" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Louis" dst="OHara" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Louis" dst="Boston" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Louis" dst="Papineau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Louis" dst="Fraser" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Louis" dst="Browne" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Louis" dst="SunOS" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Louis" dst="Varennes" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Louis" dst="Jacques" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Louis" dst="Thierry" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Louis" dst="Lachapelle" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Louis" dst="kV" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Louis" dst="Yolande" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Louis" dst="Pronovost" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Louis" dst="SPICE" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Louis" dst="Europe" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Louis" dst="Roy" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Louis" dst="Amadeus" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Louis" dst="Intel" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Louis" dst="Cambridge" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Louis" dst="Tremblay" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Louis" dst="UNIX" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Louis" dst="Domey" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Louis" dst="St_Bruno" symmetrical="NO"><link_ctn id="117"/><link_ctn id="119"/></route>
-   <route src="Louis" dst="Jean_Claude" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Louis" dst="Doyon" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Louis" dst="Fafard" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Louis" dst="Croteau" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Louis" dst="Dodge" symmetrical="NO"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Julien" dst="Jacquelin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Julien" dst="Boivin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Julien" dst="Jean_Yves" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Julien" dst="TeX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Julien" dst="Geoff" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Julien" dst="Disney" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Julien" dst="iRMX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Julien" dst="McGee" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Julien" dst="Gatien" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Julien" dst="Laroche" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Julien" dst="Tanguay" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Julien" dst="Morin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Julien" dst="Ethernet" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Julien" dst="Bellemarre" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Julien" dst="Kuenning" symmetrical="NO"><link_ctn id="134"/><link_ctn id="135"/></route>
-   <route src="Julien" dst="Gaston" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Julien" dst="Harry" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Julien" dst="Bousquet" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Julien" dst="Paul" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Julien" dst="St_Jean" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Julien" dst="Jill" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Julien" dst="Marcel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Julien" dst="Wright" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Julien" dst="Jackson" symmetrical="NO"><link_ctn id="134"/></route>
-   <route src="Julien" dst="Fernand" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Julien" dst="Soucy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Julien" dst="Ste_Julie" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Julien" dst="Victoria" symmetrical="NO"><link_ctn id="134"/><link_ctn id="133"/></route>
-   <route src="Julien" dst="Lessard" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Julien" dst="Florient" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Julien" dst="Marcoux" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Julien" dst="Gavrel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Julien" dst="Bescherelle" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Julien" dst="Pierre" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Julien" dst="Jamie" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Julien" dst="Rubin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Julien" dst="Olivier" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Julien" dst="Boucherville" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Julien" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Julien" dst="Kansas" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Julien" dst="King" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Julien" dst="Lapointe" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Julien" dst="Julian" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Julien" dst="Lafontaine" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Julien" dst="Gordon" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Julien" dst="Drouin" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Julien" dst="Robert" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Julien" dst="Jocelyne" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Julien" dst="Stephen" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Julien" dst="Provost" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Julien" dst="Juneau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Julien" dst="Casavant" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Julien" dst="St_Antoine" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Julien" dst="Louis" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Julien" dst="St_Paul" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Julien" dst="Mathematica" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Julien" dst="LaTeX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Julien" dst="Sirois" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Julien" dst="Monique" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Julien" dst="Audy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Julien" dst="Bourassa" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Julien" dst="OHara" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Julien" dst="Boston" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Julien" dst="Papineau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Julien" dst="Fraser" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Julien" dst="Browne" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Julien" dst="SunOS" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Julien" dst="Varennes" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Julien" dst="Jacques" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Julien" dst="Thierry" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Julien" dst="Lachapelle" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Julien" dst="kV" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Julien" dst="Yolande" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Julien" dst="Pronovost" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Julien" dst="SPICE" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Julien" dst="Europe" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Julien" dst="Roy" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Julien" dst="Amadeus" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Julien" dst="Intel" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Julien" dst="Cambridge" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Julien" dst="Tremblay" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Julien" dst="UNIX" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Julien" dst="Domey" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Julien" dst="St_Bruno" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Julien" dst="Jean_Claude" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Julien" dst="Doyon" symmetrical="NO"><link_ctn id="134"/><link_ctn id="132"/></route>
-   <route src="Julien" dst="Fafard" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Julien" dst="Croteau" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Julien" dst="Dodge" symmetrical="NO"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Paul" dst="Jacquelin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Paul" dst="Boivin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="St_Paul" dst="Jean_Yves" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Paul" dst="TeX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Paul" dst="Geoff" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Paul" dst="Disney" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Paul" dst="iRMX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Paul" dst="McGee" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Paul" dst="Gatien" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Paul" dst="Laroche" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Paul" dst="Tanguay" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Paul" dst="Morin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Paul" dst="Ethernet" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="St_Paul" dst="Bellemarre" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Paul" dst="Kuenning" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Paul" dst="Gaston" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Paul" dst="Harry" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Paul" dst="Bousquet" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Paul" dst="Paul" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Paul" dst="St_Jean" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Paul" dst="Jill" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Paul" dst="Marcel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Paul" dst="Wright" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Paul" dst="Jackson" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Paul" dst="Fernand" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Paul" dst="Soucy" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Paul" dst="Ste_Julie" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Paul" dst="Victoria" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Paul" dst="Lessard" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Paul" dst="Florient" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Paul" dst="Marcoux" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Paul" dst="Gavrel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Paul" dst="Bescherelle" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Paul" dst="Pierre" symmetrical="NO"><link_ctn id="165"/><link_ctn id="167"/></route>
-   <route src="St_Paul" dst="Jamie" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Paul" dst="Rubin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Paul" dst="Olivier" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Paul" dst="Boucherville" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Paul" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Paul" dst="Kansas" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Paul" dst="King" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Paul" dst="Lapointe" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Paul" dst="Julian" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Paul" dst="Lafontaine" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Paul" dst="Gordon" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Paul" dst="Drouin" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Paul" dst="Robert" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Paul" dst="Jocelyne" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Paul" dst="Stephen" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Paul" dst="Provost" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Paul" dst="Juneau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Paul" dst="Casavant" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Paul" dst="St_Antoine" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Paul" dst="Louis" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="St_Paul" dst="Julien" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Paul" dst="Mathematica" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Paul" dst="LaTeX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Paul" dst="Sirois" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Paul" dst="Monique" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Paul" dst="Audy" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Paul" dst="Bourassa" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Paul" dst="OHara" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Paul" dst="Boston" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Paul" dst="Papineau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Paul" dst="Fraser" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Paul" dst="Browne" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Paul" dst="SunOS" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Paul" dst="Varennes" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Paul" dst="Jacques" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Paul" dst="Thierry" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Paul" dst="Lachapelle" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Paul" dst="kV" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Paul" dst="Yolande" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Paul" dst="Pronovost" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Paul" dst="SPICE" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Paul" dst="Europe" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Paul" dst="Roy" symmetrical="NO"><link_ctn id="165"/></route>
-   <route src="St_Paul" dst="Amadeus" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Paul" dst="Intel" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Paul" dst="Cambridge" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Paul" dst="Tremblay" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Paul" dst="UNIX" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Paul" dst="Domey" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Paul" dst="St_Bruno" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="St_Paul" dst="Jean_Claude" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Paul" dst="Doyon" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Paul" dst="Fafard" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Paul" dst="Croteau" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Paul" dst="Dodge" symmetrical="NO"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Mathematica" dst="Jacquelin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Mathematica" dst="Boivin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Mathematica" dst="Jean_Yves" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Mathematica" dst="TeX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Mathematica" dst="Geoff" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Mathematica" dst="Disney" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Mathematica" dst="iRMX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Mathematica" dst="McGee" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Mathematica" dst="Gatien" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Mathematica" dst="Laroche" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Mathematica" dst="Tanguay" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Mathematica" dst="Morin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Mathematica" dst="Ethernet" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Mathematica" dst="Bellemarre" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Mathematica" dst="Kuenning" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Mathematica" dst="Gaston" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Mathematica" dst="Harry" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Mathematica" dst="Bousquet" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Mathematica" dst="Paul" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Mathematica" dst="St_Jean" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Mathematica" dst="Jill" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Mathematica" dst="Marcel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Mathematica" dst="Wright" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Mathematica" dst="Jackson" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Mathematica" dst="Fernand" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Mathematica" dst="Soucy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Mathematica" dst="Ste_Julie" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Mathematica" dst="Victoria" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Mathematica" dst="Lessard" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Mathematica" dst="Florient" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Mathematica" dst="Marcoux" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Mathematica" dst="Gavrel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Mathematica" dst="Bescherelle" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Mathematica" dst="Pierre" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Mathematica" dst="Jamie" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Mathematica" dst="Rubin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Mathematica" dst="Olivier" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Mathematica" dst="Boucherville" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Mathematica" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Mathematica" dst="Kansas" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Mathematica" dst="King" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Mathematica" dst="Lapointe" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Mathematica" dst="Julian" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Mathematica" dst="Lafontaine" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Mathematica" dst="Gordon" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Mathematica" dst="Drouin" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Mathematica" dst="Robert" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Mathematica" dst="Jocelyne" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Mathematica" dst="Stephen" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Mathematica" dst="Provost" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Mathematica" dst="Juneau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Mathematica" dst="Casavant" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Mathematica" dst="St_Antoine" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Mathematica" dst="Louis" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Mathematica" dst="Julien" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Mathematica" dst="St_Paul" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Mathematica" dst="LaTeX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Mathematica" dst="Sirois" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Mathematica" dst="Monique" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Mathematica" dst="Audy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Mathematica" dst="Bourassa" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Mathematica" dst="OHara" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Mathematica" dst="Boston" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Mathematica" dst="Papineau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Mathematica" dst="Fraser" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Mathematica" dst="Browne" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Mathematica" dst="SunOS" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Mathematica" dst="Varennes" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Mathematica" dst="Jacques" symmetrical="NO"><link_ctn id="157"/><link_ctn id="159"/></route>
-   <route src="Mathematica" dst="Thierry" symmetrical="NO"><link_ctn id="157"/><link_ctn id="156"/></route>
-   <route src="Mathematica" dst="Lachapelle" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Mathematica" dst="kV" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Mathematica" dst="Yolande" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Mathematica" dst="Pronovost" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Mathematica" dst="SPICE" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Mathematica" dst="Europe" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Mathematica" dst="Roy" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Mathematica" dst="Amadeus" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Mathematica" dst="Intel" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Mathematica" dst="Cambridge" symmetrical="NO"><link_ctn id="157"/><link_ctn id="158"/></route>
-   <route src="Mathematica" dst="Tremblay" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Mathematica" dst="UNIX" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Mathematica" dst="Domey" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Mathematica" dst="St_Bruno" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Mathematica" dst="Jean_Claude" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Mathematica" dst="Doyon" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Mathematica" dst="Fafard" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Mathematica" dst="Croteau" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Mathematica" dst="Dodge" symmetrical="NO"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="LaTeX" dst="Jacquelin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="LaTeX" dst="Boivin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="LaTeX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="LaTeX" dst="TeX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="LaTeX" dst="Geoff" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="LaTeX" dst="Disney" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="LaTeX" dst="iRMX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="LaTeX" dst="McGee" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="LaTeX" dst="Gatien" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="LaTeX" dst="Laroche" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="LaTeX" dst="Tanguay" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="LaTeX" dst="Morin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="LaTeX" dst="Ethernet" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="LaTeX" dst="Bellemarre" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="LaTeX" dst="Kuenning" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="LaTeX" dst="Gaston" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="LaTeX" dst="Harry" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="LaTeX" dst="Bousquet" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="LaTeX" dst="Paul" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="LaTeX" dst="St_Jean" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="LaTeX" dst="Jill" symmetrical="NO"><link_ctn id="177"/></route>
-   <route src="LaTeX" dst="Marcel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="LaTeX" dst="Wright" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="LaTeX" dst="Jackson" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="LaTeX" dst="Fernand" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="LaTeX" dst="Soucy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="LaTeX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="LaTeX" dst="Victoria" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="LaTeX" dst="Lessard" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="LaTeX" dst="Florient" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="LaTeX" dst="Marcoux" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="LaTeX" dst="Gavrel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="LaTeX" dst="Bescherelle" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="LaTeX" dst="Pierre" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="LaTeX" dst="Jamie" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="LaTeX" dst="Rubin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="LaTeX" dst="Olivier" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="LaTeX" dst="Boucherville" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="LaTeX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="LaTeX" dst="Kansas" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="LaTeX" dst="King" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="LaTeX" dst="Lapointe" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="LaTeX" dst="Julian" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="LaTeX" dst="Lafontaine" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="LaTeX" dst="Gordon" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="LaTeX" dst="Drouin" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="LaTeX" dst="Robert" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="LaTeX" dst="Jocelyne" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="LaTeX" dst="Stephen" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="LaTeX" dst="Provost" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="LaTeX" dst="Juneau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="LaTeX" dst="Casavant" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="LaTeX" dst="St_Antoine" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="LaTeX" dst="Louis" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="LaTeX" dst="Julien" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="LaTeX" dst="St_Paul" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="LaTeX" dst="Mathematica" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="LaTeX" dst="Sirois" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="LaTeX" dst="Monique" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="LaTeX" dst="Audy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="LaTeX" dst="Bourassa" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="LaTeX" dst="OHara" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="LaTeX" dst="Boston" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="LaTeX" dst="Papineau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="LaTeX" dst="Fraser" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="LaTeX" dst="Browne" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="LaTeX" dst="SunOS" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="LaTeX" dst="Varennes" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="LaTeX" dst="Jacques" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="LaTeX" dst="Thierry" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="LaTeX" dst="Lachapelle" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="LaTeX" dst="kV" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="LaTeX" dst="Yolande" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="LaTeX" dst="Pronovost" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="LaTeX" dst="SPICE" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="LaTeX" dst="Europe" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="LaTeX" dst="Roy" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="LaTeX" dst="Amadeus" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="LaTeX" dst="Intel" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="LaTeX" dst="Cambridge" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="LaTeX" dst="Tremblay" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="LaTeX" dst="UNIX" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="LaTeX" dst="Domey" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="LaTeX" dst="St_Bruno" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="LaTeX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="LaTeX" dst="Doyon" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="LaTeX" dst="Fafard" symmetrical="NO"><link_ctn id="177"/><link_ctn id="179"/></route>
-   <route src="LaTeX" dst="Croteau" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="LaTeX" dst="Dodge" symmetrical="NO"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Sirois" dst="Jacquelin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Sirois" dst="Boivin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Sirois" dst="Jean_Yves" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Sirois" dst="TeX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Sirois" dst="Geoff" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Sirois" dst="Disney" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Sirois" dst="iRMX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Sirois" dst="McGee" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Sirois" dst="Gatien" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Sirois" dst="Laroche" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Sirois" dst="Tanguay" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Sirois" dst="Morin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Sirois" dst="Ethernet" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Sirois" dst="Bellemarre" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Sirois" dst="Kuenning" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Sirois" dst="Gaston" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Sirois" dst="Harry" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Sirois" dst="Bousquet" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Sirois" dst="Paul" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Sirois" dst="St_Jean" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Sirois" dst="Jill" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Sirois" dst="Marcel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Sirois" dst="Wright" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Sirois" dst="Jackson" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Sirois" dst="Fernand" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Sirois" dst="Soucy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Sirois" dst="Ste_Julie" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Sirois" dst="Victoria" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Sirois" dst="Lessard" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Sirois" dst="Florient" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Sirois" dst="Marcoux" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Sirois" dst="Gavrel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Sirois" dst="Bescherelle" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Sirois" dst="Pierre" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Sirois" dst="Jamie" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Sirois" dst="Rubin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Sirois" dst="Olivier" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Sirois" dst="Boucherville" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Sirois" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Sirois" dst="Kansas" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Sirois" dst="King" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Sirois" dst="Lapointe" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Sirois" dst="Julian" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Sirois" dst="Lafontaine" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Sirois" dst="Gordon" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Sirois" dst="Drouin" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Sirois" dst="Robert" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Sirois" dst="Jocelyne" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Sirois" dst="Stephen" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Sirois" dst="Provost" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Sirois" dst="Juneau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Sirois" dst="Casavant" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Sirois" dst="St_Antoine" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Sirois" dst="Louis" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Sirois" dst="Julien" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Sirois" dst="St_Paul" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Sirois" dst="Mathematica" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Sirois" dst="LaTeX" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Sirois" dst="Monique" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Sirois" dst="Audy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Sirois" dst="Bourassa" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Sirois" dst="OHara" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Sirois" dst="Boston" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Sirois" dst="Papineau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Sirois" dst="Fraser" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Sirois" dst="Browne" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Sirois" dst="SunOS" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Sirois" dst="Varennes" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Sirois" dst="Jacques" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Sirois" dst="Thierry" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Sirois" dst="Lachapelle" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Sirois" dst="kV" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Sirois" dst="Yolande" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Sirois" dst="Pronovost" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Sirois" dst="SPICE" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Sirois" dst="Europe" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Sirois" dst="Roy" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Sirois" dst="Amadeus" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Sirois" dst="Intel" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Sirois" dst="Cambridge" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Sirois" dst="Tremblay" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Sirois" dst="UNIX" symmetrical="NO"><link_ctn id="129"/></route>
-   <route src="Sirois" dst="Domey" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Sirois" dst="St_Bruno" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Sirois" dst="Jean_Claude" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Sirois" dst="Doyon" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Sirois" dst="Fafard" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Sirois" dst="Croteau" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Sirois" dst="Dodge" symmetrical="NO"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Monique" dst="Jacquelin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Monique" dst="Boivin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Monique" dst="Jean_Yves" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Monique" dst="TeX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Monique" dst="Geoff" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Monique" dst="Disney" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Monique" dst="iRMX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Monique" dst="McGee" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Monique" dst="Gatien" symmetrical="NO"><link_ctn id="113"/><link_ctn id="115"/></route>
-   <route src="Monique" dst="Laroche" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Monique" dst="Tanguay" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Monique" dst="Morin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Monique" dst="Ethernet" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Monique" dst="Bellemarre" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Monique" dst="Kuenning" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Monique" dst="Gaston" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Monique" dst="Harry" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Monique" dst="Bousquet" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Monique" dst="Paul" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Monique" dst="St_Jean" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Monique" dst="Jill" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Monique" dst="Marcel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Monique" dst="Wright" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Monique" dst="Jackson" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Monique" dst="Fernand" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Monique" dst="Soucy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Monique" dst="Ste_Julie" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Monique" dst="Victoria" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Monique" dst="Lessard" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Monique" dst="Florient" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Monique" dst="Marcoux" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Monique" dst="Gavrel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Monique" dst="Bescherelle" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Monique" dst="Pierre" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Monique" dst="Jamie" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Monique" dst="Rubin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Monique" dst="Olivier" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Monique" dst="Boucherville" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Monique" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Monique" dst="Kansas" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Monique" dst="King" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Monique" dst="Lapointe" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Monique" dst="Julian" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Monique" dst="Lafontaine" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Monique" dst="Gordon" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Monique" dst="Drouin" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Monique" dst="Robert" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Monique" dst="Jocelyne" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Monique" dst="Stephen" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Monique" dst="Provost" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Monique" dst="Juneau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Monique" dst="Casavant" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Monique" dst="St_Antoine" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Monique" dst="Louis" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Monique" dst="Julien" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Monique" dst="St_Paul" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Monique" dst="Mathematica" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Monique" dst="LaTeX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Monique" dst="Sirois" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Monique" dst="Audy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Monique" dst="Bourassa" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Monique" dst="OHara" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Monique" dst="Boston" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Monique" dst="Papineau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Monique" dst="Fraser" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Monique" dst="Browne" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Monique" dst="SunOS" symmetrical="NO"><link_ctn id="113"/><link_ctn id="114"/></route>
-   <route src="Monique" dst="Varennes" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Monique" dst="Jacques" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Monique" dst="Thierry" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Monique" dst="Lachapelle" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Monique" dst="kV" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Monique" dst="Yolande" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Monique" dst="Pronovost" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Monique" dst="SPICE" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Monique" dst="Europe" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Monique" dst="Roy" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Monique" dst="Amadeus" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Monique" dst="Intel" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Monique" dst="Cambridge" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Monique" dst="Tremblay" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Monique" dst="UNIX" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Monique" dst="Domey" symmetrical="NO"><link_ctn id="113"/></route>
-   <route src="Monique" dst="St_Bruno" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Monique" dst="Jean_Claude" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Monique" dst="Doyon" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Monique" dst="Fafard" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Monique" dst="Croteau" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Monique" dst="Dodge" symmetrical="NO"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Audy" dst="Jacquelin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Audy" dst="Boivin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Audy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Audy" dst="TeX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Audy" dst="Geoff" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Audy" dst="Disney" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Audy" dst="iRMX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Audy" dst="McGee" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Audy" dst="Gatien" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Audy" dst="Laroche" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Audy" dst="Tanguay" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Audy" dst="Morin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Audy" dst="Ethernet" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Audy" dst="Bellemarre" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Audy" dst="Kuenning" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Audy" dst="Gaston" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Audy" dst="Harry" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Audy" dst="Bousquet" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Audy" dst="Paul" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Audy" dst="St_Jean" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Audy" dst="Jill" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Audy" dst="Marcel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Audy" dst="Wright" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Audy" dst="Jackson" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Audy" dst="Fernand" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Audy" dst="Soucy" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Audy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Audy" dst="Victoria" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Audy" dst="Lessard" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Audy" dst="Florient" symmetrical="NO"><link_ctn id="183"/><link_ctn id="181"/></route>
-   <route src="Audy" dst="Marcoux" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Audy" dst="Gavrel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Audy" dst="Bescherelle" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Audy" dst="Pierre" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Audy" dst="Jamie" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Audy" dst="Rubin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Audy" dst="Olivier" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Audy" dst="Boucherville" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Audy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Audy" dst="Kansas" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Audy" dst="King" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Audy" dst="Lapointe" symmetrical="NO"><link_ctn id="183"/></route>
-   <route src="Audy" dst="Julian" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Audy" dst="Lafontaine" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Audy" dst="Gordon" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Audy" dst="Drouin" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Audy" dst="Robert" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Audy" dst="Jocelyne" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Audy" dst="Stephen" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Audy" dst="Provost" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Audy" dst="Juneau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Audy" dst="Casavant" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Audy" dst="St_Antoine" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Audy" dst="Louis" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Audy" dst="Julien" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Audy" dst="St_Paul" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Audy" dst="Mathematica" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Audy" dst="LaTeX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Audy" dst="Sirois" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Audy" dst="Monique" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Audy" dst="Bourassa" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Audy" dst="OHara" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Audy" dst="Boston" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Audy" dst="Papineau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="182"/></route>
-   <route src="Audy" dst="Fraser" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Audy" dst="Browne" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Audy" dst="SunOS" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Audy" dst="Varennes" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Audy" dst="Jacques" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Audy" dst="Thierry" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Audy" dst="Lachapelle" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Audy" dst="kV" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Audy" dst="Yolande" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Audy" dst="Pronovost" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Audy" dst="SPICE" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Audy" dst="Europe" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Audy" dst="Roy" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Audy" dst="Amadeus" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Audy" dst="Intel" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Audy" dst="Cambridge" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Audy" dst="Tremblay" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Audy" dst="UNIX" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Audy" dst="Domey" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Audy" dst="St_Bruno" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Audy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Audy" dst="Doyon" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Audy" dst="Fafard" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Audy" dst="Croteau" symmetrical="NO"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Audy" dst="Dodge" symmetrical="NO"><link_ctn id="183"/><link_ctn id="180"/></route>
-   <route src="Bourassa" dst="Jacquelin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Bourassa" dst="Boivin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Bourassa" dst="Jean_Yves" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Bourassa" dst="TeX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Bourassa" dst="Geoff" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Bourassa" dst="Disney" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Bourassa" dst="iRMX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Bourassa" dst="McGee" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Bourassa" dst="Gatien" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Bourassa" dst="Laroche" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Bourassa" dst="Tanguay" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Bourassa" dst="Morin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Bourassa" dst="Ethernet" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Bourassa" dst="Bellemarre" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Bourassa" dst="Kuenning" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Bourassa" dst="Gaston" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Bourassa" dst="Harry" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Bourassa" dst="Bousquet" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Bourassa" dst="Paul" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Bourassa" dst="St_Jean" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Bourassa" dst="Jill" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Bourassa" dst="Marcel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Bourassa" dst="Wright" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Bourassa" dst="Jackson" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Bourassa" dst="Fernand" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Bourassa" dst="Soucy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Bourassa" dst="Ste_Julie" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Bourassa" dst="Victoria" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Bourassa" dst="Lessard" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Bourassa" dst="Florient" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Bourassa" dst="Marcoux" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Bourassa" dst="Gavrel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="148"/></route>
-   <route src="Bourassa" dst="Bescherelle" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Bourassa" dst="Pierre" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Bourassa" dst="Jamie" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Bourassa" dst="Rubin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Bourassa" dst="Olivier" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Bourassa" dst="Boucherville" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Bourassa" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Bourassa" dst="Kansas" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Bourassa" dst="King" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Bourassa" dst="Lapointe" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Bourassa" dst="Julian" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Bourassa" dst="Lafontaine" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Bourassa" dst="Gordon" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Bourassa" dst="Drouin" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Bourassa" dst="Robert" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Bourassa" dst="Jocelyne" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Bourassa" dst="Stephen" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Bourassa" dst="Provost" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Bourassa" dst="Juneau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Bourassa" dst="Casavant" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Bourassa" dst="St_Antoine" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Bourassa" dst="Louis" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Bourassa" dst="Julien" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Bourassa" dst="St_Paul" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Bourassa" dst="Mathematica" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Bourassa" dst="LaTeX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Bourassa" dst="Sirois" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Bourassa" dst="Monique" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Bourassa" dst="Audy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Bourassa" dst="OHara" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Bourassa" dst="Boston" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Bourassa" dst="Papineau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Bourassa" dst="Fraser" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Bourassa" dst="Browne" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Bourassa" dst="SunOS" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Bourassa" dst="Varennes" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Bourassa" dst="Jacques" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Bourassa" dst="Thierry" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Bourassa" dst="Lachapelle" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Bourassa" dst="kV" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Bourassa" dst="Yolande" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Bourassa" dst="Pronovost" symmetrical="NO"><link_ctn id="150"/><link_ctn id="151"/></route>
-   <route src="Bourassa" dst="SPICE" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Bourassa" dst="Europe" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Bourassa" dst="Roy" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Bourassa" dst="Amadeus" symmetrical="NO"><link_ctn id="150"/></route>
-   <route src="Bourassa" dst="Intel" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Bourassa" dst="Cambridge" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Bourassa" dst="Tremblay" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Bourassa" dst="UNIX" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Bourassa" dst="Domey" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Bourassa" dst="St_Bruno" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Bourassa" dst="Jean_Claude" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Bourassa" dst="Doyon" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Bourassa" dst="Fafard" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Bourassa" dst="Croteau" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Bourassa" dst="Dodge" symmetrical="NO"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="OHara" dst="Jacquelin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="OHara" dst="Boivin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="OHara" dst="Jean_Yves" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="OHara" dst="TeX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="OHara" dst="Geoff" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="OHara" dst="Disney" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="OHara" dst="iRMX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="OHara" dst="McGee" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="OHara" dst="Gatien" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="OHara" dst="Laroche" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="OHara" dst="Tanguay" symmetrical="NO"><link_ctn id="163"/><link_ctn id="162"/></route>
-   <route src="OHara" dst="Morin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="OHara" dst="Ethernet" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="OHara" dst="Bellemarre" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="OHara" dst="Kuenning" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="OHara" dst="Gaston" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="OHara" dst="Harry" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="OHara" dst="Bousquet" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="OHara" dst="Paul" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="OHara" dst="St_Jean" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="OHara" dst="Jill" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="OHara" dst="Marcel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="OHara" dst="Wright" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="OHara" dst="Jackson" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="OHara" dst="Fernand" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="OHara" dst="Soucy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="OHara" dst="Ste_Julie" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="OHara" dst="Victoria" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="OHara" dst="Lessard" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="OHara" dst="Florient" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="OHara" dst="Marcoux" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="OHara" dst="Gavrel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="OHara" dst="Bescherelle" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="OHara" dst="Pierre" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="OHara" dst="Jamie" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="OHara" dst="Rubin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="OHara" dst="Olivier" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="OHara" dst="Boucherville" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="OHara" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="OHara" dst="Kansas" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="OHara" dst="King" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="OHara" dst="Lapointe" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="OHara" dst="Julian" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="OHara" dst="Lafontaine" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="OHara" dst="Gordon" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="OHara" dst="Drouin" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="OHara" dst="Robert" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="OHara" dst="Jocelyne" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="OHara" dst="Stephen" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="OHara" dst="Provost" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="OHara" dst="Juneau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="OHara" dst="Casavant" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="OHara" dst="St_Antoine" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="OHara" dst="Louis" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="OHara" dst="Julien" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="OHara" dst="St_Paul" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="OHara" dst="Mathematica" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="OHara" dst="LaTeX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="OHara" dst="Sirois" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="OHara" dst="Monique" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="OHara" dst="Audy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="OHara" dst="Bourassa" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="OHara" dst="Boston" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="OHara" dst="Papineau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="OHara" dst="Fraser" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="OHara" dst="Browne" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="OHara" dst="SunOS" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="OHara" dst="Varennes" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="OHara" dst="Jacques" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="OHara" dst="Thierry" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="OHara" dst="Lachapelle" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="OHara" dst="kV" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="OHara" dst="Yolande" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="OHara" dst="Pronovost" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="OHara" dst="SPICE" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="OHara" dst="Europe" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="OHara" dst="Roy" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="OHara" dst="Amadeus" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="OHara" dst="Intel" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="OHara" dst="Cambridge" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="OHara" dst="Tremblay" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="OHara" dst="UNIX" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="OHara" dst="Domey" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="OHara" dst="St_Bruno" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="OHara" dst="Jean_Claude" symmetrical="NO"><link_ctn id="163"/><link_ctn id="160"/></route>
-   <route src="OHara" dst="Doyon" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="OHara" dst="Fafard" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="OHara" dst="Croteau" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="OHara" dst="Dodge" symmetrical="NO"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Boston" dst="Jacquelin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Boston" dst="Boivin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Boston" dst="Jean_Yves" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Boston" dst="TeX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Boston" dst="Geoff" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Boston" dst="Disney" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Boston" dst="iRMX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Boston" dst="McGee" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Boston" dst="Gatien" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Boston" dst="Laroche" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Boston" dst="Tanguay" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Boston" dst="Morin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Boston" dst="Ethernet" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Boston" dst="Bellemarre" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Boston" dst="Kuenning" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Boston" dst="Gaston" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Boston" dst="Harry" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Boston" dst="Bousquet" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Boston" dst="Paul" symmetrical="NO"><link_ctn id="95"/><link_ctn id="93"/></route>
-   <route src="Boston" dst="St_Jean" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Boston" dst="Jill" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Boston" dst="Marcel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Boston" dst="Wright" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Boston" dst="Jackson" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Boston" dst="Fernand" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Boston" dst="Soucy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Boston" dst="Ste_Julie" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Boston" dst="Victoria" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Boston" dst="Lessard" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Boston" dst="Florient" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Boston" dst="Marcoux" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Boston" dst="Gavrel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Boston" dst="Bescherelle" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Boston" dst="Pierre" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Boston" dst="Jamie" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Boston" dst="Rubin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Boston" dst="Olivier" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Boston" dst="Boucherville" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Boston" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Boston" dst="Kansas" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Boston" dst="King" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Boston" dst="Lapointe" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Boston" dst="Julian" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Boston" dst="Lafontaine" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Boston" dst="Gordon" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Boston" dst="Drouin" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Boston" dst="Robert" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Boston" dst="Jocelyne" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Boston" dst="Stephen" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Boston" dst="Provost" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Boston" dst="Juneau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Boston" dst="Casavant" symmetrical="NO"><link_ctn id="95"/><link_ctn id="92"/></route>
-   <route src="Boston" dst="St_Antoine" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Boston" dst="Louis" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Boston" dst="Julien" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Boston" dst="St_Paul" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Boston" dst="Mathematica" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Boston" dst="LaTeX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Boston" dst="Sirois" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Boston" dst="Monique" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Boston" dst="Audy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Boston" dst="Bourassa" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Boston" dst="OHara" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Boston" dst="Papineau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Boston" dst="Fraser" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Boston" dst="Browne" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Boston" dst="SunOS" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Boston" dst="Varennes" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Boston" dst="Jacques" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Boston" dst="Thierry" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Boston" dst="Lachapelle" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Boston" dst="kV" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Boston" dst="Yolande" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Boston" dst="Pronovost" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Boston" dst="SPICE" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Boston" dst="Europe" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Boston" dst="Roy" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Boston" dst="Amadeus" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Boston" dst="Intel" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Boston" dst="Cambridge" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Boston" dst="Tremblay" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Boston" dst="UNIX" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Boston" dst="Domey" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Boston" dst="St_Bruno" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Boston" dst="Jean_Claude" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Boston" dst="Doyon" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Boston" dst="Fafard" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Boston" dst="Croteau" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Boston" dst="Dodge" symmetrical="NO"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Papineau" dst="Jacquelin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Papineau" dst="Boivin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Papineau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Papineau" dst="TeX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Papineau" dst="Geoff" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Papineau" dst="Disney" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Papineau" dst="iRMX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Papineau" dst="McGee" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Papineau" dst="Gatien" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Papineau" dst="Laroche" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Papineau" dst="Tanguay" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Papineau" dst="Morin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Papineau" dst="Ethernet" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Papineau" dst="Bellemarre" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Papineau" dst="Kuenning" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Papineau" dst="Gaston" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Papineau" dst="Harry" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Papineau" dst="Bousquet" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Papineau" dst="Paul" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Papineau" dst="St_Jean" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Papineau" dst="Jill" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Papineau" dst="Marcel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Papineau" dst="Wright" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Papineau" dst="Jackson" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Papineau" dst="Fernand" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Papineau" dst="Soucy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Papineau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Papineau" dst="Victoria" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Papineau" dst="Lessard" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Papineau" dst="Florient" symmetrical="NO"><link_ctn id="182"/><link_ctn id="181"/></route>
-   <route src="Papineau" dst="Marcoux" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Papineau" dst="Gavrel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Papineau" dst="Bescherelle" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Papineau" dst="Pierre" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Papineau" dst="Jamie" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Papineau" dst="Rubin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Papineau" dst="Olivier" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Papineau" dst="Boucherville" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Papineau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Papineau" dst="Kansas" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Papineau" dst="King" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Papineau" dst="Lapointe" symmetrical="NO"><link_ctn id="182"/></route>
-   <route src="Papineau" dst="Julian" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Papineau" dst="Lafontaine" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Papineau" dst="Gordon" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Papineau" dst="Drouin" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Papineau" dst="Robert" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Papineau" dst="Jocelyne" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Papineau" dst="Stephen" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Papineau" dst="Provost" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Papineau" dst="Juneau" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Papineau" dst="Casavant" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Papineau" dst="St_Antoine" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Papineau" dst="Louis" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Papineau" dst="Julien" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Papineau" dst="St_Paul" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Papineau" dst="Mathematica" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Papineau" dst="LaTeX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Papineau" dst="Sirois" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Papineau" dst="Monique" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Papineau" dst="Audy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="183"/></route>
-   <route src="Papineau" dst="Bourassa" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Papineau" dst="OHara" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Papineau" dst="Boston" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Papineau" dst="Fraser" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Papineau" dst="Browne" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Papineau" dst="SunOS" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Papineau" dst="Varennes" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Papineau" dst="Jacques" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Papineau" dst="Thierry" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Papineau" dst="Lachapelle" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Papineau" dst="kV" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Papineau" dst="Yolande" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Papineau" dst="Pronovost" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Papineau" dst="SPICE" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Papineau" dst="Europe" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Papineau" dst="Roy" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Papineau" dst="Amadeus" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Papineau" dst="Intel" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Papineau" dst="Cambridge" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Papineau" dst="Tremblay" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Papineau" dst="UNIX" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Papineau" dst="Domey" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Papineau" dst="St_Bruno" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Papineau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Papineau" dst="Doyon" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Papineau" dst="Fafard" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Papineau" dst="Croteau" symmetrical="NO"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Papineau" dst="Dodge" symmetrical="NO"><link_ctn id="182"/><link_ctn id="180"/></route>
-   <route src="Fraser" dst="Jacquelin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fraser" dst="Boivin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fraser" dst="Jean_Yves" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fraser" dst="TeX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fraser" dst="Geoff" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fraser" dst="Disney" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Fraser" dst="iRMX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fraser" dst="McGee" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fraser" dst="Gatien" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fraser" dst="Laroche" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Fraser" dst="Tanguay" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fraser" dst="Morin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fraser" dst="Ethernet" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fraser" dst="Bellemarre" symmetrical="NO"><link_ctn id="96"/></route>
-   <route src="Fraser" dst="Kuenning" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fraser" dst="Gaston" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fraser" dst="Harry" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Fraser" dst="Bousquet" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fraser" dst="Paul" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fraser" dst="St_Jean" symmetrical="NO"><link_ctn id="96"/><link_ctn id="97"/></route>
-   <route src="Fraser" dst="Jill" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Fraser" dst="Marcel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fraser" dst="Wright" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fraser" dst="Jackson" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fraser" dst="Fernand" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Fraser" dst="Soucy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fraser" dst="Ste_Julie" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fraser" dst="Victoria" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fraser" dst="Lessard" symmetrical="NO"><link_ctn id="96"/><link_ctn id="99"/></route>
-   <route src="Fraser" dst="Florient" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fraser" dst="Marcoux" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fraser" dst="Gavrel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fraser" dst="Bescherelle" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fraser" dst="Pierre" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fraser" dst="Jamie" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fraser" dst="Rubin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fraser" dst="Olivier" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fraser" dst="Boucherville" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Fraser" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fraser" dst="Kansas" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fraser" dst="King" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fraser" dst="Lapointe" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Fraser" dst="Julian" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Fraser" dst="Lafontaine" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fraser" dst="Gordon" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Fraser" dst="Drouin" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fraser" dst="Robert" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fraser" dst="Jocelyne" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fraser" dst="Stephen" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fraser" dst="Provost" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fraser" dst="Juneau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fraser" dst="Casavant" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fraser" dst="St_Antoine" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fraser" dst="Louis" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fraser" dst="Julien" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fraser" dst="St_Paul" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fraser" dst="Mathematica" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fraser" dst="LaTeX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Fraser" dst="Sirois" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fraser" dst="Monique" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fraser" dst="Audy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fraser" dst="Bourassa" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fraser" dst="OHara" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fraser" dst="Boston" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fraser" dst="Papineau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fraser" dst="Browne" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fraser" dst="SunOS" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fraser" dst="Varennes" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fraser" dst="Jacques" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fraser" dst="Thierry" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fraser" dst="Lachapelle" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fraser" dst="kV" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fraser" dst="Yolande" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fraser" dst="Pronovost" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fraser" dst="SPICE" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Fraser" dst="Europe" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fraser" dst="Roy" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fraser" dst="Amadeus" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fraser" dst="Intel" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fraser" dst="Cambridge" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fraser" dst="Tremblay" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fraser" dst="UNIX" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fraser" dst="Domey" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fraser" dst="St_Bruno" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fraser" dst="Jean_Claude" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fraser" dst="Doyon" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fraser" dst="Fafard" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Fraser" dst="Croteau" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fraser" dst="Dodge" symmetrical="NO"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Browne" dst="Jacquelin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Browne" dst="Boivin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Browne" dst="Jean_Yves" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Browne" dst="TeX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Browne" dst="Geoff" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Browne" dst="Disney" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Browne" dst="iRMX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Browne" dst="McGee" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Browne" dst="Gatien" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Browne" dst="Laroche" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Browne" dst="Tanguay" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Browne" dst="Morin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Browne" dst="Ethernet" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Browne" dst="Bellemarre" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Browne" dst="Kuenning" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Browne" dst="Gaston" symmetrical="NO"><link_ctn id="152"/><link_ctn id="153"/></route>
-   <route src="Browne" dst="Harry" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Browne" dst="Bousquet" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Browne" dst="Paul" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Browne" dst="St_Jean" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Browne" dst="Jill" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Browne" dst="Marcel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="155"/></route>
-   <route src="Browne" dst="Wright" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Browne" dst="Jackson" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Browne" dst="Fernand" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Browne" dst="Soucy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Browne" dst="Ste_Julie" symmetrical="NO"><link_ctn id="152"/></route>
-   <route src="Browne" dst="Victoria" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Browne" dst="Lessard" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Browne" dst="Florient" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Browne" dst="Marcoux" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Browne" dst="Gavrel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Browne" dst="Bescherelle" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Browne" dst="Pierre" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Browne" dst="Jamie" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Browne" dst="Rubin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Browne" dst="Olivier" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Browne" dst="Boucherville" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Browne" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Browne" dst="Kansas" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Browne" dst="King" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Browne" dst="Lapointe" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Browne" dst="Julian" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Browne" dst="Lafontaine" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Browne" dst="Gordon" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Browne" dst="Drouin" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Browne" dst="Robert" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Browne" dst="Jocelyne" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Browne" dst="Stephen" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Browne" dst="Provost" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Browne" dst="Juneau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Browne" dst="Casavant" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Browne" dst="St_Antoine" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Browne" dst="Louis" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Browne" dst="Julien" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Browne" dst="St_Paul" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Browne" dst="Mathematica" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Browne" dst="LaTeX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Browne" dst="Sirois" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Browne" dst="Monique" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Browne" dst="Audy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Browne" dst="Bourassa" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Browne" dst="OHara" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Browne" dst="Boston" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Browne" dst="Papineau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Browne" dst="Fraser" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Browne" dst="SunOS" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Browne" dst="Varennes" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Browne" dst="Jacques" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Browne" dst="Thierry" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Browne" dst="Lachapelle" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Browne" dst="kV" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Browne" dst="Yolande" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Browne" dst="Pronovost" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Browne" dst="SPICE" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Browne" dst="Europe" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Browne" dst="Roy" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Browne" dst="Amadeus" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Browne" dst="Intel" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Browne" dst="Cambridge" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Browne" dst="Tremblay" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Browne" dst="UNIX" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Browne" dst="Domey" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Browne" dst="St_Bruno" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Browne" dst="Jean_Claude" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Browne" dst="Doyon" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Browne" dst="Fafard" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Browne" dst="Croteau" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Browne" dst="Dodge" symmetrical="NO"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="SunOS" dst="Jacquelin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="SunOS" dst="Boivin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="SunOS" dst="Jean_Yves" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="SunOS" dst="TeX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="SunOS" dst="Geoff" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="SunOS" dst="Disney" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="SunOS" dst="iRMX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="SunOS" dst="McGee" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="SunOS" dst="Gatien" symmetrical="NO"><link_ctn id="114"/><link_ctn id="115"/></route>
-   <route src="SunOS" dst="Laroche" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="SunOS" dst="Tanguay" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="SunOS" dst="Morin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="SunOS" dst="Ethernet" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="SunOS" dst="Bellemarre" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="SunOS" dst="Kuenning" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="SunOS" dst="Gaston" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="SunOS" dst="Harry" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="SunOS" dst="Bousquet" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="SunOS" dst="Paul" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="SunOS" dst="St_Jean" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="SunOS" dst="Jill" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="SunOS" dst="Marcel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="SunOS" dst="Wright" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="SunOS" dst="Jackson" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="SunOS" dst="Fernand" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="SunOS" dst="Soucy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="SunOS" dst="Ste_Julie" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="SunOS" dst="Victoria" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="SunOS" dst="Lessard" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="SunOS" dst="Florient" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="SunOS" dst="Marcoux" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="SunOS" dst="Gavrel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="SunOS" dst="Bescherelle" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="SunOS" dst="Pierre" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="SunOS" dst="Jamie" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="SunOS" dst="Rubin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="SunOS" dst="Olivier" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="SunOS" dst="Boucherville" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="SunOS" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="SunOS" dst="Kansas" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="SunOS" dst="King" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="SunOS" dst="Lapointe" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="SunOS" dst="Julian" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="SunOS" dst="Lafontaine" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="SunOS" dst="Gordon" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="SunOS" dst="Drouin" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="SunOS" dst="Robert" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="SunOS" dst="Jocelyne" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="SunOS" dst="Stephen" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="SunOS" dst="Provost" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="SunOS" dst="Juneau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="SunOS" dst="Casavant" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="SunOS" dst="St_Antoine" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="SunOS" dst="Louis" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="SunOS" dst="Julien" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="SunOS" dst="St_Paul" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="SunOS" dst="Mathematica" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="SunOS" dst="LaTeX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="SunOS" dst="Sirois" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="SunOS" dst="Monique" symmetrical="NO"><link_ctn id="114"/><link_ctn id="113"/></route>
-   <route src="SunOS" dst="Audy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="SunOS" dst="Bourassa" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="SunOS" dst="OHara" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="SunOS" dst="Boston" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="SunOS" dst="Papineau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="SunOS" dst="Fraser" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="SunOS" dst="Browne" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="SunOS" dst="Varennes" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="SunOS" dst="Jacques" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="SunOS" dst="Thierry" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="SunOS" dst="Lachapelle" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="SunOS" dst="kV" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="SunOS" dst="Yolande" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="SunOS" dst="Pronovost" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="SunOS" dst="SPICE" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="SunOS" dst="Europe" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="SunOS" dst="Roy" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="SunOS" dst="Amadeus" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="SunOS" dst="Intel" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="SunOS" dst="Cambridge" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="SunOS" dst="Tremblay" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="SunOS" dst="UNIX" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="SunOS" dst="Domey" symmetrical="NO"><link_ctn id="114"/></route>
-   <route src="SunOS" dst="St_Bruno" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="SunOS" dst="Jean_Claude" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="SunOS" dst="Doyon" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="SunOS" dst="Fafard" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="SunOS" dst="Croteau" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="SunOS" dst="Dodge" symmetrical="NO"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Varennes" dst="Jacquelin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Varennes" dst="Boivin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Varennes" dst="Jean_Yves" symmetrical="NO"><link_ctn id="136"/><link_ctn id="138"/></route>
-   <route src="Varennes" dst="TeX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Varennes" dst="Geoff" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Varennes" dst="Disney" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Varennes" dst="iRMX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Varennes" dst="McGee" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Varennes" dst="Gatien" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Varennes" dst="Laroche" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Varennes" dst="Tanguay" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Varennes" dst="Morin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Varennes" dst="Ethernet" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Varennes" dst="Bellemarre" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Varennes" dst="Kuenning" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Varennes" dst="Gaston" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Varennes" dst="Harry" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Varennes" dst="Bousquet" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Varennes" dst="Paul" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Varennes" dst="St_Jean" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Varennes" dst="Jill" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Varennes" dst="Marcel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Varennes" dst="Wright" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Varennes" dst="Jackson" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/></route>
-   <route src="Varennes" dst="Fernand" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Varennes" dst="Soucy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Varennes" dst="Ste_Julie" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Varennes" dst="Victoria" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Varennes" dst="Lessard" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Varennes" dst="Florient" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Varennes" dst="Marcoux" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Varennes" dst="Gavrel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Varennes" dst="Bescherelle" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Varennes" dst="Pierre" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Varennes" dst="Jamie" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Varennes" dst="Rubin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Varennes" dst="Olivier" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Varennes" dst="Boucherville" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Varennes" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Varennes" dst="Kansas" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Varennes" dst="King" symmetrical="NO"><link_ctn id="136"/><link_ctn id="137"/></route>
-   <route src="Varennes" dst="Lapointe" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Varennes" dst="Julian" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Varennes" dst="Lafontaine" symmetrical="NO"><link_ctn id="136"/><link_ctn id="139"/></route>
-   <route src="Varennes" dst="Gordon" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Varennes" dst="Drouin" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Varennes" dst="Robert" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Varennes" dst="Jocelyne" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Varennes" dst="Stephen" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Varennes" dst="Provost" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Varennes" dst="Juneau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Varennes" dst="Casavant" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Varennes" dst="St_Antoine" symmetrical="NO"><link_ctn id="136"/></route>
-   <route src="Varennes" dst="Louis" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Varennes" dst="Julien" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Varennes" dst="St_Paul" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Varennes" dst="Mathematica" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Varennes" dst="LaTeX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Varennes" dst="Sirois" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Varennes" dst="Monique" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Varennes" dst="Audy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Varennes" dst="Bourassa" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Varennes" dst="OHara" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Varennes" dst="Boston" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Varennes" dst="Papineau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Varennes" dst="Fraser" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Varennes" dst="Browne" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Varennes" dst="SunOS" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Varennes" dst="Jacques" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Varennes" dst="Thierry" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Varennes" dst="Lachapelle" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Varennes" dst="kV" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Varennes" dst="Yolande" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Varennes" dst="Pronovost" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Varennes" dst="SPICE" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Varennes" dst="Europe" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Varennes" dst="Roy" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Varennes" dst="Amadeus" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Varennes" dst="Intel" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Varennes" dst="Cambridge" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Varennes" dst="Tremblay" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Varennes" dst="UNIX" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Varennes" dst="Domey" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Varennes" dst="St_Bruno" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Varennes" dst="Jean_Claude" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Varennes" dst="Doyon" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Varennes" dst="Fafard" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Varennes" dst="Croteau" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Varennes" dst="Dodge" symmetrical="NO"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jacques" dst="Jacquelin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jacques" dst="Boivin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jacques" dst="Jean_Yves" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jacques" dst="TeX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jacques" dst="Geoff" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jacques" dst="Disney" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jacques" dst="iRMX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jacques" dst="McGee" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jacques" dst="Gatien" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jacques" dst="Laroche" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jacques" dst="Tanguay" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Jacques" dst="Morin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jacques" dst="Ethernet" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jacques" dst="Bellemarre" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jacques" dst="Kuenning" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jacques" dst="Gaston" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jacques" dst="Harry" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jacques" dst="Bousquet" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jacques" dst="Paul" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jacques" dst="St_Jean" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jacques" dst="Jill" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jacques" dst="Marcel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jacques" dst="Wright" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jacques" dst="Jackson" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jacques" dst="Fernand" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jacques" dst="Soucy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jacques" dst="Ste_Julie" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Jacques" dst="Victoria" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jacques" dst="Lessard" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jacques" dst="Florient" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jacques" dst="Marcoux" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jacques" dst="Gavrel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jacques" dst="Bescherelle" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jacques" dst="Pierre" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jacques" dst="Jamie" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jacques" dst="Rubin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jacques" dst="Olivier" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jacques" dst="Boucherville" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jacques" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jacques" dst="Kansas" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jacques" dst="King" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jacques" dst="Lapointe" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jacques" dst="Julian" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jacques" dst="Lafontaine" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jacques" dst="Gordon" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jacques" dst="Drouin" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jacques" dst="Robert" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jacques" dst="Jocelyne" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jacques" dst="Stephen" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jacques" dst="Provost" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jacques" dst="Juneau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jacques" dst="Casavant" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jacques" dst="St_Antoine" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jacques" dst="Louis" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jacques" dst="Julien" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jacques" dst="St_Paul" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jacques" dst="Mathematica" symmetrical="NO"><link_ctn id="159"/><link_ctn id="157"/></route>
-   <route src="Jacques" dst="LaTeX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jacques" dst="Sirois" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jacques" dst="Monique" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jacques" dst="Audy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jacques" dst="Bourassa" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jacques" dst="OHara" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Jacques" dst="Boston" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jacques" dst="Papineau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jacques" dst="Fraser" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jacques" dst="Browne" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jacques" dst="SunOS" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jacques" dst="Varennes" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jacques" dst="Thierry" symmetrical="NO"><link_ctn id="159"/><link_ctn id="156"/></route>
-   <route src="Jacques" dst="Lachapelle" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jacques" dst="kV" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jacques" dst="Yolande" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jacques" dst="Pronovost" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jacques" dst="SPICE" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jacques" dst="Europe" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jacques" dst="Roy" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Jacques" dst="Amadeus" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jacques" dst="Intel" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jacques" dst="Cambridge" symmetrical="NO"><link_ctn id="159"/><link_ctn id="158"/></route>
-   <route src="Jacques" dst="Tremblay" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jacques" dst="UNIX" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jacques" dst="Domey" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jacques" dst="St_Bruno" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jacques" dst="Jean_Claude" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Jacques" dst="Doyon" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jacques" dst="Fafard" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jacques" dst="Croteau" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jacques" dst="Dodge" symmetrical="NO"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Thierry" dst="Jacquelin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Thierry" dst="Boivin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Thierry" dst="Jean_Yves" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Thierry" dst="TeX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Thierry" dst="Geoff" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Thierry" dst="Disney" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Thierry" dst="iRMX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Thierry" dst="McGee" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Thierry" dst="Gatien" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Thierry" dst="Laroche" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Thierry" dst="Tanguay" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Thierry" dst="Morin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Thierry" dst="Ethernet" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Thierry" dst="Bellemarre" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Thierry" dst="Kuenning" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Thierry" dst="Gaston" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Thierry" dst="Harry" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Thierry" dst="Bousquet" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Thierry" dst="Paul" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Thierry" dst="St_Jean" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Thierry" dst="Jill" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Thierry" dst="Marcel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Thierry" dst="Wright" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Thierry" dst="Jackson" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Thierry" dst="Fernand" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Thierry" dst="Soucy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Thierry" dst="Ste_Julie" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Thierry" dst="Victoria" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Thierry" dst="Lessard" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Thierry" dst="Florient" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Thierry" dst="Marcoux" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Thierry" dst="Gavrel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Thierry" dst="Bescherelle" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Thierry" dst="Pierre" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Thierry" dst="Jamie" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Thierry" dst="Rubin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Thierry" dst="Olivier" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Thierry" dst="Boucherville" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Thierry" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Thierry" dst="Kansas" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Thierry" dst="King" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Thierry" dst="Lapointe" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Thierry" dst="Julian" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Thierry" dst="Lafontaine" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Thierry" dst="Gordon" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Thierry" dst="Drouin" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Thierry" dst="Robert" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Thierry" dst="Jocelyne" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Thierry" dst="Stephen" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Thierry" dst="Provost" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Thierry" dst="Juneau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Thierry" dst="Casavant" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Thierry" dst="St_Antoine" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Thierry" dst="Louis" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Thierry" dst="Julien" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Thierry" dst="St_Paul" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Thierry" dst="Mathematica" symmetrical="NO"><link_ctn id="156"/><link_ctn id="157"/></route>
-   <route src="Thierry" dst="LaTeX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Thierry" dst="Sirois" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Thierry" dst="Monique" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Thierry" dst="Audy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Thierry" dst="Bourassa" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Thierry" dst="OHara" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Thierry" dst="Boston" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Thierry" dst="Papineau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Thierry" dst="Fraser" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Thierry" dst="Browne" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Thierry" dst="SunOS" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Thierry" dst="Varennes" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Thierry" dst="Jacques" symmetrical="NO"><link_ctn id="156"/><link_ctn id="159"/></route>
-   <route src="Thierry" dst="Lachapelle" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Thierry" dst="kV" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Thierry" dst="Yolande" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Thierry" dst="Pronovost" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Thierry" dst="SPICE" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Thierry" dst="Europe" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Thierry" dst="Roy" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Thierry" dst="Amadeus" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Thierry" dst="Intel" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Thierry" dst="Cambridge" symmetrical="NO"><link_ctn id="156"/><link_ctn id="158"/></route>
-   <route src="Thierry" dst="Tremblay" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Thierry" dst="UNIX" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Thierry" dst="Domey" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Thierry" dst="St_Bruno" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Thierry" dst="Jean_Claude" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Thierry" dst="Doyon" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Thierry" dst="Fafard" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Thierry" dst="Croteau" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Thierry" dst="Dodge" symmetrical="NO"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Lachapelle" dst="Jacquelin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="145"/></route>
-   <route src="Lachapelle" dst="Boivin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Lachapelle" dst="Jean_Yves" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Lachapelle" dst="TeX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Lachapelle" dst="Geoff" symmetrical="NO"><link_ctn id="146"/></route>
-   <route src="Lachapelle" dst="Disney" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Lachapelle" dst="iRMX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Lachapelle" dst="McGee" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Lachapelle" dst="Gatien" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Lachapelle" dst="Laroche" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Lachapelle" dst="Tanguay" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Lachapelle" dst="Morin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Lachapelle" dst="Ethernet" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Lachapelle" dst="Bellemarre" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Lachapelle" dst="Kuenning" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Lachapelle" dst="Gaston" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Lachapelle" dst="Harry" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Lachapelle" dst="Bousquet" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Lachapelle" dst="Paul" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Lachapelle" dst="St_Jean" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Lachapelle" dst="Jill" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Lachapelle" dst="Marcel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Lachapelle" dst="Wright" symmetrical="NO"><link_ctn id="146"/><link_ctn id="147"/></route>
-   <route src="Lachapelle" dst="Jackson" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Lachapelle" dst="Fernand" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Lachapelle" dst="Soucy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Lachapelle" dst="Ste_Julie" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Lachapelle" dst="Victoria" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Lachapelle" dst="Lessard" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Lachapelle" dst="Florient" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Lachapelle" dst="Marcoux" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Lachapelle" dst="Gavrel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Lachapelle" dst="Bescherelle" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Lachapelle" dst="Pierre" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Lachapelle" dst="Jamie" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Lachapelle" dst="Rubin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="144"/></route>
-   <route src="Lachapelle" dst="Olivier" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Lachapelle" dst="Boucherville" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Lachapelle" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Lachapelle" dst="Kansas" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Lachapelle" dst="King" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Lachapelle" dst="Lapointe" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Lachapelle" dst="Julian" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Lachapelle" dst="Lafontaine" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Lachapelle" dst="Gordon" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Lachapelle" dst="Drouin" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Lachapelle" dst="Robert" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Lachapelle" dst="Jocelyne" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Lachapelle" dst="Stephen" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Lachapelle" dst="Provost" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Lachapelle" dst="Juneau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Lachapelle" dst="Casavant" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Lachapelle" dst="St_Antoine" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Lachapelle" dst="Louis" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Lachapelle" dst="Julien" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Lachapelle" dst="St_Paul" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Lachapelle" dst="Mathematica" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Lachapelle" dst="LaTeX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Lachapelle" dst="Sirois" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Lachapelle" dst="Monique" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Lachapelle" dst="Audy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Lachapelle" dst="Bourassa" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Lachapelle" dst="OHara" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Lachapelle" dst="Boston" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Lachapelle" dst="Papineau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Lachapelle" dst="Fraser" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Lachapelle" dst="Browne" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Lachapelle" dst="SunOS" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Lachapelle" dst="Varennes" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Lachapelle" dst="Jacques" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Lachapelle" dst="Thierry" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Lachapelle" dst="kV" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Lachapelle" dst="Yolande" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Lachapelle" dst="Pronovost" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Lachapelle" dst="SPICE" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Lachapelle" dst="Europe" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Lachapelle" dst="Roy" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Lachapelle" dst="Amadeus" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Lachapelle" dst="Intel" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Lachapelle" dst="Cambridge" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Lachapelle" dst="Tremblay" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Lachapelle" dst="UNIX" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Lachapelle" dst="Domey" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Lachapelle" dst="St_Bruno" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Lachapelle" dst="Jean_Claude" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Lachapelle" dst="Doyon" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Lachapelle" dst="Fafard" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Lachapelle" dst="Croteau" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Lachapelle" dst="Dodge" symmetrical="NO"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="kV" dst="Jacquelin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="kV" dst="Boivin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="kV" dst="Jean_Yves" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="kV" dst="TeX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="kV" dst="Geoff" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="kV" dst="Disney" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="kV" dst="iRMX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="kV" dst="McGee" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="kV" dst="Gatien" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="kV" dst="Laroche" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="kV" dst="Tanguay" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="kV" dst="Morin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="kV" dst="Ethernet" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="kV" dst="Bellemarre" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="kV" dst="Kuenning" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="kV" dst="Gaston" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="kV" dst="Harry" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="kV" dst="Bousquet" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="kV" dst="Paul" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="kV" dst="St_Jean" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="kV" dst="Jill" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="kV" dst="Marcel" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="kV" dst="Wright" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="kV" dst="Jackson" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="kV" dst="Fernand" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="kV" dst="Soucy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="kV" dst="Ste_Julie" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="kV" dst="Victoria" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="kV" dst="Lessard" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="kV" dst="Florient" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="kV" dst="Marcoux" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="kV" dst="Gavrel" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="kV" dst="Bescherelle" symmetrical="NO"><link_ctn id="140"/></route>
-   <route src="kV" dst="Pierre" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="kV" dst="Jamie" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="kV" dst="Rubin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="kV" dst="Olivier" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="kV" dst="Boucherville" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="kV" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="kV" dst="Kansas" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="kV" dst="King" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="kV" dst="Lapointe" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="kV" dst="Julian" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="kV" dst="Lafontaine" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="kV" dst="Gordon" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="kV" dst="Drouin" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="kV" dst="Robert" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="kV" dst="Jocelyne" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="kV" dst="Stephen" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="kV" dst="Provost" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="kV" dst="Juneau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="kV" dst="Casavant" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="kV" dst="St_Antoine" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="kV" dst="Louis" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="kV" dst="Julien" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="kV" dst="St_Paul" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="kV" dst="Mathematica" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="kV" dst="LaTeX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="kV" dst="Sirois" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="kV" dst="Monique" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="kV" dst="Audy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="kV" dst="Bourassa" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="kV" dst="OHara" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="kV" dst="Boston" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="kV" dst="Papineau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="kV" dst="Fraser" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="kV" dst="Browne" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="kV" dst="SunOS" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="kV" dst="Varennes" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="kV" dst="Jacques" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="kV" dst="Thierry" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="kV" dst="Lachapelle" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="kV" dst="Yolande" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="kV" dst="Pronovost" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="kV" dst="SPICE" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="kV" dst="Europe" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="kV" dst="Roy" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="kV" dst="Amadeus" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="kV" dst="Intel" symmetrical="NO"><link_ctn id="141"/></route>
-   <route src="kV" dst="Cambridge" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="kV" dst="Tremblay" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="kV" dst="UNIX" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="kV" dst="Domey" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="kV" dst="St_Bruno" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="kV" dst="Jean_Claude" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="kV" dst="Doyon" symmetrical="NO"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="kV" dst="Fafard" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="kV" dst="Croteau" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="kV" dst="Dodge" symmetrical="NO"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Yolande" dst="Jacquelin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Yolande" dst="Boivin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Yolande" dst="Jean_Yves" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Yolande" dst="TeX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Yolande" dst="Geoff" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Yolande" dst="Disney" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Yolande" dst="iRMX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Yolande" dst="McGee" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Yolande" dst="Gatien" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Yolande" dst="Laroche" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Yolande" dst="Tanguay" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Yolande" dst="Morin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Yolande" dst="Ethernet" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Yolande" dst="Bellemarre" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Yolande" dst="Kuenning" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Yolande" dst="Gaston" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Yolande" dst="Harry" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Yolande" dst="Bousquet" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Yolande" dst="Paul" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Yolande" dst="St_Jean" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Yolande" dst="Jill" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Yolande" dst="Marcel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Yolande" dst="Wright" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Yolande" dst="Jackson" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Yolande" dst="Fernand" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Yolande" dst="Soucy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Yolande" dst="Ste_Julie" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Yolande" dst="Victoria" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Yolande" dst="Lessard" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Yolande" dst="Florient" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Yolande" dst="Marcoux" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Yolande" dst="Gavrel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Yolande" dst="Bescherelle" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Yolande" dst="Pierre" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Yolande" dst="Jamie" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Yolande" dst="Rubin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Yolande" dst="Olivier" symmetrical="NO"><link_ctn id="168"/><link_ctn id="171"/></route>
-   <route src="Yolande" dst="Boucherville" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Yolande" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Yolande" dst="Kansas" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Yolande" dst="King" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Yolande" dst="Lapointe" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Yolande" dst="Julian" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Yolande" dst="Lafontaine" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Yolande" dst="Gordon" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Yolande" dst="Drouin" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Yolande" dst="Robert" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Yolande" dst="Jocelyne" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Yolande" dst="Stephen" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Yolande" dst="Provost" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Yolande" dst="Juneau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Yolande" dst="Casavant" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Yolande" dst="St_Antoine" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Yolande" dst="Louis" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Yolande" dst="Julien" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Yolande" dst="St_Paul" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Yolande" dst="Mathematica" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Yolande" dst="LaTeX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Yolande" dst="Sirois" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Yolande" dst="Monique" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Yolande" dst="Audy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Yolande" dst="Bourassa" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Yolande" dst="OHara" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Yolande" dst="Boston" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Yolande" dst="Papineau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Yolande" dst="Fraser" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Yolande" dst="Browne" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Yolande" dst="SunOS" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Yolande" dst="Varennes" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Yolande" dst="Jacques" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Yolande" dst="Thierry" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Yolande" dst="Lachapelle" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Yolande" dst="kV" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Yolande" dst="Pronovost" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Yolande" dst="SPICE" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Yolande" dst="Europe" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Yolande" dst="Roy" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Yolande" dst="Amadeus" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Yolande" dst="Intel" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Yolande" dst="Cambridge" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Yolande" dst="Tremblay" symmetrical="NO"><link_ctn id="168"/><link_ctn id="170"/></route>
-   <route src="Yolande" dst="UNIX" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Yolande" dst="Domey" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Yolande" dst="St_Bruno" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Yolande" dst="Jean_Claude" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Yolande" dst="Doyon" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Yolande" dst="Fafard" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Yolande" dst="Croteau" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Yolande" dst="Dodge" symmetrical="NO"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Pronovost" dst="Jacquelin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Pronovost" dst="Boivin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Pronovost" dst="Jean_Yves" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Pronovost" dst="TeX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Pronovost" dst="Geoff" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Pronovost" dst="Disney" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Pronovost" dst="iRMX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Pronovost" dst="McGee" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Pronovost" dst="Gatien" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Pronovost" dst="Laroche" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Pronovost" dst="Tanguay" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Pronovost" dst="Morin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Pronovost" dst="Ethernet" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Pronovost" dst="Bellemarre" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Pronovost" dst="Kuenning" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Pronovost" dst="Gaston" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Pronovost" dst="Harry" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Pronovost" dst="Bousquet" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Pronovost" dst="Paul" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Pronovost" dst="St_Jean" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Pronovost" dst="Jill" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Pronovost" dst="Marcel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Pronovost" dst="Wright" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Pronovost" dst="Jackson" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Pronovost" dst="Fernand" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Pronovost" dst="Soucy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Pronovost" dst="Ste_Julie" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Pronovost" dst="Victoria" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Pronovost" dst="Lessard" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Pronovost" dst="Florient" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Pronovost" dst="Marcoux" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Pronovost" dst="Gavrel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="148"/></route>
-   <route src="Pronovost" dst="Bescherelle" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Pronovost" dst="Pierre" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Pronovost" dst="Jamie" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Pronovost" dst="Rubin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Pronovost" dst="Olivier" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Pronovost" dst="Boucherville" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Pronovost" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Pronovost" dst="Kansas" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Pronovost" dst="King" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Pronovost" dst="Lapointe" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Pronovost" dst="Julian" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Pronovost" dst="Lafontaine" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Pronovost" dst="Gordon" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Pronovost" dst="Drouin" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Pronovost" dst="Robert" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Pronovost" dst="Jocelyne" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Pronovost" dst="Stephen" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Pronovost" dst="Provost" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Pronovost" dst="Juneau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Pronovost" dst="Casavant" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Pronovost" dst="St_Antoine" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Pronovost" dst="Louis" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Pronovost" dst="Julien" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Pronovost" dst="St_Paul" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Pronovost" dst="Mathematica" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Pronovost" dst="LaTeX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Pronovost" dst="Sirois" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Pronovost" dst="Monique" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Pronovost" dst="Audy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Pronovost" dst="Bourassa" symmetrical="NO"><link_ctn id="151"/><link_ctn id="150"/></route>
-   <route src="Pronovost" dst="OHara" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Pronovost" dst="Boston" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Pronovost" dst="Papineau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Pronovost" dst="Fraser" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Pronovost" dst="Browne" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Pronovost" dst="SunOS" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Pronovost" dst="Varennes" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Pronovost" dst="Jacques" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Pronovost" dst="Thierry" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Pronovost" dst="Lachapelle" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Pronovost" dst="kV" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Pronovost" dst="Yolande" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Pronovost" dst="SPICE" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Pronovost" dst="Europe" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Pronovost" dst="Roy" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Pronovost" dst="Amadeus" symmetrical="NO"><link_ctn id="151"/></route>
-   <route src="Pronovost" dst="Intel" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Pronovost" dst="Cambridge" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Pronovost" dst="Tremblay" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Pronovost" dst="UNIX" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Pronovost" dst="Domey" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Pronovost" dst="St_Bruno" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Pronovost" dst="Jean_Claude" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Pronovost" dst="Doyon" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Pronovost" dst="Fafard" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Pronovost" dst="Croteau" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Pronovost" dst="Dodge" symmetrical="NO"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="SPICE" dst="Jacquelin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="SPICE" dst="Boivin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="SPICE" dst="Jean_Yves" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="SPICE" dst="TeX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="SPICE" dst="Geoff" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="SPICE" dst="Disney" symmetrical="NO"><link_ctn id="110"/><link_ctn id="111"/></route>
-   <route src="SPICE" dst="iRMX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="SPICE" dst="McGee" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="SPICE" dst="Gatien" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="SPICE" dst="Laroche" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="SPICE" dst="Tanguay" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="SPICE" dst="Morin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="SPICE" dst="Ethernet" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="SPICE" dst="Bellemarre" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/></route>
-   <route src="SPICE" dst="Kuenning" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="SPICE" dst="Gaston" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="SPICE" dst="Harry" symmetrical="NO"><link_ctn id="110"/><link_ctn id="108"/></route>
-   <route src="SPICE" dst="Bousquet" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="SPICE" dst="Paul" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="SPICE" dst="St_Jean" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="SPICE" dst="Jill" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="SPICE" dst="Marcel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="SPICE" dst="Wright" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="SPICE" dst="Jackson" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="SPICE" dst="Fernand" symmetrical="NO"><link_ctn id="110"/><link_ctn id="109"/></route>
-   <route src="SPICE" dst="Soucy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="SPICE" dst="Ste_Julie" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="SPICE" dst="Victoria" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="SPICE" dst="Lessard" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="SPICE" dst="Florient" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="SPICE" dst="Marcoux" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="SPICE" dst="Gavrel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="SPICE" dst="Bescherelle" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="SPICE" dst="Pierre" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="SPICE" dst="Jamie" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="SPICE" dst="Rubin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="SPICE" dst="Olivier" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="SPICE" dst="Boucherville" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="SPICE" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="SPICE" dst="Kansas" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="SPICE" dst="King" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="SPICE" dst="Lapointe" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="SPICE" dst="Julian" symmetrical="NO"><link_ctn id="110"/></route>
-   <route src="SPICE" dst="Lafontaine" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="SPICE" dst="Gordon" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="SPICE" dst="Drouin" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="SPICE" dst="Robert" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="SPICE" dst="Jocelyne" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="SPICE" dst="Stephen" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="SPICE" dst="Provost" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="SPICE" dst="Juneau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="SPICE" dst="Casavant" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="SPICE" dst="St_Antoine" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="SPICE" dst="Louis" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="SPICE" dst="Julien" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="SPICE" dst="St_Paul" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="SPICE" dst="Mathematica" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="SPICE" dst="LaTeX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="SPICE" dst="Sirois" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="SPICE" dst="Monique" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="SPICE" dst="Audy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="SPICE" dst="Bourassa" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="SPICE" dst="OHara" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="SPICE" dst="Boston" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="SPICE" dst="Papineau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="SPICE" dst="Fraser" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="SPICE" dst="Browne" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="SPICE" dst="SunOS" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="SPICE" dst="Varennes" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="SPICE" dst="Jacques" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="SPICE" dst="Thierry" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="SPICE" dst="Lachapelle" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="SPICE" dst="kV" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="SPICE" dst="Yolande" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="SPICE" dst="Pronovost" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="SPICE" dst="Europe" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="SPICE" dst="Roy" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="SPICE" dst="Amadeus" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="SPICE" dst="Intel" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="SPICE" dst="Cambridge" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="SPICE" dst="Tremblay" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="SPICE" dst="UNIX" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="SPICE" dst="Domey" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="SPICE" dst="St_Bruno" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="SPICE" dst="Jean_Claude" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="SPICE" dst="Doyon" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="SPICE" dst="Fafard" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="SPICE" dst="Croteau" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="SPICE" dst="Dodge" symmetrical="NO"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Europe" dst="Jacquelin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Europe" dst="Boivin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Europe" dst="Jean_Yves" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Europe" dst="TeX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Europe" dst="Geoff" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Europe" dst="Disney" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Europe" dst="iRMX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Europe" dst="McGee" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Europe" dst="Gatien" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Europe" dst="Laroche" symmetrical="NO"><link_ctn id="185"/></route>
-   <route src="Europe" dst="Tanguay" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Europe" dst="Morin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Europe" dst="Ethernet" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Europe" dst="Bellemarre" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Europe" dst="Kuenning" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Europe" dst="Gaston" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Europe" dst="Harry" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Europe" dst="Bousquet" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Europe" dst="Paul" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Europe" dst="St_Jean" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Europe" dst="Jill" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Europe" dst="Marcel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Europe" dst="Wright" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Europe" dst="Jackson" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Europe" dst="Fernand" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Europe" dst="Soucy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Europe" dst="Ste_Julie" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Europe" dst="Victoria" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Europe" dst="Lessard" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Europe" dst="Florient" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Europe" dst="Marcoux" symmetrical="NO"><link_ctn id="185"/><link_ctn id="186"/></route>
-   <route src="Europe" dst="Gavrel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Europe" dst="Bescherelle" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Europe" dst="Pierre" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Europe" dst="Jamie" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Europe" dst="Rubin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Europe" dst="Olivier" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Europe" dst="Boucherville" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Europe" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="185"/><link_ctn id="184"/></route>
-   <route src="Europe" dst="Kansas" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Europe" dst="King" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Europe" dst="Lapointe" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Europe" dst="Julian" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Europe" dst="Lafontaine" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Europe" dst="Gordon" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Europe" dst="Drouin" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Europe" dst="Robert" symmetrical="NO"><link_ctn id="185"/><link_ctn id="187"/></route>
-   <route src="Europe" dst="Jocelyne" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Europe" dst="Stephen" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Europe" dst="Provost" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Europe" dst="Juneau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Europe" dst="Casavant" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Europe" dst="St_Antoine" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Europe" dst="Louis" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Europe" dst="Julien" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Europe" dst="St_Paul" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Europe" dst="Mathematica" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Europe" dst="LaTeX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Europe" dst="Sirois" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Europe" dst="Monique" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Europe" dst="Audy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Europe" dst="Bourassa" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Europe" dst="OHara" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Europe" dst="Boston" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Europe" dst="Papineau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Europe" dst="Fraser" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Europe" dst="Browne" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Europe" dst="SunOS" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Europe" dst="Varennes" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Europe" dst="Jacques" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Europe" dst="Thierry" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Europe" dst="Lachapelle" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Europe" dst="kV" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Europe" dst="Yolande" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Europe" dst="Pronovost" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Europe" dst="SPICE" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Europe" dst="Roy" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Europe" dst="Amadeus" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Europe" dst="Intel" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Europe" dst="Cambridge" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Europe" dst="Tremblay" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Europe" dst="UNIX" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Europe" dst="Domey" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Europe" dst="St_Bruno" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Europe" dst="Jean_Claude" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Europe" dst="Doyon" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Europe" dst="Fafard" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Europe" dst="Croteau" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Europe" dst="Dodge" symmetrical="NO"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Roy" dst="Jacquelin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Roy" dst="Boivin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Roy" dst="Jean_Yves" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Roy" dst="TeX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Roy" dst="Geoff" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Roy" dst="Disney" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Roy" dst="iRMX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Roy" dst="McGee" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Roy" dst="Gatien" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Roy" dst="Laroche" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Roy" dst="Tanguay" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Roy" dst="Morin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Roy" dst="Ethernet" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Roy" dst="Bellemarre" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Roy" dst="Kuenning" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Roy" dst="Gaston" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Roy" dst="Harry" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Roy" dst="Bousquet" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Roy" dst="Paul" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Roy" dst="St_Jean" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Roy" dst="Jill" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Roy" dst="Marcel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Roy" dst="Wright" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Roy" dst="Jackson" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Roy" dst="Fernand" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Roy" dst="Soucy" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Roy" dst="Ste_Julie" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Roy" dst="Victoria" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Roy" dst="Lessard" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Roy" dst="Florient" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Roy" dst="Marcoux" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Roy" dst="Gavrel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Roy" dst="Bescherelle" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Roy" dst="Pierre" symmetrical="NO"><link_ctn id="167"/></route>
-   <route src="Roy" dst="Jamie" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Roy" dst="Rubin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Roy" dst="Olivier" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Roy" dst="Boucherville" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Roy" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Roy" dst="Kansas" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Roy" dst="King" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Roy" dst="Lapointe" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Roy" dst="Julian" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Roy" dst="Lafontaine" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Roy" dst="Gordon" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Roy" dst="Drouin" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Roy" dst="Robert" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Roy" dst="Jocelyne" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Roy" dst="Stephen" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Roy" dst="Provost" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Roy" dst="Juneau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Roy" dst="Casavant" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Roy" dst="St_Antoine" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Roy" dst="Louis" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Roy" dst="Julien" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Roy" dst="St_Paul" symmetrical="NO"><link_ctn id="165"/></route>
-   <route src="Roy" dst="Mathematica" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Roy" dst="LaTeX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Roy" dst="Sirois" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Roy" dst="Monique" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Roy" dst="Audy" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Roy" dst="Bourassa" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Roy" dst="OHara" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Roy" dst="Boston" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Roy" dst="Papineau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Roy" dst="Fraser" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Roy" dst="Browne" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Roy" dst="SunOS" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Roy" dst="Varennes" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Roy" dst="Jacques" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Roy" dst="Thierry" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Roy" dst="Lachapelle" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Roy" dst="kV" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Roy" dst="Yolande" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Roy" dst="Pronovost" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Roy" dst="SPICE" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Roy" dst="Europe" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Roy" dst="Amadeus" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Roy" dst="Intel" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Roy" dst="Cambridge" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Roy" dst="Tremblay" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Roy" dst="UNIX" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Roy" dst="Domey" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Roy" dst="St_Bruno" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Roy" dst="Jean_Claude" symmetrical="NO"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Roy" dst="Doyon" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Roy" dst="Fafard" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Roy" dst="Croteau" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Roy" dst="Dodge" symmetrical="NO"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Amadeus" dst="Jacquelin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Amadeus" dst="Boivin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Amadeus" dst="Jean_Yves" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Amadeus" dst="TeX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Amadeus" dst="Geoff" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Amadeus" dst="Disney" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Amadeus" dst="iRMX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Amadeus" dst="McGee" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Amadeus" dst="Gatien" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Amadeus" dst="Laroche" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Amadeus" dst="Tanguay" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Amadeus" dst="Morin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Amadeus" dst="Ethernet" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Amadeus" dst="Bellemarre" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Amadeus" dst="Kuenning" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Amadeus" dst="Gaston" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Amadeus" dst="Harry" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Amadeus" dst="Bousquet" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Amadeus" dst="Paul" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Amadeus" dst="St_Jean" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Amadeus" dst="Jill" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Amadeus" dst="Marcel" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Amadeus" dst="Wright" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Amadeus" dst="Jackson" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Amadeus" dst="Fernand" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Amadeus" dst="Soucy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Amadeus" dst="Ste_Julie" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Amadeus" dst="Victoria" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Amadeus" dst="Lessard" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Amadeus" dst="Florient" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Amadeus" dst="Marcoux" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Amadeus" dst="Gavrel" symmetrical="NO"><link_ctn id="148"/></route>
-   <route src="Amadeus" dst="Bescherelle" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Amadeus" dst="Pierre" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Amadeus" dst="Jamie" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Amadeus" dst="Rubin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Amadeus" dst="Olivier" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Amadeus" dst="Boucherville" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Amadeus" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Amadeus" dst="Kansas" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Amadeus" dst="King" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Amadeus" dst="Lapointe" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Amadeus" dst="Julian" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Amadeus" dst="Lafontaine" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Amadeus" dst="Gordon" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Amadeus" dst="Drouin" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Amadeus" dst="Robert" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Amadeus" dst="Jocelyne" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Amadeus" dst="Stephen" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Amadeus" dst="Provost" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Amadeus" dst="Juneau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Amadeus" dst="Casavant" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Amadeus" dst="St_Antoine" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Amadeus" dst="Louis" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Amadeus" dst="Julien" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Amadeus" dst="St_Paul" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Amadeus" dst="Mathematica" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Amadeus" dst="LaTeX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Amadeus" dst="Sirois" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Amadeus" dst="Monique" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Amadeus" dst="Audy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Amadeus" dst="Bourassa" symmetrical="NO"><link_ctn id="150"/></route>
-   <route src="Amadeus" dst="OHara" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Amadeus" dst="Boston" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Amadeus" dst="Papineau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Amadeus" dst="Fraser" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Amadeus" dst="Browne" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Amadeus" dst="SunOS" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Amadeus" dst="Varennes" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Amadeus" dst="Jacques" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Amadeus" dst="Thierry" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Amadeus" dst="Lachapelle" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Amadeus" dst="kV" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Amadeus" dst="Yolande" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Amadeus" dst="Pronovost" symmetrical="NO"><link_ctn id="151"/></route>
-   <route src="Amadeus" dst="SPICE" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Amadeus" dst="Europe" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Amadeus" dst="Roy" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Amadeus" dst="Intel" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Amadeus" dst="Cambridge" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Amadeus" dst="Tremblay" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Amadeus" dst="UNIX" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Amadeus" dst="Domey" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Amadeus" dst="St_Bruno" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Amadeus" dst="Jean_Claude" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Amadeus" dst="Doyon" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Amadeus" dst="Fafard" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Amadeus" dst="Croteau" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Amadeus" dst="Dodge" symmetrical="NO"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Intel" dst="Jacquelin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Intel" dst="Boivin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Intel" dst="Jean_Yves" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Intel" dst="TeX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Intel" dst="Geoff" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Intel" dst="Disney" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Intel" dst="iRMX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Intel" dst="McGee" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Intel" dst="Gatien" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Intel" dst="Laroche" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Intel" dst="Tanguay" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Intel" dst="Morin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Intel" dst="Ethernet" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Intel" dst="Bellemarre" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Intel" dst="Kuenning" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Intel" dst="Gaston" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Intel" dst="Harry" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Intel" dst="Bousquet" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Intel" dst="Paul" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Intel" dst="St_Jean" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Intel" dst="Jill" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Intel" dst="Marcel" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Intel" dst="Wright" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Intel" dst="Jackson" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Intel" dst="Fernand" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Intel" dst="Soucy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Intel" dst="Ste_Julie" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Intel" dst="Victoria" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Intel" dst="Lessard" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Intel" dst="Florient" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Intel" dst="Marcoux" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Intel" dst="Gavrel" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Intel" dst="Bescherelle" symmetrical="NO"><link_ctn id="141"/><link_ctn id="140"/></route>
-   <route src="Intel" dst="Pierre" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Intel" dst="Jamie" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Intel" dst="Rubin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Intel" dst="Olivier" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Intel" dst="Boucherville" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Intel" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Intel" dst="Kansas" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Intel" dst="King" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Intel" dst="Lapointe" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Intel" dst="Julian" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Intel" dst="Lafontaine" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Intel" dst="Gordon" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Intel" dst="Drouin" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Intel" dst="Robert" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Intel" dst="Jocelyne" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Intel" dst="Stephen" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Intel" dst="Provost" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Intel" dst="Juneau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Intel" dst="Casavant" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Intel" dst="St_Antoine" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Intel" dst="Louis" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Intel" dst="Julien" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Intel" dst="St_Paul" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Intel" dst="Mathematica" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Intel" dst="LaTeX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Intel" dst="Sirois" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Intel" dst="Monique" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Intel" dst="Audy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Intel" dst="Bourassa" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Intel" dst="OHara" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Intel" dst="Boston" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Intel" dst="Papineau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Intel" dst="Fraser" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Intel" dst="Browne" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Intel" dst="SunOS" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Intel" dst="Varennes" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Intel" dst="Jacques" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Intel" dst="Thierry" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Intel" dst="Lachapelle" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Intel" dst="kV" symmetrical="NO"><link_ctn id="141"/></route>
-   <route src="Intel" dst="Yolande" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Intel" dst="Pronovost" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Intel" dst="SPICE" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Intel" dst="Europe" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Intel" dst="Roy" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Intel" dst="Amadeus" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Intel" dst="Cambridge" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Intel" dst="Tremblay" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Intel" dst="UNIX" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Intel" dst="Domey" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Intel" dst="St_Bruno" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Intel" dst="Jean_Claude" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Intel" dst="Doyon" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Intel" dst="Fafard" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Intel" dst="Croteau" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Intel" dst="Dodge" symmetrical="NO"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Cambridge" dst="Jacquelin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Cambridge" dst="Boivin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Cambridge" dst="Jean_Yves" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Cambridge" dst="TeX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Cambridge" dst="Geoff" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Cambridge" dst="Disney" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Cambridge" dst="iRMX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Cambridge" dst="McGee" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Cambridge" dst="Gatien" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Cambridge" dst="Laroche" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Cambridge" dst="Tanguay" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Cambridge" dst="Morin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Cambridge" dst="Ethernet" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Cambridge" dst="Bellemarre" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Cambridge" dst="Kuenning" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Cambridge" dst="Gaston" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Cambridge" dst="Harry" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Cambridge" dst="Bousquet" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Cambridge" dst="Paul" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Cambridge" dst="St_Jean" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Cambridge" dst="Jill" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Cambridge" dst="Marcel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Cambridge" dst="Wright" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Cambridge" dst="Jackson" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Cambridge" dst="Fernand" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Cambridge" dst="Soucy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Cambridge" dst="Ste_Julie" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Cambridge" dst="Victoria" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Cambridge" dst="Lessard" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Cambridge" dst="Florient" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Cambridge" dst="Marcoux" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Cambridge" dst="Gavrel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Cambridge" dst="Bescherelle" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Cambridge" dst="Pierre" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Cambridge" dst="Jamie" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Cambridge" dst="Rubin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Cambridge" dst="Olivier" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Cambridge" dst="Boucherville" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Cambridge" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Cambridge" dst="Kansas" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Cambridge" dst="King" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Cambridge" dst="Lapointe" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Cambridge" dst="Julian" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Cambridge" dst="Lafontaine" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Cambridge" dst="Gordon" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Cambridge" dst="Drouin" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Cambridge" dst="Robert" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Cambridge" dst="Jocelyne" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Cambridge" dst="Stephen" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Cambridge" dst="Provost" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Cambridge" dst="Juneau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Cambridge" dst="Casavant" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Cambridge" dst="St_Antoine" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Cambridge" dst="Louis" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Cambridge" dst="Julien" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Cambridge" dst="St_Paul" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Cambridge" dst="Mathematica" symmetrical="NO"><link_ctn id="158"/><link_ctn id="157"/></route>
-   <route src="Cambridge" dst="LaTeX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Cambridge" dst="Sirois" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Cambridge" dst="Monique" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Cambridge" dst="Audy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Cambridge" dst="Bourassa" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Cambridge" dst="OHara" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Cambridge" dst="Boston" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Cambridge" dst="Papineau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Cambridge" dst="Fraser" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Cambridge" dst="Browne" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Cambridge" dst="SunOS" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Cambridge" dst="Varennes" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Cambridge" dst="Jacques" symmetrical="NO"><link_ctn id="158"/><link_ctn id="159"/></route>
-   <route src="Cambridge" dst="Thierry" symmetrical="NO"><link_ctn id="158"/><link_ctn id="156"/></route>
-   <route src="Cambridge" dst="Lachapelle" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Cambridge" dst="kV" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Cambridge" dst="Yolande" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Cambridge" dst="Pronovost" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Cambridge" dst="SPICE" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Cambridge" dst="Europe" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Cambridge" dst="Roy" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Cambridge" dst="Amadeus" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Cambridge" dst="Intel" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Cambridge" dst="Tremblay" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Cambridge" dst="UNIX" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Cambridge" dst="Domey" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Cambridge" dst="St_Bruno" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Cambridge" dst="Jean_Claude" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Cambridge" dst="Doyon" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Cambridge" dst="Fafard" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Cambridge" dst="Croteau" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Cambridge" dst="Dodge" symmetrical="NO"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Tremblay" dst="Jacquelin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Tremblay" dst="Boivin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Tremblay" dst="Jean_Yves" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Tremblay" dst="TeX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Tremblay" dst="Geoff" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Tremblay" dst="Disney" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Tremblay" dst="iRMX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Tremblay" dst="McGee" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Tremblay" dst="Gatien" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Tremblay" dst="Laroche" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Tremblay" dst="Tanguay" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Tremblay" dst="Morin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Tremblay" dst="Ethernet" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Tremblay" dst="Bellemarre" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Tremblay" dst="Kuenning" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Tremblay" dst="Gaston" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Tremblay" dst="Harry" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Tremblay" dst="Bousquet" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Tremblay" dst="Paul" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Tremblay" dst="St_Jean" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Tremblay" dst="Jill" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Tremblay" dst="Marcel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Tremblay" dst="Wright" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Tremblay" dst="Jackson" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Tremblay" dst="Fernand" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Tremblay" dst="Soucy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Tremblay" dst="Ste_Julie" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Tremblay" dst="Victoria" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Tremblay" dst="Lessard" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Tremblay" dst="Florient" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Tremblay" dst="Marcoux" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Tremblay" dst="Gavrel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Tremblay" dst="Bescherelle" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Tremblay" dst="Pierre" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Tremblay" dst="Jamie" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Tremblay" dst="Rubin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Tremblay" dst="Olivier" symmetrical="NO"><link_ctn id="170"/><link_ctn id="171"/></route>
-   <route src="Tremblay" dst="Boucherville" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Tremblay" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Tremblay" dst="Kansas" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Tremblay" dst="King" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Tremblay" dst="Lapointe" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Tremblay" dst="Julian" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Tremblay" dst="Lafontaine" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Tremblay" dst="Gordon" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Tremblay" dst="Drouin" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Tremblay" dst="Robert" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Tremblay" dst="Jocelyne" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Tremblay" dst="Stephen" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Tremblay" dst="Provost" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Tremblay" dst="Juneau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Tremblay" dst="Casavant" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Tremblay" dst="St_Antoine" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Tremblay" dst="Louis" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Tremblay" dst="Julien" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Tremblay" dst="St_Paul" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Tremblay" dst="Mathematica" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Tremblay" dst="LaTeX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Tremblay" dst="Sirois" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Tremblay" dst="Monique" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Tremblay" dst="Audy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Tremblay" dst="Bourassa" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Tremblay" dst="OHara" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Tremblay" dst="Boston" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Tremblay" dst="Papineau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Tremblay" dst="Fraser" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Tremblay" dst="Browne" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Tremblay" dst="SunOS" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Tremblay" dst="Varennes" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Tremblay" dst="Jacques" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Tremblay" dst="Thierry" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Tremblay" dst="Lachapelle" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Tremblay" dst="kV" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Tremblay" dst="Yolande" symmetrical="NO"><link_ctn id="170"/><link_ctn id="168"/></route>
-   <route src="Tremblay" dst="Pronovost" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Tremblay" dst="SPICE" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Tremblay" dst="Europe" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Tremblay" dst="Roy" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
-   <route src="Tremblay" dst="Amadeus" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Tremblay" dst="Intel" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Tremblay" dst="Cambridge" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Tremblay" dst="UNIX" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Tremblay" dst="Domey" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Tremblay" dst="St_Bruno" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Tremblay" dst="Jean_Claude" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Tremblay" dst="Doyon" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Tremblay" dst="Fafard" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Tremblay" dst="Croteau" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Tremblay" dst="Dodge" symmetrical="NO"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="UNIX" dst="Jacquelin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="UNIX" dst="Boivin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="UNIX" dst="Jean_Yves" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="UNIX" dst="TeX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="UNIX" dst="Geoff" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="UNIX" dst="Disney" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="UNIX" dst="iRMX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="UNIX" dst="McGee" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="UNIX" dst="Gatien" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="UNIX" dst="Laroche" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="UNIX" dst="Tanguay" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="UNIX" dst="Morin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="UNIX" dst="Ethernet" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="UNIX" dst="Bellemarre" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="UNIX" dst="Kuenning" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="UNIX" dst="Gaston" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="UNIX" dst="Harry" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="UNIX" dst="Bousquet" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="UNIX" dst="Paul" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="UNIX" dst="St_Jean" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="UNIX" dst="Jill" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="UNIX" dst="Marcel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="UNIX" dst="Wright" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="UNIX" dst="Jackson" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="UNIX" dst="Fernand" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="UNIX" dst="Soucy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="UNIX" dst="Ste_Julie" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="UNIX" dst="Victoria" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="UNIX" dst="Lessard" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="UNIX" dst="Florient" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="UNIX" dst="Marcoux" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="UNIX" dst="Gavrel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="UNIX" dst="Bescherelle" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="UNIX" dst="Pierre" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="UNIX" dst="Jamie" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="UNIX" dst="Rubin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="UNIX" dst="Olivier" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="UNIX" dst="Boucherville" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="UNIX" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="UNIX" dst="Kansas" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="UNIX" dst="King" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="UNIX" dst="Lapointe" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="UNIX" dst="Julian" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="UNIX" dst="Lafontaine" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="UNIX" dst="Gordon" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="UNIX" dst="Drouin" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="UNIX" dst="Robert" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="UNIX" dst="Jocelyne" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="UNIX" dst="Stephen" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="UNIX" dst="Provost" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="UNIX" dst="Juneau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="UNIX" dst="Casavant" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="UNIX" dst="St_Antoine" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="UNIX" dst="Louis" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="UNIX" dst="Julien" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="UNIX" dst="St_Paul" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="UNIX" dst="Mathematica" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="UNIX" dst="LaTeX" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="UNIX" dst="Sirois" symmetrical="NO"><link_ctn id="129"/></route>
-   <route src="UNIX" dst="Monique" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="UNIX" dst="Audy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="UNIX" dst="Bourassa" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="UNIX" dst="OHara" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="UNIX" dst="Boston" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="UNIX" dst="Papineau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="UNIX" dst="Fraser" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="UNIX" dst="Browne" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="UNIX" dst="SunOS" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="UNIX" dst="Varennes" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="UNIX" dst="Jacques" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="UNIX" dst="Thierry" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="UNIX" dst="Lachapelle" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="UNIX" dst="kV" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="UNIX" dst="Yolande" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="UNIX" dst="Pronovost" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="UNIX" dst="SPICE" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="UNIX" dst="Europe" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="UNIX" dst="Roy" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="UNIX" dst="Amadeus" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="UNIX" dst="Intel" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="UNIX" dst="Cambridge" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="UNIX" dst="Tremblay" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="UNIX" dst="Domey" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="UNIX" dst="St_Bruno" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="UNIX" dst="Jean_Claude" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="UNIX" dst="Doyon" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="UNIX" dst="Fafard" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="UNIX" dst="Croteau" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="UNIX" dst="Dodge" symmetrical="NO"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Domey" dst="Jacquelin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Domey" dst="Boivin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/></route>
-   <route src="Domey" dst="Jean_Yves" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Domey" dst="TeX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Domey" dst="Geoff" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Domey" dst="Disney" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Domey" dst="iRMX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Domey" dst="McGee" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/></route>
-   <route src="Domey" dst="Gatien" symmetrical="NO"><link_ctn id="115"/></route>
-   <route src="Domey" dst="Laroche" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Domey" dst="Tanguay" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Domey" dst="Morin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Domey" dst="Ethernet" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Domey" dst="Bellemarre" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Domey" dst="Kuenning" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Domey" dst="Gaston" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Domey" dst="Harry" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Domey" dst="Bousquet" symmetrical="NO"><link_ctn id="40"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Domey" dst="Paul" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Domey" dst="St_Jean" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Domey" dst="Jill" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Domey" dst="Marcel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Domey" dst="Wright" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Domey" dst="Jackson" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Domey" dst="Fernand" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Domey" dst="Soucy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Domey" dst="Ste_Julie" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Domey" dst="Victoria" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Domey" dst="Lessard" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Domey" dst="Florient" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Domey" dst="Marcoux" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Domey" dst="Gavrel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Domey" dst="Bescherelle" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Domey" dst="Pierre" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Domey" dst="Jamie" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Domey" dst="Rubin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Domey" dst="Olivier" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Domey" dst="Boucherville" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Domey" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Domey" dst="Kansas" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Domey" dst="King" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Domey" dst="Lapointe" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Domey" dst="Julian" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Domey" dst="Lafontaine" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Domey" dst="Gordon" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Domey" dst="Drouin" symmetrical="NO"><link_ctn id="40"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Domey" dst="Robert" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Domey" dst="Jocelyne" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Domey" dst="Stephen" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Domey" dst="Provost" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Domey" dst="Juneau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Domey" dst="Casavant" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Domey" dst="St_Antoine" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Domey" dst="Louis" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Domey" dst="Julien" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Domey" dst="St_Paul" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Domey" dst="Mathematica" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Domey" dst="LaTeX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Domey" dst="Sirois" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Domey" dst="Monique" symmetrical="NO"><link_ctn id="113"/></route>
-   <route src="Domey" dst="Audy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Domey" dst="Bourassa" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Domey" dst="OHara" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Domey" dst="Boston" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Domey" dst="Papineau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Domey" dst="Fraser" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Domey" dst="Browne" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Domey" dst="SunOS" symmetrical="NO"><link_ctn id="114"/></route>
-   <route src="Domey" dst="Varennes" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Domey" dst="Jacques" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Domey" dst="Thierry" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Domey" dst="Lachapelle" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Domey" dst="kV" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Domey" dst="Yolande" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Domey" dst="Pronovost" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Domey" dst="SPICE" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Domey" dst="Europe" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Domey" dst="Roy" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Domey" dst="Amadeus" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Domey" dst="Intel" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Domey" dst="Cambridge" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Domey" dst="Tremblay" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Domey" dst="UNIX" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Domey" dst="St_Bruno" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Domey" dst="Jean_Claude" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Domey" dst="Doyon" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Domey" dst="Fafard" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Domey" dst="Croteau" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Domey" dst="Dodge" symmetrical="NO"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="St_Bruno" dst="Jacquelin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="St_Bruno" dst="Boivin" symmetrical="NO"><link_ctn id="119"/></route>
-   <route src="St_Bruno" dst="Jean_Yves" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="St_Bruno" dst="TeX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="St_Bruno" dst="Geoff" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="St_Bruno" dst="Disney" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="St_Bruno" dst="iRMX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="St_Bruno" dst="McGee" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="St_Bruno" dst="Gatien" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="St_Bruno" dst="Laroche" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="St_Bruno" dst="Tanguay" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="St_Bruno" dst="Morin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="St_Bruno" dst="Ethernet" symmetrical="NO"><link_ctn id="119"/><link_ctn id="118"/></route>
-   <route src="St_Bruno" dst="Bellemarre" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="St_Bruno" dst="Kuenning" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="St_Bruno" dst="Gaston" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="St_Bruno" dst="Harry" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="St_Bruno" dst="Bousquet" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="St_Bruno" dst="Paul" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="St_Bruno" dst="St_Jean" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="St_Bruno" dst="Jill" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="St_Bruno" dst="Marcel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="St_Bruno" dst="Wright" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="St_Bruno" dst="Jackson" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="St_Bruno" dst="Fernand" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="St_Bruno" dst="Soucy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="St_Bruno" dst="Ste_Julie" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="St_Bruno" dst="Victoria" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="St_Bruno" dst="Lessard" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="St_Bruno" dst="Florient" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="St_Bruno" dst="Marcoux" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="St_Bruno" dst="Gavrel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="St_Bruno" dst="Bescherelle" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="St_Bruno" dst="Pierre" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="St_Bruno" dst="Jamie" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="St_Bruno" dst="Rubin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="St_Bruno" dst="Olivier" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="St_Bruno" dst="Boucherville" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="St_Bruno" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="St_Bruno" dst="Kansas" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="St_Bruno" dst="King" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="St_Bruno" dst="Lapointe" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="St_Bruno" dst="Julian" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="St_Bruno" dst="Lafontaine" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="St_Bruno" dst="Gordon" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="St_Bruno" dst="Drouin" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="St_Bruno" dst="Robert" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="St_Bruno" dst="Jocelyne" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="St_Bruno" dst="Stephen" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="St_Bruno" dst="Provost" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="St_Bruno" dst="Juneau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="St_Bruno" dst="Casavant" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="St_Bruno" dst="St_Antoine" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="St_Bruno" dst="Louis" symmetrical="NO"><link_ctn id="119"/><link_ctn id="117"/></route>
-   <route src="St_Bruno" dst="Julien" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="St_Bruno" dst="St_Paul" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="St_Bruno" dst="Mathematica" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="St_Bruno" dst="LaTeX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="St_Bruno" dst="Sirois" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="St_Bruno" dst="Monique" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="St_Bruno" dst="Audy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="St_Bruno" dst="Bourassa" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="St_Bruno" dst="OHara" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="St_Bruno" dst="Boston" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="St_Bruno" dst="Papineau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="St_Bruno" dst="Fraser" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="St_Bruno" dst="Browne" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="St_Bruno" dst="SunOS" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="St_Bruno" dst="Varennes" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="St_Bruno" dst="Jacques" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="St_Bruno" dst="Thierry" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="St_Bruno" dst="Lachapelle" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="St_Bruno" dst="kV" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="St_Bruno" dst="Yolande" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="St_Bruno" dst="Pronovost" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="St_Bruno" dst="SPICE" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="St_Bruno" dst="Europe" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="St_Bruno" dst="Roy" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="St_Bruno" dst="Amadeus" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="St_Bruno" dst="Intel" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="St_Bruno" dst="Cambridge" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="St_Bruno" dst="Tremblay" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="St_Bruno" dst="UNIX" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="St_Bruno" dst="Domey" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="St_Bruno" dst="Jean_Claude" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="St_Bruno" dst="Doyon" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="St_Bruno" dst="Fafard" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="St_Bruno" dst="Croteau" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="St_Bruno" dst="Dodge" symmetrical="NO"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Jean_Claude" dst="Jacquelin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Jean_Claude" dst="Boivin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Jean_Claude" dst="Jean_Yves" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Jean_Claude" dst="TeX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Jean_Claude" dst="Geoff" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Jean_Claude" dst="Disney" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Jean_Claude" dst="iRMX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Jean_Claude" dst="McGee" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Jean_Claude" dst="Gatien" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Jean_Claude" dst="Laroche" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Jean_Claude" dst="Tanguay" symmetrical="NO"><link_ctn id="160"/><link_ctn id="162"/></route>
-   <route src="Jean_Claude" dst="Morin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Jean_Claude" dst="Ethernet" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Jean_Claude" dst="Bellemarre" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Jean_Claude" dst="Kuenning" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Jean_Claude" dst="Gaston" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Jean_Claude" dst="Harry" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Jean_Claude" dst="Bousquet" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Jean_Claude" dst="Paul" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Jean_Claude" dst="St_Jean" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Jean_Claude" dst="Jill" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Jean_Claude" dst="Marcel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Jean_Claude" dst="Wright" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Jean_Claude" dst="Jackson" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Jean_Claude" dst="Fernand" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Jean_Claude" dst="Soucy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Jean_Claude" dst="Ste_Julie" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/></route>
-   <route src="Jean_Claude" dst="Victoria" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Jean_Claude" dst="Lessard" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Jean_Claude" dst="Florient" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Jean_Claude" dst="Marcoux" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Jean_Claude" dst="Gavrel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Jean_Claude" dst="Bescherelle" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Jean_Claude" dst="Pierre" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Jean_Claude" dst="Jamie" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Jean_Claude" dst="Rubin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Jean_Claude" dst="Olivier" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Jean_Claude" dst="Boucherville" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Jean_Claude" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Jean_Claude" dst="Kansas" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Jean_Claude" dst="King" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Jean_Claude" dst="Lapointe" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Jean_Claude" dst="Julian" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Jean_Claude" dst="Lafontaine" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Jean_Claude" dst="Gordon" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Jean_Claude" dst="Drouin" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Jean_Claude" dst="Robert" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Jean_Claude" dst="Jocelyne" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Jean_Claude" dst="Stephen" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Jean_Claude" dst="Provost" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Jean_Claude" dst="Juneau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Jean_Claude" dst="Casavant" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Jean_Claude" dst="St_Antoine" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Jean_Claude" dst="Louis" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Jean_Claude" dst="Julien" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Jean_Claude" dst="St_Paul" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Jean_Claude" dst="Mathematica" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Jean_Claude" dst="LaTeX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Jean_Claude" dst="Sirois" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Jean_Claude" dst="Monique" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Jean_Claude" dst="Audy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Jean_Claude" dst="Bourassa" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Jean_Claude" dst="OHara" symmetrical="NO"><link_ctn id="160"/><link_ctn id="163"/></route>
-   <route src="Jean_Claude" dst="Boston" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Jean_Claude" dst="Papineau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Jean_Claude" dst="Fraser" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Jean_Claude" dst="Browne" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Jean_Claude" dst="SunOS" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Jean_Claude" dst="Varennes" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Jean_Claude" dst="Jacques" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Jean_Claude" dst="Thierry" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Jean_Claude" dst="Lachapelle" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Jean_Claude" dst="kV" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Jean_Claude" dst="Yolande" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Jean_Claude" dst="Pronovost" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Jean_Claude" dst="SPICE" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Jean_Claude" dst="Europe" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Jean_Claude" dst="Roy" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Jean_Claude" dst="Amadeus" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Jean_Claude" dst="Intel" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Jean_Claude" dst="Cambridge" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Jean_Claude" dst="Tremblay" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Jean_Claude" dst="UNIX" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Jean_Claude" dst="Domey" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Jean_Claude" dst="St_Bruno" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Jean_Claude" dst="Doyon" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Jean_Claude" dst="Fafard" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Jean_Claude" dst="Croteau" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Jean_Claude" dst="Dodge" symmetrical="NO"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Doyon" dst="Jacquelin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Doyon" dst="Boivin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Doyon" dst="Jean_Yves" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Doyon" dst="TeX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Doyon" dst="Geoff" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/></route>
-   <route src="Doyon" dst="Disney" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Doyon" dst="iRMX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Doyon" dst="McGee" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Doyon" dst="Gatien" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Doyon" dst="Laroche" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Doyon" dst="Tanguay" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Doyon" dst="Morin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Doyon" dst="Ethernet" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Doyon" dst="Bellemarre" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Doyon" dst="Kuenning" symmetrical="NO"><link_ctn id="132"/><link_ctn id="135"/></route>
-   <route src="Doyon" dst="Gaston" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Doyon" dst="Harry" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Doyon" dst="Bousquet" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Doyon" dst="Paul" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Doyon" dst="St_Jean" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Doyon" dst="Jill" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Doyon" dst="Marcel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Doyon" dst="Wright" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Doyon" dst="Jackson" symmetrical="NO"><link_ctn id="132"/></route>
-   <route src="Doyon" dst="Fernand" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Doyon" dst="Soucy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Doyon" dst="Ste_Julie" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Doyon" dst="Victoria" symmetrical="NO"><link_ctn id="132"/><link_ctn id="133"/></route>
-   <route src="Doyon" dst="Lessard" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Doyon" dst="Florient" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Doyon" dst="Marcoux" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Doyon" dst="Gavrel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Doyon" dst="Bescherelle" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Doyon" dst="Pierre" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Doyon" dst="Jamie" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Doyon" dst="Rubin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Doyon" dst="Olivier" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Doyon" dst="Boucherville" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Doyon" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Doyon" dst="Kansas" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Doyon" dst="King" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Doyon" dst="Lapointe" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
-   <route src="Doyon" dst="Julian" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Doyon" dst="Lafontaine" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Doyon" dst="Gordon" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Doyon" dst="Drouin" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Doyon" dst="Robert" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Doyon" dst="Jocelyne" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Doyon" dst="Stephen" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Doyon" dst="Provost" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Doyon" dst="Juneau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Doyon" dst="Casavant" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Doyon" dst="St_Antoine" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/></route>
-   <route src="Doyon" dst="Louis" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Doyon" dst="Julien" symmetrical="NO"><link_ctn id="132"/><link_ctn id="134"/></route>
-   <route src="Doyon" dst="St_Paul" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Doyon" dst="Mathematica" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Doyon" dst="LaTeX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Doyon" dst="Sirois" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Doyon" dst="Monique" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Doyon" dst="Audy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Doyon" dst="Bourassa" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Doyon" dst="OHara" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Doyon" dst="Boston" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Doyon" dst="Papineau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Doyon" dst="Fraser" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Doyon" dst="Browne" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Doyon" dst="SunOS" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Doyon" dst="Varennes" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Doyon" dst="Jacques" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Doyon" dst="Thierry" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Doyon" dst="Lachapelle" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Doyon" dst="kV" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
-   <route src="Doyon" dst="Yolande" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Doyon" dst="Pronovost" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Doyon" dst="SPICE" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Doyon" dst="Europe" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Doyon" dst="Roy" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Doyon" dst="Amadeus" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Doyon" dst="Intel" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Doyon" dst="Cambridge" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Doyon" dst="Tremblay" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Doyon" dst="UNIX" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Doyon" dst="Domey" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Doyon" dst="St_Bruno" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Doyon" dst="Jean_Claude" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Doyon" dst="Fafard" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Doyon" dst="Croteau" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Doyon" dst="Dodge" symmetrical="NO"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Fafard" dst="Jacquelin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Fafard" dst="Boivin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Fafard" dst="Jean_Yves" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Fafard" dst="TeX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Fafard" dst="Geoff" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Fafard" dst="Disney" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Fafard" dst="iRMX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Fafard" dst="McGee" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Fafard" dst="Gatien" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Fafard" dst="Laroche" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Fafard" dst="Tanguay" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Fafard" dst="Morin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Fafard" dst="Ethernet" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Fafard" dst="Bellemarre" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Fafard" dst="Kuenning" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Fafard" dst="Gaston" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Fafard" dst="Harry" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Fafard" dst="Bousquet" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Fafard" dst="Paul" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Fafard" dst="St_Jean" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Fafard" dst="Jill" symmetrical="NO"><link_ctn id="179"/></route>
-   <route src="Fafard" dst="Marcel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Fafard" dst="Wright" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Fafard" dst="Jackson" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Fafard" dst="Fernand" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Fafard" dst="Soucy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Fafard" dst="Ste_Julie" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Fafard" dst="Victoria" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Fafard" dst="Lessard" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Fafard" dst="Florient" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Fafard" dst="Marcoux" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Fafard" dst="Gavrel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Fafard" dst="Bescherelle" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Fafard" dst="Pierre" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Fafard" dst="Jamie" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Fafard" dst="Rubin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Fafard" dst="Olivier" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Fafard" dst="Boucherville" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/></route>
-   <route src="Fafard" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Fafard" dst="Kansas" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Fafard" dst="King" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Fafard" dst="Lapointe" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Fafard" dst="Julian" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Fafard" dst="Lafontaine" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Fafard" dst="Gordon" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Fafard" dst="Drouin" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Fafard" dst="Robert" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Fafard" dst="Jocelyne" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Fafard" dst="Stephen" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Fafard" dst="Provost" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Fafard" dst="Juneau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Fafard" dst="Casavant" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Fafard" dst="St_Antoine" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Fafard" dst="Louis" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Fafard" dst="Julien" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Fafard" dst="St_Paul" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Fafard" dst="Mathematica" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Fafard" dst="LaTeX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="177"/></route>
-   <route src="Fafard" dst="Sirois" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Fafard" dst="Monique" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Fafard" dst="Audy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Fafard" dst="Bourassa" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Fafard" dst="OHara" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Fafard" dst="Boston" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Fafard" dst="Papineau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Fafard" dst="Fraser" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Fafard" dst="Browne" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Fafard" dst="SunOS" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Fafard" dst="Varennes" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Fafard" dst="Jacques" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Fafard" dst="Thierry" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Fafard" dst="Lachapelle" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Fafard" dst="kV" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Fafard" dst="Yolande" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Fafard" dst="Pronovost" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Fafard" dst="SPICE" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Fafard" dst="Europe" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Fafard" dst="Roy" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Fafard" dst="Amadeus" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Fafard" dst="Intel" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Fafard" dst="Cambridge" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Fafard" dst="Tremblay" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Fafard" dst="UNIX" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Fafard" dst="Domey" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Fafard" dst="St_Bruno" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Fafard" dst="Jean_Claude" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Fafard" dst="Doyon" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Fafard" dst="Croteau" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
-   <route src="Fafard" dst="Dodge" symmetrical="NO"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Croteau" dst="Jacquelin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Croteau" dst="Boivin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Croteau" dst="Jean_Yves" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Croteau" dst="TeX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Croteau" dst="Geoff" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Croteau" dst="Disney" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Croteau" dst="iRMX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="172"/></route>
-   <route src="Croteau" dst="McGee" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Croteau" dst="Gatien" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Croteau" dst="Laroche" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/></route>
-   <route src="Croteau" dst="Tanguay" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Croteau" dst="Morin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Croteau" dst="Ethernet" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Croteau" dst="Bellemarre" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Croteau" dst="Kuenning" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Croteau" dst="Gaston" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Croteau" dst="Harry" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Croteau" dst="Bousquet" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Croteau" dst="Paul" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Croteau" dst="St_Jean" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Croteau" dst="Jill" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/></route>
-   <route src="Croteau" dst="Marcel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Croteau" dst="Wright" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Croteau" dst="Jackson" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Croteau" dst="Fernand" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Croteau" dst="Soucy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Croteau" dst="Ste_Julie" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Croteau" dst="Victoria" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Croteau" dst="Lessard" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Croteau" dst="Florient" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
-   <route src="Croteau" dst="Marcoux" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Croteau" dst="Gavrel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Croteau" dst="Bescherelle" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Croteau" dst="Pierre" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Croteau" dst="Jamie" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Croteau" dst="Rubin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Croteau" dst="Olivier" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Croteau" dst="Boucherville" symmetrical="NO"><link_ctn id="175"/></route>
-   <route src="Croteau" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Croteau" dst="Kansas" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Croteau" dst="King" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Croteau" dst="Lapointe" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
-   <route src="Croteau" dst="Julian" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Croteau" dst="Lafontaine" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Croteau" dst="Gordon" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
-   <route src="Croteau" dst="Drouin" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Croteau" dst="Robert" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Croteau" dst="Jocelyne" symmetrical="NO"><link_ctn id="175"/><link_ctn id="173"/></route>
-   <route src="Croteau" dst="Stephen" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Croteau" dst="Provost" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Croteau" dst="Juneau" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Croteau" dst="Casavant" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Croteau" dst="St_Antoine" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Croteau" dst="Louis" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Croteau" dst="Julien" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Croteau" dst="St_Paul" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Croteau" dst="Mathematica" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Croteau" dst="LaTeX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Croteau" dst="Sirois" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Croteau" dst="Monique" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Croteau" dst="Audy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
-   <route src="Croteau" dst="Bourassa" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Croteau" dst="OHara" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Croteau" dst="Boston" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Croteau" dst="Papineau" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
-   <route src="Croteau" dst="Fraser" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Croteau" dst="Browne" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Croteau" dst="SunOS" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Croteau" dst="Varennes" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Croteau" dst="Jacques" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Croteau" dst="Thierry" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Croteau" dst="Lachapelle" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Croteau" dst="kV" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Croteau" dst="Yolande" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Croteau" dst="Pronovost" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Croteau" dst="SPICE" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Croteau" dst="Europe" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Croteau" dst="Roy" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Croteau" dst="Amadeus" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Croteau" dst="Intel" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Croteau" dst="Cambridge" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Croteau" dst="Tremblay" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Croteau" dst="UNIX" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Croteau" dst="Domey" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Croteau" dst="St_Bruno" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Croteau" dst="Jean_Claude" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Croteau" dst="Doyon" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Croteau" dst="Fafard" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Croteau" dst="Dodge" symmetrical="NO"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
-   <route src="Dodge" dst="Jacquelin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="145"/></route>
-   <route src="Dodge" dst="Boivin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/></route>
-   <route src="Dodge" dst="Jean_Yves" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="138"/></route>
-   <route src="Dodge" dst="TeX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="100"/></route>
-   <route src="Dodge" dst="Geoff" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/></route>
-   <route src="Dodge" dst="Disney" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="111"/></route>
-   <route src="Dodge" dst="iRMX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="172"/></route>
-   <route src="Dodge" dst="McGee" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/></route>
-   <route src="Dodge" dst="Gatien" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="115"/></route>
-   <route src="Dodge" dst="Laroche" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/></route>
-   <route src="Dodge" dst="Tanguay" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="162"/></route>
-   <route src="Dodge" dst="Morin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="31"/><link_ctn id="106"/></route>
-   <route src="Dodge" dst="Ethernet" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="118"/></route>
-   <route src="Dodge" dst="Bellemarre" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/></route>
-   <route src="Dodge" dst="Kuenning" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="135"/></route>
-   <route src="Dodge" dst="Gaston" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="153"/></route>
-   <route src="Dodge" dst="Harry" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="108"/></route>
-   <route src="Dodge" dst="Bousquet" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="36"/><link_ctn id="37"/><link_ctn id="124"/></route>
-   <route src="Dodge" dst="Paul" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="93"/></route>
-   <route src="Dodge" dst="St_Jean" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="97"/></route>
-   <route src="Dodge" dst="Jill" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/></route>
-   <route src="Dodge" dst="Marcel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="155"/></route>
-   <route src="Dodge" dst="Wright" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
-   <route src="Dodge" dst="Jackson" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
-   <route src="Dodge" dst="Fernand" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
-   <route src="Dodge" dst="Soucy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
-   <route src="Dodge" dst="Ste_Julie" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
-   <route src="Dodge" dst="Victoria" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
-   <route src="Dodge" dst="Lessard" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
-   <route src="Dodge" dst="Florient" symmetrical="NO"><link_ctn id="180"/><link_ctn id="181"/></route>
-   <route src="Dodge" dst="Marcoux" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
-   <route src="Dodge" dst="Gavrel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
-   <route src="Dodge" dst="Bescherelle" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
-   <route src="Dodge" dst="Pierre" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
-   <route src="Dodge" dst="Jamie" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
-   <route src="Dodge" dst="Rubin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
-   <route src="Dodge" dst="Olivier" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
-   <route src="Dodge" dst="Boucherville" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
-   <route src="Dodge" dst="Pointe_Claire" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
-   <route src="Dodge" dst="Kansas" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
-   <route src="Dodge" dst="King" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
-   <route src="Dodge" dst="Lapointe" symmetrical="NO"><link_ctn id="180"/></route>
-   <route src="Dodge" dst="Julian" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
-   <route src="Dodge" dst="Lafontaine" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
-   <route src="Dodge" dst="Gordon" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
-   <route src="Dodge" dst="Drouin" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
-   <route src="Dodge" dst="Robert" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
-   <route src="Dodge" dst="Jocelyne" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
-   <route src="Dodge" dst="Stephen" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
-   <route src="Dodge" dst="Provost" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
-   <route src="Dodge" dst="Juneau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
-   <route src="Dodge" dst="Casavant" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
-   <route src="Dodge" dst="St_Antoine" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
-   <route src="Dodge" dst="Louis" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
-   <route src="Dodge" dst="Julien" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
-   <route src="Dodge" dst="St_Paul" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
-   <route src="Dodge" dst="Mathematica" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
-   <route src="Dodge" dst="LaTeX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
-   <route src="Dodge" dst="Sirois" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
-   <route src="Dodge" dst="Monique" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
-   <route src="Dodge" dst="Audy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="183"/></route>
-   <route src="Dodge" dst="Bourassa" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
-   <route src="Dodge" dst="OHara" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
-   <route src="Dodge" dst="Boston" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
-   <route src="Dodge" dst="Papineau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="182"/></route>
-   <route src="Dodge" dst="Fraser" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
-   <route src="Dodge" dst="Browne" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
-   <route src="Dodge" dst="SunOS" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
-   <route src="Dodge" dst="Varennes" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
-   <route src="Dodge" dst="Jacques" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
-   <route src="Dodge" dst="Thierry" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
-   <route src="Dodge" dst="Lachapelle" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
-   <route src="Dodge" dst="kV" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
-   <route src="Dodge" dst="Yolande" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
-   <route src="Dodge" dst="Pronovost" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
-   <route src="Dodge" dst="SPICE" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
-   <route src="Dodge" dst="Europe" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
-   <route src="Dodge" dst="Roy" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
-   <route src="Dodge" dst="Amadeus" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
-   <route src="Dodge" dst="Intel" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
-   <route src="Dodge" dst="Cambridge" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
-   <route src="Dodge" dst="Tremblay" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
-   <route src="Dodge" dst="UNIX" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
-   <route src="Dodge" dst="Domey" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
-   <route src="Dodge" dst="St_Bruno" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
-   <route src="Dodge" dst="Jean_Claude" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
-   <route src="Dodge" dst="Doyon" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
-   <route src="Dodge" dst="Fafard" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
-   <route src="Dodge" dst="Croteau" symmetrical="NO"><link_ctn id="180"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Marcel" dst="Wright" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="147"/></route>
+   <route src="Marcel" dst="Jackson" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Marcel" dst="Fernand" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Marcel" dst="Soucy" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Marcel" dst="Ste_Julie" symmetrical="YES"><link_ctn id="155"/></route>
+   <route src="Marcel" dst="Victoria" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Marcel" dst="Lessard" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Marcel" dst="Florient" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Marcel" dst="Marcoux" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Marcel" dst="Gavrel" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Marcel" dst="Bescherelle" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Marcel" dst="Pierre" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Marcel" dst="Jamie" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Marcel" dst="Rubin" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Marcel" dst="Olivier" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Marcel" dst="Boucherville" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Marcel" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Marcel" dst="Kansas" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Marcel" dst="King" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Marcel" dst="Lapointe" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Marcel" dst="Julian" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Marcel" dst="Lafontaine" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Marcel" dst="Gordon" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Marcel" dst="Drouin" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Marcel" dst="Robert" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Marcel" dst="Jocelyne" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Marcel" dst="Stephen" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Marcel" dst="Provost" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Marcel" dst="Juneau" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Marcel" dst="Casavant" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Marcel" dst="St_Antoine" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Marcel" dst="Louis" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Marcel" dst="Julien" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Marcel" dst="St_Paul" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Marcel" dst="Mathematica" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Marcel" dst="LaTeX" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Marcel" dst="Sirois" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Marcel" dst="Monique" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Marcel" dst="Audy" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Marcel" dst="Bourassa" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Marcel" dst="OHara" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Marcel" dst="Boston" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Marcel" dst="Papineau" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Marcel" dst="Fraser" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Marcel" dst="Browne" symmetrical="YES"><link_ctn id="155"/><link_ctn id="152"/></route>
+   <route src="Marcel" dst="SunOS" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Marcel" dst="Varennes" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Marcel" dst="Jacques" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Marcel" dst="Thierry" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Marcel" dst="Lachapelle" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Marcel" dst="kV" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Marcel" dst="Yolande" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Marcel" dst="Pronovost" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Marcel" dst="SPICE" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Marcel" dst="Europe" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Marcel" dst="Roy" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Marcel" dst="Amadeus" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Marcel" dst="Intel" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Marcel" dst="Cambridge" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Marcel" dst="Tremblay" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Marcel" dst="UNIX" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Marcel" dst="Domey" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Marcel" dst="St_Bruno" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Marcel" dst="Jean_Claude" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Marcel" dst="Doyon" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Marcel" dst="Fafard" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Marcel" dst="Croteau" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Marcel" dst="Dodge" symmetrical="YES"><link_ctn id="155"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Wright" dst="Jackson" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/></route>
+   <route src="Wright" dst="Fernand" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Wright" dst="Soucy" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Wright" dst="Ste_Julie" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Wright" dst="Victoria" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Wright" dst="Lessard" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Wright" dst="Florient" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Wright" dst="Marcoux" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Wright" dst="Gavrel" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Wright" dst="Bescherelle" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Wright" dst="Pierre" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Wright" dst="Jamie" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Wright" dst="Rubin" symmetrical="YES"><link_ctn id="147"/><link_ctn id="144"/></route>
+   <route src="Wright" dst="Olivier" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Wright" dst="Boucherville" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Wright" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Wright" dst="Kansas" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Wright" dst="King" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Wright" dst="Lapointe" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Wright" dst="Julian" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Wright" dst="Lafontaine" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Wright" dst="Gordon" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Wright" dst="Drouin" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Wright" dst="Robert" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Wright" dst="Jocelyne" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Wright" dst="Stephen" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Wright" dst="Provost" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Wright" dst="Juneau" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Wright" dst="Casavant" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Wright" dst="St_Antoine" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Wright" dst="Louis" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Wright" dst="Julien" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Wright" dst="St_Paul" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Wright" dst="Mathematica" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Wright" dst="LaTeX" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Wright" dst="Sirois" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Wright" dst="Monique" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Wright" dst="Audy" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Wright" dst="Bourassa" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Wright" dst="OHara" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Wright" dst="Boston" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Wright" dst="Papineau" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Wright" dst="Fraser" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Wright" dst="Browne" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Wright" dst="SunOS" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Wright" dst="Varennes" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Wright" dst="Jacques" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Wright" dst="Thierry" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Wright" dst="Lachapelle" symmetrical="YES"><link_ctn id="147"/><link_ctn id="146"/></route>
+   <route src="Wright" dst="kV" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Wright" dst="Yolande" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Wright" dst="Pronovost" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Wright" dst="SPICE" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Wright" dst="Europe" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Wright" dst="Roy" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Wright" dst="Amadeus" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Wright" dst="Intel" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Wright" dst="Cambridge" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Wright" dst="Tremblay" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Wright" dst="UNIX" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Wright" dst="Domey" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Wright" dst="St_Bruno" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Wright" dst="Jean_Claude" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Wright" dst="Doyon" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Wright" dst="Fafard" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Wright" dst="Croteau" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Wright" dst="Dodge" symmetrical="YES"><link_ctn id="147"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jackson" dst="Fernand" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="109"/></route>
+   <route src="Jackson" dst="Soucy" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Jackson" dst="Ste_Julie" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Jackson" dst="Victoria" symmetrical="YES"><link_ctn id="133"/></route>
+   <route src="Jackson" dst="Lessard" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Jackson" dst="Florient" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Jackson" dst="Marcoux" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Jackson" dst="Gavrel" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Jackson" dst="Bescherelle" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Jackson" dst="Pierre" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Jackson" dst="Jamie" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Jackson" dst="Rubin" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Jackson" dst="Olivier" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Jackson" dst="Boucherville" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Jackson" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Jackson" dst="Kansas" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Jackson" dst="King" symmetrical="YES"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Jackson" dst="Lapointe" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Jackson" dst="Julian" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Jackson" dst="Lafontaine" symmetrical="YES"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Jackson" dst="Gordon" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Jackson" dst="Drouin" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Jackson" dst="Robert" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Jackson" dst="Jocelyne" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Jackson" dst="Stephen" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jackson" dst="Provost" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jackson" dst="Juneau" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jackson" dst="Casavant" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jackson" dst="St_Antoine" symmetrical="YES"><link_ctn id="62"/><link_ctn id="63"/></route>
+   <route src="Jackson" dst="Louis" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jackson" dst="Julien" symmetrical="YES"><link_ctn id="134"/></route>
+   <route src="Jackson" dst="St_Paul" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jackson" dst="Mathematica" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jackson" dst="LaTeX" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Jackson" dst="Sirois" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jackson" dst="Monique" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jackson" dst="Audy" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jackson" dst="Bourassa" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jackson" dst="OHara" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jackson" dst="Boston" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jackson" dst="Papineau" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jackson" dst="Fraser" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jackson" dst="Browne" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jackson" dst="SunOS" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jackson" dst="Varennes" symmetrical="YES"><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Jackson" dst="Jacques" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jackson" dst="Thierry" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jackson" dst="Lachapelle" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jackson" dst="kV" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Jackson" dst="Yolande" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jackson" dst="Pronovost" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jackson" dst="SPICE" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jackson" dst="Europe" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jackson" dst="Roy" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jackson" dst="Amadeus" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jackson" dst="Intel" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jackson" dst="Cambridge" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jackson" dst="Tremblay" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jackson" dst="UNIX" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jackson" dst="Domey" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jackson" dst="St_Bruno" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jackson" dst="Jean_Claude" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jackson" dst="Doyon" symmetrical="YES"><link_ctn id="132"/></route>
+   <route src="Jackson" dst="Fafard" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jackson" dst="Croteau" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jackson" dst="Dodge" symmetrical="YES"><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Fernand" dst="Soucy" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="191"/></route>
+   <route src="Fernand" dst="Ste_Julie" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Fernand" dst="Victoria" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Fernand" dst="Lessard" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Fernand" dst="Florient" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Fernand" dst="Marcoux" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Fernand" dst="Gavrel" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Fernand" dst="Bescherelle" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Fernand" dst="Pierre" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Fernand" dst="Jamie" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Fernand" dst="Rubin" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Fernand" dst="Olivier" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Fernand" dst="Boucherville" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Fernand" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Fernand" dst="Kansas" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Fernand" dst="King" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Fernand" dst="Lapointe" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Fernand" dst="Julian" symmetrical="YES"><link_ctn id="109"/></route>
+   <route src="Fernand" dst="Lafontaine" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Fernand" dst="Gordon" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Fernand" dst="Drouin" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Fernand" dst="Robert" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Fernand" dst="Jocelyne" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Fernand" dst="Stephen" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Fernand" dst="Provost" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Fernand" dst="Juneau" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Fernand" dst="Casavant" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Fernand" dst="St_Antoine" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Fernand" dst="Louis" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Fernand" dst="Julien" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Fernand" dst="St_Paul" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Fernand" dst="Mathematica" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Fernand" dst="LaTeX" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Fernand" dst="Sirois" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Fernand" dst="Monique" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Fernand" dst="Audy" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Fernand" dst="Bourassa" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Fernand" dst="OHara" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Fernand" dst="Boston" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Fernand" dst="Papineau" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Fernand" dst="Fraser" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Fernand" dst="Browne" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Fernand" dst="SunOS" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Fernand" dst="Varennes" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Fernand" dst="Jacques" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Fernand" dst="Thierry" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Fernand" dst="Lachapelle" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Fernand" dst="kV" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Fernand" dst="Yolande" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Fernand" dst="Pronovost" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Fernand" dst="SPICE" symmetrical="YES"><link_ctn id="109"/><link_ctn id="110"/></route>
+   <route src="Fernand" dst="Europe" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Fernand" dst="Roy" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Fernand" dst="Amadeus" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Fernand" dst="Intel" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Fernand" dst="Cambridge" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Fernand" dst="Tremblay" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Fernand" dst="UNIX" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Fernand" dst="Domey" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Fernand" dst="St_Bruno" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Fernand" dst="Jean_Claude" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Fernand" dst="Doyon" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Fernand" dst="Fafard" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Fernand" dst="Croteau" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Fernand" dst="Dodge" symmetrical="YES"><link_ctn id="109"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Soucy" dst="Ste_Julie" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/></route>
+   <route src="Soucy" dst="Victoria" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Soucy" dst="Lessard" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Soucy" dst="Florient" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Soucy" dst="Marcoux" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Soucy" dst="Gavrel" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Soucy" dst="Bescherelle" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Soucy" dst="Pierre" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Soucy" dst="Jamie" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Soucy" dst="Rubin" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Soucy" dst="Olivier" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Soucy" dst="Boucherville" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Soucy" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Soucy" dst="Kansas" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Soucy" dst="King" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Soucy" dst="Lapointe" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Soucy" dst="Julian" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Soucy" dst="Lafontaine" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Soucy" dst="Gordon" symmetrical="YES"><link_ctn id="191"/></route>
+   <route src="Soucy" dst="Drouin" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Soucy" dst="Robert" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Soucy" dst="Jocelyne" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Soucy" dst="Stephen" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Soucy" dst="Provost" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Soucy" dst="Juneau" symmetrical="YES"><link_ctn id="191"/><link_ctn id="189"/></route>
+   <route src="Soucy" dst="Casavant" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Soucy" dst="St_Antoine" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Soucy" dst="Louis" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Soucy" dst="Julien" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Soucy" dst="St_Paul" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Soucy" dst="Mathematica" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Soucy" dst="LaTeX" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Soucy" dst="Sirois" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Soucy" dst="Monique" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Soucy" dst="Audy" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Soucy" dst="Bourassa" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Soucy" dst="OHara" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Soucy" dst="Boston" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Soucy" dst="Papineau" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Soucy" dst="Fraser" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Soucy" dst="Browne" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Soucy" dst="SunOS" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Soucy" dst="Varennes" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Soucy" dst="Jacques" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Soucy" dst="Thierry" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Soucy" dst="Lachapelle" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Soucy" dst="kV" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Soucy" dst="Yolande" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Soucy" dst="Pronovost" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Soucy" dst="SPICE" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Soucy" dst="Europe" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Soucy" dst="Roy" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Soucy" dst="Amadeus" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Soucy" dst="Intel" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Soucy" dst="Cambridge" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Soucy" dst="Tremblay" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Soucy" dst="UNIX" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Soucy" dst="Domey" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Soucy" dst="St_Bruno" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Soucy" dst="Jean_Claude" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Soucy" dst="Doyon" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Soucy" dst="Fafard" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Soucy" dst="Croteau" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Soucy" dst="Dodge" symmetrical="YES"><link_ctn id="191"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Ste_Julie" dst="Victoria" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="133"/></route>
+   <route src="Ste_Julie" dst="Lessard" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Ste_Julie" dst="Florient" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Ste_Julie" dst="Marcoux" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Ste_Julie" dst="Gavrel" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Ste_Julie" dst="Bescherelle" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Ste_Julie" dst="Pierre" symmetrical="YES"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Ste_Julie" dst="Jamie" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Ste_Julie" dst="Rubin" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Ste_Julie" dst="Olivier" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Ste_Julie" dst="Boucherville" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Ste_Julie" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Ste_Julie" dst="Kansas" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Ste_Julie" dst="King" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Ste_Julie" dst="Lapointe" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Ste_Julie" dst="Julian" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Ste_Julie" dst="Lafontaine" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Ste_Julie" dst="Gordon" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Ste_Julie" dst="Drouin" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Ste_Julie" dst="Robert" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Ste_Julie" dst="Jocelyne" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Ste_Julie" dst="Stephen" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Ste_Julie" dst="Provost" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Ste_Julie" dst="Juneau" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Ste_Julie" dst="Casavant" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Ste_Julie" dst="St_Antoine" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Ste_Julie" dst="Louis" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Ste_Julie" dst="Julien" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Ste_Julie" dst="St_Paul" symmetrical="YES"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Ste_Julie" dst="Mathematica" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Ste_Julie" dst="LaTeX" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Ste_Julie" dst="Sirois" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Ste_Julie" dst="Monique" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Ste_Julie" dst="Audy" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Ste_Julie" dst="Bourassa" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Ste_Julie" dst="OHara" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Ste_Julie" dst="Boston" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Ste_Julie" dst="Papineau" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Ste_Julie" dst="Fraser" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Ste_Julie" dst="Browne" symmetrical="YES"><link_ctn id="152"/></route>
+   <route src="Ste_Julie" dst="SunOS" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Ste_Julie" dst="Varennes" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Ste_Julie" dst="Jacques" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Ste_Julie" dst="Thierry" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Ste_Julie" dst="Lachapelle" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Ste_Julie" dst="kV" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Ste_Julie" dst="Yolande" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Ste_Julie" dst="Pronovost" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Ste_Julie" dst="SPICE" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Ste_Julie" dst="Europe" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Ste_Julie" dst="Roy" symmetrical="YES"><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Ste_Julie" dst="Amadeus" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Ste_Julie" dst="Intel" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Ste_Julie" dst="Cambridge" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Ste_Julie" dst="Tremblay" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Ste_Julie" dst="UNIX" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Ste_Julie" dst="Domey" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Ste_Julie" dst="St_Bruno" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Ste_Julie" dst="Jean_Claude" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Ste_Julie" dst="Doyon" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Ste_Julie" dst="Fafard" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Ste_Julie" dst="Croteau" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Ste_Julie" dst="Dodge" symmetrical="YES"><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Victoria" dst="Lessard" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="99"/></route>
+   <route src="Victoria" dst="Florient" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Victoria" dst="Marcoux" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Victoria" dst="Gavrel" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Victoria" dst="Bescherelle" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Victoria" dst="Pierre" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Victoria" dst="Jamie" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Victoria" dst="Rubin" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Victoria" dst="Olivier" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Victoria" dst="Boucherville" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Victoria" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Victoria" dst="Kansas" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Victoria" dst="King" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Victoria" dst="Lapointe" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Victoria" dst="Julian" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Victoria" dst="Lafontaine" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Victoria" dst="Gordon" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Victoria" dst="Drouin" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Victoria" dst="Robert" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Victoria" dst="Jocelyne" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Victoria" dst="Stephen" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Victoria" dst="Provost" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Victoria" dst="Juneau" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Victoria" dst="Casavant" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Victoria" dst="St_Antoine" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/></route>
+   <route src="Victoria" dst="Louis" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Victoria" dst="Julien" symmetrical="YES"><link_ctn id="133"/><link_ctn id="134"/></route>
+   <route src="Victoria" dst="St_Paul" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Victoria" dst="Mathematica" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Victoria" dst="LaTeX" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Victoria" dst="Sirois" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Victoria" dst="Monique" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Victoria" dst="Audy" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Victoria" dst="Bourassa" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Victoria" dst="OHara" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Victoria" dst="Boston" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Victoria" dst="Papineau" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Victoria" dst="Fraser" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Victoria" dst="Browne" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Victoria" dst="SunOS" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Victoria" dst="Varennes" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Victoria" dst="Jacques" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Victoria" dst="Thierry" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Victoria" dst="Lachapelle" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Victoria" dst="kV" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Victoria" dst="Yolande" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Victoria" dst="Pronovost" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Victoria" dst="SPICE" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Victoria" dst="Europe" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Victoria" dst="Roy" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Victoria" dst="Amadeus" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Victoria" dst="Intel" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Victoria" dst="Cambridge" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Victoria" dst="Tremblay" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Victoria" dst="UNIX" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Victoria" dst="Domey" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Victoria" dst="St_Bruno" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Victoria" dst="Jean_Claude" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Victoria" dst="Doyon" symmetrical="YES"><link_ctn id="133"/><link_ctn id="132"/></route>
+   <route src="Victoria" dst="Fafard" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Victoria" dst="Croteau" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Victoria" dst="Dodge" symmetrical="YES"><link_ctn id="133"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Lessard" dst="Florient" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="181"/></route>
+   <route src="Lessard" dst="Marcoux" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Lessard" dst="Gavrel" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Lessard" dst="Bescherelle" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Lessard" dst="Pierre" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Lessard" dst="Jamie" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Lessard" dst="Rubin" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Lessard" dst="Olivier" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Lessard" dst="Boucherville" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Lessard" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Lessard" dst="Kansas" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Lessard" dst="King" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Lessard" dst="Lapointe" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Lessard" dst="Julian" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Lessard" dst="Lafontaine" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Lessard" dst="Gordon" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Lessard" dst="Drouin" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Lessard" dst="Robert" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Lessard" dst="Jocelyne" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Lessard" dst="Stephen" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Lessard" dst="Provost" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Lessard" dst="Juneau" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Lessard" dst="Casavant" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Lessard" dst="St_Antoine" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Lessard" dst="Louis" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Lessard" dst="Julien" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Lessard" dst="St_Paul" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Lessard" dst="Mathematica" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Lessard" dst="LaTeX" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Lessard" dst="Sirois" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Lessard" dst="Monique" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Lessard" dst="Audy" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Lessard" dst="Bourassa" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Lessard" dst="OHara" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Lessard" dst="Boston" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Lessard" dst="Papineau" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Lessard" dst="Fraser" symmetrical="YES"><link_ctn id="99"/><link_ctn id="96"/></route>
+   <route src="Lessard" dst="Browne" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Lessard" dst="SunOS" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Lessard" dst="Varennes" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Lessard" dst="Jacques" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Lessard" dst="Thierry" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Lessard" dst="Lachapelle" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Lessard" dst="kV" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Lessard" dst="Yolande" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Lessard" dst="Pronovost" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Lessard" dst="SPICE" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Lessard" dst="Europe" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Lessard" dst="Roy" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Lessard" dst="Amadeus" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Lessard" dst="Intel" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Lessard" dst="Cambridge" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Lessard" dst="Tremblay" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Lessard" dst="UNIX" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Lessard" dst="Domey" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Lessard" dst="St_Bruno" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Lessard" dst="Jean_Claude" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Lessard" dst="Doyon" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Lessard" dst="Fafard" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Lessard" dst="Croteau" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Lessard" dst="Dodge" symmetrical="YES"><link_ctn id="99"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Florient" dst="Marcoux" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="186"/></route>
+   <route src="Florient" dst="Gavrel" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Florient" dst="Bescherelle" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Florient" dst="Pierre" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Florient" dst="Jamie" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Florient" dst="Rubin" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Florient" dst="Olivier" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Florient" dst="Boucherville" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Florient" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Florient" dst="Kansas" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Florient" dst="King" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Florient" dst="Lapointe" symmetrical="YES"><link_ctn id="181"/></route>
+   <route src="Florient" dst="Julian" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Florient" dst="Lafontaine" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Florient" dst="Gordon" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Florient" dst="Drouin" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Florient" dst="Robert" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Florient" dst="Jocelyne" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Florient" dst="Stephen" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Florient" dst="Provost" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Florient" dst="Juneau" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Florient" dst="Casavant" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Florient" dst="St_Antoine" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Florient" dst="Louis" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Florient" dst="Julien" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Florient" dst="St_Paul" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Florient" dst="Mathematica" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Florient" dst="LaTeX" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Florient" dst="Sirois" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Florient" dst="Monique" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Florient" dst="Audy" symmetrical="YES"><link_ctn id="181"/><link_ctn id="183"/></route>
+   <route src="Florient" dst="Bourassa" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Florient" dst="OHara" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Florient" dst="Boston" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Florient" dst="Papineau" symmetrical="YES"><link_ctn id="181"/><link_ctn id="182"/></route>
+   <route src="Florient" dst="Fraser" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Florient" dst="Browne" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Florient" dst="SunOS" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Florient" dst="Varennes" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Florient" dst="Jacques" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Florient" dst="Thierry" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Florient" dst="Lachapelle" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Florient" dst="kV" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Florient" dst="Yolande" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Florient" dst="Pronovost" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Florient" dst="SPICE" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Florient" dst="Europe" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Florient" dst="Roy" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Florient" dst="Amadeus" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Florient" dst="Intel" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Florient" dst="Cambridge" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Florient" dst="Tremblay" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Florient" dst="UNIX" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Florient" dst="Domey" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Florient" dst="St_Bruno" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Florient" dst="Jean_Claude" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Florient" dst="Doyon" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Florient" dst="Fafard" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Florient" dst="Croteau" symmetrical="YES"><link_ctn id="181"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Florient" dst="Dodge" symmetrical="YES"><link_ctn id="181"/><link_ctn id="180"/></route>
+   <route src="Marcoux" dst="Gavrel" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="148"/></route>
+   <route src="Marcoux" dst="Bescherelle" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Marcoux" dst="Pierre" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Marcoux" dst="Jamie" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Marcoux" dst="Rubin" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Marcoux" dst="Olivier" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Marcoux" dst="Boucherville" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Marcoux" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="186"/><link_ctn id="184"/></route>
+   <route src="Marcoux" dst="Kansas" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Marcoux" dst="King" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Marcoux" dst="Lapointe" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Marcoux" dst="Julian" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Marcoux" dst="Lafontaine" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Marcoux" dst="Gordon" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="Marcoux" dst="Drouin" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Marcoux" dst="Robert" symmetrical="YES"><link_ctn id="186"/><link_ctn id="187"/></route>
+   <route src="Marcoux" dst="Jocelyne" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Marcoux" dst="Stephen" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Marcoux" dst="Provost" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Marcoux" dst="Juneau" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Marcoux" dst="Casavant" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Marcoux" dst="St_Antoine" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Marcoux" dst="Louis" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Marcoux" dst="Julien" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Marcoux" dst="St_Paul" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Marcoux" dst="Mathematica" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Marcoux" dst="LaTeX" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Marcoux" dst="Sirois" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Marcoux" dst="Monique" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Marcoux" dst="Audy" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Marcoux" dst="Bourassa" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Marcoux" dst="OHara" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Marcoux" dst="Boston" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Marcoux" dst="Papineau" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Marcoux" dst="Fraser" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Marcoux" dst="Browne" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Marcoux" dst="SunOS" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Marcoux" dst="Varennes" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Marcoux" dst="Jacques" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Marcoux" dst="Thierry" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Marcoux" dst="Lachapelle" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Marcoux" dst="kV" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Marcoux" dst="Yolande" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Marcoux" dst="Pronovost" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Marcoux" dst="SPICE" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Marcoux" dst="Europe" symmetrical="YES"><link_ctn id="186"/><link_ctn id="185"/></route>
+   <route src="Marcoux" dst="Roy" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Marcoux" dst="Amadeus" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Marcoux" dst="Intel" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Marcoux" dst="Cambridge" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Marcoux" dst="Tremblay" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Marcoux" dst="UNIX" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Marcoux" dst="Domey" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Marcoux" dst="St_Bruno" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Marcoux" dst="Jean_Claude" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Marcoux" dst="Doyon" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Marcoux" dst="Fafard" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Marcoux" dst="Croteau" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Marcoux" dst="Dodge" symmetrical="YES"><link_ctn id="186"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Gavrel" dst="Bescherelle" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="140"/></route>
+   <route src="Gavrel" dst="Pierre" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Gavrel" dst="Jamie" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Gavrel" dst="Rubin" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Gavrel" dst="Olivier" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Gavrel" dst="Boucherville" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Gavrel" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Gavrel" dst="Kansas" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Gavrel" dst="King" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Gavrel" dst="Lapointe" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Gavrel" dst="Julian" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Gavrel" dst="Lafontaine" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Gavrel" dst="Gordon" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Gavrel" dst="Drouin" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Gavrel" dst="Robert" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Gavrel" dst="Jocelyne" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Gavrel" dst="Stephen" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Gavrel" dst="Provost" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Gavrel" dst="Juneau" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Gavrel" dst="Casavant" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Gavrel" dst="St_Antoine" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Gavrel" dst="Louis" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Gavrel" dst="Julien" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Gavrel" dst="St_Paul" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Gavrel" dst="Mathematica" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Gavrel" dst="LaTeX" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Gavrel" dst="Sirois" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Gavrel" dst="Monique" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Gavrel" dst="Audy" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Gavrel" dst="Bourassa" symmetrical="YES"><link_ctn id="148"/><link_ctn id="150"/></route>
+   <route src="Gavrel" dst="OHara" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Gavrel" dst="Boston" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Gavrel" dst="Papineau" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Gavrel" dst="Fraser" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Gavrel" dst="Browne" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Gavrel" dst="SunOS" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Gavrel" dst="Varennes" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Gavrel" dst="Jacques" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Gavrel" dst="Thierry" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Gavrel" dst="Lachapelle" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Gavrel" dst="kV" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Gavrel" dst="Yolande" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Gavrel" dst="Pronovost" symmetrical="YES"><link_ctn id="148"/><link_ctn id="151"/></route>
+   <route src="Gavrel" dst="SPICE" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Gavrel" dst="Europe" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Gavrel" dst="Roy" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Gavrel" dst="Amadeus" symmetrical="YES"><link_ctn id="148"/></route>
+   <route src="Gavrel" dst="Intel" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Gavrel" dst="Cambridge" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Gavrel" dst="Tremblay" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Gavrel" dst="UNIX" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Gavrel" dst="Domey" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Gavrel" dst="St_Bruno" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Gavrel" dst="Jean_Claude" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Gavrel" dst="Doyon" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Gavrel" dst="Fafard" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Gavrel" dst="Croteau" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Gavrel" dst="Dodge" symmetrical="YES"><link_ctn id="148"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Bescherelle" dst="Pierre" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="167"/></route>
+   <route src="Bescherelle" dst="Jamie" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Bescherelle" dst="Rubin" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Bescherelle" dst="Olivier" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Bescherelle" dst="Boucherville" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Bescherelle" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Bescherelle" dst="Kansas" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Bescherelle" dst="King" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Bescherelle" dst="Lapointe" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Bescherelle" dst="Julian" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Bescherelle" dst="Lafontaine" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Bescherelle" dst="Gordon" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Bescherelle" dst="Drouin" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Bescherelle" dst="Robert" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Bescherelle" dst="Jocelyne" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Bescherelle" dst="Stephen" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Bescherelle" dst="Provost" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Bescherelle" dst="Juneau" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Bescherelle" dst="Casavant" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Bescherelle" dst="St_Antoine" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Bescherelle" dst="Louis" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Bescherelle" dst="Julien" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Bescherelle" dst="St_Paul" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Bescherelle" dst="Mathematica" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Bescherelle" dst="LaTeX" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Bescherelle" dst="Sirois" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Bescherelle" dst="Monique" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Bescherelle" dst="Audy" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Bescherelle" dst="Bourassa" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Bescherelle" dst="OHara" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Bescherelle" dst="Boston" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Bescherelle" dst="Papineau" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Bescherelle" dst="Fraser" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Bescherelle" dst="Browne" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Bescherelle" dst="SunOS" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Bescherelle" dst="Varennes" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Bescherelle" dst="Jacques" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Bescherelle" dst="Thierry" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Bescherelle" dst="Lachapelle" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Bescherelle" dst="kV" symmetrical="YES"><link_ctn id="140"/></route>
+   <route src="Bescherelle" dst="Yolande" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Bescherelle" dst="Pronovost" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Bescherelle" dst="SPICE" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Bescherelle" dst="Europe" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Bescherelle" dst="Roy" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Bescherelle" dst="Amadeus" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Bescherelle" dst="Intel" symmetrical="YES"><link_ctn id="140"/><link_ctn id="141"/></route>
+   <route src="Bescherelle" dst="Cambridge" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Bescherelle" dst="Tremblay" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Bescherelle" dst="UNIX" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Bescherelle" dst="Domey" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Bescherelle" dst="St_Bruno" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Bescherelle" dst="Jean_Claude" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Bescherelle" dst="Doyon" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Bescherelle" dst="Fafard" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Bescherelle" dst="Croteau" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Bescherelle" dst="Dodge" symmetrical="YES"><link_ctn id="140"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Pierre" dst="Jamie" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="120"/></route>
+   <route src="Pierre" dst="Rubin" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Pierre" dst="Olivier" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Pierre" dst="Boucherville" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Pierre" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Pierre" dst="Kansas" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Pierre" dst="King" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Pierre" dst="Lapointe" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Pierre" dst="Julian" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Pierre" dst="Lafontaine" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Pierre" dst="Gordon" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Pierre" dst="Drouin" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Pierre" dst="Robert" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Pierre" dst="Jocelyne" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Pierre" dst="Stephen" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Pierre" dst="Provost" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Pierre" dst="Juneau" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Pierre" dst="Casavant" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Pierre" dst="St_Antoine" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Pierre" dst="Louis" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Pierre" dst="Julien" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Pierre" dst="St_Paul" symmetrical="YES"><link_ctn id="167"/><link_ctn id="165"/></route>
+   <route src="Pierre" dst="Mathematica" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Pierre" dst="LaTeX" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Pierre" dst="Sirois" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Pierre" dst="Monique" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Pierre" dst="Audy" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Pierre" dst="Bourassa" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Pierre" dst="OHara" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Pierre" dst="Boston" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Pierre" dst="Papineau" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Pierre" dst="Fraser" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Pierre" dst="Browne" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Pierre" dst="SunOS" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Pierre" dst="Varennes" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Pierre" dst="Jacques" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Pierre" dst="Thierry" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Pierre" dst="Lachapelle" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Pierre" dst="kV" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Pierre" dst="Yolande" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Pierre" dst="Pronovost" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Pierre" dst="SPICE" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Pierre" dst="Europe" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Pierre" dst="Roy" symmetrical="YES"><link_ctn id="167"/></route>
+   <route src="Pierre" dst="Amadeus" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Pierre" dst="Intel" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Pierre" dst="Cambridge" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Pierre" dst="Tremblay" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Pierre" dst="UNIX" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Pierre" dst="Domey" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Pierre" dst="St_Bruno" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Pierre" dst="Jean_Claude" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Pierre" dst="Doyon" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Pierre" dst="Fafard" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Pierre" dst="Croteau" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Pierre" dst="Dodge" symmetrical="YES"><link_ctn id="167"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jamie" dst="Rubin" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="144"/></route>
+   <route src="Jamie" dst="Olivier" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Jamie" dst="Boucherville" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Jamie" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Jamie" dst="Kansas" symmetrical="YES"><link_ctn id="120"/><link_ctn id="122"/></route>
+   <route src="Jamie" dst="King" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Jamie" dst="Lapointe" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Jamie" dst="Julian" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Jamie" dst="Lafontaine" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Jamie" dst="Gordon" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Jamie" dst="Drouin" symmetrical="YES"><link_ctn id="120"/><link_ctn id="123"/></route>
+   <route src="Jamie" dst="Robert" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Jamie" dst="Jocelyne" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Jamie" dst="Stephen" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jamie" dst="Provost" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jamie" dst="Juneau" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jamie" dst="Casavant" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jamie" dst="St_Antoine" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Jamie" dst="Louis" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jamie" dst="Julien" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Jamie" dst="St_Paul" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jamie" dst="Mathematica" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jamie" dst="LaTeX" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Jamie" dst="Sirois" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jamie" dst="Monique" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jamie" dst="Audy" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jamie" dst="Bourassa" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jamie" dst="OHara" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jamie" dst="Boston" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jamie" dst="Papineau" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jamie" dst="Fraser" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jamie" dst="Browne" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jamie" dst="SunOS" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jamie" dst="Varennes" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Jamie" dst="Jacques" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jamie" dst="Thierry" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jamie" dst="Lachapelle" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jamie" dst="kV" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Jamie" dst="Yolande" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jamie" dst="Pronovost" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jamie" dst="SPICE" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jamie" dst="Europe" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jamie" dst="Roy" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jamie" dst="Amadeus" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jamie" dst="Intel" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jamie" dst="Cambridge" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jamie" dst="Tremblay" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jamie" dst="UNIX" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jamie" dst="Domey" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="40"/></route>
+   <route src="Jamie" dst="St_Bruno" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jamie" dst="Jean_Claude" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jamie" dst="Doyon" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jamie" dst="Fafard" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jamie" dst="Croteau" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jamie" dst="Dodge" symmetrical="YES"><link_ctn id="120"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Rubin" dst="Olivier" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="171"/></route>
+   <route src="Rubin" dst="Boucherville" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Rubin" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Rubin" dst="Kansas" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Rubin" dst="King" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Rubin" dst="Lapointe" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Rubin" dst="Julian" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Rubin" dst="Lafontaine" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Rubin" dst="Gordon" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Rubin" dst="Drouin" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Rubin" dst="Robert" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Rubin" dst="Jocelyne" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Rubin" dst="Stephen" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Rubin" dst="Provost" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Rubin" dst="Juneau" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Rubin" dst="Casavant" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Rubin" dst="St_Antoine" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Rubin" dst="Louis" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Rubin" dst="Julien" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Rubin" dst="St_Paul" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Rubin" dst="Mathematica" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Rubin" dst="LaTeX" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Rubin" dst="Sirois" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Rubin" dst="Monique" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Rubin" dst="Audy" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Rubin" dst="Bourassa" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Rubin" dst="OHara" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Rubin" dst="Boston" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Rubin" dst="Papineau" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Rubin" dst="Fraser" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Rubin" dst="Browne" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Rubin" dst="SunOS" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Rubin" dst="Varennes" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Rubin" dst="Jacques" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Rubin" dst="Thierry" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Rubin" dst="Lachapelle" symmetrical="YES"><link_ctn id="144"/><link_ctn id="146"/></route>
+   <route src="Rubin" dst="kV" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Rubin" dst="Yolande" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Rubin" dst="Pronovost" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Rubin" dst="SPICE" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Rubin" dst="Europe" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Rubin" dst="Roy" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Rubin" dst="Amadeus" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Rubin" dst="Intel" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Rubin" dst="Cambridge" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Rubin" dst="Tremblay" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Rubin" dst="UNIX" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Rubin" dst="Domey" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Rubin" dst="St_Bruno" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Rubin" dst="Jean_Claude" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Rubin" dst="Doyon" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Rubin" dst="Fafard" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Rubin" dst="Croteau" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Rubin" dst="Dodge" symmetrical="YES"><link_ctn id="144"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Olivier" dst="Boucherville" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/></route>
+   <route src="Olivier" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Olivier" dst="Kansas" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Olivier" dst="King" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Olivier" dst="Lapointe" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Olivier" dst="Julian" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Olivier" dst="Lafontaine" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Olivier" dst="Gordon" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Olivier" dst="Drouin" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Olivier" dst="Robert" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Olivier" dst="Jocelyne" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Olivier" dst="Stephen" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Olivier" dst="Provost" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Olivier" dst="Juneau" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Olivier" dst="Casavant" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Olivier" dst="St_Antoine" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Olivier" dst="Louis" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Olivier" dst="Julien" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Olivier" dst="St_Paul" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Olivier" dst="Mathematica" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Olivier" dst="LaTeX" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Olivier" dst="Sirois" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Olivier" dst="Monique" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Olivier" dst="Audy" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Olivier" dst="Bourassa" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Olivier" dst="OHara" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Olivier" dst="Boston" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Olivier" dst="Papineau" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Olivier" dst="Fraser" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Olivier" dst="Browne" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Olivier" dst="SunOS" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Olivier" dst="Varennes" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Olivier" dst="Jacques" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Olivier" dst="Thierry" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Olivier" dst="Lachapelle" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Olivier" dst="kV" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Olivier" dst="Yolande" symmetrical="YES"><link_ctn id="171"/><link_ctn id="168"/></route>
+   <route src="Olivier" dst="Pronovost" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Olivier" dst="SPICE" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Olivier" dst="Europe" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Olivier" dst="Roy" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Olivier" dst="Amadeus" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Olivier" dst="Intel" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Olivier" dst="Cambridge" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Olivier" dst="Tremblay" symmetrical="YES"><link_ctn id="171"/><link_ctn id="170"/></route>
+   <route src="Olivier" dst="UNIX" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Olivier" dst="Domey" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Olivier" dst="St_Bruno" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Olivier" dst="Jean_Claude" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Olivier" dst="Doyon" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Olivier" dst="Fafard" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Olivier" dst="Croteau" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Olivier" dst="Dodge" symmetrical="YES"><link_ctn id="171"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Boucherville" dst="Pointe_Claire" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="184"/></route>
+   <route src="Boucherville" dst="Kansas" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Boucherville" dst="King" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Boucherville" dst="Lapointe" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Boucherville" dst="Julian" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Boucherville" dst="Lafontaine" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Boucherville" dst="Gordon" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="Boucherville" dst="Drouin" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Boucherville" dst="Robert" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Boucherville" dst="Jocelyne" symmetrical="YES"><link_ctn id="173"/></route>
+   <route src="Boucherville" dst="Stephen" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Boucherville" dst="Provost" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Boucherville" dst="Juneau" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Boucherville" dst="Casavant" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Boucherville" dst="St_Antoine" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Boucherville" dst="Louis" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Boucherville" dst="Julien" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Boucherville" dst="St_Paul" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Boucherville" dst="Mathematica" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Boucherville" dst="LaTeX" symmetrical="YES"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Boucherville" dst="Sirois" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Boucherville" dst="Monique" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Boucherville" dst="Audy" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Boucherville" dst="Bourassa" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Boucherville" dst="OHara" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Boucherville" dst="Boston" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Boucherville" dst="Papineau" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Boucherville" dst="Fraser" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Boucherville" dst="Browne" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Boucherville" dst="SunOS" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Boucherville" dst="Varennes" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Boucherville" dst="Jacques" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Boucherville" dst="Thierry" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Boucherville" dst="Lachapelle" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Boucherville" dst="kV" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Boucherville" dst="Yolande" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Boucherville" dst="Pronovost" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Boucherville" dst="SPICE" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Boucherville" dst="Europe" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Boucherville" dst="Roy" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Boucherville" dst="Amadeus" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Boucherville" dst="Intel" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Boucherville" dst="Cambridge" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Boucherville" dst="Tremblay" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Boucherville" dst="UNIX" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Boucherville" dst="Domey" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Boucherville" dst="St_Bruno" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Boucherville" dst="Jean_Claude" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Boucherville" dst="Doyon" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Boucherville" dst="Fafard" symmetrical="YES"><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Boucherville" dst="Croteau" symmetrical="YES"><link_ctn id="175"/></route>
+   <route src="Boucherville" dst="Dodge" symmetrical="YES"><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Pointe_Claire" dst="Kansas" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="122"/></route>
+   <route src="Pointe_Claire" dst="King" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Pointe_Claire" dst="Lapointe" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/></route>
+   <route src="Pointe_Claire" dst="Julian" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Pointe_Claire" dst="Lafontaine" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Pointe_Claire" dst="Gordon" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/></route>
+   <route src="Pointe_Claire" dst="Drouin" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Pointe_Claire" dst="Robert" symmetrical="YES"><link_ctn id="184"/><link_ctn id="187"/></route>
+   <route src="Pointe_Claire" dst="Jocelyne" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Pointe_Claire" dst="Stephen" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Pointe_Claire" dst="Provost" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Pointe_Claire" dst="Juneau" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Pointe_Claire" dst="Casavant" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Pointe_Claire" dst="St_Antoine" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Pointe_Claire" dst="Louis" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Pointe_Claire" dst="Julien" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Pointe_Claire" dst="St_Paul" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Pointe_Claire" dst="Mathematica" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Pointe_Claire" dst="LaTeX" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Pointe_Claire" dst="Sirois" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Pointe_Claire" dst="Monique" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Pointe_Claire" dst="Audy" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Pointe_Claire" dst="Bourassa" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Pointe_Claire" dst="OHara" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Pointe_Claire" dst="Boston" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Pointe_Claire" dst="Papineau" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Pointe_Claire" dst="Fraser" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Pointe_Claire" dst="Browne" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Pointe_Claire" dst="SunOS" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Pointe_Claire" dst="Varennes" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Pointe_Claire" dst="Jacques" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Pointe_Claire" dst="Thierry" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Pointe_Claire" dst="Lachapelle" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Pointe_Claire" dst="kV" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Pointe_Claire" dst="Yolande" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Pointe_Claire" dst="Pronovost" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Pointe_Claire" dst="SPICE" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Pointe_Claire" dst="Europe" symmetrical="YES"><link_ctn id="184"/><link_ctn id="185"/></route>
+   <route src="Pointe_Claire" dst="Roy" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Pointe_Claire" dst="Amadeus" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Pointe_Claire" dst="Intel" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Pointe_Claire" dst="Cambridge" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Pointe_Claire" dst="Tremblay" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Pointe_Claire" dst="UNIX" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Pointe_Claire" dst="Domey" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Pointe_Claire" dst="St_Bruno" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Pointe_Claire" dst="Jean_Claude" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Pointe_Claire" dst="Doyon" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Pointe_Claire" dst="Fafard" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Pointe_Claire" dst="Croteau" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Pointe_Claire" dst="Dodge" symmetrical="YES"><link_ctn id="184"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Kansas" dst="King" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="137"/></route>
+   <route src="Kansas" dst="Lapointe" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="Kansas" dst="Julian" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Kansas" dst="Lafontaine" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Kansas" dst="Gordon" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Kansas" dst="Drouin" symmetrical="YES"><link_ctn id="122"/><link_ctn id="123"/></route>
+   <route src="Kansas" dst="Robert" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Kansas" dst="Jocelyne" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Kansas" dst="Stephen" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Kansas" dst="Provost" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Kansas" dst="Juneau" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Kansas" dst="Casavant" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Kansas" dst="St_Antoine" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Kansas" dst="Louis" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Kansas" dst="Julien" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Kansas" dst="St_Paul" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Kansas" dst="Mathematica" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Kansas" dst="LaTeX" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Kansas" dst="Sirois" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Kansas" dst="Monique" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Kansas" dst="Audy" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Kansas" dst="Bourassa" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Kansas" dst="OHara" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Kansas" dst="Boston" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Kansas" dst="Papineau" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Kansas" dst="Fraser" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Kansas" dst="Browne" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Kansas" dst="SunOS" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Kansas" dst="Varennes" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Kansas" dst="Jacques" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Kansas" dst="Thierry" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Kansas" dst="Lachapelle" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Kansas" dst="kV" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Kansas" dst="Yolande" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Kansas" dst="Pronovost" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Kansas" dst="SPICE" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Kansas" dst="Europe" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Kansas" dst="Roy" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Kansas" dst="Amadeus" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Kansas" dst="Intel" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Kansas" dst="Cambridge" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Kansas" dst="Tremblay" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Kansas" dst="UNIX" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Kansas" dst="Domey" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="40"/></route>
+   <route src="Kansas" dst="St_Bruno" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Kansas" dst="Jean_Claude" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Kansas" dst="Doyon" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Kansas" dst="Fafard" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Kansas" dst="Croteau" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Kansas" dst="Dodge" symmetrical="YES"><link_ctn id="122"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="King" dst="Lapointe" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/></route>
+   <route src="King" dst="Julian" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="King" dst="Lafontaine" symmetrical="YES"><link_ctn id="137"/><link_ctn id="139"/></route>
+   <route src="King" dst="Gordon" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="King" dst="Drouin" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="King" dst="Robert" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="King" dst="Jocelyne" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="King" dst="Stephen" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="King" dst="Provost" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="King" dst="Juneau" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="King" dst="Casavant" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="King" dst="St_Antoine" symmetrical="YES"><link_ctn id="137"/></route>
+   <route src="King" dst="Louis" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="King" dst="Julien" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="King" dst="St_Paul" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="King" dst="Mathematica" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="King" dst="LaTeX" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="King" dst="Sirois" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="King" dst="Monique" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="King" dst="Audy" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="King" dst="Bourassa" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="King" dst="OHara" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="King" dst="Boston" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="King" dst="Papineau" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="King" dst="Fraser" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="King" dst="Browne" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="King" dst="SunOS" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="King" dst="Varennes" symmetrical="YES"><link_ctn id="137"/><link_ctn id="136"/></route>
+   <route src="King" dst="Jacques" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="King" dst="Thierry" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="King" dst="Lachapelle" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="King" dst="kV" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="King" dst="Yolande" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="King" dst="Pronovost" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="King" dst="SPICE" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="King" dst="Europe" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="King" dst="Roy" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="King" dst="Amadeus" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="King" dst="Intel" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="King" dst="Cambridge" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="King" dst="Tremblay" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="King" dst="UNIX" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="King" dst="Domey" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="King" dst="St_Bruno" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="King" dst="Jean_Claude" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="King" dst="Doyon" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="King" dst="Fafard" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="King" dst="Croteau" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="King" dst="Dodge" symmetrical="YES"><link_ctn id="137"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Lapointe" dst="Julian" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/></route>
+   <route src="Lapointe" dst="Lafontaine" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Lapointe" dst="Gordon" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Lapointe" dst="Drouin" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Lapointe" dst="Robert" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Lapointe" dst="Jocelyne" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Lapointe" dst="Stephen" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Lapointe" dst="Provost" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Lapointe" dst="Juneau" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Lapointe" dst="Casavant" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Lapointe" dst="St_Antoine" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Lapointe" dst="Louis" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Lapointe" dst="Julien" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Lapointe" dst="St_Paul" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Lapointe" dst="Mathematica" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Lapointe" dst="LaTeX" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Lapointe" dst="Sirois" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Lapointe" dst="Monique" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Lapointe" dst="Audy" symmetrical="YES"><link_ctn id="183"/></route>
+   <route src="Lapointe" dst="Bourassa" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Lapointe" dst="OHara" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Lapointe" dst="Boston" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Lapointe" dst="Papineau" symmetrical="YES"><link_ctn id="182"/></route>
+   <route src="Lapointe" dst="Fraser" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Lapointe" dst="Browne" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Lapointe" dst="SunOS" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Lapointe" dst="Varennes" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Lapointe" dst="Jacques" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Lapointe" dst="Thierry" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Lapointe" dst="Lachapelle" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Lapointe" dst="kV" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Lapointe" dst="Yolande" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Lapointe" dst="Pronovost" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Lapointe" dst="SPICE" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Lapointe" dst="Europe" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Lapointe" dst="Roy" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Lapointe" dst="Amadeus" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Lapointe" dst="Intel" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Lapointe" dst="Cambridge" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Lapointe" dst="Tremblay" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Lapointe" dst="UNIX" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Lapointe" dst="Domey" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Lapointe" dst="St_Bruno" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Lapointe" dst="Jean_Claude" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Lapointe" dst="Doyon" symmetrical="YES"><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Lapointe" dst="Fafard" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Lapointe" dst="Croteau" symmetrical="YES"><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Lapointe" dst="Dodge" symmetrical="YES"><link_ctn id="180"/></route>
+   <route src="Julian" dst="Lafontaine" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="139"/></route>
+   <route src="Julian" dst="Gordon" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Julian" dst="Drouin" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Julian" dst="Robert" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Julian" dst="Jocelyne" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Julian" dst="Stephen" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Julian" dst="Provost" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Julian" dst="Juneau" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Julian" dst="Casavant" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Julian" dst="St_Antoine" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Julian" dst="Louis" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Julian" dst="Julien" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Julian" dst="St_Paul" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Julian" dst="Mathematica" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Julian" dst="LaTeX" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Julian" dst="Sirois" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Julian" dst="Monique" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Julian" dst="Audy" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Julian" dst="Bourassa" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Julian" dst="OHara" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Julian" dst="Boston" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Julian" dst="Papineau" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Julian" dst="Fraser" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Julian" dst="Browne" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Julian" dst="SunOS" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Julian" dst="Varennes" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Julian" dst="Jacques" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Julian" dst="Thierry" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Julian" dst="Lachapelle" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Julian" dst="kV" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Julian" dst="Yolande" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Julian" dst="Pronovost" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Julian" dst="SPICE" symmetrical="YES"><link_ctn id="110"/></route>
+   <route src="Julian" dst="Europe" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Julian" dst="Roy" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Julian" dst="Amadeus" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Julian" dst="Intel" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Julian" dst="Cambridge" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Julian" dst="Tremblay" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Julian" dst="UNIX" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Julian" dst="Domey" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Julian" dst="St_Bruno" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Julian" dst="Jean_Claude" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Julian" dst="Doyon" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Julian" dst="Fafard" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Julian" dst="Croteau" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Julian" dst="Dodge" symmetrical="YES"><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Lafontaine" dst="Gordon" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/></route>
+   <route src="Lafontaine" dst="Drouin" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Lafontaine" dst="Robert" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Lafontaine" dst="Jocelyne" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Lafontaine" dst="Stephen" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Lafontaine" dst="Provost" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Lafontaine" dst="Juneau" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Lafontaine" dst="Casavant" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Lafontaine" dst="St_Antoine" symmetrical="YES"><link_ctn id="139"/></route>
+   <route src="Lafontaine" dst="Louis" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Lafontaine" dst="Julien" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Lafontaine" dst="St_Paul" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Lafontaine" dst="Mathematica" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Lafontaine" dst="LaTeX" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Lafontaine" dst="Sirois" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Lafontaine" dst="Monique" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Lafontaine" dst="Audy" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Lafontaine" dst="Bourassa" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Lafontaine" dst="OHara" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Lafontaine" dst="Boston" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Lafontaine" dst="Papineau" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Lafontaine" dst="Fraser" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Lafontaine" dst="Browne" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Lafontaine" dst="SunOS" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Lafontaine" dst="Varennes" symmetrical="YES"><link_ctn id="139"/><link_ctn id="136"/></route>
+   <route src="Lafontaine" dst="Jacques" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Lafontaine" dst="Thierry" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Lafontaine" dst="Lachapelle" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Lafontaine" dst="kV" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Lafontaine" dst="Yolande" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Lafontaine" dst="Pronovost" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Lafontaine" dst="SPICE" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Lafontaine" dst="Europe" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Lafontaine" dst="Roy" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Lafontaine" dst="Amadeus" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Lafontaine" dst="Intel" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Lafontaine" dst="Cambridge" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Lafontaine" dst="Tremblay" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Lafontaine" dst="UNIX" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Lafontaine" dst="Domey" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Lafontaine" dst="St_Bruno" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Lafontaine" dst="Jean_Claude" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Lafontaine" dst="Doyon" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Lafontaine" dst="Fafard" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Lafontaine" dst="Croteau" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Lafontaine" dst="Dodge" symmetrical="YES"><link_ctn id="139"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Gordon" dst="Drouin" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="41"/><link_ctn id="123"/></route>
+   <route src="Gordon" dst="Robert" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Gordon" dst="Jocelyne" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Gordon" dst="Stephen" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Gordon" dst="Provost" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Gordon" dst="Juneau" symmetrical="YES"><link_ctn id="189"/></route>
+   <route src="Gordon" dst="Casavant" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Gordon" dst="St_Antoine" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Gordon" dst="Louis" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Gordon" dst="Julien" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Gordon" dst="St_Paul" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Gordon" dst="Mathematica" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Gordon" dst="LaTeX" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Gordon" dst="Sirois" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Gordon" dst="Monique" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Gordon" dst="Audy" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Gordon" dst="Bourassa" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Gordon" dst="OHara" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Gordon" dst="Boston" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Gordon" dst="Papineau" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Gordon" dst="Fraser" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Gordon" dst="Browne" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Gordon" dst="SunOS" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Gordon" dst="Varennes" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Gordon" dst="Jacques" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Gordon" dst="Thierry" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Gordon" dst="Lachapelle" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Gordon" dst="kV" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Gordon" dst="Yolande" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Gordon" dst="Pronovost" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Gordon" dst="SPICE" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Gordon" dst="Europe" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Gordon" dst="Roy" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Gordon" dst="Amadeus" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Gordon" dst="Intel" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Gordon" dst="Cambridge" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Gordon" dst="Tremblay" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Gordon" dst="UNIX" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Gordon" dst="Domey" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Gordon" dst="St_Bruno" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Gordon" dst="Jean_Claude" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Gordon" dst="Doyon" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Gordon" dst="Fafard" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Gordon" dst="Croteau" symmetrical="YES"><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Gordon" dst="Dodge" symmetrical="YES"><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Drouin" dst="Robert" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="187"/></route>
+   <route src="Drouin" dst="Jocelyne" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Drouin" dst="Stephen" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Drouin" dst="Provost" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Drouin" dst="Juneau" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Drouin" dst="Casavant" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Drouin" dst="St_Antoine" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Drouin" dst="Louis" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Drouin" dst="Julien" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Drouin" dst="St_Paul" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Drouin" dst="Mathematica" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Drouin" dst="LaTeX" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Drouin" dst="Sirois" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Drouin" dst="Monique" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Drouin" dst="Audy" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Drouin" dst="Bourassa" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Drouin" dst="OHara" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Drouin" dst="Boston" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Drouin" dst="Papineau" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Drouin" dst="Fraser" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Drouin" dst="Browne" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Drouin" dst="SunOS" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Drouin" dst="Varennes" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Drouin" dst="Jacques" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Drouin" dst="Thierry" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Drouin" dst="Lachapelle" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Drouin" dst="kV" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Drouin" dst="Yolande" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Drouin" dst="Pronovost" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Drouin" dst="SPICE" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Drouin" dst="Europe" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Drouin" dst="Roy" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Drouin" dst="Amadeus" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Drouin" dst="Intel" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Drouin" dst="Cambridge" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Drouin" dst="Tremblay" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Drouin" dst="UNIX" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Drouin" dst="Domey" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="40"/></route>
+   <route src="Drouin" dst="St_Bruno" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Drouin" dst="Jean_Claude" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Drouin" dst="Doyon" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Drouin" dst="Fafard" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Drouin" dst="Croteau" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Drouin" dst="Dodge" symmetrical="YES"><link_ctn id="123"/><link_ctn id="41"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Robert" dst="Jocelyne" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="173"/></route>
+   <route src="Robert" dst="Stephen" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Robert" dst="Provost" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Robert" dst="Juneau" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Robert" dst="Casavant" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Robert" dst="St_Antoine" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Robert" dst="Louis" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Robert" dst="Julien" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Robert" dst="St_Paul" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Robert" dst="Mathematica" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Robert" dst="LaTeX" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Robert" dst="Sirois" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Robert" dst="Monique" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Robert" dst="Audy" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Robert" dst="Bourassa" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Robert" dst="OHara" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Robert" dst="Boston" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Robert" dst="Papineau" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Robert" dst="Fraser" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Robert" dst="Browne" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Robert" dst="SunOS" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Robert" dst="Varennes" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Robert" dst="Jacques" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Robert" dst="Thierry" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Robert" dst="Lachapelle" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Robert" dst="kV" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Robert" dst="Yolande" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Robert" dst="Pronovost" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Robert" dst="SPICE" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Robert" dst="Europe" symmetrical="YES"><link_ctn id="187"/><link_ctn id="185"/></route>
+   <route src="Robert" dst="Roy" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Robert" dst="Amadeus" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Robert" dst="Intel" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Robert" dst="Cambridge" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Robert" dst="Tremblay" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Robert" dst="UNIX" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Robert" dst="Domey" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Robert" dst="St_Bruno" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Robert" dst="Jean_Claude" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Robert" dst="Doyon" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Robert" dst="Fafard" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Robert" dst="Croteau" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Robert" dst="Dodge" symmetrical="YES"><link_ctn id="187"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jocelyne" dst="Stephen" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="101"/></route>
+   <route src="Jocelyne" dst="Provost" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="35"/><link_ctn id="103"/></route>
+   <route src="Jocelyne" dst="Juneau" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Jocelyne" dst="Casavant" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Jocelyne" dst="St_Antoine" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Jocelyne" dst="Louis" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Jocelyne" dst="Julien" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Jocelyne" dst="St_Paul" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Jocelyne" dst="Mathematica" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Jocelyne" dst="LaTeX" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Jocelyne" dst="Sirois" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Jocelyne" dst="Monique" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Jocelyne" dst="Audy" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Jocelyne" dst="Bourassa" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Jocelyne" dst="OHara" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Jocelyne" dst="Boston" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Jocelyne" dst="Papineau" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Jocelyne" dst="Fraser" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Jocelyne" dst="Browne" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Jocelyne" dst="SunOS" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Jocelyne" dst="Varennes" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Jocelyne" dst="Jacques" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Jocelyne" dst="Thierry" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Jocelyne" dst="Lachapelle" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jocelyne" dst="kV" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Jocelyne" dst="Yolande" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jocelyne" dst="Pronovost" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jocelyne" dst="SPICE" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jocelyne" dst="Europe" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jocelyne" dst="Roy" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Jocelyne" dst="Amadeus" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jocelyne" dst="Intel" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jocelyne" dst="Cambridge" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Jocelyne" dst="Tremblay" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jocelyne" dst="UNIX" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jocelyne" dst="Domey" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jocelyne" dst="St_Bruno" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jocelyne" dst="Jean_Claude" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jocelyne" dst="Doyon" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jocelyne" dst="Fafard" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jocelyne" dst="Croteau" symmetrical="YES"><link_ctn id="173"/><link_ctn id="175"/></route>
+   <route src="Jocelyne" dst="Dodge" symmetrical="YES"><link_ctn id="173"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Stephen" dst="Provost" symmetrical="YES"><link_ctn id="101"/><link_ctn id="103"/></route>
+   <route src="Stephen" dst="Juneau" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Stephen" dst="Casavant" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Stephen" dst="St_Antoine" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Stephen" dst="Louis" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Stephen" dst="Julien" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Stephen" dst="St_Paul" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Stephen" dst="Mathematica" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Stephen" dst="LaTeX" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Stephen" dst="Sirois" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Stephen" dst="Monique" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Stephen" dst="Audy" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Stephen" dst="Bourassa" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Stephen" dst="OHara" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Stephen" dst="Boston" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Stephen" dst="Papineau" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Stephen" dst="Fraser" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Stephen" dst="Browne" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Stephen" dst="SunOS" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Stephen" dst="Varennes" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Stephen" dst="Jacques" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Stephen" dst="Thierry" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Stephen" dst="Lachapelle" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Stephen" dst="kV" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Stephen" dst="Yolande" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Stephen" dst="Pronovost" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Stephen" dst="SPICE" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Stephen" dst="Europe" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Stephen" dst="Roy" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Stephen" dst="Amadeus" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Stephen" dst="Intel" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Stephen" dst="Cambridge" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Stephen" dst="Tremblay" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Stephen" dst="UNIX" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Stephen" dst="Domey" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Stephen" dst="St_Bruno" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Stephen" dst="Jean_Claude" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Stephen" dst="Doyon" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Stephen" dst="Fafard" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Stephen" dst="Croteau" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Stephen" dst="Dodge" symmetrical="YES"><link_ctn id="101"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Provost" dst="Juneau" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="83"/><link_ctn id="189"/></route>
+   <route src="Provost" dst="Casavant" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Provost" dst="St_Antoine" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Provost" dst="Louis" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Provost" dst="Julien" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Provost" dst="St_Paul" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Provost" dst="Mathematica" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Provost" dst="LaTeX" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Provost" dst="Sirois" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Provost" dst="Monique" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Provost" dst="Audy" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Provost" dst="Bourassa" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Provost" dst="OHara" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Provost" dst="Boston" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Provost" dst="Papineau" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Provost" dst="Fraser" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Provost" dst="Browne" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Provost" dst="SunOS" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Provost" dst="Varennes" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Provost" dst="Jacques" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Provost" dst="Thierry" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Provost" dst="Lachapelle" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Provost" dst="kV" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Provost" dst="Yolande" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Provost" dst="Pronovost" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Provost" dst="SPICE" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Provost" dst="Europe" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Provost" dst="Roy" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Provost" dst="Amadeus" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Provost" dst="Intel" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Provost" dst="Cambridge" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Provost" dst="Tremblay" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Provost" dst="UNIX" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Provost" dst="Domey" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Provost" dst="St_Bruno" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Provost" dst="Jean_Claude" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Provost" dst="Doyon" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Provost" dst="Fafard" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Provost" dst="Croteau" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Provost" dst="Dodge" symmetrical="YES"><link_ctn id="103"/><link_ctn id="35"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Juneau" dst="Casavant" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="92"/></route>
+   <route src="Juneau" dst="St_Antoine" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Juneau" dst="Louis" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Juneau" dst="Julien" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Juneau" dst="St_Paul" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Juneau" dst="Mathematica" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Juneau" dst="LaTeX" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Juneau" dst="Sirois" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Juneau" dst="Monique" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Juneau" dst="Audy" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Juneau" dst="Bourassa" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Juneau" dst="OHara" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Juneau" dst="Boston" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Juneau" dst="Papineau" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Juneau" dst="Fraser" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Juneau" dst="Browne" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Juneau" dst="SunOS" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Juneau" dst="Varennes" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Juneau" dst="Jacques" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Juneau" dst="Thierry" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Juneau" dst="Lachapelle" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Juneau" dst="kV" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Juneau" dst="Yolande" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Juneau" dst="Pronovost" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Juneau" dst="SPICE" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Juneau" dst="Europe" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Juneau" dst="Roy" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Juneau" dst="Amadeus" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Juneau" dst="Intel" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Juneau" dst="Cambridge" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Juneau" dst="Tremblay" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Juneau" dst="UNIX" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Juneau" dst="Domey" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Juneau" dst="St_Bruno" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Juneau" dst="Jean_Claude" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Juneau" dst="Doyon" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Juneau" dst="Fafard" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Juneau" dst="Croteau" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Juneau" dst="Dodge" symmetrical="YES"><link_ctn id="189"/><link_ctn id="83"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Casavant" dst="St_Antoine" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/></route>
+   <route src="Casavant" dst="Louis" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="Casavant" dst="Julien" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Casavant" dst="St_Paul" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Casavant" dst="Mathematica" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Casavant" dst="LaTeX" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Casavant" dst="Sirois" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Casavant" dst="Monique" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Casavant" dst="Audy" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Casavant" dst="Bourassa" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Casavant" dst="OHara" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Casavant" dst="Boston" symmetrical="YES"><link_ctn id="92"/><link_ctn id="95"/></route>
+   <route src="Casavant" dst="Papineau" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Casavant" dst="Fraser" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Casavant" dst="Browne" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Casavant" dst="SunOS" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Casavant" dst="Varennes" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Casavant" dst="Jacques" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Casavant" dst="Thierry" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Casavant" dst="Lachapelle" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Casavant" dst="kV" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Casavant" dst="Yolande" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Casavant" dst="Pronovost" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Casavant" dst="SPICE" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Casavant" dst="Europe" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Casavant" dst="Roy" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Casavant" dst="Amadeus" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Casavant" dst="Intel" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Casavant" dst="Cambridge" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Casavant" dst="Tremblay" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Casavant" dst="UNIX" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Casavant" dst="Domey" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Casavant" dst="St_Bruno" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Casavant" dst="Jean_Claude" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Casavant" dst="Doyon" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Casavant" dst="Fafard" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Casavant" dst="Croteau" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Casavant" dst="Dodge" symmetrical="YES"><link_ctn id="92"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="St_Antoine" dst="Louis" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="117"/></route>
+   <route src="St_Antoine" dst="Julien" symmetrical="YES"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="St_Antoine" dst="St_Paul" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="St_Antoine" dst="Mathematica" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="St_Antoine" dst="LaTeX" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="St_Antoine" dst="Sirois" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="St_Antoine" dst="Monique" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="St_Antoine" dst="Audy" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="St_Antoine" dst="Bourassa" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="St_Antoine" dst="OHara" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="St_Antoine" dst="Boston" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="St_Antoine" dst="Papineau" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="St_Antoine" dst="Fraser" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="St_Antoine" dst="Browne" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="St_Antoine" dst="SunOS" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="St_Antoine" dst="Varennes" symmetrical="YES"><link_ctn id="136"/></route>
+   <route src="St_Antoine" dst="Jacques" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="St_Antoine" dst="Thierry" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="St_Antoine" dst="Lachapelle" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="St_Antoine" dst="kV" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="St_Antoine" dst="Yolande" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="St_Antoine" dst="Pronovost" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="St_Antoine" dst="SPICE" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="St_Antoine" dst="Europe" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="St_Antoine" dst="Roy" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="St_Antoine" dst="Amadeus" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="St_Antoine" dst="Intel" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="St_Antoine" dst="Cambridge" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="St_Antoine" dst="Tremblay" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="St_Antoine" dst="UNIX" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="St_Antoine" dst="Domey" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="St_Antoine" dst="St_Bruno" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="St_Antoine" dst="Jean_Claude" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="St_Antoine" dst="Doyon" symmetrical="YES"><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="St_Antoine" dst="Fafard" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="St_Antoine" dst="Croteau" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="St_Antoine" dst="Dodge" symmetrical="YES"><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Louis" dst="Julien" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="134"/></route>
+   <route src="Louis" dst="St_Paul" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Louis" dst="Mathematica" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Louis" dst="LaTeX" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Louis" dst="Sirois" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Louis" dst="Monique" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Louis" dst="Audy" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Louis" dst="Bourassa" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Louis" dst="OHara" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Louis" dst="Boston" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Louis" dst="Papineau" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Louis" dst="Fraser" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Louis" dst="Browne" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Louis" dst="SunOS" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Louis" dst="Varennes" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Louis" dst="Jacques" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Louis" dst="Thierry" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Louis" dst="Lachapelle" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Louis" dst="kV" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Louis" dst="Yolande" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Louis" dst="Pronovost" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Louis" dst="SPICE" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Louis" dst="Europe" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Louis" dst="Roy" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Louis" dst="Amadeus" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Louis" dst="Intel" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Louis" dst="Cambridge" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Louis" dst="Tremblay" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Louis" dst="UNIX" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Louis" dst="Domey" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="46"/><link_ctn id="49"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Louis" dst="St_Bruno" symmetrical="YES"><link_ctn id="117"/><link_ctn id="119"/></route>
+   <route src="Louis" dst="Jean_Claude" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Louis" dst="Doyon" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Louis" dst="Fafard" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Louis" dst="Croteau" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Louis" dst="Dodge" symmetrical="YES"><link_ctn id="117"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Julien" dst="St_Paul" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/><link_ctn id="165"/></route>
+   <route src="Julien" dst="Mathematica" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="Julien" dst="LaTeX" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Julien" dst="Sirois" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Julien" dst="Monique" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Julien" dst="Audy" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Julien" dst="Bourassa" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Julien" dst="OHara" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Julien" dst="Boston" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Julien" dst="Papineau" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Julien" dst="Fraser" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Julien" dst="Browne" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Julien" dst="SunOS" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Julien" dst="Varennes" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Julien" dst="Jacques" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Julien" dst="Thierry" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Julien" dst="Lachapelle" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Julien" dst="kV" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Julien" dst="Yolande" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Julien" dst="Pronovost" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Julien" dst="SPICE" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Julien" dst="Europe" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Julien" dst="Roy" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Julien" dst="Amadeus" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Julien" dst="Intel" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Julien" dst="Cambridge" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Julien" dst="Tremblay" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Julien" dst="UNIX" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Julien" dst="Domey" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Julien" dst="St_Bruno" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Julien" dst="Jean_Claude" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Julien" dst="Doyon" symmetrical="YES"><link_ctn id="134"/><link_ctn id="132"/></route>
+   <route src="Julien" dst="Fafard" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Julien" dst="Croteau" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Julien" dst="Dodge" symmetrical="YES"><link_ctn id="134"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="St_Paul" dst="Mathematica" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="157"/></route>
+   <route src="St_Paul" dst="LaTeX" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="St_Paul" dst="Sirois" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="St_Paul" dst="Monique" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="St_Paul" dst="Audy" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="St_Paul" dst="Bourassa" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="St_Paul" dst="OHara" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="St_Paul" dst="Boston" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="St_Paul" dst="Papineau" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="St_Paul" dst="Fraser" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="St_Paul" dst="Browne" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="St_Paul" dst="SunOS" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="St_Paul" dst="Varennes" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="St_Paul" dst="Jacques" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="St_Paul" dst="Thierry" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="St_Paul" dst="Lachapelle" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="St_Paul" dst="kV" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="St_Paul" dst="Yolande" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="St_Paul" dst="Pronovost" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="St_Paul" dst="SPICE" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="St_Paul" dst="Europe" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="St_Paul" dst="Roy" symmetrical="YES"><link_ctn id="165"/></route>
+   <route src="St_Paul" dst="Amadeus" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="St_Paul" dst="Intel" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="St_Paul" dst="Cambridge" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="St_Paul" dst="Tremblay" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="St_Paul" dst="UNIX" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="St_Paul" dst="Domey" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="St_Paul" dst="St_Bruno" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="St_Paul" dst="Jean_Claude" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="St_Paul" dst="Doyon" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="St_Paul" dst="Fafard" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="St_Paul" dst="Croteau" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="St_Paul" dst="Dodge" symmetrical="YES"><link_ctn id="165"/><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Mathematica" dst="LaTeX" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="177"/></route>
+   <route src="Mathematica" dst="Sirois" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="Mathematica" dst="Monique" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Mathematica" dst="Audy" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Mathematica" dst="Bourassa" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Mathematica" dst="OHara" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Mathematica" dst="Boston" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Mathematica" dst="Papineau" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Mathematica" dst="Fraser" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Mathematica" dst="Browne" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Mathematica" dst="SunOS" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Mathematica" dst="Varennes" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Mathematica" dst="Jacques" symmetrical="YES"><link_ctn id="157"/><link_ctn id="159"/></route>
+   <route src="Mathematica" dst="Thierry" symmetrical="YES"><link_ctn id="157"/><link_ctn id="156"/></route>
+   <route src="Mathematica" dst="Lachapelle" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Mathematica" dst="kV" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Mathematica" dst="Yolande" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Mathematica" dst="Pronovost" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Mathematica" dst="SPICE" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Mathematica" dst="Europe" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Mathematica" dst="Roy" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Mathematica" dst="Amadeus" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Mathematica" dst="Intel" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Mathematica" dst="Cambridge" symmetrical="YES"><link_ctn id="157"/><link_ctn id="158"/></route>
+   <route src="Mathematica" dst="Tremblay" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Mathematica" dst="UNIX" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Mathematica" dst="Domey" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Mathematica" dst="St_Bruno" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Mathematica" dst="Jean_Claude" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Mathematica" dst="Doyon" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Mathematica" dst="Fafard" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Mathematica" dst="Croteau" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Mathematica" dst="Dodge" symmetrical="YES"><link_ctn id="157"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="LaTeX" dst="Sirois" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/><link_ctn id="129"/></route>
+   <route src="LaTeX" dst="Monique" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="LaTeX" dst="Audy" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="LaTeX" dst="Bourassa" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="LaTeX" dst="OHara" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="LaTeX" dst="Boston" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="LaTeX" dst="Papineau" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="LaTeX" dst="Fraser" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="LaTeX" dst="Browne" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="LaTeX" dst="SunOS" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="LaTeX" dst="Varennes" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="LaTeX" dst="Jacques" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="LaTeX" dst="Thierry" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="LaTeX" dst="Lachapelle" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="LaTeX" dst="kV" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="LaTeX" dst="Yolande" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="LaTeX" dst="Pronovost" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="LaTeX" dst="SPICE" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="LaTeX" dst="Europe" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="LaTeX" dst="Roy" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="LaTeX" dst="Amadeus" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="LaTeX" dst="Intel" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="LaTeX" dst="Cambridge" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="LaTeX" dst="Tremblay" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="LaTeX" dst="UNIX" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="LaTeX" dst="Domey" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="LaTeX" dst="St_Bruno" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="LaTeX" dst="Jean_Claude" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="LaTeX" dst="Doyon" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="LaTeX" dst="Fafard" symmetrical="YES"><link_ctn id="177"/><link_ctn id="179"/></route>
+   <route src="LaTeX" dst="Croteau" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="LaTeX" dst="Dodge" symmetrical="YES"><link_ctn id="177"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Sirois" dst="Monique" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="113"/></route>
+   <route src="Sirois" dst="Audy" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Sirois" dst="Bourassa" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Sirois" dst="OHara" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Sirois" dst="Boston" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Sirois" dst="Papineau" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Sirois" dst="Fraser" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Sirois" dst="Browne" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Sirois" dst="SunOS" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Sirois" dst="Varennes" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Sirois" dst="Jacques" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Sirois" dst="Thierry" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Sirois" dst="Lachapelle" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Sirois" dst="kV" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Sirois" dst="Yolande" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Sirois" dst="Pronovost" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Sirois" dst="SPICE" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Sirois" dst="Europe" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Sirois" dst="Roy" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Sirois" dst="Amadeus" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Sirois" dst="Intel" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Sirois" dst="Cambridge" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Sirois" dst="Tremblay" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Sirois" dst="UNIX" symmetrical="YES"><link_ctn id="129"/></route>
+   <route src="Sirois" dst="Domey" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Sirois" dst="St_Bruno" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Sirois" dst="Jean_Claude" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Sirois" dst="Doyon" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Sirois" dst="Fafard" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Sirois" dst="Croteau" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Sirois" dst="Dodge" symmetrical="YES"><link_ctn id="129"/><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Monique" dst="Audy" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="183"/></route>
+   <route src="Monique" dst="Bourassa" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Monique" dst="OHara" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Monique" dst="Boston" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Monique" dst="Papineau" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Monique" dst="Fraser" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Monique" dst="Browne" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Monique" dst="SunOS" symmetrical="YES"><link_ctn id="113"/><link_ctn id="114"/></route>
+   <route src="Monique" dst="Varennes" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Monique" dst="Jacques" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Monique" dst="Thierry" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Monique" dst="Lachapelle" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Monique" dst="kV" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Monique" dst="Yolande" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Monique" dst="Pronovost" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Monique" dst="SPICE" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Monique" dst="Europe" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Monique" dst="Roy" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Monique" dst="Amadeus" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Monique" dst="Intel" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Monique" dst="Cambridge" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Monique" dst="Tremblay" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Monique" dst="UNIX" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Monique" dst="Domey" symmetrical="YES"><link_ctn id="113"/></route>
+   <route src="Monique" dst="St_Bruno" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Monique" dst="Jean_Claude" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Monique" dst="Doyon" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Monique" dst="Fafard" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Monique" dst="Croteau" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Monique" dst="Dodge" symmetrical="YES"><link_ctn id="113"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Audy" dst="Bourassa" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="150"/></route>
+   <route src="Audy" dst="OHara" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Audy" dst="Boston" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Audy" dst="Papineau" symmetrical="YES"><link_ctn id="183"/><link_ctn id="182"/></route>
+   <route src="Audy" dst="Fraser" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Audy" dst="Browne" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Audy" dst="SunOS" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Audy" dst="Varennes" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Audy" dst="Jacques" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Audy" dst="Thierry" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Audy" dst="Lachapelle" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Audy" dst="kV" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Audy" dst="Yolande" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Audy" dst="Pronovost" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Audy" dst="SPICE" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Audy" dst="Europe" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Audy" dst="Roy" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Audy" dst="Amadeus" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Audy" dst="Intel" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Audy" dst="Cambridge" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Audy" dst="Tremblay" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Audy" dst="UNIX" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Audy" dst="Domey" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Audy" dst="St_Bruno" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Audy" dst="Jean_Claude" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Audy" dst="Doyon" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Audy" dst="Fafard" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Audy" dst="Croteau" symmetrical="YES"><link_ctn id="183"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Audy" dst="Dodge" symmetrical="YES"><link_ctn id="183"/><link_ctn id="180"/></route>
+   <route src="Bourassa" dst="OHara" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="163"/></route>
+   <route src="Bourassa" dst="Boston" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="Bourassa" dst="Papineau" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Bourassa" dst="Fraser" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Bourassa" dst="Browne" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Bourassa" dst="SunOS" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Bourassa" dst="Varennes" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Bourassa" dst="Jacques" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Bourassa" dst="Thierry" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Bourassa" dst="Lachapelle" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Bourassa" dst="kV" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Bourassa" dst="Yolande" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Bourassa" dst="Pronovost" symmetrical="YES"><link_ctn id="150"/><link_ctn id="151"/></route>
+   <route src="Bourassa" dst="SPICE" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Bourassa" dst="Europe" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Bourassa" dst="Roy" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Bourassa" dst="Amadeus" symmetrical="YES"><link_ctn id="150"/></route>
+   <route src="Bourassa" dst="Intel" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Bourassa" dst="Cambridge" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Bourassa" dst="Tremblay" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Bourassa" dst="UNIX" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Bourassa" dst="Domey" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Bourassa" dst="St_Bruno" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Bourassa" dst="Jean_Claude" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Bourassa" dst="Doyon" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Bourassa" dst="Fafard" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Bourassa" dst="Croteau" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Bourassa" dst="Dodge" symmetrical="YES"><link_ctn id="150"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="OHara" dst="Boston" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="29"/><link_ctn id="95"/></route>
+   <route src="OHara" dst="Papineau" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="OHara" dst="Fraser" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="OHara" dst="Browne" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="73"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="OHara" dst="SunOS" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="OHara" dst="Varennes" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="OHara" dst="Jacques" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="OHara" dst="Thierry" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="OHara" dst="Lachapelle" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="OHara" dst="kV" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="OHara" dst="Yolande" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="OHara" dst="Pronovost" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="OHara" dst="SPICE" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="OHara" dst="Europe" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="OHara" dst="Roy" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="OHara" dst="Amadeus" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="OHara" dst="Intel" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="OHara" dst="Cambridge" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="OHara" dst="Tremblay" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="OHara" dst="UNIX" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="OHara" dst="Domey" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="OHara" dst="St_Bruno" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="OHara" dst="Jean_Claude" symmetrical="YES"><link_ctn id="163"/><link_ctn id="160"/></route>
+   <route src="OHara" dst="Doyon" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="OHara" dst="Fafard" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="OHara" dst="Croteau" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="OHara" dst="Dodge" symmetrical="YES"><link_ctn id="163"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Boston" dst="Papineau" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="182"/></route>
+   <route src="Boston" dst="Fraser" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Boston" dst="Browne" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Boston" dst="SunOS" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Boston" dst="Varennes" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Boston" dst="Jacques" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Boston" dst="Thierry" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Boston" dst="Lachapelle" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Boston" dst="kV" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Boston" dst="Yolande" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Boston" dst="Pronovost" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Boston" dst="SPICE" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Boston" dst="Europe" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Boston" dst="Roy" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Boston" dst="Amadeus" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Boston" dst="Intel" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Boston" dst="Cambridge" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Boston" dst="Tremblay" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Boston" dst="UNIX" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Boston" dst="Domey" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Boston" dst="St_Bruno" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Boston" dst="Jean_Claude" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Boston" dst="Doyon" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Boston" dst="Fafard" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Boston" dst="Croteau" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Boston" dst="Dodge" symmetrical="YES"><link_ctn id="95"/><link_ctn id="29"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Papineau" dst="Fraser" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="34"/><link_ctn id="96"/></route>
+   <route src="Papineau" dst="Browne" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Papineau" dst="SunOS" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Papineau" dst="Varennes" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Papineau" dst="Jacques" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Papineau" dst="Thierry" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Papineau" dst="Lachapelle" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Papineau" dst="kV" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Papineau" dst="Yolande" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Papineau" dst="Pronovost" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Papineau" dst="SPICE" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="20"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Papineau" dst="Europe" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Papineau" dst="Roy" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Papineau" dst="Amadeus" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Papineau" dst="Intel" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Papineau" dst="Cambridge" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Papineau" dst="Tremblay" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Papineau" dst="UNIX" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Papineau" dst="Domey" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Papineau" dst="St_Bruno" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Papineau" dst="Jean_Claude" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Papineau" dst="Doyon" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Papineau" dst="Fafard" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Papineau" dst="Croteau" symmetrical="YES"><link_ctn id="182"/><link_ctn id="81"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Papineau" dst="Dodge" symmetrical="YES"><link_ctn id="182"/><link_ctn id="180"/></route>
+   <route src="Fraser" dst="Browne" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="74"/><link_ctn id="75"/><link_ctn id="152"/></route>
+   <route src="Fraser" dst="SunOS" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Fraser" dst="Varennes" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Fraser" dst="Jacques" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Fraser" dst="Thierry" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Fraser" dst="Lachapelle" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Fraser" dst="kV" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Fraser" dst="Yolande" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Fraser" dst="Pronovost" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Fraser" dst="SPICE" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Fraser" dst="Europe" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Fraser" dst="Roy" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Fraser" dst="Amadeus" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Fraser" dst="Intel" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Fraser" dst="Cambridge" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Fraser" dst="Tremblay" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Fraser" dst="UNIX" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Fraser" dst="Domey" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Fraser" dst="St_Bruno" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Fraser" dst="Jean_Claude" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Fraser" dst="Doyon" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Fraser" dst="Fafard" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Fraser" dst="Croteau" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Fraser" dst="Dodge" symmetrical="YES"><link_ctn id="96"/><link_ctn id="34"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Browne" dst="SunOS" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/><link_ctn id="114"/></route>
+   <route src="Browne" dst="Varennes" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="Browne" dst="Jacques" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Browne" dst="Thierry" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Browne" dst="Lachapelle" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Browne" dst="kV" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Browne" dst="Yolande" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Browne" dst="Pronovost" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Browne" dst="SPICE" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Browne" dst="Europe" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Browne" dst="Roy" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Browne" dst="Amadeus" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Browne" dst="Intel" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Browne" dst="Cambridge" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Browne" dst="Tremblay" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Browne" dst="UNIX" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Browne" dst="Domey" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Browne" dst="St_Bruno" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Browne" dst="Jean_Claude" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Browne" dst="Doyon" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Browne" dst="Fafard" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Browne" dst="Croteau" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Browne" dst="Dodge" symmetrical="YES"><link_ctn id="152"/><link_ctn id="75"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="SunOS" dst="Varennes" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="63"/><link_ctn id="136"/></route>
+   <route src="SunOS" dst="Jacques" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="SunOS" dst="Thierry" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="SunOS" dst="Lachapelle" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="SunOS" dst="kV" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="SunOS" dst="Yolande" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="SunOS" dst="Pronovost" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="SunOS" dst="SPICE" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="SunOS" dst="Europe" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="SunOS" dst="Roy" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="SunOS" dst="Amadeus" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="SunOS" dst="Intel" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="SunOS" dst="Cambridge" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="SunOS" dst="Tremblay" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="SunOS" dst="UNIX" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="SunOS" dst="Domey" symmetrical="YES"><link_ctn id="114"/></route>
+   <route src="SunOS" dst="St_Bruno" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="SunOS" dst="Jean_Claude" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="SunOS" dst="Doyon" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="SunOS" dst="Fafard" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="SunOS" dst="Croteau" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="SunOS" dst="Dodge" symmetrical="YES"><link_ctn id="114"/><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Varennes" dst="Jacques" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="159"/></route>
+   <route src="Varennes" dst="Thierry" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="156"/></route>
+   <route src="Varennes" dst="Lachapelle" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Varennes" dst="kV" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Varennes" dst="Yolande" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Varennes" dst="Pronovost" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Varennes" dst="SPICE" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Varennes" dst="Europe" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Varennes" dst="Roy" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Varennes" dst="Amadeus" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Varennes" dst="Intel" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Varennes" dst="Cambridge" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Varennes" dst="Tremblay" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Varennes" dst="UNIX" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Varennes" dst="Domey" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Varennes" dst="St_Bruno" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Varennes" dst="Jean_Claude" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Varennes" dst="Doyon" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Varennes" dst="Fafard" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Varennes" dst="Croteau" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Varennes" dst="Dodge" symmetrical="YES"><link_ctn id="136"/><link_ctn id="63"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jacques" dst="Thierry" symmetrical="YES"><link_ctn id="159"/><link_ctn id="156"/></route>
+   <route src="Jacques" dst="Lachapelle" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="59"/><link_ctn id="146"/></route>
+   <route src="Jacques" dst="kV" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Jacques" dst="Yolande" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Jacques" dst="Pronovost" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Jacques" dst="SPICE" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Jacques" dst="Europe" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Jacques" dst="Roy" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Jacques" dst="Amadeus" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Jacques" dst="Intel" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Jacques" dst="Cambridge" symmetrical="YES"><link_ctn id="159"/><link_ctn id="158"/></route>
+   <route src="Jacques" dst="Tremblay" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Jacques" dst="UNIX" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Jacques" dst="Domey" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Jacques" dst="St_Bruno" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Jacques" dst="Jean_Claude" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Jacques" dst="Doyon" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jacques" dst="Fafard" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jacques" dst="Croteau" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jacques" dst="Dodge" symmetrical="YES"><link_ctn id="159"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Thierry" dst="kV" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/></route>
+   <route src="Thierry" dst="Yolande" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Thierry" dst="Pronovost" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Thierry" dst="SPICE" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Thierry" dst="Europe" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Thierry" dst="Roy" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Thierry" dst="Amadeus" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Thierry" dst="Intel" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Thierry" dst="Cambridge" symmetrical="YES"><link_ctn id="156"/><link_ctn id="158"/></route>
+   <route src="Thierry" dst="Tremblay" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Thierry" dst="UNIX" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Thierry" dst="Domey" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Thierry" dst="St_Bruno" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Thierry" dst="Jean_Claude" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Thierry" dst="Doyon" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Thierry" dst="Fafard" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Thierry" dst="Croteau" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Thierry" dst="Dodge" symmetrical="YES"><link_ctn id="156"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Lachapelle" dst="kV" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/></route>
+   <route src="Lachapelle" dst="Yolande" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="Lachapelle" dst="Pronovost" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Lachapelle" dst="SPICE" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Lachapelle" dst="Europe" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Lachapelle" dst="Roy" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Lachapelle" dst="Amadeus" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Lachapelle" dst="Intel" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Lachapelle" dst="Cambridge" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Lachapelle" dst="Tremblay" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Lachapelle" dst="UNIX" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Lachapelle" dst="Domey" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Lachapelle" dst="St_Bruno" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Lachapelle" dst="Jean_Claude" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Lachapelle" dst="Doyon" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Lachapelle" dst="Fafard" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Lachapelle" dst="Croteau" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Lachapelle" dst="Dodge" symmetrical="YES"><link_ctn id="146"/><link_ctn id="59"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="kV" dst="Yolande" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="168"/></route>
+   <route src="kV" dst="Pronovost" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="kV" dst="SPICE" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="kV" dst="Europe" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="kV" dst="Roy" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="kV" dst="Amadeus" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="kV" dst="Intel" symmetrical="YES"><link_ctn id="141"/></route>
+   <route src="kV" dst="Cambridge" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="kV" dst="Tremblay" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="kV" dst="UNIX" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="kV" dst="Domey" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="kV" dst="St_Bruno" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="kV" dst="Jean_Claude" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="kV" dst="Doyon" symmetrical="YES"><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="kV" dst="Fafard" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="kV" dst="Croteau" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="kV" dst="Dodge" symmetrical="YES"><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Yolande" dst="Pronovost" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/><link_ctn id="151"/></route>
+   <route src="Yolande" dst="SPICE" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Yolande" dst="Europe" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Yolande" dst="Roy" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="73"/><link_ctn id="74"/><link_ctn id="76"/></route>
+   <route src="Yolande" dst="Amadeus" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Yolande" dst="Intel" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Yolande" dst="Cambridge" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Yolande" dst="Tremblay" symmetrical="YES"><link_ctn id="168"/><link_ctn id="170"/></route>
+   <route src="Yolande" dst="UNIX" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Yolande" dst="Domey" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Yolande" dst="St_Bruno" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Yolande" dst="Jean_Claude" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Yolande" dst="Doyon" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Yolande" dst="Fafard" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Yolande" dst="Croteau" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Yolande" dst="Dodge" symmetrical="YES"><link_ctn id="168"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Pronovost" dst="SPICE" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="7"/><link_ctn id="19"/><link_ctn id="28"/><link_ctn id="27"/><link_ctn id="30"/><link_ctn id="32"/><link_ctn id="33"/><link_ctn id="110"/></route>
+   <route src="Pronovost" dst="Europe" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="Pronovost" dst="Roy" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Pronovost" dst="Amadeus" symmetrical="YES"><link_ctn id="151"/></route>
+   <route src="Pronovost" dst="Intel" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Pronovost" dst="Cambridge" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Pronovost" dst="Tremblay" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Pronovost" dst="UNIX" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Pronovost" dst="Domey" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Pronovost" dst="St_Bruno" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Pronovost" dst="Jean_Claude" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Pronovost" dst="Doyon" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Pronovost" dst="Fafard" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Pronovost" dst="Croteau" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Pronovost" dst="Dodge" symmetrical="YES"><link_ctn id="151"/><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="SPICE" dst="Europe" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="91"/><link_ctn id="185"/></route>
+   <route src="SPICE" dst="Roy" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="SPICE" dst="Amadeus" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="SPICE" dst="Intel" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="SPICE" dst="Cambridge" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="SPICE" dst="Tremblay" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="SPICE" dst="UNIX" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="SPICE" dst="Domey" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="SPICE" dst="St_Bruno" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="SPICE" dst="Jean_Claude" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="SPICE" dst="Doyon" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="7"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="SPICE" dst="Fafard" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="SPICE" dst="Croteau" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="SPICE" dst="Dodge" symmetrical="YES"><link_ctn id="110"/><link_ctn id="33"/><link_ctn id="32"/><link_ctn id="30"/><link_ctn id="27"/><link_ctn id="28"/><link_ctn id="19"/><link_ctn id="20"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Europe" dst="Roy" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="15"/><link_ctn id="76"/></route>
+   <route src="Europe" dst="Amadeus" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Europe" dst="Intel" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Europe" dst="Cambridge" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Europe" dst="Tremblay" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Europe" dst="UNIX" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Europe" dst="Domey" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Europe" dst="St_Bruno" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Europe" dst="Jean_Claude" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Europe" dst="Doyon" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="78"/><link_ctn id="79"/><link_ctn id="9"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Europe" dst="Fafard" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Europe" dst="Croteau" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Europe" dst="Dodge" symmetrical="YES"><link_ctn id="185"/><link_ctn id="91"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Roy" dst="Amadeus" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="52"/><link_ctn id="53"/></route>
+   <route src="Roy" dst="Intel" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Roy" dst="Cambridge" symmetrical="YES"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Roy" dst="Tremblay" symmetrical="YES"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Roy" dst="UNIX" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Roy" dst="Domey" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Roy" dst="St_Bruno" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Roy" dst="Jean_Claude" symmetrical="YES"><link_ctn id="76"/><link_ctn id="74"/><link_ctn id="73"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Roy" dst="Doyon" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Roy" dst="Fafard" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Roy" dst="Croteau" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Roy" dst="Dodge" symmetrical="YES"><link_ctn id="76"/><link_ctn id="15"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Amadeus" dst="Intel" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="57"/><link_ctn id="141"/></route>
+   <route src="Amadeus" dst="Cambridge" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Amadeus" dst="Tremblay" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Amadeus" dst="UNIX" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Amadeus" dst="Domey" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Amadeus" dst="St_Bruno" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Amadeus" dst="Jean_Claude" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Amadeus" dst="Doyon" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Amadeus" dst="Fafard" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Amadeus" dst="Croteau" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Amadeus" dst="Dodge" symmetrical="YES"><link_ctn id="53"/><link_ctn id="52"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Intel" dst="Cambridge" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="66"/><link_ctn id="158"/></route>
+   <route src="Intel" dst="Tremblay" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="69"/><link_ctn id="64"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Intel" dst="UNIX" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Intel" dst="Domey" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Intel" dst="St_Bruno" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Intel" dst="Jean_Claude" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="2"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Intel" dst="Doyon" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Intel" dst="Fafard" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Intel" dst="Croteau" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Intel" dst="Dodge" symmetrical="YES"><link_ctn id="141"/><link_ctn id="57"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Cambridge" dst="Tremblay" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="65"/><link_ctn id="72"/><link_ctn id="170"/></route>
+   <route src="Cambridge" dst="UNIX" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Cambridge" dst="Domey" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Cambridge" dst="St_Bruno" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Cambridge" dst="Jean_Claude" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Cambridge" dst="Doyon" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Cambridge" dst="Fafard" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Cambridge" dst="Croteau" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Cambridge" dst="Dodge" symmetrical="YES"><link_ctn id="158"/><link_ctn id="66"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Tremblay" dst="UNIX" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="42"/><link_ctn id="43"/></route>
+   <route src="Tremblay" dst="Domey" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="8"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="Tremblay" dst="St_Bruno" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="11"/><link_ctn id="44"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Tremblay" dst="Jean_Claude" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Tremblay" dst="Doyon" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Tremblay" dst="Fafard" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Tremblay" dst="Croteau" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Tremblay" dst="Dodge" symmetrical="YES"><link_ctn id="170"/><link_ctn id="72"/><link_ctn id="65"/><link_ctn id="64"/><link_ctn id="69"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="UNIX" dst="Domey" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="38"/><link_ctn id="40"/></route>
+   <route src="UNIX" dst="St_Bruno" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="48"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="UNIX" dst="Jean_Claude" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="UNIX" dst="Doyon" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="UNIX" dst="Fafard" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="UNIX" dst="Croteau" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="UNIX" dst="Dodge" symmetrical="YES"><link_ctn id="43"/><link_ctn id="42"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Domey" dst="St_Bruno" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="49"/><link_ctn id="46"/><link_ctn id="47"/><link_ctn id="119"/></route>
+   <route src="Domey" dst="Jean_Claude" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="Domey" dst="Doyon" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Domey" dst="Fafard" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Domey" dst="Croteau" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Domey" dst="Dodge" symmetrical="YES"><link_ctn id="40"/><link_ctn id="38"/><link_ctn id="48"/><link_ctn id="8"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="St_Bruno" dst="Jean_Claude" symmetrical="YES"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="0"/><link_ctn id="3"/><link_ctn id="70"/><link_ctn id="160"/></route>
+   <route src="St_Bruno" dst="Doyon" symmetrical="YES"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="10"/><link_ctn id="16"/><link_ctn id="17"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="St_Bruno" dst="Fafard" symmetrical="YES"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="St_Bruno" dst="Croteau" symmetrical="YES"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="St_Bruno" dst="Dodge" symmetrical="YES"><link_ctn id="119"/><link_ctn id="47"/><link_ctn id="44"/><link_ctn id="11"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Jean_Claude" dst="Doyon" symmetrical="YES"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="54"/><link_ctn id="56"/><link_ctn id="58"/><link_ctn id="62"/><link_ctn id="132"/></route>
+   <route src="Jean_Claude" dst="Fafard" symmetrical="YES"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Jean_Claude" dst="Croteau" symmetrical="YES"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Jean_Claude" dst="Dodge" symmetrical="YES"><link_ctn id="160"/><link_ctn id="70"/><link_ctn id="3"/><link_ctn id="0"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Doyon" dst="Fafard" symmetrical="YES"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="90"/><link_ctn id="179"/></route>
+   <route src="Doyon" dst="Croteau" symmetrical="YES"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="80"/><link_ctn id="82"/><link_ctn id="87"/><link_ctn id="88"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Doyon" dst="Dodge" symmetrical="YES"><link_ctn id="132"/><link_ctn id="62"/><link_ctn id="58"/><link_ctn id="56"/><link_ctn id="54"/><link_ctn id="17"/><link_ctn id="16"/><link_ctn id="10"/><link_ctn id="6"/><link_ctn id="9"/><link_ctn id="79"/><link_ctn id="78"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Fafard" dst="Croteau" symmetrical="YES"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="89"/><link_ctn id="175"/></route>
+   <route src="Fafard" dst="Dodge" symmetrical="YES"><link_ctn id="179"/><link_ctn id="90"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
+   <route src="Croteau" dst="Dodge" symmetrical="YES"><link_ctn id="175"/><link_ctn id="89"/><link_ctn id="88"/><link_ctn id="87"/><link_ctn id="82"/><link_ctn id="80"/><link_ctn id="81"/><link_ctn id="180"/></route>
  </AS>
- </platform>
+</platform>
index 33a34e1..645f7f3 100644 (file)
@@ -1,55 +1,46 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <!-- This file describe a super simple platform which main interest is
-      to define some properties on hosts, processes and links. 
-      It is used in several regression cases on properties -->
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <prop id="filename" value="prop.xml"/>
-   <prop id="date" value="31-08-12"/>
-   <prop id="author" value="pnavarro"/>
-   
-   <AS  id="AS3"  routing="Full">
-          <AS id="AS1" routing="None">
-              <prop id="name" value="AS1"/>
-          </AS>
-          
-          <AS id="AS2" routing="None">
-              <prop id="name" value="AS2"/>
-          </AS>
-   </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- This file describe a super simple platform which main interest is to define some properties on hosts, 
+      processes and links. It is used in several regression cases on properties -->
+  <AS  id="AS0"  routing="Full">
+    <prop id="filename" value="prop.xml"/>
+    <prop id="date" value="31-08-12"/>
+    <prop id="author" value="pnavarro"/>
+
+    <AS id="AS3"  routing="Full">
+       <AS id="AS1" routing="None">
+         <prop id="name" value="AS1"/>
+      </AS>
+      <AS id="AS2" routing="None">
+         <prop id="name" value="AS2"/>
+     </AS>
+    </AS>
 
-   <cluster id="acme"
-            prefix="node-"    suffix=".acme.org"
-            radical="0-4"     power="1Gf" 
-            bw="125MBps"      lat="50us"
-            bb_bw="2.25GBps"  bb_lat="500us">
-           
+    <cluster id="acme" prefix="node-" suffix=".acme.org" radical="0-4" speed="1Gf"
+             bw="125MBps" lat="50us" bb_bw="2.25GBps"  bb_lat="500us">
       <prop id="bla" value="acme cluster"/>
       <prop id="Hdd"  value="180"/>
       <prop id="mem"  value="42"/>
    </cluster>
 
    <AS  id="AS4"  routing="Full">
-          <host id="host1" power="1Gf">
-            <prop id="Hdd" value="180"/>
-            <prop id="mem" value="4"/>
-          </host>
-          
-          <host id="host2" power="1Gf">
-            <prop id="Hdd" value="120"/>
-          </host>
-          
-          <link id="l1" bandwidth="125MBps" latency="100us">
-            <prop id="type" value="Ethernet"/>
-          </link>
-          
-          <link id="l2" bandwidth="125MBps" latency="100us">
-            <prop id="type" value="ethernet"/>
-          </link>
-          <route src="host1" dst="host2"><link_ctn id="l1"/><link_ctn id="l2"/></route>
+     <host id="host1" speed="1Gf">
+       <prop id="Hdd" value="180"/>
+       <prop id="mem" value="4"/>
+     </host>
+     <host id="host2" speed="1Gf">
+       <prop id="Hdd" value="120"/>
+     </host>
+
+     <link id="l1" bandwidth="125MBps" latency="100us">
+       <prop id="type" value="Ethernet"/>
+     </link>
+     <link id="l2" bandwidth="125MBps" latency="100us">
+       <prop id="type" value="ethernet"/>
+     </link>
+
+     <route src="host1" dst="host2"><link_ctn id="l1"/><link_ctn id="l2"/></route>
    </AS>
- </AS>
- </platform>
 </AS>
+</platform>
index 52df8eb..adc51cf 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <!--              router1 -------------link1-2--------------router2
        __________________________                   _________________________
        |                        |                   |                        |
@@ -11,23 +11,20 @@ l1_up / / l1_down  | l3   l2_up\ \ l2_down   l4_up / / l4_down  | l6   l5_up\ \
      / /           |            \ \               / /           |            \ \
     host1         host3         host2           host4         host6          host5
 -->
-
-
-<platform version="3">
 <AS id="AS0" routing="Full">
   <AS  id="my_cluster1"  routing="Cluster">
     <router id="router1"/>
 
-    <host id="host1" power="1Gf"/>
+    <host id="host1" speed="1Gf"/>
     <link id="l1_UP" bandwidth="125MBps" latency="100us"/>
     <link id="l1_DOWN" bandwidth="125MBps" latency="100us"/>
     <host_link id="host1" up="l1_UP" down="l1_DOWN"/>
 
-    <host id="host2" power="1Gf"/>
+    <host id="host2" speed="1Gf"/>
     <link id="l2" bandwidth="125MBps" latency="100us" sharing_policy="FULLDUPLEX"/>
     <host_link id="host2" up="l2_UP" down="l2_DOWN"/>
 
-    <host id="host3" power="1Gf"/>
+    <host id="host3" speed="1Gf"/>
     <link id="l3" bandwidth="125MBps" latency="100us"/>
     <host_link id="host3" up="l3" down="l3"/>
 
@@ -37,16 +34,16 @@ l1_up / / l1_down  | l3   l2_up\ \ l2_down   l4_up / / l4_down  | l6   l5_up\ \
   <AS  id="my_cluster2"  routing="Cluster">
     <router id="router2"/>
 
-    <host id="host4" power="1Gf"/>
+    <host id="host4" speed="1Gf"/>
     <link id="l4_UP" bandwidth="125MBps" latency="100us"/>
     <link id="l4_DOWN" bandwidth="125MBps" latency="100us"/>
     <host_link id="host4" up="l4_UP" down="l4_DOWN"/>
 
-    <host id="host5" power="1Gf"/>
+    <host id="host5" speed="1Gf"/>
     <link id="l5" bandwidth="125MBps" latency="100us" sharing_policy="FULLDUPLEX"/>
     <host_link id="host5" up="l5_UP" down="l5_DOWN"/>
 
-    <host id="host6" power="1Gf"/>
+    <host id="host6" speed="1Gf"/>
     <link id="l6" bandwidth="125MBps" latency="100us"/>
     <host_link id="host6" up="l6" down="l6"/>
  
@@ -55,10 +52,8 @@ l1_up / / l1_down  | l3   l2_up\ \ l2_down   l4_up / / l4_down  | l6   l5_up\ \
   
   <link id="link1-2" bandwidth="2.25GBps" latency="500us"/>
   
-  <ASroute src="my_cluster1" dst="my_cluster2"
-    gw_src="router1"
-    gw_dst="router2">
+  <ASroute src="my_cluster1" dst="my_cluster2" gw_src="router1" gw_dst="router2">
     <link_ctn id="link1-2" />
   </ASroute>
-</AS>  
+</AS>
 </platform>
index 60ca560..01da662 100644 (file)
@@ -1,20 +1,17 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<!--     This platform does not use any routing. 
-         It is what Constant network model expects. -->
-        
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!--     This platform does not use any routing. It is what Constant network model expects. -->
   <AS id="AS0" routing="None">
-    <host id="node-0.acme.org" power="1Gf"/>
-    <host id="node-1.acme.org" power="1Gf"/>
-    <host id="node-2.acme.org" power="1Gf"/>
-    <host id="node-3.acme.org" power="1Gf"/>
-    <host id="node-4.acme.org" power="1Gf"/>
-    <host id="node-5.acme.org" power="1Gf"/>
-    <host id="node-6.acme.org" power="1Gf"/>
-    <host id="node-7.acme.org" power="1Gf"/>
-    <host id="node-8.acme.org" power="1Gf"/>
-    <host id="node-9.acme.org" power="1Gf"/>
+    <host id="node-0.acme.org" speed="1Gf"/>
+    <host id="node-1.acme.org" speed="1Gf"/>
+    <host id="node-2.acme.org" speed="1Gf"/>
+    <host id="node-3.acme.org" speed="1Gf"/>
+    <host id="node-4.acme.org" speed="1Gf"/>
+    <host id="node-5.acme.org" speed="1Gf"/>
+    <host id="node-6.acme.org" speed="1Gf"/>
+    <host id="node-7.acme.org" speed="1Gf"/>
+    <host id="node-8.acme.org" speed="1Gf"/>
+    <host id="node-9.acme.org" speed="1Gf"/>
   </AS>
 </platform>
index c5ba991..6563df4 100644 (file)
@@ -1,28 +1,26 @@
 <?xml version='1.0'?>
-
-<!-- This is a random platform, generated with Simulacrum. 
-        http://pda.gforge.inria.fr/tools/download.html     
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<!-- This is a random platform, generated with Simulacrum.
+        http://pda.gforge.inria.fr/tools/download.html
      Unfortunately, the generation parameters were lost with the years. -->
 
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
   <AS  id="AS0" routing="Full">
-    <host id="Host 26" power="3.300140519709234Gf"/>
-    <host id="Host 27" power="3.867398877553016Gf"/>
-    <host id="Host 28" power="1.6522665718098645Gf"/>
-    <host id="Host 29" power="1.0759376792481766Gf"/>
-    <host id="Host 30" power="2.4818410475340424Gf"/>
-    <host id="Host 31" power="1.773869555571436Gf"/>
-    <host id="Host 32" power="1.7843609176927505Gf"/>
-    
+    <host id="Host 26" speed="3.300140519709234Gf"/>
+    <host id="Host 27" speed="3.867398877553016Gf"/>
+    <host id="Host 28" speed="1.6522665718098645Gf"/>
+    <host id="Host 29" speed="1.0759376792481766Gf"/>
+    <host id="Host 30" speed="2.4818410475340424Gf"/>
+    <host id="Host 31" speed="1.773869555571436Gf"/>
+    <host id="Host 32" speed="1.7843609176927505Gf"/>
+
     <link id="l152" bandwidth="125MBps" latency="100us"/>
     <link id="l153" bandwidth="125MBps" latency="100us"/>
     <link id="l154" bandwidth="125MBps" latency="100us"/>
     <link id="l155" bandwidth="125MBps" latency="100us"/>
     <link id="l156" bandwidth="125MBps" latency="100us"/>
     <link id="l157" bandwidth="125MBps" latency="100us"/>
-    <link id="l159" bandwidth="125MBps" latency="100us"
-         bandwidth_file="trace/linkBandwidth7.bw"/>
+    <link id="l159" bandwidth="125MBps" latency="100us" bandwidth_file="trace/linkBandwidth7.bw"/>
     <link id="l160" bandwidth="125MBps" latency="100us"/>
     <link id="l161" bandwidth="125MBps" latency="100us"/>
     <link id="l162" bandwidth="125MBps" latency="100us"/>
     <link id="l171" bandwidth="125MBps" latency="100us"/>
     <link id="l172" bandwidth="125MBps" latency="100us"/>
     <link id="l173" bandwidth="125MBps" latency="100us"/>
-    
-    <route src="Host 26" dst="Host 27">
-      <link_ctn id="l155"/>
-    </route>
-    <route src="Host 26" dst="Host 28">
-      <link_ctn id="l155"/> <link_ctn id="l154"/><link_ctn id="l156"/>
-    </route>
-    <route src="Host 26" dst="Host 29">
-      <link_ctn id="l152"/><link_ctn id="l157"/>
-    </route>
-    <route src="Host 26" dst="Host 30">
-      <link_ctn id="l152"/><link_ctn id="l161"/>
-    </route>
-    <route src="Host 26" dst="Host 31">
-      <link_ctn id="l166"/>
-    </route>
-    <route src="Host 26" dst="Host 32">
-      <link_ctn id="l152"/><link_ctn id="l169"/>
-    </route>
-    <route src="Host 27" dst="Host 28">
-      <link_ctn id="l154"/><link_ctn id="l156"/>
-    </route>
-    <route src="Host 27" dst="Host 29">
-      <link_ctn id="l159"/>
-    </route>
-    <route src="Host 27" dst="Host 30">
-      <link_ctn id="l162"/>
-    </route>
-    <route src="Host 27" dst="Host 31">
-      <link_ctn id="l167"/>
-    </route>
-    <route src="Host 27" dst="Host 32">
-      <link_ctn id="l154"/><link_ctn id="l170"/>
-    </route>
-    <route src="Host 28" dst="Host 29">
-      <link_ctn id="l160"/>
-    </route>
-    <route src="Host 28" dst="Host 30">
-      <link_ctn id="l163"/>
-    </route>
-    <route src="Host 28" dst="Host 31">
-      <link_ctn id="l163"/><link_ctn id="l168"/>
-    </route>
-    <route src="Host 28" dst="Host 32">
-      <link_ctn id="l156"/><link_ctn id="l170"/>
-    </route>
-    <route src="Host 29" dst="Host 30">
-      <link_ctn id="l164"/>
-    </route>
-    <route src="Host 29" dst="Host 31">
-      <link_ctn id="l159"/><link_ctn id="l167"/>
-    </route>
-    <route src="Host 29" dst="Host 32">
-      <link_ctn id="l171"/>
-    </route>
-    <route src="Host 30" dst="Host 31">
-      <link_ctn id="l168"/>
-    </route>
-    <route src="Host 30" dst="Host 32">
-      <link_ctn id="l172"/>
-    </route>
-    <route src="Host 31" dst="Host 32">
-      <link_ctn id="l173"/>
-    </route>
+
+    <route src="Host 26" dst="Host 27"><link_ctn id="l155"/></route>
+    <route src="Host 26" dst="Host 28"><link_ctn id="l155"/> <link_ctn id="l154"/><link_ctn id="l156"/></route>
+    <route src="Host 26" dst="Host 29"><link_ctn id="l152"/><link_ctn id="l157"/></route>
+    <route src="Host 26" dst="Host 30"><link_ctn id="l152"/><link_ctn id="l161"/></route>
+    <route src="Host 26" dst="Host 31"><link_ctn id="l166"/></route>
+    <route src="Host 26" dst="Host 32"><link_ctn id="l152"/><link_ctn id="l169"/></route>
+    <route src="Host 27" dst="Host 28"><link_ctn id="l154"/><link_ctn id="l156"/></route>
+    <route src="Host 27" dst="Host 29"><link_ctn id="l159"/></route>
+    <route src="Host 27" dst="Host 30"><link_ctn id="l162"/></route>
+    <route src="Host 27" dst="Host 31"><link_ctn id="l167"/></route>
+    <route src="Host 27" dst="Host 32"><link_ctn id="l154"/><link_ctn id="l170"/></route>
+    <route src="Host 28" dst="Host 29"><link_ctn id="l160"/></route>
+    <route src="Host 28" dst="Host 30"><link_ctn id="l163"/></route>
+    <route src="Host 28" dst="Host 31"><link_ctn id="l163"/><link_ctn id="l168"/></route>
+    <route src="Host 28" dst="Host 32"><link_ctn id="l156"/><link_ctn id="l170"/></route>
+    <route src="Host 29" dst="Host 30"><link_ctn id="l164"/></route>
+    <route src="Host 29" dst="Host 31"><link_ctn id="l159"/><link_ctn id="l167"/></route>
+    <route src="Host 29" dst="Host 32"><link_ctn id="l171"/></route>
+    <route src="Host 30" dst="Host 31"><link_ctn id="l168"/></route>
+    <route src="Host 30" dst="Host 32"><link_ctn id="l172"/></route>
+    <route src="Host 31" dst="Host 32"><link_ctn id="l173"/></route>
   </AS>
 </platform>
 
index 9d18a60..55f991c 100644 (file)
@@ -1,58 +1,39 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <!-- ljlkj -->
-   <host id="Tremblay" power="98.095Mf"/>
-   <host id="Jupiter" power="76.296Mf"/>
-   <host id="Fafard" power="76.296Mf"/>
-   <host id="Ginette" power="48.492Mf"/>
-   <host id="Bourassa" power="48.492Mf"/>
-   <link id="6" bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="3" bandwidth="34.285625MBps" latency="514.433us"/>
-   <link id="7" bandwidth="11.618875MBps" latency="189.98us"/>
-   <link id="9" bandwidth="7.20975MBps" latency="1.461517ms"/>
-   <link id="2" bandwidth="118.6825MBps" latency="136.931us"/>
-   <link id="8" bandwidth="8.158MBps" latency="270.544us"/>
-   <link id="1" bandwidth="34.285625MBps" latency="514.433us"/>
-   <link id="4" bandwidth="10.099625MBps" latency="479.78us"/>
-   <link id="0" bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="5" bandwidth="27.94625MBps" latency="278.066us"/>
-   <link id="loopback" bandwidth="498MBps" latency="15us" sharing_policy="FATPIPE"/>
-   <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
-   <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
-   <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
-   <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
-   <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
-   <route src="Tremblay" dst="Jupiter">
-     <link_ctn id="9"/>
-   </route>
-   <route src="Tremblay" dst="Fafard">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Tremblay" dst="Ginette">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Tremblay" dst="Bourassa">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Jupiter" dst="Fafard">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Jupiter" dst="Ginette">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Jupiter" dst="Bourassa">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Fafard" dst="Ginette">
-     <link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/>
-   </route>
-   <route src="Fafard" dst="Bourassa">
-     <link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Ginette" dst="Bourassa">
-     <link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="Tremblay" speed="98.095Mf"/>
+    <host id="Jupiter" speed="76.296Mf"/>
+    <host id="Fafard" speed="76.296Mf"/>
+    <host id="Ginette" speed="48.492Mf"/>
+    <host id="Bourassa" speed="48.492Mf"/>
+
+    <link id="6" bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="3" bandwidth="34.285625MBps" latency="514.433us"/>
+    <link id="7" bandwidth="11.618875MBps" latency="189.98us"/>
+    <link id="9" bandwidth="7.20975MBps" latency="1.461517ms"/>
+    <link id="2" bandwidth="118.6825MBps" latency="136.931us"/>
+    <link id="8" bandwidth="8.158MBps" latency="270.544us"/>
+    <link id="1" bandwidth="34.285625MBps" latency="514.433us"/>
+    <link id="4" bandwidth="10.099625MBps" latency="479.78us"/>
+    <link id="0" bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="5" bandwidth="27.94625MBps" latency="278.066us"/>
+    <link id="loopback" bandwidth="498MBps" latency="15us" sharing_policy="FATPIPE"/>
+
+    <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
+    <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
+    <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
+    <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
+    <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
+    <route src="Tremblay" dst="Jupiter"><link_ctn id="9"/></route>
+    <route src="Tremblay" dst="Fafard"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+    <route src="Tremblay" dst="Ginette"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+    <route src="Tremblay" dst="Bourassa"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Jupiter" dst="Fafard"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+    <route src="Jupiter" dst="Ginette"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+    <route src="Jupiter" dst="Bourassa"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Fafard" dst="Ginette"><link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/></route>
+    <route src="Fafard" dst="Bourassa"><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Ginette" dst="Bourassa"><link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+  </AS>
+</platform>
index f75e827..c810aa9 100644 (file)
@@ -1,22 +1,20 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <!-- ljlkj -->
-   <host id="Tremblay" power="98.095Mf"/>
-   <host id="Ruby" power="98.095Mf"/>
-   <host id="Perl" power="98.095Mf"/>
-   <host id="Java" power="98.095Mf"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="AS0" routing="Full">
+    <host id="Tremblay" speed="98.095Mf"/>
+    <host id="Ruby" speed="98.095Mf"/>
+    <host id="Perl" speed="98.095Mf"/>
+    <host id="Java" speed="98.095Mf"/>
 
-   <link id="1" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
-   <link id="2" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
-   <link id="3" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
-   <link id="4" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
+    <link id="1" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
+    <link id="2" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
+    <link id="3" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
+    <link id="4" bandwidth="498MBps" latency="150us" sharing_policy="FATPIPE"/>
 
-   <route src="Tremblay" dst="Ruby"><link_ctn id="1"/></route>
-   <route src="Tremblay" dst="Perl"><link_ctn id="2"/></route>
-   <route src="Tremblay" dst="Java"><link_ctn id="3"/></route>
-   <route src="Ruby" dst="Perl"><link_ctn id="4"/></route>
-
- </AS>
- </platform>
+    <route src="Tremblay" dst="Ruby"><link_ctn id="1"/></route>
+    <route src="Tremblay" dst="Perl"><link_ctn id="2"/></route>
+    <route src="Tremblay" dst="Java"><link_ctn id="3"/></route>
+    <route src="Ruby" dst="Perl"><link_ctn id="4"/></route>
+  </AS>
+</platform>
index 5f1a16f..e1d93cb 100644 (file)
@@ -1,76 +1,44 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="Tremblay" speed="98.095Mf"/>
+    <host id="Jupiter" speed="76.296Mf"/>
+    <host id="Fafard" speed="76.296Mf"/>
+    <host id="Ginette" speed="48.492Mf"/>
+    <host id="Bourassa" speed="48.492Mf"/>
+    <host id="Lovelace" speed="30.343Mf"/>
 
-   <host id="Tremblay" power="98.095Mf"/>
-   <host id="Jupiter" power="76.296Mf"/>
-   <host id="Fafard" power="76.296Mf"/>
-   <host id="Ginette" power="48.492Mf"/>
-   <host id="Bourassa" power="48.492Mf"/>
-   <host id="Lovelace" power="30.343Mf"/>
+    <link id="0" bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="1" bandwidth="34.285625MBps" latency="514.433us"/>
+    <link id="2" bandwidth="118.6825MBps" latency="136.931us"/>
+    <link id="3" bandwidth="34.285625MBps" latency="514.433us"/>
+    <link id="4" bandwidth="10.099625MBps" latency="479.78us"/>
+    <link id="5" bandwidth="27.94625MBps" latency="278.066us"/>
+    <link id="6" bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="7" bandwidth="11.618875MBps" latency="189.98us"/>
+    <link id="8" bandwidth="8.158MBps" latency="270.544us"/>
+    <link id="9" bandwidth="7.20975MBps" latency="1.461517ms"/>
+    <link id="10" bandwidth="4.67975MBps" latency="848.712us"/>
+    <link id="11" bandwidth="252.75kBps" latency="5.70455ms"/>
+    <link id="12" bandwidth="1.792625MBps" latency="7.877863ms"/>
+    <link id="13" bandwidth="1.792625MBps" latency="7.877863ms"/>
+    <link id="14" bandwidth="1.792625MBps" latency="7.877863ms"/>
 
-   <link id="0" bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="1" bandwidth="34.285625MBps" latency="514.433us"/>
-   <link id="2" bandwidth="118.6825MBps" latency="136.931us"/>
-   <link id="3" bandwidth="34.285625MBps" latency="514.433us"/>
-   <link id="4" bandwidth="10.099625MBps" latency="479.78us"/>
-   <link id="5" bandwidth="27.94625MBps" latency="278.066us"/>
-   <link id="6" bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="7" bandwidth="11.618875MBps" latency="189.98us"/>
-   <link id="8" bandwidth="8.158MBps" latency="270.544us"/>
-   <link id="9" bandwidth="7.20975MBps" latency="1.461517ms"/>
-   <link id="10" bandwidth="4.67975MBps" latency="848.712us"/>
-   <link id="11" bandwidth="252.75kBps" latency="5.70455ms"/>
-   <link id="12" bandwidth="1.792625MBps" latency="7.877863ms"/>
-   <link id="13" bandwidth="1.792625MBps" latency="7.877863ms"/>
-   <link id="14" bandwidth="1.792625MBps" latency="7.877863ms"/>
-
-   <route src="Tremblay" dst="Jupiter">
-      <link_ctn id="0"/>
-   </route>
-   <route src="Tremblay" dst="Fafard">
-      <link_ctn id="1"/>
-   </route>
-   <route src="Tremblay" dst="Ginette">
-      <link_ctn id="2"/>
-   </route>
-     <route src="Tremblay" dst="Bourassa">
-      <link_ctn id="3"/>
-   </route>
-   <route src="Tremblay" dst="Lovelace">
-      <link_ctn id="4"/>
-   </route>
-   <route src="Jupiter" dst="Fafard">
-      <link_ctn id="5"/>
-   </route>
-   <route src="Jupiter" dst="Ginette">
-      <link_ctn id="6"/>
-   </route>
-   <route src="Jupiter" dst="Bourassa">
-      <link_ctn id="7"/>
-   </route>
-   <route src="Jupiter" dst="Lovelace">
-      <link_ctn id="8"/>
-   </route>
-   <route src="Fafard" dst="Ginette">
-      <link_ctn id="9"/>
-   </route>
-   <route src="Fafard" dst="Bourassa">
-      <link_ctn id="10"/>
-   </route>
-   <route src="Fafard" dst="Lovelace">
-      <link_ctn id="11"/>
-   </route>
-   <route src="Ginette" dst="Bourassa">
-      <link_ctn id="12"/>
-   </route>
-   <route src="Ginette" dst="Lovelace">
-      <link_ctn id="13"/>
-   </route>
-   <route src="Bourassa" dst="Lovelace">
-      <link_ctn id="14"/>
-   </route>
-
- </AS>
- </platform>
+    <route src="Tremblay" dst="Jupiter"><link_ctn id="0"/></route>
+    <route src="Tremblay" dst="Fafard"><link_ctn id="1"/></route>
+    <route src="Tremblay" dst="Ginette"><link_ctn id="2"/></route>
+    <route src="Tremblay" dst="Bourassa"><link_ctn id="3"/></route>
+    <route src="Tremblay" dst="Lovelace"><link_ctn id="4"/></route>
+    <route src="Jupiter" dst="Fafard"><link_ctn id="5"/></route>
+    <route src="Jupiter" dst="Ginette"><link_ctn id="6"/></route>
+    <route src="Jupiter" dst="Bourassa"><link_ctn id="7"/></route>
+    <route src="Jupiter" dst="Lovelace"><link_ctn id="8"/></route>
+    <route src="Fafard" dst="Ginette"><link_ctn id="9"/></route>
+    <route src="Fafard" dst="Bourassa"><link_ctn id="10"/></route>
+    <route src="Fafard" dst="Lovelace"><link_ctn id="11"/></route>
+    <route src="Ginette" dst="Bourassa"><link_ctn id="12"/></route>
+    <route src="Ginette" dst="Lovelace"><link_ctn id="13"/></route>
+    <route src="Bourassa" dst="Lovelace"><link_ctn id="14"/></route>
+  </AS>
+</platform>
index 7995a5f..47b0cce 100644 (file)
@@ -1,59 +1,40 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <!-- ljlkj -->
-   <host id="Tremblay" power="25Mf"/>
-   <host id="Jupiter" power="25Mf" state_file="jupiter_state.trace"/>
-   <host id="Fafard" power="25Mf" state_file="fafard_state.trace" />
-   <host id="Ginette" power="25Mf" state_file="ginette_state.trace"/>
-   <host id="Bourassa" power="25Mf"state_file="bourassa_state.trace"/>
-   <link id="1" bandwidth="1MBps" latency="0"/>
-   <link id="2" bandwidth="1MBps" latency="0"/>
-   <link id="3" bandwidth="1MBps" latency="0" state_file="link3_state.trace" />
-   <link id="4" bandwidth="1MBps" latency="0" state_file="link4_state.trace" />
-   <link id="5" bandwidth="1MBps" latency="0"/>
-   <link id="6" bandwidth="1MBps" latency="0"/>
-   <link id="7" bandwidth="1MBps" latency="0"/>
-   <link id="8" bandwidth="1MBps" latency="0"/>
-   <link id="9" bandwidth="1MBps" latency="0"/>
-   <link id="10" bandwidth="1MBps" latency="0"/>
-   <link id="loopback_FATPIPE" bandwidth="10MBps" latency="0" sharing_policy="FATPIPE"/>
-   <link id="loopback" bandwidth="100MBps" latency="0"/>
-   <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
-   <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
-   <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
-   <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
-   <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
-   <route src="Tremblay" dst="Jupiter">
-     <link_ctn id="1"/>
-   </route>
-   <route src="Tremblay" dst="Fafard">
-     <link_ctn id="2"/>
-   </route>
-   <route src="Tremblay" dst="Ginette">
-     <link_ctn id="3"/>
-   </route>
-   <route src="Tremblay" dst="Bourassa">
-     <link_ctn id="4"/>
-   </route>
-   <route src="Jupiter" dst="Fafard">
-     <link_ctn id="5"/>
-   </route>
-   <route src="Jupiter" dst="Ginette">
-     <link_ctn id="6"/>
-   </route>
-   <route src="Jupiter" dst="Bourassa">
-     <link_ctn id="7"/>
-   </route>
-   <route src="Fafard" dst="Ginette">
-     <link_ctn id="8"/>
-   </route>
-   <route src="Fafard" dst="Bourassa">
-     <link_ctn id="9"/>
-   </route>
-   <route src="Ginette" dst="Bourassa">
-     <link_ctn id="10"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="Tremblay" speed="25Mf"/>
+    <host id="Jupiter" speed="25Mf" state_file="jupiter_state.trace"/>
+    <host id="Fafard" speed="25Mf" state_file="fafard_state.trace" />
+    <host id="Ginette" speed="25Mf" state_file="ginette_state.trace"/>
+    <host id="Bourassa" speed="25Mf"state_file="bourassa_state.trace"/>
+
+    <link id="1" bandwidth="1MBps" latency="0"/>
+    <link id="2" bandwidth="1MBps" latency="0"/>
+    <link id="3" bandwidth="1MBps" latency="0" state_file="link3_state.trace" />
+    <link id="4" bandwidth="1MBps" latency="0" state_file="link4_state.trace" />
+    <link id="5" bandwidth="1MBps" latency="0"/>
+    <link id="6" bandwidth="1MBps" latency="0"/>
+    <link id="7" bandwidth="1MBps" latency="0"/>
+    <link id="8" bandwidth="1MBps" latency="0"/>
+    <link id="9" bandwidth="1MBps" latency="0"/>
+    <link id="10" bandwidth="1MBps" latency="0"/>
+    <link id="loopback_FATPIPE" bandwidth="10MBps" latency="0" sharing_policy="FATPIPE"/>
+    <link id="loopback" bandwidth="100MBps" latency="0"/>
+
+    <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
+    <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
+    <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
+    <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
+    <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
+    <route src="Tremblay" dst="Jupiter"><link_ctn id="1"/></route>
+    <route src="Tremblay" dst="Fafard"><link_ctn id="2"/></route>
+    <route src="Tremblay" dst="Ginette"><link_ctn id="3"/></route>
+    <route src="Tremblay" dst="Bourassa"><link_ctn id="4"/></route>
+    <route src="Jupiter" dst="Fafard"><link_ctn id="5"/></route>
+    <route src="Jupiter" dst="Ginette"><link_ctn id="6"/></route>
+    <route src="Jupiter" dst="Bourassa"><link_ctn id="7"/></route>
+    <route src="Fafard" dst="Ginette"><link_ctn id="8"/></route>
+    <route src="Fafard" dst="Bourassa"><link_ctn id="9"/></route>
+    <route src="Ginette" dst="Bourassa"><link_ctn id="10"/></route>
+  </AS>
+</platform>
index ebc944d..1310835 100644 (file)
@@ -1,77 +1,60 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="Tremblay" power="98.095Mf"/>
-   <host id="Jupiter" power="76.296Mf"/>
-   <host id="Fafard" power="76.296Mf"/>
-   <host id="Ginette" power="48.492Mf"/>
-   <host id="Bourassa" power="48.492Mf"/>
-   <router id="R.4-3"/>
-   <router id="R.3-2-5"/>
-   <router id="R.2-0"/>
-   <router id="R.1-0"/>
-   <router id="R.1-8-6"/>
-   <router id="R.6-7"/>
-   <link id="6"  bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="11" bandwidth="252.75kBps" latency="5.70455ms"/>
-   <link id="3"  bandwidth="34.285622MBps" latency="514.433us"/>
-   <link id="7"  bandwidth="11.618875MBps" latency="189.98us"/>
-   <link id="9"  bandwidth="7.20975MBps" latency="1.461517ms"/>
-   <link id="12" bandwidth="1.792625MBps" latency="7.877863ms"/>
-   <link id="2"  bandwidth="22.222222MBps" latency="136.931us"/>
-   <link id="8"  bandwidth="8.158MBps" latency="270.544us"/>
-   <link id="1"  bandwidth="34.285625MBps" latency="514.433us"/>
-   <link id="4"  bandwidth="10.099625MBps" latency="479.78us"/>
-   <link id="0"  bandwidth="41.279125MBps" latency="59.904us"/>
-   <link id="10" bandwidth="4.67975MBps" latency="848.712us"/>
-   <link id="5"  bandwidth="27.94625MBps" latency="278.066us"/>
-   <link id="loopback" bandwidth="498MBps" latency="15us" sharing_policy="FATPIPE"/>
-   <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
-   <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
-   <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
-   <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
-   <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="Tremblay" speed="98.095Mf"/>
+    <host id="Jupiter" speed="76.296Mf"/>
+    <host id="Fafard" speed="76.296Mf"/>
+    <host id="Ginette" speed="48.492Mf"/>
+    <host id="Bourassa" speed="48.492Mf"/>
+
+    <router id="R.4-3"/>
+    <router id="R.3-2-5"/>
+    <router id="R.2-0"/>
+    <router id="R.1-0"/>
+    <router id="R.1-8-6"/>
+    <router id="R.6-7"/>
+
+    <link id="6"  bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="11" bandwidth="252.75kBps" latency="5.70455ms"/>
+    <link id="3"  bandwidth="34.285622MBps" latency="514.433us"/>
+    <link id="7"  bandwidth="11.618875MBps" latency="189.98us"/>
+    <link id="9"  bandwidth="7.20975MBps" latency="1.461517ms"/>
+    <link id="12" bandwidth="1.792625MBps" latency="7.877863ms"/>
+    <link id="2"  bandwidth="22.222222MBps" latency="136.931us"/>
+    <link id="8"  bandwidth="8.158MBps" latency="270.544us"/>
+    <link id="1"  bandwidth="34.285625MBps" latency="514.433us"/>
+    <link id="4"  bandwidth="10.099625MBps" latency="479.78us"/>
+    <link id="0"  bandwidth="41.279125MBps" latency="59.904us"/>
+    <link id="10" bandwidth="4.67975MBps" latency="848.712us"/>
+    <link id="5"  bandwidth="27.94625MBps" latency="278.066us"/>
+    <link id="loopback" bandwidth="498MBps" latency="15us" sharing_policy="FATPIPE"/>
+
+    <route src="Tremblay" dst="Tremblay"><link_ctn id="loopback"/></route>
+    <route src="Jupiter" dst="Jupiter"><link_ctn id="loopback"/></route>
+    <route src="Fafard" dst="Fafard"><link_ctn id="loopback"/></route>
+    <route src="Ginette" dst="Ginette"><link_ctn id="loopback"/></route>
+    <route src="Bourassa" dst="Bourassa"><link_ctn id="loopback"/></route>
  
-   <route src="Tremblay" dst="R.4-3"><link_ctn id="4"/></route>
-   <route src="R.3-2-5" dst="Ginette"><link_ctn id="5"/></route>
-   <route src="R.4-3" dst="R.3-2-5"><link_ctn id="3"/></route>
-   <route src="R.3-2-5" dst="R.2-0"><link_ctn id="2"/></route>
-   <route src="R.2-0" dst="R.1-0"><link_ctn id="0"/></route>
-   <route src="Fafard" dst="R.1-8-6"><link_ctn id="8"/></route>
-   <route src="R.1-0" dst="R.1-8-6"><link_ctn id="1"/></route>
-   <route src="R.1-8-6" dst="R.6-7"><link_ctn id="6"/></route>
-   <route src="R.6-7" dst="Bourassa"><link_ctn id="7"/></route>
+    <route src="Tremblay" dst="R.4-3"><link_ctn id="4"/></route>
+    <route src="R.3-2-5" dst="Ginette"><link_ctn id="5"/></route>
+    <route src="R.4-3" dst="R.3-2-5"><link_ctn id="3"/></route>
+    <route src="R.3-2-5" dst="R.2-0"><link_ctn id="2"/></route>
+    <route src="R.2-0" dst="R.1-0"><link_ctn id="0"/></route>
+    <route src="Fafard" dst="R.1-8-6"><link_ctn id="8"/></route>
+    <route src="R.1-0" dst="R.1-8-6"><link_ctn id="1"/></route>
+    <route src="R.1-8-6" dst="R.6-7"><link_ctn id="6"/></route>
+    <route src="R.6-7" dst="Bourassa"><link_ctn id="7"/></route>
  
-   <route src="Tremblay" dst="Jupiter">
-     <link_ctn id="9"/>
-   </route>
-   <route src="Tremblay" dst="Fafard">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Tremblay" dst="Ginette">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Tremblay" dst="Bourassa">
-     <link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Jupiter" dst="Fafard">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/>
-   </route>
-   <route src="Jupiter" dst="Ginette">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/>
-   </route>
-   <route src="Jupiter" dst="Bourassa">
-     <link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Fafard" dst="Ginette">
-     <link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/>
-   </route>
-   <route src="Fafard" dst="Bourassa">
-     <link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
-   <route src="Ginette" dst="Bourassa">
-     <link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/>
-   </route>
- </AS>
- </platform>
+    <route src="Tremblay" dst="Jupiter"><link_ctn id="9"/></route>
+    <route src="Tremblay" dst="Fafard"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+    <route src="Tremblay" dst="Ginette"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+    <route src="Tremblay" dst="Bourassa"><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Jupiter" dst="Fafard"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="8"/></route>
+    <route src="Jupiter" dst="Ginette"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="5"/></route>
+    <route src="Jupiter" dst="Bourassa"><link_ctn id="9"/><link_ctn id="4"/><link_ctn id="3"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Fafard" dst="Ginette"><link_ctn id="8"/><link_ctn id="1"/><link_ctn id="0"/><link_ctn id="2"/><link_ctn id="5"/></route>
+    <route src="Fafard" dst="Bourassa"><link_ctn id="8"/><link_ctn id="6"/><link_ctn id="7"/></route>
+    <route src="Ginette" dst="Bourassa"><link_ctn id="5"/><link_ctn id="2"/><link_ctn id="0"/><link_ctn id="1"/><link_ctn id="6"/><link_ctn id="7"/></route>
+  </AS>
+</platform>
index d6a2a76..2505796 100644 (file)
@@ -1,86 +1,46 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-
-<config>
-  <prop id="path" value="../examples/platforms/"/>
-</config>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <config><prop id="path" value="../examples/platforms/"/></config>
 
   <AS id="AS0" routing="Full">
-    <storage_type id="SATA-II_HDD" size="500GB"
-                  content_type="txt_unix" 
-                  content="content/small_content.txt" 
-                  model="linear_no_lat">
+    <storage_type id="SATA-II_HDD" size="500GB" model="linear_no_lat"
+                  content_type="txt_unix" content="content/small_content.txt">
       <model_prop id="Bread" value="92MBps"/> 
       <model_prop id="Bwrite" value="62MBps"/> 
       <model_prop id="Bconnection" value="122MBps"/> 
     </storage_type>
 
-    <storage id="Disk1" typeId="SATA-II_HDD"
-             attach="carl"/>
+    <storage id="Disk1" typeId="SATA-II_HDD" attach="carl"/>
 
-    <storage id="Disk2" typeId="SATA-II_HDD"
-             attach="dave"
-             content_type="txt_windows" 
-             content="content/win_storage_content.txt" />
+    <storage id="Disk2" typeId="SATA-II_HDD" attach="dave"
+             content_type="txt_windows" content="content/win_storage_content.txt" />
 
-    <host id="alice" power="1Gf">
-      <mount storageId="Disk2" name="c:"/>                     
+    <host id="alice" speed="1Gf">
+      <mount storageId="Disk2" name="c:"/>
     </host>
-
-    <host id="bob" power="1Gf">
-      <mount storageId="Disk1" name="/scratch"/>                       
+    <host id="bob" speed="1Gf">
+      <mount storageId="Disk1" name="/scratch"/>
     </host>
-
-    <host id="carl" power="1Gf">
-      <mount storageId="Disk1" name="/scratch"/>                       
+    <host id="carl" speed="1Gf">
+      <mount storageId="Disk1" name="/scratch"/>
     </host>
-
-    <host id="dave" power="1Gf">
-      <mount storageId="Disk2" name="c:"/>                     
+    <host id="dave" speed="1Gf">
+      <mount storageId="Disk2" name="c:"/>
     </host>
 
-    <link id="link1" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <link id="link2" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <link id="link3" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <link id="link4" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <link id="link5" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <link id="link6" bandwidth="125MBps" 
-          latency="50us"/>
-
-    <route src="alice" dst="bob" symmetrical="YES">
-      <link_ctn id="link1"/>
-    </route>
-
-    <route src="alice" dst="carl" symmetrical="YES">
-      <link_ctn id="link2"/>
-    </route>
-
-    <route src="alice" dst="dave" symmetrical="YES">
-      <link_ctn id="link3"/>
-    </route>
-
-    <route src="bob" dst="carl" symmetrical="YES">
-      <link_ctn id="link4"/>
-    </route>
-
-    <route src="bob" dst="dave" symmetrical="YES">
-      <link_ctn id="link5"/>
-    </route>
-
-    <route src="carl" dst="dave" symmetrical="YES">
-      <link_ctn id="link6"/>
-    </route>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+    <link id="link4" bandwidth="125MBps" latency="50us"/>
+    <link id="link5" bandwidth="125MBps" latency="50us"/>
+    <link id="link6" bandwidth="125MBps" latency="50us"/>
+
+    <route src="alice" dst="bob" symmetrical="YES"><link_ctn id="link1"/></route>
+    <route src="alice" dst="carl" symmetrical="YES"><link_ctn id="link2"/></route>
+    <route src="alice" dst="dave" symmetrical="YES"><link_ctn id="link3"/></route>
+    <route src="bob" dst="carl" symmetrical="YES"><link_ctn id="link4"/></route>
+    <route src="bob" dst="dave" symmetrical="YES"><link_ctn id="link5"/></route>
+    <route src="carl" dst="dave" symmetrical="YES"><link_ctn id="link6"/></route>
   </AS>
 </platform>
index c26b204..081374f 100644 (file)
@@ -1,22 +1,17 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
-  <config>
-    <prop id="path" value="../examples/platforms/"/>
-  </config>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <config><prop id="path" value="../examples/platforms/"/></config>
 
   <AS id="AS0" routing="Full">
-
-    <storage_type id="single_HDD" model="linear_no_lat" 
-                  content="content/storage_content.txt" size="500GiB"
-                  content_type="txt_unix">
+    <storage_type id="single_HDD" size="500GiB" model="linear_no_lat" 
+                  content="content/storage_content.txt" content_type="txt_unix">
        <model_prop id="Bwrite" value="30MBps" />
        <model_prop id="Bread" value="100MBps" />
        <model_prop id="Bconnection" value="120MBps" />
     </storage_type>
 
-    <storage_type id="single_SSD" model="linear_no_lat" size="500GiB"
+    <storage_type id="single_SSD" size="500GiB" model="linear_no_lat"
                   content="content/storage_content.txt" content_type="txt_unix">
        <model_prop id="Bwrite" value="60MBps" />
        <model_prop id="Bread" value="200MBps" />
     </storage_type>
 
     <storage id="Disk1" typeId="single_HDD" attach="bob" />
-    <storage id="Disk2" typeId="single_SSD"
-             content="content/win_storage_content.txt"
-             content_type="txt_windows" attach="alice" />
+    <storage id="Disk2" typeId="single_SSD" attach="alice"
+             content="content/win_storage_content.txt" content_type="txt_windows" />
     <storage id="Disk3" typeId="single_HDD" attach="carl" />
-    <storage id="Disk4" typeId="single_SSD"
-             content="content/small_content.txt"
-             content_type="txt_unix" attach="denise"/>
+    <storage id="Disk4" typeId="single_SSD" attach="denise"
+             content="content/small_content.txt" content_type="txt_unix" />
 
-    <host id="bob" power="1Gf">
+    <host id="bob" speed="1Gf">
       <mount storageId="Disk1" name="/home"/>
     </host>
-
-    <host id="alice" power="1Gf">
+    <host id="alice" speed="1Gf">
       <mount storageId="Disk2" name="c:"/>
     </host>
-
-    <host id="carl" power="1Gf">
+    <host id="carl" speed="1Gf">
       <mount storageId="Disk3" name="/home"/>
     </host>
-
-    <host id="denise" power="1Gf">
+    <host id="denise" speed="1Gf">
       <mount storageId="Disk2" name="c:"/>     
       <mount storageId="Disk4" name="/home"/>  
     </host>
 
-    <link id="link1" bandwidth="125MBps" latency="50us" />
-    <link id="link2" bandwidth="125MBps" latency="50us" />
-    <link id="link3" bandwidth="125MBps" latency="50us" />
+    <link id="link1" bandwidth="125MBps" latency="150us" />
 
-    <route src="bob" dst="alice" symmetrical="YES">
-      <link_ctn id="link1" />
-      <link_ctn id="link2" />
-      <link_ctn id="link3" />
-    </route>
+    <route src="bob" dst="alice" symmetrical="YES"><link_ctn id="link1" /></route>
   </AS>
 </platform>
index 73e39bd..fd29198 100644 (file)
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
   <config id="General">
     <prop id="network/coordinates" value="yes"></prop>
   </config>
 
   <AS  id="AS0"  routing="Vivaldi">
-    <peer id="peer-0"   coordinates="173.0 96.8 0.1" power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1"   coordinates="247.0 57.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2"   coordinates="243.4 58.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-3"   coordinates="-42.0 -35.2 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-4"   coordinates="170.4 78.2 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-5"   coordinates="116.3 -51.1 79.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-6"   coordinates="240.7 73.1 42.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-7"   coordinates="248.1 66.0 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-8"   coordinates="-136.1 31.0 59.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-9"   coordinates="-138.9 38.1 57.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-10"  coordinates="275.8 43.3 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-11"  coordinates="41.7 -10.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-12"  coordinates="262.3 31.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-13"  coordinates="251.8 79.9 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-14"  coordinates="251.7 64.5 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-15"  coordinates="-16.0 -13.4 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-16"  coordinates="250.1 67.1 18.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-17"  coordinates="264.4 77.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-18"  coordinates="247.1 62.5 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-19"  coordinates="19.4 -26.5 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-20"  coordinates="0.8 -42.7 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-21"  coordinates="241.2 62.5 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-22"  coordinates="-25.9 -16.1 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-23"  coordinates="-29.3 5.3 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-24"  coordinates="-41.9 -6.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-25"  coordinates="-28.5 0.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-26"  coordinates="31.4 -7.5 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-27"  coordinates="21.9 21.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-28"  coordinates="-21.5 -7.5 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-29"  coordinates="-34.2 -8.2 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-30"  coordinates="33.6 -22.7 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-31"  coordinates="-40.0 -26.3 11.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-32"  coordinates="-146.7 15.9 45.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-33"  coordinates="-42.5 3.8 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-34"  coordinates="-44.2 -13.8 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-35"  coordinates="43.9 3.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-36"  coordinates="-37.1 24.3 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-37"  coordinates="-7.7 11.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-38"  coordinates="-50.1 -21.1 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-39"  coordinates="13.4 22.5 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-40"  coordinates="-166.0 48.5 29.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-41"  coordinates="-33.8 -8.5 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-42"  coordinates="29.9 -18.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-43"  coordinates="-52.0 -5.7 34.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-44"  coordinates="-197.4 8.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-45"  coordinates="-40.6 10.3 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-46"  coordinates="-31.9 21.1 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-47"  coordinates="-44.7 -6.9 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-48"  coordinates="45.2 5.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-49"  coordinates="-40.2 14.6 17.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-50"  coordinates="-7.1 4.0 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-51"  coordinates="19.5 3.6 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-52"  coordinates="-216.1 3.4 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-53"  coordinates="-40.4 3.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-54"  coordinates="-194.1 16.3 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-55"  coordinates="-24.1 -6.7 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-56"  coordinates="-50.1 -12.8 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-57"  coordinates="-138.6 53.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-58"  coordinates="-48.1 -3.0 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-59"  coordinates="28.9 -6.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-60"  coordinates="24.1 3.5 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-61"  coordinates="-137.6 41.0 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-62"  coordinates="35.5 -30.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-63"  coordinates="34.5 -25.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-64"  coordinates="31.7 -31.2 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-65"  coordinates="33.9 -17.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-66"  coordinates="35.9 -10.6 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-67"  coordinates="33.1 -13.0 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-68"  coordinates="0.4 -10.7 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-69"  coordinates="-27.3 -8.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-70"  coordinates="-194.3 72.7 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-71"  coordinates="-19.0 -2.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-72"  coordinates="-45.2 -12.3 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-73"  coordinates="-45.2 -6.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-74"  coordinates="-45.2 -11.2 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-75"  coordinates="-24.4 -12.8 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-76"  coordinates="-21.7 -14.9 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-77"  coordinates="-9.8 -28.5 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-78"  coordinates="19.1 10.4 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-79"  coordinates="-192.7 21.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-80"  coordinates="-28.0 -12.7 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-81"  coordinates="-45.4 -2.9 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-82"  coordinates="-42.1 -2.8 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-83"  coordinates="-41.1 -1.2 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-84"  coordinates="-153.6 19.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-85"  coordinates="-125.7 16.6 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-86"  coordinates="-151.0 41.0 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-87"  coordinates="39.4 -27.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-88"  coordinates="-21.6 -8.5 11.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-89"  coordinates="-16.9 -10.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-90"  coordinates="10.3 -9.3 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-91"  coordinates="-13.6 16.9 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-92"  coordinates="-48.2 4.3 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-93"  coordinates="-11.5 -34.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-94"  coordinates="26.7 -26.3 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-95"  coordinates="-145.3 17.7 29.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-96"  coordinates="218.2 129.0 69.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-97"  coordinates="-47.4 -20.3 97.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-98"  coordinates="-19.5 -5.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-99"  coordinates="-13.0 -3.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-100" coordinates="39.2 -5.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-101" coordinates="35.4 11.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-102" coordinates="-45.6 -10.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-103" coordinates="-148.9 29.0 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-104" coordinates="-109.9 52.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-105" coordinates="-151.2 28.8 44.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-106" coordinates="-151.9 44.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-107" coordinates="108.3 88.7 58.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-108" coordinates="25.1 -12.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-109" coordinates="22.4 -29.2 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-110" coordinates="24.3 -32.3 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-111" coordinates="-40.6 -10.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-112" coordinates="-11.4 -17.8 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-113" coordinates="-118.7 50.3 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-114" coordinates="-3.1 -39.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-115" coordinates="-27.6 -15.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-116" coordinates="-21.6 -8.1 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-117" coordinates="-48.7 1.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-118" coordinates="-45.9 -9.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-119" coordinates="-43.0 -0.4 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-120" coordinates="-45.5 -16.9 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-121" coordinates="-22.0 -5.3 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-122" coordinates="-116.4 53.5 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-123" coordinates="-175.6 -9.6 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-124" coordinates="-17.8 -17.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-125" coordinates="-7.8 -29.9 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-126" coordinates="16.1 16.9 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-127" coordinates="-140.6 34.1 45.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-128" coordinates="-45.6 -12.4 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-129" coordinates="-43.6 -9.8 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-130" coordinates="-41.2 -18.4 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-131" coordinates="37.0 -5.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-132" coordinates="-130.3 24.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-133" coordinates="-109.0 65.9 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-134" coordinates="-3.7 -16.7 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-135" coordinates="25.2 -16.1 21.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-136" coordinates="-17.8 -0.6 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-137" coordinates="-16.3 -9.2 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-138" coordinates="16.9 25.3 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-139" coordinates="-11.3 -3.6 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-140" coordinates="-9.7 -19.6 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-141" coordinates="202.6 100.2 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-142" coordinates="-169.7 15.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-143" coordinates="117.2 64.5 29.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-144" coordinates="-137.8 62.2 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-145" coordinates="-19.5 -7.5 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-146" coordinates="33.5 -15.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-147" coordinates="-150.9 18.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-148" coordinates="-326.8 -126.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-149" coordinates="-87.5 83.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-150" coordinates="-164.6 8.4 41.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-151" coordinates="-153.2 46.9 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-152" coordinates="-168.9 12.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-153" coordinates="87.5 155.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-154" coordinates="29.7 -12.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-155" coordinates="35.6 -28.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-156" coordinates="-22.5 -5.3 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-157" coordinates="29.8 -20.4 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-158" coordinates="-44.5 -7.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-159" coordinates="-15.2 -8.5 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-160" coordinates="-103.1 44.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-161" coordinates="-42.6 -4.1 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-162" coordinates="-47.1 8.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-163" coordinates="-49.0 -14.9 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-164" coordinates="-42.9 -1.9 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-165" coordinates="-50.0 -5.9 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-166" coordinates="-8.3 -38.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-167" coordinates="33.7 -8.4 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-168" coordinates="-13.2 -34.3 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-169" coordinates="39.7 -27.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-170" coordinates="35.5 0.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-171" coordinates="139.5 107.5 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-172" coordinates="16.2 32.5 20.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-173" coordinates="-42.1 -4.2 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-174" coordinates="-50.5 -7.3 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-175" coordinates="33.5 -27.2 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-176" coordinates="-146.7 37.2 27.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-177" coordinates="-46.5 -17.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-178" coordinates="41.5 -22.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-179" coordinates="40.1 -5.5 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-180" coordinates="-142.5 16.7 37.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-181" coordinates="-53.6 -10.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-182" coordinates="30.7 -21.0 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-183" coordinates="24.0 -29.0 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-184" coordinates="-144.7 14.3 35.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-185" coordinates="-45.5 -7.8 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-186" coordinates="-42.7 -5.2 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-187" coordinates="33.0 -33.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-188" coordinates="-46.9 -4.3 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-189" coordinates="-46.9 -2.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-190" coordinates="36.0 -29.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-191" coordinates="29.8 -36.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-192" coordinates="42.7 -23.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-193" coordinates="-117.6 48.0 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-194" coordinates="-124.3 45.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-195" coordinates="37.1 -6.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-196" coordinates="40.9 -4.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-197" coordinates="28.6 -2.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-198" coordinates="-111.0 24.8 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-199" coordinates="-112.0 33.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-200" coordinates="25.4 -23.7 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-201" coordinates="33.7 -25.7 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-202" coordinates="32.2 -26.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-203" coordinates="193.3 -4.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-204" coordinates="-8.0 -35.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-205" coordinates="-11.7 -33.4 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-206" coordinates="-43.8 -1.7 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-207" coordinates="251.0 54.7 26.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-208" coordinates="252.9 85.9 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-209" coordinates="261.1 66.2 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-210" coordinates="247.6 63.0 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-211" coordinates="256.6 109.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-212" coordinates="246.4 78.1 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-213" coordinates="258.8 61.8 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-214" coordinates="245.5 62.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-215" coordinates="235.0 69.5 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-216" coordinates="284.3 47.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-217" coordinates="245.2 55.4 37.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-218" coordinates="252.9 69.6 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-219" coordinates="-21.8 -10.4 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-220" coordinates="-18.5 -10.7 14.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-221" coordinates="235.1 88.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-222" coordinates="259.9 65.1 38.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-223" coordinates="265.7 80.7 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-224" coordinates="267.3 107.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-225" coordinates="268.1 60.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-0"   coordinates="173.0 96.8 0.1" speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1"   coordinates="247.0 57.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2"   coordinates="243.4 58.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-3"   coordinates="-42.0 -35.2 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-4"   coordinates="170.4 78.2 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-5"   coordinates="116.3 -51.1 79.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-6"   coordinates="240.7 73.1 42.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-7"   coordinates="248.1 66.0 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-8"   coordinates="-136.1 31.0 59.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-9"   coordinates="-138.9 38.1 57.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-10"  coordinates="275.8 43.3 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-11"  coordinates="41.7 -10.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-12"  coordinates="262.3 31.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-13"  coordinates="251.8 79.9 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-14"  coordinates="251.7 64.5 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-15"  coordinates="-16.0 -13.4 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-16"  coordinates="250.1 67.1 18.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-17"  coordinates="264.4 77.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-18"  coordinates="247.1 62.5 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-19"  coordinates="19.4 -26.5 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-20"  coordinates="0.8 -42.7 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-21"  coordinates="241.2 62.5 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-22"  coordinates="-25.9 -16.1 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-23"  coordinates="-29.3 5.3 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-24"  coordinates="-41.9 -6.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-25"  coordinates="-28.5 0.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-26"  coordinates="31.4 -7.5 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-27"  coordinates="21.9 21.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-28"  coordinates="-21.5 -7.5 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-29"  coordinates="-34.2 -8.2 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-30"  coordinates="33.6 -22.7 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-31"  coordinates="-40.0 -26.3 11.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-32"  coordinates="-146.7 15.9 45.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-33"  coordinates="-42.5 3.8 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-34"  coordinates="-44.2 -13.8 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-35"  coordinates="43.9 3.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-36"  coordinates="-37.1 24.3 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-37"  coordinates="-7.7 11.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-38"  coordinates="-50.1 -21.1 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-39"  coordinates="13.4 22.5 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-40"  coordinates="-166.0 48.5 29.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-41"  coordinates="-33.8 -8.5 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-42"  coordinates="29.9 -18.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-43"  coordinates="-52.0 -5.7 34.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-44"  coordinates="-197.4 8.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-45"  coordinates="-40.6 10.3 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-46"  coordinates="-31.9 21.1 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-47"  coordinates="-44.7 -6.9 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-48"  coordinates="45.2 5.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-49"  coordinates="-40.2 14.6 17.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-50"  coordinates="-7.1 4.0 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-51"  coordinates="19.5 3.6 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-52"  coordinates="-216.1 3.4 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-53"  coordinates="-40.4 3.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-54"  coordinates="-194.1 16.3 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-55"  coordinates="-24.1 -6.7 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-56"  coordinates="-50.1 -12.8 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-57"  coordinates="-138.6 53.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-58"  coordinates="-48.1 -3.0 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-59"  coordinates="28.9 -6.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-60"  coordinates="24.1 3.5 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-61"  coordinates="-137.6 41.0 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-62"  coordinates="35.5 -30.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-63"  coordinates="34.5 -25.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-64"  coordinates="31.7 -31.2 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-65"  coordinates="33.9 -17.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-66"  coordinates="35.9 -10.6 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-67"  coordinates="33.1 -13.0 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-68"  coordinates="0.4 -10.7 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-69"  coordinates="-27.3 -8.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-70"  coordinates="-194.3 72.7 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-71"  coordinates="-19.0 -2.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-72"  coordinates="-45.2 -12.3 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-73"  coordinates="-45.2 -6.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-74"  coordinates="-45.2 -11.2 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-75"  coordinates="-24.4 -12.8 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-76"  coordinates="-21.7 -14.9 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-77"  coordinates="-9.8 -28.5 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-78"  coordinates="19.1 10.4 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-79"  coordinates="-192.7 21.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-80"  coordinates="-28.0 -12.7 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-81"  coordinates="-45.4 -2.9 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-82"  coordinates="-42.1 -2.8 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-83"  coordinates="-41.1 -1.2 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-84"  coordinates="-153.6 19.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-85"  coordinates="-125.7 16.6 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-86"  coordinates="-151.0 41.0 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-87"  coordinates="39.4 -27.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-88"  coordinates="-21.6 -8.5 11.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-89"  coordinates="-16.9 -10.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-90"  coordinates="10.3 -9.3 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-91"  coordinates="-13.6 16.9 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-92"  coordinates="-48.2 4.3 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-93"  coordinates="-11.5 -34.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-94"  coordinates="26.7 -26.3 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-95"  coordinates="-145.3 17.7 29.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-96"  coordinates="218.2 129.0 69.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-97"  coordinates="-47.4 -20.3 97.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-98"  coordinates="-19.5 -5.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-99"  coordinates="-13.0 -3.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-100" coordinates="39.2 -5.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-101" coordinates="35.4 11.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-102" coordinates="-45.6 -10.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-103" coordinates="-148.9 29.0 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-104" coordinates="-109.9 52.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-105" coordinates="-151.2 28.8 44.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-106" coordinates="-151.9 44.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-107" coordinates="108.3 88.7 58.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-108" coordinates="25.1 -12.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-109" coordinates="22.4 -29.2 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-110" coordinates="24.3 -32.3 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-111" coordinates="-40.6 -10.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-112" coordinates="-11.4 -17.8 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-113" coordinates="-118.7 50.3 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-114" coordinates="-3.1 -39.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-115" coordinates="-27.6 -15.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-116" coordinates="-21.6 -8.1 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-117" coordinates="-48.7 1.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-118" coordinates="-45.9 -9.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-119" coordinates="-43.0 -0.4 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-120" coordinates="-45.5 -16.9 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-121" coordinates="-22.0 -5.3 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-122" coordinates="-116.4 53.5 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-123" coordinates="-175.6 -9.6 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-124" coordinates="-17.8 -17.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-125" coordinates="-7.8 -29.9 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-126" coordinates="16.1 16.9 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-127" coordinates="-140.6 34.1 45.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-128" coordinates="-45.6 -12.4 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-129" coordinates="-43.6 -9.8 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-130" coordinates="-41.2 -18.4 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-131" coordinates="37.0 -5.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-132" coordinates="-130.3 24.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-133" coordinates="-109.0 65.9 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-134" coordinates="-3.7 -16.7 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-135" coordinates="25.2 -16.1 21.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-136" coordinates="-17.8 -0.6 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-137" coordinates="-16.3 -9.2 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-138" coordinates="16.9 25.3 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-139" coordinates="-11.3 -3.6 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-140" coordinates="-9.7 -19.6 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-141" coordinates="202.6 100.2 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-142" coordinates="-169.7 15.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-143" coordinates="117.2 64.5 29.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-144" coordinates="-137.8 62.2 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-145" coordinates="-19.5 -7.5 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-146" coordinates="33.5 -15.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-147" coordinates="-150.9 18.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-148" coordinates="-326.8 -126.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-149" coordinates="-87.5 83.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-150" coordinates="-164.6 8.4 41.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-151" coordinates="-153.2 46.9 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-152" coordinates="-168.9 12.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-153" coordinates="87.5 155.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-154" coordinates="29.7 -12.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-155" coordinates="35.6 -28.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-156" coordinates="-22.5 -5.3 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-157" coordinates="29.8 -20.4 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-158" coordinates="-44.5 -7.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-159" coordinates="-15.2 -8.5 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-160" coordinates="-103.1 44.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-161" coordinates="-42.6 -4.1 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-162" coordinates="-47.1 8.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-163" coordinates="-49.0 -14.9 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-164" coordinates="-42.9 -1.9 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-165" coordinates="-50.0 -5.9 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-166" coordinates="-8.3 -38.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-167" coordinates="33.7 -8.4 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-168" coordinates="-13.2 -34.3 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-169" coordinates="39.7 -27.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-170" coordinates="35.5 0.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-171" coordinates="139.5 107.5 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-172" coordinates="16.2 32.5 20.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-173" coordinates="-42.1 -4.2 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-174" coordinates="-50.5 -7.3 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-175" coordinates="33.5 -27.2 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-176" coordinates="-146.7 37.2 27.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-177" coordinates="-46.5 -17.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-178" coordinates="41.5 -22.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-179" coordinates="40.1 -5.5 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-180" coordinates="-142.5 16.7 37.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-181" coordinates="-53.6 -10.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-182" coordinates="30.7 -21.0 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-183" coordinates="24.0 -29.0 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-184" coordinates="-144.7 14.3 35.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-185" coordinates="-45.5 -7.8 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-186" coordinates="-42.7 -5.2 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-187" coordinates="33.0 -33.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-188" coordinates="-46.9 -4.3 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-189" coordinates="-46.9 -2.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-190" coordinates="36.0 -29.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-191" coordinates="29.8 -36.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-192" coordinates="42.7 -23.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-193" coordinates="-117.6 48.0 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-194" coordinates="-124.3 45.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-195" coordinates="37.1 -6.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-196" coordinates="40.9 -4.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-197" coordinates="28.6 -2.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-198" coordinates="-111.0 24.8 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-199" coordinates="-112.0 33.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-200" coordinates="25.4 -23.7 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-201" coordinates="33.7 -25.7 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-202" coordinates="32.2 -26.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-203" coordinates="193.3 -4.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-204" coordinates="-8.0 -35.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-205" coordinates="-11.7 -33.4 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-206" coordinates="-43.8 -1.7 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-207" coordinates="251.0 54.7 26.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-208" coordinates="252.9 85.9 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-209" coordinates="261.1 66.2 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-210" coordinates="247.6 63.0 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-211" coordinates="256.6 109.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-212" coordinates="246.4 78.1 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-213" coordinates="258.8 61.8 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-214" coordinates="245.5 62.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-215" coordinates="235.0 69.5 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-216" coordinates="284.3 47.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-217" coordinates="245.2 55.4 37.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-218" coordinates="252.9 69.6 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-219" coordinates="-21.8 -10.4 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-220" coordinates="-18.5 -10.7 14.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-221" coordinates="235.1 88.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-222" coordinates="259.9 65.1 38.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-223" coordinates="265.7 80.7 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-224" coordinates="267.3 107.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-225" coordinates="268.1 60.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
   </AS>
 </platform> 
index 875afd5..5f3e148 100644 (file)
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <config id="General">
     <prop id="network/coordinates" value="yes"></prop>
   </config>
   <AS  id="AS0"  routing="Vivaldi">
-    <peer id="peer-0"    coordinates="25.5 9.4 1.4 "   power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1"    coordinates="-12.7 -9.9 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2"    coordinates="-15.7 9.9 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-3"    coordinates="27.1 7.2 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-4"    coordinates="11.4 10.7 24.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-5"    coordinates="27.1 14.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-6"    coordinates="110.1 31.2 43.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-7"    coordinates="-21.2 -25.2 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-8"    coordinates="-2.3 1.1 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-9"    coordinates="16.8 -11.1 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-10"   coordinates="-6.8 1.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-11"   coordinates="23.0 -4.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-12"   coordinates="29.9 -9.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-13"   coordinates="-2.2 7.2 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-14"   coordinates="26.1 -61.9 144.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-15"   coordinates="-39.4 1.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-16"   coordinates="26.5 -15.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-17"   coordinates="15.0 -0.5 34.5 " power="730Mf"  bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-18"   coordinates="16.5 11.5 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-19"   coordinates="-37.9 85.0 69.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-20"   coordinates="-2.6 19.4 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-21"   coordinates="-104.4 -162.5 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-22"   coordinates="-41.8 -30.9 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-23"   coordinates="-9.9 10.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-24"   coordinates="8.5 15.3 31.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-25"   coordinates="6.0 -12.6 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-26"   coordinates="89.6 26.1 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-27"   coordinates="13.9 -31.4 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-28"   coordinates="13.6 10.0 25.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-29"   coordinates="32.2 34.0 104.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-30"   coordinates="23.5 21.2 24.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-31"   coordinates="-27.0 -12.1 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-32"   coordinates="18.4 -4.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-33"   coordinates="109.3 253.6 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-34"   coordinates="16.5 9.4 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-35"   coordinates="-35.9 -42.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-36"   coordinates="30.4 18.9 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-37"   coordinates="-23.1 -7.6 39.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-38"   coordinates="135.5 -21.0 83.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-39"   coordinates="17.5 6.7 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-40"   coordinates="22.3 13.6 21.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-41"   coordinates="-2.5 8.3 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-42"   coordinates="-10.3 -8.8 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-43"   coordinates="142.5 63.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-44"   coordinates="5.1 -2.9 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-45"   coordinates="-18.4 23.5 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-46"   coordinates="-26.3 -3.2 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-47"   coordinates="-21.6 11.6 89.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-48"   coordinates="-44.3 17.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-49"   coordinates="-59.8 -16.8 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-50"   coordinates="23.9 35.4 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-51"   coordinates="22.9 10.1 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-52"   coordinates="27.6 25.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-53"   coordinates="9.5 13.3 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-54"   coordinates="-34.2 20.0 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-55"   coordinates="-58.7 -11.7 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-56"   coordinates="-40.3 -27.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-57"   coordinates="19.7 -15.1 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-58"   coordinates="8.4 17.5 32.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-59"   coordinates="25.1 8.8 16.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-60"   coordinates="25.3 13.9 21.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-61"   coordinates="29.5 -58.9 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-62"   coordinates="-48.1 -6.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-63"   coordinates="-17.2 -1.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-64"   coordinates="10.6 18.7 33.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-65"   coordinates="1.9 -3.5 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-66"   coordinates="-3.6 1.6 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-67"   coordinates="-20.1 8.7 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-68"   coordinates="-22.0 5.6 31.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-69"   coordinates="-32.4 -9.4 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-70"   coordinates="13.3 7.2 20.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-71"   coordinates="23.2 10.9 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-72"   coordinates="7.0 17.8 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-73"   coordinates="34.1 37.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-74"   coordinates="-55.4 -5.1 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-75"   coordinates="-3.4 -4.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-76"   coordinates="22.6 0.8 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-77"   coordinates="23.2 15.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-78"   coordinates="21.6 16.4 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-79"   coordinates="12.0 14.2 20.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-80"   coordinates="90.3 79.5 66.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-81"   coordinates="-3.0 2.5 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-82"   coordinates="-7.2 19.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-83"   coordinates="5.9 15.2 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-84"   coordinates="-208.1 -127.0 325.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-85"   coordinates="0.6 8.0 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-86"   coordinates="16.3 17.6 29.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-87"   coordinates="-0.6 8.6 32.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-88"   coordinates="-1.8 6.5 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-89"   coordinates="-6.8 22.6 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-90"   coordinates="17.0 20.6 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-91"   coordinates="-39.1 -30.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-92"   coordinates="110.1 57.3 30.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-93"   coordinates="21.1 -4.7 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-94"   coordinates="-36.4 -12.8 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-95"   coordinates="33.2 -20.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-96"   coordinates="25.9 15.4 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-97"   coordinates="-1.0 3.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-98"   coordinates="-19.4 1.4 23.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-99"   coordinates="17.1 9.8 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-100"  coordinates="5.5 -16.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-101"  coordinates="3.3 1.8 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-102"  coordinates="1.4 23.0 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-103"  coordinates="-48.5 -29.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-104"  coordinates="7.6 -4.5 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-105"  coordinates="0.2 15.1 30.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-106"  coordinates="6.3 10.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-107"  coordinates="24.4 9.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-108"  coordinates="19.1 11.4 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-109"  coordinates="29.7 12.3 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-110"  coordinates="-0.9 13.4 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-111"  coordinates="19.3 -9.3 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-112"  coordinates="15.8 14.7 18.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-113"  coordinates="2.8 13.2 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-114"  coordinates="18.8 11.5 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-115"  coordinates="-10.4 -2.2 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-116"  coordinates="-45.7 -10.4 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-117"  coordinates="25.7 16.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-118"  coordinates="-0.7 17.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-119"  coordinates="30.2 1.9 22.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-120"  coordinates="0.1 2.7 38.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-121"  coordinates="3.0 19.1 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-122"  coordinates="-6.6 15.4 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-123"  coordinates="10.9 14.3 21.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-124"  coordinates="3.3 21.0 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-125"  coordinates="29.9 8.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-126"  coordinates="-43.0 -18.3 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-127"  coordinates="29.8 8.1 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-128"  coordinates="36.7 17.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-129"  coordinates="106.8 34.2 23.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-130"  coordinates="-29.1 -20.5 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-131"  coordinates="13.1 22.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-132"  coordinates="78.7 137.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-133"  coordinates="100.2 -6.3 185.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-134"  coordinates="0.4 20.3 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-135"  coordinates="24.0 -2.4 38.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-136"  coordinates="-4.1 1.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-137"  coordinates="7.7 19.2 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-138"  coordinates="-19.6 -5.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-139"  coordinates="9.7 3.1 24.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-140"  coordinates="112.9 69.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-141"  coordinates="-8.8 -9.0 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-142"  coordinates="26.2 12.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-143"  coordinates="32.9 0.6 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-144"  coordinates="-33.5 -9.2 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-145"  coordinates="21.8 13.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-146"  coordinates="29.9 14.0 99.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-147"  coordinates="-33.3 -41.3 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-148"  coordinates="12.1 14.0 21.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-149"  coordinates="12.6 4.8 28.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-150"  coordinates="-21.0 -24.0 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-151"  coordinates="13.1 13.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-152"  coordinates="20.1 23.0 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-153"  coordinates="6.4 15.0 30.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-154"  coordinates="25.1 4.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-155"  coordinates="28.8 29.7 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-156"  coordinates="10.5 -8.2 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-157"  coordinates="13.7 3.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-158"  coordinates="24.0 23.1 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-159"  coordinates="53.0 55.5 18.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-160"  coordinates="10.8 5.4 38.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-161"  coordinates="-74.9 -31.9 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-162"  coordinates="2.5 8.3 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-163"  coordinates="85.6 28.1 90.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-164"  coordinates="8.1 9.4 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-165"  coordinates="18.0 8.9 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-166"  coordinates="-6.4 0.1 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-167"  coordinates="23.9 29.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-168"  coordinates="19.2 19.4 40.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-169"  coordinates="4.1 9.2 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-170"  coordinates="2.5 32.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-171"  coordinates="2.5 0.2 30.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-172"  coordinates="-5.1 7.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-173"  coordinates="35.8 27.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-174"  coordinates="-35.4 2.7 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-175"  coordinates="27.0 9.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-176"  coordinates="9.5 5.3 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-177"  coordinates="-36.1 -15.7 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-178"  coordinates="-22.5 74.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-179"  coordinates="6.3 14.3 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-180"  coordinates="-23.3 -18.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-181"  coordinates="19.4 10.3 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-182"  coordinates="-16.7 37.0 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-183"  coordinates="12.5 13.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-184"  coordinates="14.5 14.1 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-185"  coordinates="28.9 15.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-186"  coordinates="-5.9 -4.6 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-187"  coordinates="-11.1 7.8 18.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-188"  coordinates="1.1 -2.9 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-189"  coordinates="-13.8 -5.3 47.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-190"  coordinates="28.1 38.3 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-191"  coordinates="35.0 16.3 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-192"  coordinates="-7.5 -5.1 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-193"  coordinates="52.3 60.9 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-194"  coordinates="0.6 2.3 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-195"  coordinates="22.9 3.2 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-196"  coordinates="17.8 6.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-197"  coordinates="9.0 13.0 71.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-198"  coordinates="-51.7 44.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-199"  coordinates="-40.8 -10.6 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-200"  coordinates="15.8 10.6 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-201"  coordinates="-25.4 8.9 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-202"  coordinates="-60.4 100.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-203"  coordinates="25.5 23.0 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-204"  coordinates="38.4 26.8 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-205"  coordinates="9.0 20.5 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-206"  coordinates="39.1 16.7 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-207"  coordinates="19.1 18.2 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-208"  coordinates="7.7 8.5 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-209"  coordinates="20.0 11.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-210"  coordinates="19.5 12.6 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-211"  coordinates="-22.5 14.0 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-212"  coordinates="-2.4 2.2 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-213"  coordinates="12.8 6.7 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-214"  coordinates="0.1 -2.0 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-215"  coordinates="7.7 -8.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-216"  coordinates="-11.1 -8.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-217"  coordinates="6.2 -7.1 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-218"  coordinates="-49.1 -25.9 23.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-219"  coordinates="15.0 19.0 34.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-220"  coordinates="-38.7 -6.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-221"  coordinates="6.0 -2.0 26.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-222"  coordinates="-47.5 -29.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-223"  coordinates="-27.4 2.5 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-224"  coordinates="29.8 3.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-225"  coordinates="-40.9 -3.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-226"  coordinates="35.1 35.6 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-227"  coordinates="-37.0 -6.4 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-228"  coordinates="15.9 5.1 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-229"  coordinates="-38.5 -8.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-230"  coordinates="32.0 4.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-231"  coordinates="-29.6 -2.4 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-232"  coordinates="3.7 8.6 31.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-233"  coordinates="9.9 2.0 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-234"  coordinates="-8.2 -2.6 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-235"  coordinates="18.9 -2.8 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-236"  coordinates="-18.0 -5.7 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-237"  coordinates="19.3 -1.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-238"  coordinates="14.8 23.7 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-239"  coordinates="-0.0 8.2 52.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-240"  coordinates="-22.4 -40.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-241"  coordinates="-13.3 -0.5 21.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-242"  coordinates="9.8 7.8 18.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-243"  coordinates="-25.7 -20.9 19.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-244"  coordinates="25.0 10.0 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-245"  coordinates="19.1 22.1 145.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-246"  coordinates="7.4 16.1 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-247"  coordinates="7.4 -2.7 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-248"  coordinates="4.9 19.9 11.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-249"  coordinates="12.3 -12.4 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-250"  coordinates="-19.9 11.6 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-251"  coordinates="2.1 2.3 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-252"  coordinates="0.1 3.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-253"  coordinates="24.5 26.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-254"  coordinates="-10.5 4.5 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-255"  coordinates="-17.4 33.1 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-256"  coordinates="17.6 1.7 27.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-257"  coordinates="-48.0 1.9 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-258"  coordinates="25.9 2.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-259"  coordinates="0.9 3.8 26.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-260"  coordinates="-70.8 21.0 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-261"  coordinates="17.1 1.8 18.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-262"  coordinates="3.3 -13.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-263"  coordinates="-49.1 -4.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-264"  coordinates="-28.0 8.0 48.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-265"  coordinates="2.9 2.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-266"  coordinates="113.8 15.0 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-267"  coordinates="32.1 13.9 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-268"  coordinates="-13.1 -33.9 30.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-269"  coordinates="-17.5 18.3 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-270"  coordinates="29.7 22.7 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-271"  coordinates="6.6 15.5 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-272"  coordinates="1.9 3.1 32.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-273"  coordinates="21.6 2.6 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-274"  coordinates="12.7 14.0 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-275"  coordinates="17.3 14.3 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-276"  coordinates="32.0 12.8 68.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-277"  coordinates="-30.2 -0.1 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-278"  coordinates="-12.5 1.7 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-279"  coordinates="31.1 22.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-280"  coordinates="24.0 11.6 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-281"  coordinates="52.9 2.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-282"  coordinates="23.1 18.8 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-283"  coordinates="-17.6 -36.1 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-284"  coordinates="14.1 -21.4 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-285"  coordinates="9.0 1.3 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-286"  coordinates="28.4 -14.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-287"  coordinates="27.1 8.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-288"  coordinates="3.7 7.1 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-289"  coordinates="-31.8 -34.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-290"  coordinates="19.9 20.1 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-291"  coordinates="25.5 18.9 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-292"  coordinates="-5.2 8.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-293"  coordinates="11.0 3.2 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-294"  coordinates="-6.4 12.2 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-295"  coordinates="29.9 13.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-296"  coordinates="9.7 6.8 31.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-297"  coordinates="-30.7 -29.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-298"  coordinates="3.7 31.4 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-299"  coordinates="6.5 19.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-300"  coordinates="25.0 3.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-301"  coordinates="-32.8 -7.0 20.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-302"  coordinates="7.2 13.4 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-303"  coordinates="15.1 16.1 39.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-304"  coordinates="-28.8 14.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-305"  coordinates="8.3 22.8 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-306"  coordinates="-1.1 8.6 27.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-307"  coordinates="-23.1 -9.6 33.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-308"  coordinates="13.7 -15.2 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-309"  coordinates="13.8 -5.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-310"  coordinates="10.9 -23.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-311"  coordinates="-14.2 24.1 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-312"  coordinates="17.9 14.3 37.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-313"  coordinates="-29.2 -21.6 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-314"  coordinates="-41.8 -11.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-315"  coordinates="-18.9 -1.0 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-316"  coordinates="-21.8 52.0 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-317"  coordinates="23.3 10.4 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-318"  coordinates="4.0 0.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-319"  coordinates="8.0 26.9 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-320"  coordinates="-24.9 -4.2 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-321"  coordinates="95.4 56.7 51.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-322"  coordinates="-17.5 44.3 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-323"  coordinates="22.4 19.4 22.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-324"  coordinates="18.3 9.6 21.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-325"  coordinates="12.9 5.8 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-326"  coordinates="45.6 -7.2 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-327"  coordinates="35.6 18.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-328"  coordinates="-13.4 8.4 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-329"  coordinates="-12.1 -1.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-330"  coordinates="14.6 4.6 16.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-331"  coordinates="17.3 14.7 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-332"  coordinates="27.3 36.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-333"  coordinates="-4.6 9.6 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-334"  coordinates="-38.9 15.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-335"  coordinates="13.9 9.9 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-336"  coordinates="85.9 60.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-337"  coordinates="-31.1 12.5 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-338"  coordinates="17.3 -5.5 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-339"  coordinates="-30.4 0.5 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-340"  coordinates="14.5 5.6 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-341"  coordinates="47.7 -30.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-342"  coordinates="31.0 11.5 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-343"  coordinates="-1.2 5.1 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-344"  coordinates="-30.2 40.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-345"  coordinates="-35.9 -17.4 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-346"  coordinates="-0.1 25.1 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-347"  coordinates="31.9 18.7 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-348"  coordinates="27.6 17.0 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-349"  coordinates="32.1 23.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-350"  coordinates="21.6 -21.4 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-351"  coordinates="52.6 9.8 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-352"  coordinates="-30.9 -16.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-353"  coordinates="23.8 20.9 46.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-354"  coordinates="19.7 16.9 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-355"  coordinates="-21.1 -19.7 31.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-356"  coordinates="-19.6 -26.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-357"  coordinates="-40.4 -18.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-358"  coordinates="33.4 17.2 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-359"  coordinates="-11.4 -20.0 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-360"  coordinates="-5.1 19.5 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-361"  coordinates="11.2 -2.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-362"  coordinates="-3.9 4.2 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-363"  coordinates="3.9 -3.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-364"  coordinates="-34.3 -18.6 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-365"  coordinates="29.3 18.3 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-366"  coordinates="25.7 26.8 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-367"  coordinates="19.3 16.2 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-368"  coordinates="30.9 -3.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-369"  coordinates="5.7 2.1 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-370"  coordinates="15.9 9.3 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-371"  coordinates="7.2 27.5 31.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-372"  coordinates="-28.1 -20.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-373"  coordinates="13.5 -3.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-374"  coordinates="20.6 31.6 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-375"  coordinates="-37.4 4.1 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-376"  coordinates="-47.4 -34.1 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-377"  coordinates="-22.7 -1.4 15.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-378"  coordinates="22.5 4.2 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-379"  coordinates="3.0 22.3 21.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-380"  coordinates="21.9 22.7 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-381"  coordinates="-38.8 -11.8 23.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-382"  coordinates="11.8 5.7 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-383"  coordinates="-4.2 14.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-384"  coordinates="34.4 9.0 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-385"  coordinates="24.2 9.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-386"  coordinates="38.1 -29.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-387"  coordinates="28.6 5.5 20.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-388"  coordinates="36.8 44.0 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-389"  coordinates="-5.1 1.1 42.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-390"  coordinates="-24.2 -33.5 200.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-391"  coordinates="9.5 8.6 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-392"  coordinates="0.4 8.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-393"  coordinates="17.5 5.9 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-394"  coordinates="11.8 5.2 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-395"  coordinates="-13.9 -38.6 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-396"  coordinates="14.5 -72.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-397"  coordinates="-15.0 -3.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-398"  coordinates="62.4 -2.0 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-399"  coordinates="-38.3 14.4 51.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-400"  coordinates="64.4 38.3 33.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-401"  coordinates="-1.3 22.5 21.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-402"  coordinates="18.3 28.9 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-403"  coordinates="-32.6 18.5 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-404"  coordinates="16.9 11.5 18.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-405"  coordinates="18.8 4.0 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-406"  coordinates="9.4 17.0 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-407"  coordinates="10.6 25.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-408"  coordinates="25.0 6.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-409"  coordinates="18.0 15.7 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-410"  coordinates="28.3 10.8 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-411"  coordinates="6.4 0.3 21.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-412"  coordinates="31.5 20.3 47.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-413"  coordinates="21.0 -3.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-414"  coordinates="-25.7 -15.3 120.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-415"  coordinates="-30.4 23.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-416"  coordinates="37.9 -4.0 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-417"  coordinates="24.1 5.5 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-418"  coordinates="-3.2 11.3 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-419"  coordinates="32.2 21.0 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-420"  coordinates="21.1 17.3 15.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-421"  coordinates="2.2 17.2 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-422"  coordinates="-23.1 -2.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-423"  coordinates="31.3 18.9 29.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-424"  coordinates="29.9 11.3 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-425"  coordinates="20.0 21.4 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-426"  coordinates="-41.9 -4.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-427"  coordinates="-5.8 0.7 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-428"  coordinates="2.6 4.9 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-429"  coordinates="23.0 11.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-430"  coordinates="139.7 149.8 80.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-431"  coordinates="-20.4 -15.7 33.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-432"  coordinates="-8.9 26.1 38.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-433"  coordinates="26.8 -15.0 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-434"  coordinates="-16.9 -6.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-435"  coordinates="28.1 14.7 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-436"  coordinates="23.0 22.9 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-437"  coordinates="23.6 16.6 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-438"  coordinates="16.7 8.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-439"  coordinates="3.4 -10.3 32.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-440"  coordinates="7.1 39.0 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-441"  coordinates="-61.7 7.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-442"  coordinates="-24.4 -4.0 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-443"  coordinates="45.2 48.7 115.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-444"  coordinates="13.1 -10.4 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-445"  coordinates="-26.9 -22.4 49.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-446"  coordinates="5.6 6.1 19.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-447"  coordinates="-10.6 4.3 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-448"  coordinates="-32.8 -21.5 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-449"  coordinates="16.0 10.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-450"  coordinates="-45.4 -21.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-451"  coordinates="11.9 11.7 23.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-452"  coordinates="13.0 -6.5 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-453"  coordinates="13.5 6.4 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-454"  coordinates="-5.1 8.4 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-455"  coordinates="11.4 12.6 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-456"  coordinates="9.5 9.6 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-457"  coordinates="-59.7 -32.3 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-458"  coordinates="37.7 17.6 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-459"  coordinates="7.6 11.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-460"  coordinates="-1.5 5.3 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-461"  coordinates="33.8 11.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-462"  coordinates="-14.5 36.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-463"  coordinates="94.6 120.0 105.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-464"  coordinates="-3.4 -5.6 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-465"  coordinates="-165.4 -67.3 80.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-466"  coordinates="23.1 -2.1 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-467"  coordinates="10.0 3.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-468"  coordinates="7.2 14.0 11.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-469"  coordinates="-68.2 10.8 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-470"  coordinates="132.0 25.5 32.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-471"  coordinates="31.7 1.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-472"  coordinates="26.9 33.4 10.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-473"  coordinates="29.9 21.2 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-474"  coordinates="27.4 26.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-475"  coordinates="99.9 77.7 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-476"  coordinates="39.3 20.8 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-477"  coordinates="35.2 4.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-478"  coordinates="29.0 10.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-479"  coordinates="-6.0 23.4 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-480"  coordinates="-1.6 7.7 28.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-481"  coordinates="29.3 19.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-482"  coordinates="-1.4 4.4 29.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-483"  coordinates="4.6 1.9 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-484"  coordinates="11.6 -1.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-485"  coordinates="18.9 15.7 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-486"  coordinates="-30.4 -31.6 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-487"  coordinates="15.0 1.8 25.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-488"  coordinates="9.6 3.9 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-489"  coordinates="30.9 20.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-490"  coordinates="245.2 137.8 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-491"  coordinates="-19.7 -2.9 256.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-492"  coordinates="-23.8 -2.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-493"  coordinates="29.5 26.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-494"  coordinates="34.3 10.2 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-495"  coordinates="33.5 12.0 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-496"  coordinates="-16.4 -77.3 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-497"  coordinates="5.4 8.7 25.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-498"  coordinates="2.9 46.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-499"  coordinates="13.0 58.7 53.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-500"  coordinates="26.9 -0.9 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-501"  coordinates="22.8 9.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-502"  coordinates="-11.4 4.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-503"  coordinates="-45.9 8.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-504"  coordinates="26.1 10.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-505"  coordinates="9.1 12.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-506"  coordinates="124.5 16.5 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-507"  coordinates="14.5 -1.3 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-508"  coordinates="10.3 -1.0 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-509"  coordinates="10.7 9.1 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-510"  coordinates="17.3 8.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-511"  coordinates="16.6 -1.2 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-512"  coordinates="22.2 21.5 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-513"  coordinates="-0.0 6.7 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-514"  coordinates="22.5 9.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-515"  coordinates="9.9 -53.5 364.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-516"  coordinates="3.6 7.5 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-517"  coordinates="15.0 2.0 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-518"  coordinates="-51.3 -2.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-519"  coordinates="105.9 15.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-520"  coordinates="2.0 19.8 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-521"  coordinates="10.9 10.0 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-522"  coordinates="7.5 14.9 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-523"  coordinates="-14.3 18.9 11.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-524"  coordinates="-25.1 -21.0 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-525"  coordinates="-4.9 21.2 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-526"  coordinates="19.4 15.8 23.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-527"  coordinates="26.3 14.2 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-528"  coordinates="12.5 16.2 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-529"  coordinates="-29.4 -4.1 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-530"  coordinates="-31.8 5.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-531"  coordinates="0.5 -1.6 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-532"  coordinates="-21.1 50.6 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-533"  coordinates="-5.1 9.9 18.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-534"  coordinates="26.2 16.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-535"  coordinates="79.7 103.3 126.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-536"  coordinates="-25.8 -3.9 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-537"  coordinates="-20.6 -20.5 48.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-538"  coordinates="37.8 5.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-539"  coordinates="-17.0 -7.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-540"  coordinates="-6.3 29.6 39.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-541"  coordinates="-43.3 -1.4 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-542"  coordinates="25.3 -13.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-543"  coordinates="-24.1 -27.4 22.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-544"  coordinates="11.3 17.1 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-545"  coordinates="-6.4 -38.5 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-546"  coordinates="11.9 17.7 23.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-547"  coordinates="18.3 -12.3 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-548"  coordinates="-33.2 -13.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-549"  coordinates="-6.5 -2.3 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-550"  coordinates="-0.3 -5.0 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-551"  coordinates="16.7 -1.0 30.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-552"  coordinates="21.8 5.9 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-553"  coordinates="-21.2 -21.6 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-554"  coordinates="34.7 15.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-555"  coordinates="18.4 23.7 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-556"  coordinates="29.1 8.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-557"  coordinates="28.5 19.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-558"  coordinates="24.5 8.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-559"  coordinates="48.5 16.1 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-560"  coordinates="31.8 2.8 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-561"  coordinates="-0.5 6.3 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-562"  coordinates="-9.4 -39.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-563"  coordinates="22.6 18.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-564"  coordinates="33.0 14.7 34.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-565"  coordinates="9.5 -47.8 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-566"  coordinates="-18.1 -6.4 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-567"  coordinates="4.6 0.0 30.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-568"  coordinates="44.7 14.2 81.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-569"  coordinates="12.4 34.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-570"  coordinates="4.3 4.1 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-571"  coordinates="222.6 -77.4 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-572"  coordinates="-19.2 -5.2 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-573"  coordinates="18.5 -1.9 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-574"  coordinates="11.1 -1.7 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-575"  coordinates="28.9 11.2 73.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-576"  coordinates="7.9 -3.5 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-577"  coordinates="2.4 32.5 33.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-578"  coordinates="-14.1 -2.8 34.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-579"  coordinates="15.5 12.5 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-580"  coordinates="-8.6 2.8 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-581"  coordinates="-27.7 -16.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-582"  coordinates="-36.1 -0.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-583"  coordinates="20.6 10.1 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-584"  coordinates="13.5 -19.9 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-585"  coordinates="-40.2 2.0 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-586"  coordinates="-33.5 14.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-587"  coordinates="0.6 27.4 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-588"  coordinates="24.4 41.5 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-589"  coordinates="20.3 9.8 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-590"  coordinates="-8.4 -0.8 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-591"  coordinates="36.4 4.4 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-592"  coordinates="6.6 12.4 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-593"  coordinates="20.0 7.9 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-594"  coordinates="-15.7 -9.5 206.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-595"  coordinates="70.4 84.5 31.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-596"  coordinates="-6.3 9.5 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-597"  coordinates="25.4 1.8 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-598"  coordinates="-5.6 9.0 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-599"  coordinates="-27.3 -13.6 38.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-600"  coordinates="11.1 15.3 19.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-601"  coordinates="24.3 4.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-602"  coordinates="11.9 -6.7 32.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-603"  coordinates="10.1 15.0 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-604"  coordinates="42.4 33.2 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-605"  coordinates="32.3 18.7 74.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-606"  coordinates="-8.7 0.3 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-607"  coordinates="-32.5 6.7 228.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-608"  coordinates="-101.6 -63.6 101.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-609"  coordinates="-11.8 3.1 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-610"  coordinates="15.4 -1.7 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-611"  coordinates="5.5 -5.2 20.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-612"  coordinates="-6.3 -16.2 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-613"  coordinates="-17.5 -0.9 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-614"  coordinates="39.1 10.7 55.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-615"  coordinates="24.6 8.9 92.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-616"  coordinates="23.2 -34.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-617"  coordinates="28.1 16.7 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-618"  coordinates="90.3 59.6 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-619"  coordinates="7.3 17.2 27.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-620"  coordinates="-163.6 -102.5 34.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-621"  coordinates="16.9 14.6 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-622"  coordinates="2.9 9.5 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-623"  coordinates="-6.6 0.8 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-624"  coordinates="7.0 -0.8 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-625"  coordinates="-41.9 -6.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-626"  coordinates="-1.9 36.6 25.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-627"  coordinates="18.4 14.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-628"  coordinates="-43.3 -68.2 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-629"  coordinates="121.1 78.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-630"  coordinates="-10.1 8.3 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-631"  coordinates="25.5 24.5 77.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-632"  coordinates="-35.8 -10.0 215.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-633"  coordinates="-33.7 5.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-634"  coordinates="32.8 14.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-635"  coordinates="-51.5 3.0 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-636"  coordinates="21.4 39.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-637"  coordinates="16.4 6.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-638"  coordinates="25.9 20.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-639"  coordinates="19.4 37.6 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-640"  coordinates="-34.6 -30.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-641"  coordinates="62.5 4.1 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-642"  coordinates="31.5 -9.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-643"  coordinates="21.3 10.3 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-644"  coordinates="36.1 3.9 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-645"  coordinates="-6.2 2.5 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-646"  coordinates="20.4 9.4 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-647"  coordinates="-28.5 -16.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-648"  coordinates="-8.0 8.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-649"  coordinates="-19.5 -4.3 47.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-650"  coordinates="-15.5 -33.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-651"  coordinates="12.1 4.6 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-652"  coordinates="11.8 7.5 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-653"  coordinates="6.2 2.6 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-654"  coordinates="6.1 22.5 14.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-655"  coordinates="-7.0 5.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-656"  coordinates="115.5 41.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-657"  coordinates="29.7 7.2 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-658"  coordinates="21.2 16.0 67.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-659"  coordinates="-43.2 -5.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-660"  coordinates="23.3 10.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-661"  coordinates="-29.5 -13.3 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-662"  coordinates="-13.4 5.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-663"  coordinates="-11.3 -6.6 31.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-664"  coordinates="-26.5 -5.1 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-665"  coordinates="-8.2 -3.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-666"  coordinates="2.3 13.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-667"  coordinates="17.6 15.3 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-668"  coordinates="87.4 59.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-669"  coordinates="20.1 -4.0 26.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-670"  coordinates="-38.5 -21.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-671"  coordinates="11.8 7.3 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-672"  coordinates="2.1 -2.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-673"  coordinates="-10.6 10.4 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-674"  coordinates="-8.4 -32.4 159.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-675"  coordinates="-27.9 -20.3 21.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-676"  coordinates="253.9 -129.4 295.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-677"  coordinates="-8.9 17.8 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-678"  coordinates="-187.7 -99.1 21.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-679"  coordinates="27.9 11.3 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-680"  coordinates="13.8 -10.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-681"  coordinates="-25.5 -7.1 20.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-682"  coordinates="21.9 28.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-683"  coordinates="-47.2 -7.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-684"  coordinates="22.4 26.7 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-685"  coordinates="95.4 -9.9 71.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-686"  coordinates="-0.2 6.4 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-687"  coordinates="-5.3 14.6 38.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-688"  coordinates="-25.7 6.6 177.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-689"  coordinates="-40.3 -2.1 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-690"  coordinates="0.4 -1.4 17.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-691"  coordinates="24.8 1.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-692"  coordinates="10.7 -7.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-693"  coordinates="24.3 7.5 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-694"  coordinates="33.3 18.7 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-695"  coordinates="-30.8 8.4 41.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-696"  coordinates="-39.4 -12.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-697"  coordinates="-26.3 -13.2 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-698"  coordinates="-1.1 1.2 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-699"  coordinates="-49.4 -9.4 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-700"  coordinates="-5.3 -0.1 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-701"  coordinates="17.8 6.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-702"  coordinates="20.2 22.8 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-703"  coordinates="107.7 7.4 65.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-704"  coordinates="-1.5 6.2 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-705"  coordinates="-28.9 -1.8 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-706"  coordinates="-15.8 8.4 61.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-707"  coordinates="-32.7 -49.6 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-708"  coordinates="59.1 20.5 70.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-709"  coordinates="23.9 22.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-710"  coordinates="-34.0 2.2 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-711"  coordinates="9.1 4.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-712"  coordinates="37.2 -3.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-713"  coordinates="-21.7 -11.4 20.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-714"  coordinates="18.1 7.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-715"  coordinates="28.4 18.9 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-716"  coordinates="-16.9 -2.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-717"  coordinates="-4.6 -5.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-718"  coordinates="24.8 15.5 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-719"  coordinates="-42.9 -16.5 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-720"  coordinates="29.0 12.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-721"  coordinates="-99.5 -134.2 42.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-722"  coordinates="26.6 35.8 11.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-723"  coordinates="19.1 9.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-724"  coordinates="-3.0 -1.4 36.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-725"  coordinates="-24.9 13.3 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-726"  coordinates="-49.3 -25.6 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-727"  coordinates="35.8 20.7 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-728"  coordinates="-46.9 -35.8 146.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-729"  coordinates="13.5 42.2 20.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-730"  coordinates="-12.7 -18.2 16.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-731"  coordinates="-4.4 -1.1 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-732"  coordinates="-20.1 29.7 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-733"  coordinates="-3.9 10.2 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-734"  coordinates="13.5 -9.3 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-735"  coordinates="2.4 1.7 46.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-736"  coordinates="30.9 19.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-737"  coordinates="-6.7 17.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-738"  coordinates="-3.7 4.6 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-739"  coordinates="8.7 -19.0 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-740"  coordinates="13.9 25.7 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-741"  coordinates="-24.6 -20.7 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-742"  coordinates="27.0 14.8 51.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-743"  coordinates="0.1 4.0 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-744"  coordinates="1.4 2.2 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-745"  coordinates="3.0 -22.1 25.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-746"  coordinates="-27.2 21.5 36.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-747"  coordinates="26.6 19.6 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-748"  coordinates="-30.9 -30.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-749"  coordinates="-82.8 -30.3 136.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-750"  coordinates="-6.5 3.5 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-751"  coordinates="4.5 7.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-752"  coordinates="12.7 -17.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-753"  coordinates="-1.2 9.6 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-754"  coordinates="90.2 51.5 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-755"  coordinates="14.4 -1.1 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-756"  coordinates="32.2 22.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-757"  coordinates="15.4 11.1 18.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-758"  coordinates="122.1 82.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-759"  coordinates="-27.9 -3.4 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-760"  coordinates="-40.2 -3.5 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-761"  coordinates="33.6 12.7 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-762"  coordinates="19.0 -0.4 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-763"  coordinates="-0.0 30.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-764"  coordinates="8.2 4.6 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-765"  coordinates="15.6 4.3 23.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-766"  coordinates="-4.6 8.1 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-767"  coordinates="23.2 14.8 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-768"  coordinates="34.1 10.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-769"  coordinates="11.4 9.2 26.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-770"  coordinates="13.4 30.3 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-771"  coordinates="-13.9 2.3 30.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-772"  coordinates="-39.5 -3.3 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-773"  coordinates="-129.4 103.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-774"  coordinates="9.3 12.0 20.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-775"  coordinates="29.4 21.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-776"  coordinates="23.9 12.9 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-777"  coordinates="-1.3 3.1 30.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-778"  coordinates="15.2 11.2 19.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-779"  coordinates="-15.8 -4.1 60.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-780"  coordinates="14.2 25.9 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-781"  coordinates="25.8 9.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-782"  coordinates="117.3 31.7 39.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-783"  coordinates="4.5 4.6 43.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-784"  coordinates="9.1 -5.4 21.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-785"  coordinates="-34.0 -26.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-786"  coordinates="-24.4 -2.7 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-787"  coordinates="23.6 14.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-788"  coordinates="15.7 3.1 23.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-789"  coordinates="-4.5 11.1 34.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-790"  coordinates="9.0 12.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-791"  coordinates="-1.2 -3.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-792"  coordinates="-175.6 52.3 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-793"  coordinates="-37.5 -15.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-794"  coordinates="2.9 10.6 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-795"  coordinates="29.3 7.4 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-796"  coordinates="12.0 1.7 70.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-797"  coordinates="23.8 18.7 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-798"  coordinates="-116.2 111.3 41.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-799"  coordinates="9.8 2.4 28.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-800"  coordinates="6.7 18.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-801"  coordinates="30.9 37.4 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-802"  coordinates="25.0 9.7 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-803"  coordinates="-26.0 -11.2 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-804"  coordinates="19.3 7.6 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-805"  coordinates="-18.4 -15.6 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-806"  coordinates="16.3 10.8 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-807"  coordinates="15.7 20.2 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-808"  coordinates="-1.9 0.6 20.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-809"  coordinates="-67.8 -7.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-810"  coordinates="10.9 7.9 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-811"  coordinates="-29.0 -40.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-812"  coordinates="24.7 22.3 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-813"  coordinates="-12.9 -13.1 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-814"  coordinates="41.8 4.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-815"  coordinates="2.5 12.5 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-816"  coordinates="-14.2 -10.5 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-817"  coordinates="-56.0 2.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-818"  coordinates="-3.5 11.9 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-819"  coordinates="8.8 30.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-820"  coordinates="26.5 18.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-821"  coordinates="-30.4 -11.8 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-822"  coordinates="-34.2 -7.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-823"  coordinates="22.8 19.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-824"  coordinates="-38.3 74.0 31.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-825"  coordinates="23.3 9.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-826"  coordinates="-8.4 11.1 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-827"  coordinates="-40.7 -11.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-828"  coordinates="-50.1 -18.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-829"  coordinates="35.2 46.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-830"  coordinates="23.5 -0.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-831"  coordinates="-8.4 4.2 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-832"  coordinates="20.4 18.6 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-833"  coordinates="15.4 3.1 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-834"  coordinates="-46.3 -5.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-835"  coordinates="-36.8 -26.1 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-836"  coordinates="13.3 12.1 34.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-837"  coordinates="-18.8 -23.9 19.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-838"  coordinates="14.2 4.6 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-839"  coordinates="27.9 11.8 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-840"  coordinates="23.7 7.1 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-841"  coordinates="1.9 -6.7 59.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-842"  coordinates="32.0 14.1 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-843"  coordinates="-52.1 -7.7 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-844"  coordinates="-9.3 -14.9 23.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-845"  coordinates="13.8 16.8 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-846"  coordinates="-22.4 0.2 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-847"  coordinates="-4.5 -18.9 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-848"  coordinates="32.6 26.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-849"  coordinates="-35.2 -16.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-850"  coordinates="18.7 11.9 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-851"  coordinates="-2.7 21.1 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-852"  coordinates="0.2 0.2 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-853"  coordinates="27.6 11.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-854"  coordinates="-32.1 -11.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-855"  coordinates="-5.8 1.1 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-856"  coordinates="-39.7 5.4 15.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-857"  coordinates="-15.9 -21.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-858"  coordinates="26.6 20.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-859"  coordinates="-7.6 6.2 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-860"  coordinates="-14.5 8.5 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-861"  coordinates="12.0 13.7 19.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-862"  coordinates="101.0 83.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-863"  coordinates="12.5 3.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-864"  coordinates="-41.0 -2.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-865"  coordinates="28.0 14.0 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-866"  coordinates="-11.3 -19.8 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-867"  coordinates="0.8 12.8 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-868"  coordinates="-18.8 -26.6 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-869"  coordinates="17.4 4.4 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-870"  coordinates="0.5 3.6 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-871"  coordinates="-26.2 -17.0 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-872"  coordinates="7.8 7.8 25.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-873"  coordinates="-40.8 -4.5 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-874"  coordinates="8.1 1.5 47.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-875"  coordinates="10.9 3.3 21.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-876"  coordinates="13.9 20.5 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-877"  coordinates="1.7 3.7 19.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-878"  coordinates="-40.7 4.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-879"  coordinates="-36.0 -13.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-880"  coordinates="-0.0 4.5 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-881"  coordinates="-5.5 14.2 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-882"  coordinates="-34.4 -24.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-883"  coordinates="5.9 -11.2 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-884"  coordinates="28.2 11.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-885"  coordinates="26.1 25.7 26.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-886"  coordinates="-16.8 2.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-887"  coordinates="-35.5 -23.1 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-888"  coordinates="25.9 18.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-889"  coordinates="2.2 27.2 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-890"  coordinates="24.7 5.6 11.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-891"  coordinates="38.9 18.2 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-892"  coordinates="-124.4 -126.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-893"  coordinates="26.4 2.8 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-894"  coordinates="33.5 6.6 105.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-895"  coordinates="25.0 21.5 24.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-896"  coordinates="-19.1 -6.8 36.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-897"  coordinates="43.5 18.8 67.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-898"  coordinates="-47.6 -2.4 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-899"  coordinates="61.1 -38.0 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-900"  coordinates="31.6 9.8 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-901"  coordinates="116.2 7.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-902"  coordinates="111.3 -29.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-903"  coordinates="-0.3 19.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-904"  coordinates="116.8 19.3 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-905"  coordinates="-6.4 5.1 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-906"  coordinates="10.4 8.3 29.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-907"  coordinates="26.0 9.4 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-908"  coordinates="29.2 22.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-909"  coordinates="-8.4 -40.4 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-910"  coordinates="-78.7 -27.2 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-911"  coordinates="19.8 10.7 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-912"  coordinates="10.3 7.4 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-913"  coordinates="-69.3 -31.8 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-914"  coordinates="10.9 48.7 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-915"  coordinates="6.0 7.3 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-916"  coordinates="-27.8 -5.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-917"  coordinates="-5.1 -4.5 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-918"  coordinates="16.8 -67.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-919"  coordinates="-29.2 -22.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-920"  coordinates="24.6 19.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-921"  coordinates="-36.8 -1.4 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-922"  coordinates="-48.9 -34.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-923"  coordinates="22.1 21.4 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-924"  coordinates="22.6 3.2 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-925"  coordinates="9.3 20.0 87.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-926"  coordinates="3.4 4.6 16.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-927"  coordinates="9.2 17.4 37.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-928"  coordinates="34.6 8.0 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-929"  coordinates="-26.0 -32.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-930"  coordinates="-3.3 5.3 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-931"  coordinates="20.0 15.4 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-932"  coordinates="26.2 6.8 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-933"  coordinates="-30.3 -27.6 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-934"  coordinates="107.3 101.2 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-935"  coordinates="13.2 21.1 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-936"  coordinates="32.8 5.7 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-937"  coordinates="13.3 41.7 63.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-938"  coordinates="24.0 11.2 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-939"  coordinates="2.1 -3.3 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-940"  coordinates="-143.7 -120.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-941"  coordinates="66.9 -180.8 100.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-942"  coordinates="28.0 9.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-943"  coordinates="-40.6 -16.4 48.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-944"  coordinates="102.0 37.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-945"  coordinates="20.2 23.2 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-946"  coordinates="-72.4 9.6 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-947"  coordinates="1.5 12.0 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-948"  coordinates="29.1 16.0 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-949"  coordinates="20.1 21.0 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-950"  coordinates="6.8 6.1 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-951"  coordinates="10.7 5.0 31.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-952"  coordinates="17.3 13.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-953"  coordinates="99.1 75.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-954"  coordinates="5.2 31.0 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-955"  coordinates="27.9 17.9 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-956"  coordinates="23.9 13.4 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-957"  coordinates="13.8 13.8 22.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-958"  coordinates="25.4 20.8 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-959"  coordinates="-38.1 -17.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-960"  coordinates="23.2 5.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-961"  coordinates="1.7 24.6 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-962"  coordinates="37.4 15.0 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-963"  coordinates="9.8 -3.4 22.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-964"  coordinates="13.0 5.2 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-965"  coordinates="-5.2 6.2 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-966"  coordinates="19.7 16.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-967"  coordinates="15.3 12.0 29.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-968"  coordinates="20.3 13.6 27.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-969"  coordinates="-31.0 -8.5 19.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-970"  coordinates="6.0 4.6 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-971"  coordinates="-1.0 2.1 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-972"  coordinates="-15.0 -1.9 18.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-973"  coordinates="-5.4 0.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-974"  coordinates="1.1 -5.6 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-975"  coordinates="9.7 -14.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-976"  coordinates="-27.5 6.2 68.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-977"  coordinates="29.6 25.4 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-978"  coordinates="-45.4 36.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-979"  coordinates="6.3 24.3 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-980"  coordinates="32.2 9.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-981"  coordinates="-42.5 -15.2 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-982"  coordinates="14.5 12.9 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-983"  coordinates="19.4 -24.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-984"  coordinates="-43.4 -17.5 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-985"  coordinates="31.3 5.0 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-986"  coordinates="17.9 20.3 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-987"  coordinates="6.9 6.3 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-988"  coordinates="129.1 -23.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-989"  coordinates="11.1 -9.0 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-990"  coordinates="-53.0 1.3 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-991"  coordinates="42.1 36.1 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-992"  coordinates="305.6 294.6 229.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-993"  coordinates="18.2 6.4 36.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-994"  coordinates="15.3 -3.6 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-995"  coordinates="-14.4 3.2 19.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-996"  coordinates="12.3 -3.9 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-997"  coordinates="40.3 -41.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-998"  coordinates="8.6 21.5 21.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-999"  coordinates="20.3 11.1 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1000" coordinates="17.7 25.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1001" coordinates="-35.3 -8.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1002" coordinates="-25.3 -20.8 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1003" coordinates="11.7 -3.5 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1004" coordinates="-29.6 -13.1 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1005" coordinates="22.3 7.7 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1006" coordinates="-14.3 33.6 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1007" coordinates="23.1 20.4 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1008" coordinates="31.1 -11.0 17.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1009" coordinates="15.2 8.5 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1010" coordinates="-13.4 4.3 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1011" coordinates="38.3 31.4 23.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1012" coordinates="128.8 -216.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1013" coordinates="9.6 5.4 23.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1014" coordinates="-9.6 -12.8 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1015" coordinates="18.1 16.7 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1016" coordinates="-8.5 16.2 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1017" coordinates="15.5 -12.3 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1018" coordinates="5.4 20.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1019" coordinates="7.8 18.6 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1020" coordinates="20.0 5.5 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1021" coordinates="16.6 21.6 14.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1022" coordinates="52.8 75.3 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1023" coordinates="-3.0 4.2 33.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1024" coordinates="16.0 16.6 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1025" coordinates="-0.6 16.4 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1026" coordinates="-3.7 -1.5 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1027" coordinates="66.1 112.9 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1028" coordinates="20.8 8.0 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1029" coordinates="-1.7 4.0 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1030" coordinates="-21.4 61.3 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1031" coordinates="24.5 18.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1032" coordinates="9.8 17.4 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1033" coordinates="-32.2 -18.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1034" coordinates="-4.9 4.5 23.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1035" coordinates="10.7 -4.8 15.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1036" coordinates="-61.4 -57.4 99.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1037" coordinates="17.5 12.8 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1038" coordinates="-36.0 2.7 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1039" coordinates="11.6 23.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1040" coordinates="2.6 11.8 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1041" coordinates="11.1 1.6 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1042" coordinates="4.5 12.1 32.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1043" coordinates="19.4 11.2 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1044" coordinates="1.2 17.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1045" coordinates="-5.0 14.6 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1046" coordinates="35.0 -2.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1047" coordinates="86.5 60.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1048" coordinates="20.5 37.4 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1049" coordinates="34.0 38.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1050" coordinates="-49.7 -8.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1051" coordinates="9.0 4.8 22.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1052" coordinates="34.4 10.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1053" coordinates="-32.8 -12.6 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1054" coordinates="-8.9 3.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1055" coordinates="21.4 12.3 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1056" coordinates="-17.0 -3.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1057" coordinates="-35.0 -15.8 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1058" coordinates="35.6 22.6 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1059" coordinates="-7.8 6.5 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1060" coordinates="6.5 10.4 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1061" coordinates="1.9 -10.8 18.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1062" coordinates="25.7 54.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1063" coordinates="14.2 6.6 15.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1064" coordinates="1.4 5.5 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1065" coordinates="-3.6 -57.0 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1066" coordinates="153.2 68.2 69.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1067" coordinates="0.7 -8.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1068" coordinates="-12.7 -6.1 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1069" coordinates="1.6 7.6 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1070" coordinates="-36.5 -22.2 31.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1071" coordinates="15.9 15.3 17.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1072" coordinates="-44.5 -12.7 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1073" coordinates="30.2 -8.7 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1074" coordinates="32.1 -13.0 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1075" coordinates="85.8 1.6 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1076" coordinates="-20.7 -19.2 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1077" coordinates="27.8 -8.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1078" coordinates="-26.1 -23.1 25.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1079" coordinates="-7.4 14.6 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1080" coordinates="22.6 5.9 27.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1081" coordinates="-20.2 -23.5 174.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1082" coordinates="5.5 3.0 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1083" coordinates="-25.7 -19.2 30.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1084" coordinates="-19.9 -24.8 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1085" coordinates="36.6 25.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1086" coordinates="28.5 13.3 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1087" coordinates="-27.2 -16.1 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1088" coordinates="35.8 3.4 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1089" coordinates="12.6 10.2 150.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1090" coordinates="16.1 15.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1091" coordinates="-10.5 4.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1092" coordinates="-28.1 -11.9 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1093" coordinates="-105.6 -89.8 98.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1094" coordinates="-0.2 10.1 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1095" coordinates="-2.1 6.4 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1096" coordinates="11.0 14.9 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1097" coordinates="46.6 125.1 69.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1098" coordinates="124.8 74.7 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1099" coordinates="11.3 -1.8 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1100" coordinates="17.6 6.6 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1101" coordinates="19.5 19.6 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1102" coordinates="12.2 37.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1103" coordinates="28.5 12.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1104" coordinates="35.7 9.2 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1105" coordinates="18.7 1.9 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1106" coordinates="23.0 5.5 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1107" coordinates="33.4 13.5 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1108" coordinates="-61.3 -55.6 103.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1109" coordinates="-57.4 16.3 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1110" coordinates="18.0 -2.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1111" coordinates="23.5 16.0 50.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1112" coordinates="6.0 4.0 19.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1113" coordinates="-21.0 -3.4 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1114" coordinates="-88.8 -60.6 29.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1115" coordinates="72.7 47.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1116" coordinates="1.9 19.7 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1117" coordinates="4.6 4.7 53.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1118" coordinates="36.3 17.9 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1119" coordinates="-19.3 -27.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1120" coordinates="20.7 14.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1121" coordinates="5.1 -1.2 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1122" coordinates="95.3 43.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1123" coordinates="22.6 13.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1124" coordinates="6.7 17.3 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1125" coordinates="37.2 12.5 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1126" coordinates="-31.0 -39.1 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1127" coordinates="120.5 12.6 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1128" coordinates="-35.5 8.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1129" coordinates="21.7 2.6 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1130" coordinates="9.9 5.1 34.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1131" coordinates="5.7 24.7 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1132" coordinates="24.6 26.8 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1133" coordinates="3.3 4.9 24.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1134" coordinates="43.2 15.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1135" coordinates="-17.1 -2.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1136" coordinates="33.2 14.8 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1137" coordinates="-0.2 9.9 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1138" coordinates="2.8 -19.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1139" coordinates="-37.2 -7.4 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1140" coordinates="8.7 63.2 27.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1141" coordinates="22.1 15.4 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1142" coordinates="4.9 3.1 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1143" coordinates="19.7 -13.4 38.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1144" coordinates="-19.7 -10.8 52.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1145" coordinates="-49.1 -13.3 63.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1146" coordinates="-6.5 -51.7 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1147" coordinates="128.6 60.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1148" coordinates="13.6 23.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1149" coordinates="-4.7 -2.9 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1150" coordinates="17.1 13.6 28.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1151" coordinates="33.6 3.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1152" coordinates="3.9 19.3 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1153" coordinates="-3.1 4.7 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1154" coordinates="-30.1 -25.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1155" coordinates="-22.6 14.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1156" coordinates="17.3 38.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1157" coordinates="4.8 -15.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1158" coordinates="-39.3 -26.2 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1159" coordinates="35.6 18.7 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1160" coordinates="-1.1 9.7 22.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1161" coordinates="-46.2 -15.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1162" coordinates="-1.5 6.3 11.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1163" coordinates="24.8 0.4 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1164" coordinates="7.8 12.7 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1165" coordinates="-4.0 9.6 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1166" coordinates="25.8 -4.4 22.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1167" coordinates="23.1 21.1 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1168" coordinates="-53.4 -16.2 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1169" coordinates="-40.5 -9.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1170" coordinates="24.3 10.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1171" coordinates="-40.8 -10.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1172" coordinates="14.3 21.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1173" coordinates="15.6 11.8 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1174" coordinates="20.1 35.0 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1175" coordinates="7.4 -12.5 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1176" coordinates="21.5 2.6 130.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1177" coordinates="-50.8 -104.8 94.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1178" coordinates="10.6 2.3 20.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1179" coordinates="-84.3 -31.2 97.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1180" coordinates="23.4 7.7 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1181" coordinates="-126.8 -134.0 26.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1182" coordinates="22.2 12.2 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1183" coordinates="27.0 21.5 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1184" coordinates="13.4 11.2 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1185" coordinates="2.7 -0.5 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1186" coordinates="12.2 2.3 19.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1187" coordinates="29.0 -1.4 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1188" coordinates="32.2 3.7 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1189" coordinates="25.8 11.6 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1190" coordinates="-43.2 -9.9 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1191" coordinates="14.8 6.5 24.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1192" coordinates="-18.5 -12.7 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1193" coordinates="23.2 18.2 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1194" coordinates="31.4 8.1 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1195" coordinates="3.4 9.5 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1196" coordinates="16.0 2.0 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1197" coordinates="5.1 4.9 27.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1198" coordinates="15.2 10.8 21.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1199" coordinates="26.6 16.3 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1200" coordinates="-5.3 2.0 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1201" coordinates="30.8 -11.0 130.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1202" coordinates="-13.4 17.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1203" coordinates="-9.4 0.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1204" coordinates="114.5 -2.2 40.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1205" coordinates="25.7 31.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1206" coordinates="12.7 8.3 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1207" coordinates="26.6 11.0 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1208" coordinates="-39.7 83.7 85.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1209" coordinates="23.9 12.9 25.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1210" coordinates="-9.1 17.3 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1211" coordinates="25.9 22.0 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1212" coordinates="17.7 12.2 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1213" coordinates="52.4 -53.2 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1214" coordinates="5.0 8.2 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1215" coordinates="8.7 -4.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1216" coordinates="-6.1 7.7 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1217" coordinates="-7.8 53.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1218" coordinates="109.1 -10.9 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1219" coordinates="-11.8 0.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1220" coordinates="22.1 14.8 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1221" coordinates="-25.5 -37.4 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1222" coordinates="20.0 19.0 93.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1223" coordinates="7.1 4.4 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1224" coordinates="-7.6 -3.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1225" coordinates="-10.0 14.3 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1226" coordinates="31.2 10.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1227" coordinates="-151.3 -75.0 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1228" coordinates="-26.6 -2.0 19.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1229" coordinates="-131.4 -72.1 70.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1230" coordinates="-24.1 -13.2 61.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1231" coordinates="27.6 5.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1232" coordinates="-16.2 11.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1233" coordinates="-28.5 -8.1 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1234" coordinates="-39.2 -1.4 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1235" coordinates="-20.9 -15.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1236" coordinates="-27.5 13.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1237" coordinates="8.7 21.3 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1238" coordinates="3.6 3.6 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1239" coordinates="-158.9 -37.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1240" coordinates="-47.4 -20.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1241" coordinates="4.0 19.2 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1242" coordinates="7.1 5.1 20.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1243" coordinates="3.1 -19.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1244" coordinates="-3.2 1.7 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1245" coordinates="17.9 33.7 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1246" coordinates="18.8 11.4 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1247" coordinates="22.2 12.3 11.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1248" coordinates="-74.4 -8.6 138.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1249" coordinates="10.0 38.8 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1250" coordinates="21.7 12.5 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1251" coordinates="-4.2 22.3 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1252" coordinates="-16.8 7.7 21.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1253" coordinates="-43.8 -9.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1254" coordinates="-68.9 -49.2 83.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1255" coordinates="-1.8 7.9 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1256" coordinates="31.0 -7.0 21.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1257" coordinates="29.9 12.8 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1258" coordinates="-8.0 14.3 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1259" coordinates="14.4 -2.9 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1260" coordinates="-39.1 2.4 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1261" coordinates="13.0 20.5 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1262" coordinates="94.4 24.5 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1263" coordinates="10.3 13.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1264" coordinates="7.9 6.1 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1265" coordinates="17.2 13.3 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1266" coordinates="18.6 -9.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1267" coordinates="22.8 -3.3 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1268" coordinates="11.4 0.2 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1269" coordinates="-15.1 10.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1270" coordinates="-107.5 164.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1271" coordinates="14.6 -9.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1272" coordinates="-4.0 -1.9 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1273" coordinates="12.9 7.1 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1274" coordinates="-0.8 -16.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1275" coordinates="-14.0 -0.6 23.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1276" coordinates="91.5 45.7 35.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1277" coordinates="24.9 -4.9 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1278" coordinates="-7.5 7.9 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1279" coordinates="23.3 22.3 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1280" coordinates="20.3 27.2 32.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1281" coordinates="22.8 7.1 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1282" coordinates="30.7 13.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1283" coordinates="-7.4 -11.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1284" coordinates="16.2 6.4 14.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1285" coordinates="-36.6 13.0 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1286" coordinates="24.2 15.5 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1287" coordinates="-6.1 -15.6 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1288" coordinates="-42.5 -51.2 216.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1289" coordinates="10.9 34.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1290" coordinates="21.5 17.9 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1291" coordinates="18.7 -0.4 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1292" coordinates="21.7 12.9 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1293" coordinates="-10.3 15.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1294" coordinates="13.9 8.5 18.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1295" coordinates="28.3 5.6 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1296" coordinates="-18.4 -18.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1297" coordinates="-28.5 8.2 99.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1298" coordinates="16.0 8.4 21.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1299" coordinates="14.6 13.0 25.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1300" coordinates="22.6 4.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1301" coordinates="13.8 2.5 22.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1302" coordinates="7.1 11.0 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1303" coordinates="72.3 -14.2 26.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1304" coordinates="14.7 7.5 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1305" coordinates="35.2 16.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1306" coordinates="-21.8 -6.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1307" coordinates="35.2 25.1 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1308" coordinates="-55.3 -27.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1309" coordinates="-16.1 11.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1310" coordinates="-33.5 -31.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1311" coordinates="-30.2 -11.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1312" coordinates="39.4 2.7 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1313" coordinates="21.3 -2.0 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1314" coordinates="9.7 -41.3 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1315" coordinates="24.0 6.8 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1316" coordinates="-34.8 -5.7 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1317" coordinates="-47.4 1.3 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1318" coordinates="36.5 12.0 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1319" coordinates="25.4 17.2 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1320" coordinates="27.8 20.3 36.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1321" coordinates="27.4 1.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1322" coordinates="45.3 17.2 198.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1323" coordinates="51.8 19.7 99.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1324" coordinates="-6.5 10.5 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1325" coordinates="18.0 -34.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1326" coordinates="-10.1 20.6 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1327" coordinates="-6.2 28.8 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1328" coordinates="11.5 5.2 48.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1329" coordinates="28.1 -6.0 26.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1330" coordinates="4.4 -9.2 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1331" coordinates="-35.1 -2.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1332" coordinates="-183.5 -17.6 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1333" coordinates="27.9 23.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1334" coordinates="-42.6 -2.0 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1335" coordinates="25.2 5.4 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1336" coordinates="27.1 10.2 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1337" coordinates="-19.7 -9.0 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1338" coordinates="20.3 14.7 48.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1339" coordinates="-20.6 -7.4 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1340" coordinates="23.2 21.9 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1341" coordinates="-4.8 7.0 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1342" coordinates="24.4 9.1 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1343" coordinates="30.5 19.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1344" coordinates="-14.1 12.3 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1345" coordinates="-36.3 -14.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1346" coordinates="71.0 42.7 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1347" coordinates="48.1 33.1 85.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1348" coordinates="-50.9 -0.9 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1349" coordinates="4.5 33.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1350" coordinates="-13.6 10.3 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1351" coordinates="18.0 8.0 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1352" coordinates="-5.5 5.0 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1353" coordinates="-6.2 -4.5 27.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1354" coordinates="15.1 9.7 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1355" coordinates="-29.9 -8.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1356" coordinates="-6.6 18.0 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1357" coordinates="7.0 58.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1358" coordinates="3.0 -6.0 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1359" coordinates="21.0 22.5 111.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1360" coordinates="5.4 17.6 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1361" coordinates="-41.9 -11.7 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1362" coordinates="5.4 15.0 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1363" coordinates="16.6 15.2 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1364" coordinates="-4.3 -10.9 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1365" coordinates="-15.8 10.2 27.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1366" coordinates="-29.5 -25.8 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1367" coordinates="-9.7 1.2 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1368" coordinates="11.6 10.9 26.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1369" coordinates="-1.5 24.2 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1370" coordinates="16.9 9.5 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1371" coordinates="1.8 3.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1372" coordinates="-33.4 -17.0 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1373" coordinates="11.4 5.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1374" coordinates="22.4 -25.2 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1375" coordinates="29.7 22.5 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1376" coordinates="21.2 54.8 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1377" coordinates="-39.6 -18.0 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1378" coordinates="92.2 -20.1 63.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1379" coordinates="29.0 -3.4 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1380" coordinates="-32.3 6.4 14.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1381" coordinates="18.3 47.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1382" coordinates="-42.5 -21.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1383" coordinates="-178.1 -77.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1384" coordinates="21.8 13.8 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1385" coordinates="20.7 17.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1386" coordinates="-39.5 -5.6 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1387" coordinates="22.7 19.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1388" coordinates="-35.5 4.5 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1389" coordinates="24.6 -4.0 19.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1390" coordinates="28.1 16.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1391" coordinates="3.2 -2.7 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1392" coordinates="9.1 6.1 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1393" coordinates="27.5 17.8 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1394" coordinates="23.1 15.7 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1395" coordinates="13.8 22.2 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1396" coordinates="9.4 22.3 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1397" coordinates="69.6 29.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1398" coordinates="37.6 -42.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1399" coordinates="24.2 15.8 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1400" coordinates="31.4 -6.5 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1401" coordinates="-58.6 -18.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1402" coordinates="15.8 44.9 22.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1403" coordinates="28.6 -80.0 85.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1404" coordinates="12.8 -1.8 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1405" coordinates="-51.6 10.1 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1406" coordinates="4.0 12.3 17.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1407" coordinates="-7.2 20.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1408" coordinates="12.4 13.5 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1409" coordinates="28.7 11.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1410" coordinates="25.3 21.5 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1411" coordinates="22.7 16.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1412" coordinates="-14.1 -7.9 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1413" coordinates="7.6 21.5 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1414" coordinates="-40.7 3.9 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1415" coordinates="22.7 5.3 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1416" coordinates="17.7 -0.9 25.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1417" coordinates="34.6 21.8 37.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1418" coordinates="4.8 -15.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1419" coordinates="24.7 9.0 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1420" coordinates="37.1 28.9 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1421" coordinates="-14.8 -36.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1422" coordinates="1.7 -16.3 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1423" coordinates="17.0 9.2 17.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1424" coordinates="-38.7 14.2 11.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1425" coordinates="-36.4 12.2 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1426" coordinates="-14.9 1.8 27.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1427" coordinates="-25.8 5.1 188.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1428" coordinates="13.4 8.9 20.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1429" coordinates="25.2 15.0 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1430" coordinates="-1.5 0.5 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1431" coordinates="-13.3 7.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1432" coordinates="15.8 16.1 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1433" coordinates="25.7 6.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1434" coordinates="-38.9 -2.8 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1435" coordinates="26.9 -1.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1436" coordinates="-19.7 -28.5 23.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1437" coordinates="2.1 5.6 23.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1438" coordinates="29.3 6.2 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1439" coordinates="23.9 19.4 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1440" coordinates="-12.3 8.1 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1441" coordinates="8.6 -2.8 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1442" coordinates="-46.4 -2.3 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1443" coordinates="13.6 -8.1 14.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1444" coordinates="3.6 8.6 26.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1445" coordinates="15.4 15.6 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1446" coordinates="13.8 45.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1447" coordinates="-34.1 -26.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1448" coordinates="-33.1 -16.1 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1449" coordinates="26.8 10.2 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1450" coordinates="56.9 40.4 25.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1451" coordinates="1.0 6.1 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1452" coordinates="-3.9 42.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1453" coordinates="9.1 3.1 25.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1454" coordinates="38.0 17.0 64.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1455" coordinates="13.9 -19.8 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1456" coordinates="-31.8 33.5 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1457" coordinates="68.0 31.2 40.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1458" coordinates="19.3 6.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1459" coordinates="25.3 5.7 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1460" coordinates="27.5 7.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1461" coordinates="21.5 20.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1462" coordinates="46.9 28.2 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1463" coordinates="35.2 11.3 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1464" coordinates="20.2 8.3 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1465" coordinates="-34.6 -23.3 156.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1466" coordinates="-28.7 -22.5 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1467" coordinates="-27.0 -5.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1468" coordinates="43.0 -11.2 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1469" coordinates="-39.0 -18.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1470" coordinates="19.0 -23.4 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1471" coordinates="-34.5 -25.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1472" coordinates="-23.8 2.9 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1473" coordinates="-50.5 -16.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1474" coordinates="-51.4 -25.0 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1475" coordinates="28.4 -14.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1476" coordinates="-21.9 -1.6 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1477" coordinates="28.3 35.6 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1478" coordinates="20.3 18.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1479" coordinates="18.4 20.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1480" coordinates="-3.8 -38.8 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1481" coordinates="-41.9 -13.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1482" coordinates="1.0 -9.2 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1483" coordinates="3.9 9.2 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1484" coordinates="-40.3 3.6 198.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1485" coordinates="-7.9 24.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1486" coordinates="99.5 65.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1487" coordinates="-171.9 -49.3 43.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1488" coordinates="-33.9 -37.9 21.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1489" coordinates="-40.2 -34.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1490" coordinates="25.0 7.3 36.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1491" coordinates="26.7 -5.3 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1492" coordinates="16.9 14.1 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1493" coordinates="14.5 21.6 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1494" coordinates="-40.6 -9.1 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1495" coordinates="31.0 4.9 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1496" coordinates="13.1 121.2 137.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1497" coordinates="-42.6 -23.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1498" coordinates="13.0 15.8 24.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1499" coordinates="-8.1 29.1 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1500" coordinates="-14.0 -29.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1501" coordinates="-22.8 -6.9 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1502" coordinates="19.2 11.5 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1503" coordinates="32.8 12.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1504" coordinates="-46.9 10.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1505" coordinates="-6.3 -4.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1506" coordinates="21.0 18.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1507" coordinates="20.2 26.4 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1508" coordinates="-149.5 -48.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1509" coordinates="-25.4 -3.7 15.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1510" coordinates="25.0 16.1 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1511" coordinates="-10.3 5.6 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1512" coordinates="-36.5 -16.2 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1513" coordinates="9.3 12.0 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1514" coordinates="8.4 -2.7 26.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1515" coordinates="26.7 47.7 80.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1516" coordinates="8.6 22.6 34.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1517" coordinates="9.6 -13.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1518" coordinates="29.7 26.5 27.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1519" coordinates="-10.3 -31.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1520" coordinates="-17.9 10.4 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1521" coordinates="11.5 13.2 67.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1522" coordinates="1.2 5.4 18.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1523" coordinates="4.8 2.4 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1524" coordinates="10.8 -10.9 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1525" coordinates="-53.1 6.2 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1526" coordinates="-8.2 15.0 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1527" coordinates="13.6 29.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1528" coordinates="2.9 -5.0 39.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1529" coordinates="43.9 16.2 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1530" coordinates="-36.3 -20.1 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1531" coordinates="19.1 5.1 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1532" coordinates="120.9 -143.0 106.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1533" coordinates="-22.4 12.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1534" coordinates="-57.4 -142.0 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1535" coordinates="-19.9 -24.6 20.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1536" coordinates="11.0 19.1 216.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1537" coordinates="-38.5 -20.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1538" coordinates="-28.6 -2.8 29.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1539" coordinates="153.8 14.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1540" coordinates="8.2 32.9 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1541" coordinates="55.9 -38.2 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1542" coordinates="27.9 11.7 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1543" coordinates="7.2 14.5 32.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1544" coordinates="9.4 23.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1545" coordinates="25.9 8.0 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1546" coordinates="27.5 21.9 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1547" coordinates="9.3 7.4 37.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1548" coordinates="512.9 90.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1549" coordinates="9.5 8.4 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1550" coordinates="4.0 0.1 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1551" coordinates="-45.2 -11.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1552" coordinates="40.0 -8.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1553" coordinates="93.0 67.6 72.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1554" coordinates="4.9 17.0 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1555" coordinates="-1.2 9.6 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1556" coordinates="-17.6 -18.2 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1557" coordinates="-24.3 -25.8 42.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1558" coordinates="-38.2 -7.0 18.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1559" coordinates="-2.1 5.7 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1560" coordinates="101.4 103.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1561" coordinates="27.8 12.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1562" coordinates="4.8 8.0 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1563" coordinates="-6.0 81.6 63.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1564" coordinates="33.1 -6.2 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1565" coordinates="-38.9 -7.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1566" coordinates="-29.0 -7.9 10.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1567" coordinates="13.1 20.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1568" coordinates="-17.9 -27.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1569" coordinates="19.1 26.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1570" coordinates="45.5 46.9 45.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1571" coordinates="-5.2 17.8 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1572" coordinates="0.8 13.4 67.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1573" coordinates="20.4 10.0 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1574" coordinates="26.8 15.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1575" coordinates="29.2 25.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1576" coordinates="-11.5 -10.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1577" coordinates="-23.2 -35.5 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1578" coordinates="-40.5 -15.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1579" coordinates="22.8 -12.7 21.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1580" coordinates="38.3 -5.3 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1581" coordinates="23.8 16.7 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1582" coordinates="-31.3 0.5 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1583" coordinates="32.3 10.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1584" coordinates="-22.2 3.8 67.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1585" coordinates="50.5 8.6 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1586" coordinates="-112.7 -32.1 103.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1587" coordinates="34.6 -4.0 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1588" coordinates="-79.2 -11.4 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1589" coordinates="6.6 -8.6 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1590" coordinates="21.6 1.8 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1591" coordinates="-36.1 -9.9 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1592" coordinates="11.2 2.6 24.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1593" coordinates="-51.7 -5.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1594" coordinates="15.5 21.4 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1595" coordinates="4.5 1.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1596" coordinates="18.9 34.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1597" coordinates="-14.2 -5.9 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1598" coordinates="16.0 10.8 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1599" coordinates="24.8 22.6 26.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1600" coordinates="6.7 -11.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1601" coordinates="5.5 3.5 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1602" coordinates="-16.0 9.8 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1603" coordinates="-4.3 12.8 54.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1604" coordinates="21.7 -7.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1605" coordinates="0.3 3.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1606" coordinates="30.4 9.9 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1607" coordinates="-1.7 15.9 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1608" coordinates="-51.7 17.7 14.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1609" coordinates="65.4 26.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1610" coordinates="20.1 10.8 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1611" coordinates="102.9 -7.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1612" coordinates="43.1 3.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1613" coordinates="-44.3 13.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1614" coordinates="-35.5 -22.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1615" coordinates="25.4 53.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1616" coordinates="32.5 -23.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1617" coordinates="22.7 24.8 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1618" coordinates="-41.9 -2.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1619" coordinates="-0.1 19.7 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1620" coordinates="-25.1 34.7 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1621" coordinates="16.8 10.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1622" coordinates="14.8 6.7 31.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1623" coordinates="-26.7 -1.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1624" coordinates="13.0 6.8 26.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1625" coordinates="18.9 3.8 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1626" coordinates="2.8 -19.5 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1627" coordinates="32.6 12.8 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1628" coordinates="-40.4 -4.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1629" coordinates="-15.0 0.5 25.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1630" coordinates="116.3 14.7 37.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1631" coordinates="50.1 -7.6 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1632" coordinates="-28.0 -29.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1633" coordinates="102.9 7.2 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1634" coordinates="-20.8 -15.3 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1635" coordinates="21.2 14.6 18.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1636" coordinates="33.1 4.5 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1637" coordinates="-110.2 -72.1 85.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1638" coordinates="94.0 33.6 41.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1639" coordinates="11.2 1.1 25.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1640" coordinates="-35.0 31.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1641" coordinates="4.2 -17.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1642" coordinates="-4.1 22.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1643" coordinates="17.5 36.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1644" coordinates="-45.6 -7.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1645" coordinates="25.7 8.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1646" coordinates="-8.0 -11.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1647" coordinates="14.3 14.8 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1648" coordinates="6.9 8.6 16.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1649" coordinates="-64.0 -53.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1650" coordinates="9.5 6.1 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1651" coordinates="-44.9 11.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1652" coordinates="-12.2 -15.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1653" coordinates="22.6 1.6 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1654" coordinates="-37.3 -21.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1655" coordinates="30.7 7.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1656" coordinates="-21.2 -8.2 22.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1657" coordinates="24.6 21.2 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1658" coordinates="-2.9 -37.3 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1659" coordinates="19.8 12.8 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1660" coordinates="18.7 -9.6 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1661" coordinates="15.9 8.5 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1662" coordinates="5.3 -4.3 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1663" coordinates="-45.6 19.7 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1664" coordinates="0.4 9.7 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1665" coordinates="50.2 38.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1666" coordinates="-3.0 0.7 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1667" coordinates="57.1 57.1 47.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1668" coordinates="-27.9 -64.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1669" coordinates="9.3 6.3 52.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1670" coordinates="22.2 -25.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1671" coordinates="4.2 10.1 47.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1672" coordinates="21.4 7.2 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1673" coordinates="14.8 15.8 37.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1674" coordinates="10.0 -0.2 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1675" coordinates="15.1 2.0 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1676" coordinates="-13.7 -34.2 159.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1677" coordinates="-13.2 -8.4 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1678" coordinates="-149.3 56.1 85.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1679" coordinates="12.9 30.6 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1680" coordinates="24.3 12.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1681" coordinates="-14.5 3.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1682" coordinates="-2.4 -30.4 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1683" coordinates="18.0 25.5 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1684" coordinates="-25.4 -21.1 14.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1685" coordinates="26.6 10.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1686" coordinates="-6.6 -15.7 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1687" coordinates="2.3 -18.5 51.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1688" coordinates="6.7 22.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1689" coordinates="-32.8 -12.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1690" coordinates="14.1 11.1 29.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1691" coordinates="21.9 16.1 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1692" coordinates="22.6 12.1 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1693" coordinates="28.2 -11.1 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1694" coordinates="-0.4 3.0 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1695" coordinates="-44.6 -7.1 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1696" coordinates="24.4 29.0 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1697" coordinates="28.4 -14.9 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1698" coordinates="22.5 22.2 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1699" coordinates="23.3 15.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1700" coordinates="4.8 10.6 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1701" coordinates="-10.8 -1.7 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1702" coordinates="35.7 5.6 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1703" coordinates="-25.0 -5.2 46.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1704" coordinates="-28.3 -28.5 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1705" coordinates="18.2 4.2 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1706" coordinates="-29.1 -14.4 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1707" coordinates="-24.2 1.5 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1708" coordinates="12.6 11.1 27.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1709" coordinates="24.2 -105.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1710" coordinates="31.1 29.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1711" coordinates="22.5 3.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1712" coordinates="15.2 10.2 25.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1713" coordinates="-187.8 -159.6 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1714" coordinates="31.1 10.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1715" coordinates="26.6 10.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1716" coordinates="89.5 27.4 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1717" coordinates="-3.6 25.6 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1718" coordinates="28.9 -5.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1719" coordinates="34.3 10.2 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1720" coordinates="13.2 -4.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1721" coordinates="-12.8 7.1 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1722" coordinates="52.6 68.6 103.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1723" coordinates="-39.8 -32.8 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1724" coordinates="26.3 11.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1725" coordinates="-62.2 -39.3 206.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1726" coordinates="5.0 12.4 25.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1727" coordinates="24.7 -73.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1728" coordinates="-5.6 -29.1 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1729" coordinates="-21.1 -20.3 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1730" coordinates="-6.5 -10.3 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1731" coordinates="-4.5 7.0 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1732" coordinates="-14.0 -21.3 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1733" coordinates="-12.4 23.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1734" coordinates="9.8 0.2 22.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1735" coordinates="16.0 13.0 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1736" coordinates="33.4 -5.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1737" coordinates="13.9 13.7 24.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1738" coordinates="-40.2 -9.2 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1739" coordinates="-39.8 8.0 33.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1740" coordinates="14.3 7.5 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1741" coordinates="19.0 5.3 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1742" coordinates="-4.6 0.2 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1743" coordinates="16.1 18.7 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1744" coordinates="25.5 11.0 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1745" coordinates="2.1 -3.9 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1746" coordinates="26.8 17.4 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1747" coordinates="18.6 28.7 25.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1748" coordinates="26.0 23.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1749" coordinates="2.1 37.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1750" coordinates="0.4 -3.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1751" coordinates="18.9 -1.8 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1752" coordinates="33.3 13.9 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1753" coordinates="12.9 7.1 49.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1754" coordinates="114.2 28.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1755" coordinates="65.0 52.7 89.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1756" coordinates="-28.7 -10.4 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1757" coordinates="31.7 18.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1758" coordinates="30.2 9.2 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1759" coordinates="17.7 21.0 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1760" coordinates="4.0 -7.3 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1761" coordinates="5.0 20.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1762" coordinates="-4.7 -71.8 92.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1763" coordinates="-34.9 -18.3 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1764" coordinates="9.9 14.5 20.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1765" coordinates="4.2 -1.7 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1766" coordinates="22.2 -1.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1767" coordinates="17.1 9.6 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1768" coordinates="35.8 -13.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1769" coordinates="24.0 2.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1770" coordinates="15.8 13.8 26.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1771" coordinates="20.0 8.0 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1772" coordinates="45.0 -0.3 113.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1773" coordinates="7.7 1.0 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1774" coordinates="21.9 13.4 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1775" coordinates="-36.0 -19.5 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1776" coordinates="26.6 12.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1777" coordinates="15.0 33.3 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1778" coordinates="15.5 -7.7 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1779" coordinates="2.9 7.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1780" coordinates="-10.9 3.0 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1781" coordinates="41.2 27.4 27.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1782" coordinates="-58.5 -2.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1783" coordinates="101.2 -12.8 113.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1784" coordinates="14.9 7.8 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1785" coordinates="11.6 12.2 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1786" coordinates="-12.7 -5.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1787" coordinates="15.0 9.7 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1788" coordinates="-2.2 19.5 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1789" coordinates="15.2 -3.8 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1790" coordinates="1.6 -3.1 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1791" coordinates="30.6 7.5 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1792" coordinates="16.1 18.4 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1793" coordinates="-22.7 4.1 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1794" coordinates="21.3 14.8 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1795" coordinates="13.4 8.4 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1796" coordinates="21.6 63.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1797" coordinates="-13.2 12.4 26.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1798" coordinates="-32.4 2.2 34.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1799" coordinates="2.5 1.6 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1800" coordinates="-9.5 19.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1801" coordinates="-3.0 30.9 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1802" coordinates="-20.7 -10.7 25.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1803" coordinates="9.6 4.9 20.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1804" coordinates="0.8 4.7 20.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1805" coordinates="-0.8 10.9 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1806" coordinates="24.9 32.6 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1807" coordinates="7.0 20.0 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1808" coordinates="1.5 18.4 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1809" coordinates="-40.6 -11.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1810" coordinates="-16.2 -20.2 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1811" coordinates="-48.5 12.9 16.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1812" coordinates="25.3 12.1 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1813" coordinates="-38.1 -16.7 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1814" coordinates="-12.7 -5.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1815" coordinates="16.2 12.6 21.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1816" coordinates="1.5 -2.1 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1817" coordinates="9.5 19.3 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1818" coordinates="-150.5 -287.8 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1819" coordinates="-21.3 -1.6 21.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1820" coordinates="4.9 -8.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1821" coordinates="-48.9 -19.6 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1822" coordinates="21.5 14.1 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1823" coordinates="16.6 9.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1824" coordinates="-9.5 16.5 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1825" coordinates="-16.6 -39.2 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1826" coordinates="-9.7 6.9 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1827" coordinates="19.4 12.5 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1828" coordinates="-45.0 4.0 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1829" coordinates="33.2 -22.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1830" coordinates="-0.4 1.3 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1831" coordinates="15.9 41.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1832" coordinates="12.1 7.8 26.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1833" coordinates="-3.3 11.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1834" coordinates="10.7 20.8 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1835" coordinates="45.6 17.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1836" coordinates="54.1 -4.6 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1837" coordinates="24.4 8.2 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1838" coordinates="-32.6 -12.7 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1839" coordinates="31.7 8.9 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1840" coordinates="-43.0 0.8 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1841" coordinates="38.0 -1.8 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1842" coordinates="-3.6 12.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1843" coordinates="140.1 154.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1844" coordinates="33.0 9.5 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1845" coordinates="14.5 11.8 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1846" coordinates="-0.7 2.1 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1847" coordinates="17.6 9.2 17.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1848" coordinates="-6.4 15.8 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1849" coordinates="8.3 13.0 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1850" coordinates="31.9 26.1 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1851" coordinates="8.8 15.4 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1852" coordinates="24.0 20.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1853" coordinates="-0.1 -0.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1854" coordinates="-8.5 -3.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1855" coordinates="14.9 9.2 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1856" coordinates="27.4 11.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1857" coordinates="27.0 3.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1858" coordinates="5.9 9.4 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1859" coordinates="4.5 5.4 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1860" coordinates="-1.9 4.4 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1861" coordinates="21.6 5.2 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1862" coordinates="6.6 21.3 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1863" coordinates="5.1 -7.8 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1864" coordinates="-5.5 9.9 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1865" coordinates="23.9 15.5 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1866" coordinates="-6.7 21.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1867" coordinates="18.2 7.5 19.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1868" coordinates="-35.6 -26.6 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1869" coordinates="16.6 -0.5 23.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1870" coordinates="27.9 1.4 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1871" coordinates="32.0 16.9 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1872" coordinates="-20.4 15.2 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1873" coordinates="-6.7 -16.6 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1874" coordinates="-34.5 -9.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1875" coordinates="-33.5 -17.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1876" coordinates="22.9 12.1 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1877" coordinates="9.7 12.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1878" coordinates="35.4 7.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1879" coordinates="22.6 9.5 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1880" coordinates="32.8 12.2 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1881" coordinates="43.5 11.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1882" coordinates="26.0 17.3 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1883" coordinates="34.5 8.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1884" coordinates="22.7 24.2 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1885" coordinates="24.5 17.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1886" coordinates="70.1 57.7 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1887" coordinates="6.9 10.9 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1888" coordinates="-13.3 -12.9 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1889" coordinates="0.1 12.2 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1890" coordinates="26.2 11.0 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1891" coordinates="16.2 -12.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1892" coordinates="26.1 13.3 21.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1893" coordinates="26.0 13.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1894" coordinates="30.3 11.1 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1895" coordinates="-16.9 1.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1896" coordinates="20.8 14.4 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1897" coordinates="24.4 17.5 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1898" coordinates="23.0 25.9 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1899" coordinates="-44.2 -16.2 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1900" coordinates="-47.2 -0.9 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1901" coordinates="-37.9 12.0 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1902" coordinates="-3.6 19.3 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1903" coordinates="23.3 4.9 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1904" coordinates="5.1 17.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1905" coordinates="4.3 5.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1906" coordinates="2.6 -13.3 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1907" coordinates="-5.3 13.0 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1908" coordinates="-41.4 -8.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1909" coordinates="2.8 42.0 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1910" coordinates="55.0 22.0 52.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1911" coordinates="-17.9 -5.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1912" coordinates="3.4 -16.3 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1913" coordinates="16.7 11.8 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1914" coordinates="10.6 25.9 37.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1915" coordinates="24.9 23.4 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1916" coordinates="10.5 14.0 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1917" coordinates="-36.7 -0.9 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1918" coordinates="11.4 -3.6 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1919" coordinates="-0.5 -3.7 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1920" coordinates="11.6 7.5 29.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1921" coordinates="-28.0 32.8 28.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1922" coordinates="-187.1 -61.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1923" coordinates="30.3 4.5 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1924" coordinates="-13.7 10.3 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1925" coordinates="-4.5 -7.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1926" coordinates="5.7 4.4 33.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1927" coordinates="27.3 11.3 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1928" coordinates="-1.8 6.3 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1929" coordinates="-43.8 19.1 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1930" coordinates="23.8 17.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1931" coordinates="10.6 1.5 28.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1932" coordinates="-8.2 1.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1933" coordinates="-42.2 8.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1934" coordinates="-14.5 -2.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1935" coordinates="-35.7 -22.5 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1936" coordinates="-8.9 50.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1937" coordinates="0.5 10.3 11.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1938" coordinates="7.2 12.2 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1939" coordinates="-38.2 -3.8 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1940" coordinates="-34.1 -21.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1941" coordinates="31.0 -9.5 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1942" coordinates="-46.3 120.8 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1943" coordinates="17.1 11.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1944" coordinates="22.1 26.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1945" coordinates="-22.4 -21.5 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1946" coordinates="129.3 -38.0 53.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1947" coordinates="-19.5 -12.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1948" coordinates="115.9 88.9 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1949" coordinates="22.9 12.4 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1950" coordinates="5.9 -41.7 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1951" coordinates="12.1 -5.0 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1952" coordinates="19.7 11.3 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1953" coordinates="-15.4 16.0 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1954" coordinates="14.3 2.9 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1955" coordinates="13.7 20.3 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1956" coordinates="-13.2 -7.8 27.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1957" coordinates="-24.3 -24.0 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1958" coordinates="26.9 -2.8 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1959" coordinates="6.7 21.3 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1960" coordinates="26.8 4.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1961" coordinates="-11.8 -6.7 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1962" coordinates="-37.0 6.3 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1963" coordinates="25.7 14.2 105.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1964" coordinates="33.6 10.2 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1965" coordinates="9.8 21.7 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1966" coordinates="27.9 6.0 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1967" coordinates="11.9 19.8 23.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1968" coordinates="17.1 -4.2 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1969" coordinates="26.2 22.9 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1970" coordinates="25.0 6.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1971" coordinates="9.4 -6.7 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1972" coordinates="-0.2 -3.5 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1973" coordinates="26.0 19.7 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1974" coordinates="5.9 -17.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1975" coordinates="39.9 8.2 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1976" coordinates="-35.4 24.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1977" coordinates="-32.6 -16.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1978" coordinates="9.3 63.8 44.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1979" coordinates="-41.1 -6.0 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1980" coordinates="-26.8 -10.7 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1981" coordinates="11.3 -13.2 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1982" coordinates="9.9 -1.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1983" coordinates="-35.3 -1.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1984" coordinates="-27.2 -22.5 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1985" coordinates="42.9 46.0 76.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1986" coordinates="27.8 12.4 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1987" coordinates="6.5 24.9 22.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1988" coordinates="-28.3 -26.1 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1989" coordinates="12.1 20.5 17.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1990" coordinates="-19.9 2.5 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1991" coordinates="-40.7 -8.8 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1992" coordinates="-28.6 -12.2 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1993" coordinates="3.2 -1.2 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1994" coordinates="-27.5 -13.6 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1995" coordinates="3.3 4.8 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1996" coordinates="20.7 13.4 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1997" coordinates="-68.1 65.5 109.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1998" coordinates="38.1 13.9 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-1999" coordinates="-36.0 -15.3 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2000" coordinates="-33.5 -10.8 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2001" coordinates="9.9 3.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2002" coordinates="-2.0 10.3 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2003" coordinates="25.3 10.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2004" coordinates="2.2 24.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2005" coordinates="48.9 40.2 55.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2006" coordinates="-39.4 -14.7 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2007" coordinates="14.1 4.1 15.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2008" coordinates="36.4 15.9 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2009" coordinates="-20.6 24.2 22.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2010" coordinates="86.6 61.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2011" coordinates="21.4 14.1 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2012" coordinates="-42.0 -11.2 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2013" coordinates="24.5 14.8 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2014" coordinates="-39.2 -22.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2015" coordinates="63.2 30.9 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2016" coordinates="4.3 -4.5 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2017" coordinates="-9.5 -14.0 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2018" coordinates="-49.6 -26.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2019" coordinates="26.2 3.8 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2020" coordinates="-9.6 -14.8 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2021" coordinates="14.1 64.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2022" coordinates="-10.4 15.0 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2023" coordinates="5.4 6.2 17.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2024" coordinates="12.0 15.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2025" coordinates="10.8 -1.3 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2026" coordinates="-32.1 -5.7 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2027" coordinates="30.2 12.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2028" coordinates="-24.9 80.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2029" coordinates="84.6 12.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2030" coordinates="11.4 32.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2031" coordinates="-0.1 -1.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2032" coordinates="-11.5 6.0 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2033" coordinates="12.4 10.6 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2034" coordinates="-39.9 7.0 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2035" coordinates="-12.7 -4.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2036" coordinates="-52.9 -25.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2037" coordinates="-41.4 -4.2 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2038" coordinates="34.2 7.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2039" coordinates="9.4 13.4 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2040" coordinates="26.4 9.7 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2041" coordinates="23.8 31.1 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2042" coordinates="26.2 6.9 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2043" coordinates="36.2 -18.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2044" coordinates="15.5 14.5 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2045" coordinates="13.4 -57.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2046" coordinates="23.1 -6.1 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2047" coordinates="-30.5 -0.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2048" coordinates="26.6 13.1 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2049" coordinates="30.2 9.6 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2050" coordinates="8.8 23.0 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2051" coordinates="13.4 23.5 31.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2052" coordinates="8.5 -16.8 19.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2053" coordinates="26.9 14.7 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2054" coordinates="9.3 -15.8 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2055" coordinates="9.8 4.4 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2056" coordinates="1.0 12.4 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2057" coordinates="4.6 13.6 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2058" coordinates="22.3 17.9 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2059" coordinates="15.1 16.7 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2060" coordinates="73.7 130.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2061" coordinates="-18.8 -0.6 37.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2062" coordinates="-211.8 -33.1 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2063" coordinates="15.0 22.1 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2064" coordinates="8.3 4.5 22.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2065" coordinates="-16.2 -19.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2066" coordinates="21.9 5.6 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2067" coordinates="-25.1 -53.8 23.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2068" coordinates="33.3 37.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2069" coordinates="22.2 8.9 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2070" coordinates="-4.7 11.3 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2071" coordinates="-3.3 2.9 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2072" coordinates="11.7 9.7 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2073" coordinates="34.0 13.1 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2074" coordinates="-28.8 -13.6 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2075" coordinates="24.0 18.3 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2076" coordinates="-16.1 -335.1 78.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2077" coordinates="-38.3 -18.6 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2078" coordinates="2.8 -14.8 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2079" coordinates="78.0 50.1 40.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2080" coordinates="-54.8 -45.1 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2081" coordinates="20.7 18.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2082" coordinates="11.9 41.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2083" coordinates="-46.6 -4.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2084" coordinates="-15.6 7.2 37.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2085" coordinates="21.2 -7.1 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2086" coordinates="18.7 -9.2 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2087" coordinates="25.5 11.4 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2088" coordinates="-2.5 12.8 38.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2089" coordinates="-42.0 -1.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2090" coordinates="25.3 45.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2091" coordinates="-42.7 1.8 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2092" coordinates="-70.9 -1.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2093" coordinates="36.0 7.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2094" coordinates="-4.7 2.0 28.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2095" coordinates="4.0 4.4 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2096" coordinates="24.7 30.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2097" coordinates="5.0 -3.8 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2098" coordinates="-34.8 -6.2 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2099" coordinates="-12.1 -2.9 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2100" coordinates="36.6 19.9 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2101" coordinates="-44.0 -17.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2102" coordinates="-18.0 1.0 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2103" coordinates="26.2 12.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2104" coordinates="-35.7 1.6 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2105" coordinates="-20.0 -3.2 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2106" coordinates="5.2 17.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2107" coordinates="-2.4 7.3 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2108" coordinates="-11.1 7.3 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2109" coordinates="-4.4 7.4 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2110" coordinates="28.8 -13.5 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2111" coordinates="25.4 -0.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2112" coordinates="29.1 37.1 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2113" coordinates="23.0 3.5 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2114" coordinates="-36.4 -29.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2115" coordinates="28.7 11.4 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2116" coordinates="17.0 18.0 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2117" coordinates="99.4 24.2 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2118" coordinates="12.5 25.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2119" coordinates="-28.3 -16.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2120" coordinates="5.5 6.7 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2121" coordinates="-1.4 2.0 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2122" coordinates="23.3 38.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2123" coordinates="21.9 -1.6 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2124" coordinates="83.3 63.4 43.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2125" coordinates="24.3 -31.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2126" coordinates="-2.6 -7.5 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2127" coordinates="23.5 11.0 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2128" coordinates="22.8 7.8 14.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2129" coordinates="-43.0 -6.0 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2130" coordinates="4.1 13.1 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2131" coordinates="18.1 12.8 24.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2132" coordinates="-13.4 -4.1 27.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2133" coordinates="12.8 7.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2134" coordinates="16.3 11.3 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2135" coordinates="24.2 15.3 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2136" coordinates="23.6 1.4 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2137" coordinates="17.6 49.7 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2138" coordinates="12.4 18.7 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2139" coordinates="13.4 7.9 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2140" coordinates="31.5 14.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2141" coordinates="17.5 -5.1 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2142" coordinates="3.6 -45.7 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2143" coordinates="22.0 23.4 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2144" coordinates="-91.6 -31.9 134.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2145" coordinates="2.6 2.9 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2146" coordinates="27.0 15.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2147" coordinates="14.5 20.3 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2148" coordinates="-30.0 17.8 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2149" coordinates="-4.7 -2.3 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2150" coordinates="-41.4 -10.4 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2151" coordinates="-43.2 -35.3 173.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2152" coordinates="22.9 9.8 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2153" coordinates="29.7 14.7 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2154" coordinates="-114.2 114.5 66.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2155" coordinates="50.6 -8.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2156" coordinates="-59.9 -26.2 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2157" coordinates="32.8 25.0 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2158" coordinates="16.0 23.4 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2159" coordinates="-39.1 -2.3 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2160" coordinates="-4.3 -13.1 36.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2161" coordinates="-48.7 -2.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2162" coordinates="31.1 5.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2163" coordinates="36.0 13.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2164" coordinates="-18.5 11.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2165" coordinates="-25.2 -19.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2166" coordinates="0.9 82.7 173.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2167" coordinates="14.4 18.2 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2168" coordinates="-5.5 13.0 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2169" coordinates="7.2 12.7 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2170" coordinates="-21.2 -18.0 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2171" coordinates="26.7 9.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2172" coordinates="14.4 -4.7 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2173" coordinates="-6.6 3.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2174" coordinates="15.0 11.3 17.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2175" coordinates="11.8 5.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2176" coordinates="-33.0 -5.2 40.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2177" coordinates="80.3 81.0 11.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2178" coordinates="2.9 -37.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2179" coordinates="-3.2 20.8 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2180" coordinates="-8.2 -4.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2181" coordinates="-29.7 -7.5 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2182" coordinates="-40.9 6.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2183" coordinates="136.0 -22.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2184" coordinates="83.1 48.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2185" coordinates="17.0 13.9 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2186" coordinates="-38.9 -32.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2187" coordinates="-4.7 4.9 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2188" coordinates="-21.9 22.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2189" coordinates="-12.9 -9.2 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2190" coordinates="16.6 1.9 23.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2191" coordinates="6.3 0.9 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2192" coordinates="-20.6 -7.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2193" coordinates="23.4 17.8 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2194" coordinates="-49.8 23.9 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2195" coordinates="15.6 10.4 19.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2196" coordinates="-42.3 6.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2197" coordinates="40.4 7.0 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2198" coordinates="-28.0 -22.8 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2199" coordinates="33.6 25.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2200" coordinates="32.1 14.6 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2201" coordinates="27.8 13.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2202" coordinates="18.0 15.2 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2203" coordinates="53.8 114.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2204" coordinates="21.1 11.7 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2205" coordinates="-13.2 13.5 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2206" coordinates="-11.2 12.9 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2207" coordinates="9.3 23.2 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2208" coordinates="10.7 -39.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2209" coordinates="-43.5 -1.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2210" coordinates="22.0 10.1 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2211" coordinates="19.4 18.0 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2212" coordinates="13.6 4.3 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2213" coordinates="13.1 16.1 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2214" coordinates="23.7 17.5 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2215" coordinates="2.8 -2.2 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2216" coordinates="9.9 7.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2217" coordinates="102.1 4.1 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2218" coordinates="-16.2 19.4 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2219" coordinates="2.5 15.6 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2220" coordinates="28.3 1.3 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2221" coordinates="-54.2 -5.7 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2222" coordinates="-2.3 2.5 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2223" coordinates="20.9 8.3 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2224" coordinates="4.9 2.0 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2225" coordinates="13.8 7.9 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2226" coordinates="-47.3 -13.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2227" coordinates="70.8 81.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2228" coordinates="17.2 12.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2229" coordinates="22.8 18.1 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2230" coordinates="-30.6 -13.4 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2231" coordinates="17.6 21.4 57.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2232" coordinates="-0.4 3.3 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2233" coordinates="35.1 -27.4 158.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2234" coordinates="8.5 10.1 24.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2235" coordinates="-7.1 9.2 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2236" coordinates="20.8 9.2 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2237" coordinates="11.6 3.8 31.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2238" coordinates="38.5 3.6 261.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2239" coordinates="20.0 15.3 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2240" coordinates="27.4 18.9 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2241" coordinates="11.1 13.3 16.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2242" coordinates="-33.8 -15.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2243" coordinates="-41.3 -14.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2244" coordinates="-38.4 -13.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2245" coordinates="14.6 -4.7 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2246" coordinates="17.5 33.6 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2247" coordinates="5.7 1.5 19.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2248" coordinates="-52.9 -2.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2249" coordinates="-8.9 38.2 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2250" coordinates="-36.2 2.4 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2251" coordinates="33.3 18.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2252" coordinates="25.2 20.1 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2253" coordinates="-31.7 -26.4 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2254" coordinates="11.5 10.0 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2255" coordinates="25.6 0.4 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2256" coordinates="-24.4 -13.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2257" coordinates="25.3 15.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2258" coordinates="23.6 6.7 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2259" coordinates="-6.2 19.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2260" coordinates="-11.0 6.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2261" coordinates="10.9 19.1 22.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2262" coordinates="-5.1 6.0 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2263" coordinates="13.9 22.3 23.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2264" coordinates="9.2 -7.8 18.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2265" coordinates="-37.5 -49.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2266" coordinates="15.6 3.5 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2267" coordinates="40.0 22.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2268" coordinates="-25.4 0.2 30.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2269" coordinates="29.8 22.9 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2270" coordinates="-44.8 -16.7 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2271" coordinates="31.9 16.1 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2272" coordinates="6.8 3.5 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2273" coordinates="29.6 17.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2274" coordinates="-2.8 20.0 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2275" coordinates="4.2 7.2 23.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2276" coordinates="-17.2 -6.4 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2277" coordinates="50.9 37.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2278" coordinates="32.4 -10.7 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2279" coordinates="47.8 16.3 73.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2280" coordinates="-50.3 -18.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2281" coordinates="-51.1 -8.7 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2282" coordinates="-2.0 -1.5 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2283" coordinates="4.6 -6.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2284" coordinates="5.0 22.9 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2285" coordinates="-17.3 -14.6 66.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2286" coordinates="23.7 9.8 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2287" coordinates="19.6 25.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2288" coordinates="26.6 -6.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2289" coordinates="5.8 -3.5 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2290" coordinates="36.9 5.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2291" coordinates="32.4 9.2 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2292" coordinates="27.3 4.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2293" coordinates="-36.1 -14.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2294" coordinates="6.9 -1.7 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2295" coordinates="16.3 6.2 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2296" coordinates="29.6 7.4 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2297" coordinates="19.7 17.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2298" coordinates="-49.7 -30.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2299" coordinates="34.8 20.4 20.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2300" coordinates="-50.4 20.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2301" coordinates="-51.2 -9.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2302" coordinates="7.0 4.7 17.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2303" coordinates="10.8 2.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2304" coordinates="25.1 13.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2305" coordinates="9.5 21.3 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2306" coordinates="7.9 11.0 24.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2307" coordinates="35.6 75.8 36.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2308" coordinates="25.9 0.5 28.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2309" coordinates="-29.5 -9.2 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2310" coordinates="205.7 90.4 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2311" coordinates="-39.3 -4.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2312" coordinates="23.4 13.6 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2313" coordinates="-48.6 -1.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2314" coordinates="-31.6 -8.2 86.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2315" coordinates="-49.0 5.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2316" coordinates="-14.2 -13.4 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2317" coordinates="26.3 8.7 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2318" coordinates="-25.1 -28.1 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2319" coordinates="-5.2 14.8 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2320" coordinates="41.8 73.2 107.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2321" coordinates="-9.9 -2.3 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2322" coordinates="24.3 13.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2323" coordinates="31.7 19.2 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2324" coordinates="-12.6 -1.6 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2325" coordinates="-31.7 -18.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2326" coordinates="-67.8 -35.9 149.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2327" coordinates="33.7 -19.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2328" coordinates="17.3 22.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2329" coordinates="6.3 10.2 18.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2330" coordinates="-37.7 -41.6 156.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2331" coordinates="-41.4 26.3 33.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2332" coordinates="-40.9 1.0 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2333" coordinates="32.0 -21.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2334" coordinates="44.8 30.7 103.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2335" coordinates="11.5 0.6 20.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2336" coordinates="23.5 -2.9 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2337" coordinates="18.3 17.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2338" coordinates="25.1 12.2 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2339" coordinates="-24.5 -13.4 39.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2340" coordinates="-34.7 -4.4 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2341" coordinates="-34.8 -36.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2342" coordinates="45.2 12.6 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2343" coordinates="-40.9 -13.2 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2344" coordinates="37.2 29.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2345" coordinates="-39.8 -5.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2346" coordinates="-79.7 196.5 105.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2347" coordinates="-2.2 10.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2348" coordinates="32.9 4.9 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2349" coordinates="34.1 14.3 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2350" coordinates="4.3 7.2 24.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2351" coordinates="-6.8 9.7 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2352" coordinates="-52.6 -15.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2353" coordinates="38.5 44.1 54.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2354" coordinates="-35.7 -11.6 55.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2355" coordinates="6.0 4.4 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2356" coordinates="24.4 19.0 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2357" coordinates="22.2 13.7 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2358" coordinates="-1.7 8.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2359" coordinates="-31.9 -10.9 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2360" coordinates="-22.7 10.3 23.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2361" coordinates="-28.2 -9.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2362" coordinates="21.5 21.9 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2363" coordinates="6.8 -8.6 18.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2364" coordinates="22.5 25.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2365" coordinates="16.3 2.2 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2366" coordinates="10.8 6.2 17.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2367" coordinates="0.0 -52.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2368" coordinates="-46.1 -19.3 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2369" coordinates="42.2 11.2 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2370" coordinates="17.3 -2.7 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2371" coordinates="-49.7 -9.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2372" coordinates="26.9 18.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2373" coordinates="11.6 13.7 65.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2374" coordinates="33.5 9.5 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2375" coordinates="0.3 12.9 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2376" coordinates="20.3 -3.1 36.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2377" coordinates="14.2 16.7 24.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2378" coordinates="-7.5 -18.4 38.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2379" coordinates="7.8 17.4 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2380" coordinates="76.6 -63.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2381" coordinates="-42.9 0.0 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2382" coordinates="17.0 -10.8 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2383" coordinates="-2.1 0.3 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2384" coordinates="-2.9 -7.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2385" coordinates="-26.8 -23.7 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2386" coordinates="19.1 0.6 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2387" coordinates="-13.3 3.3 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2388" coordinates="21.4 1.7 20.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2389" coordinates="-38.1 -21.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2390" coordinates="35.4 -30.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2391" coordinates="28.8 6.0 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2392" coordinates="-31.1 11.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2393" coordinates="-8.5 3.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2394" coordinates="10.7 -10.6 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2395" coordinates="-2.3 -106.9 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2396" coordinates="-33.8 -6.1 22.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2397" coordinates="9.2 -14.8 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2398" coordinates="17.7 18.2 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2399" coordinates="-12.7 -18.5 25.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2400" coordinates="39.1 11.5 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2401" coordinates="17.3 36.2 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2402" coordinates="15.4 18.1 20.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2403" coordinates="64.3 47.4 118.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2404" coordinates="-8.4 -8.5 20.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2405" coordinates="6.0 10.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2406" coordinates="14.5 2.6 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2407" coordinates="-16.1 3.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2408" coordinates="31.5 14.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2409" coordinates="-0.4 51.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2410" coordinates="13.8 -6.0 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2411" coordinates="-6.4 -1.2 48.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2412" coordinates="34.4 14.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2413" coordinates="17.9 2.2 34.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2414" coordinates="8.0 8.4 21.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2415" coordinates="-34.1 -31.1 23.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2416" coordinates="20.9 20.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2417" coordinates="-21.5 6.2 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2418" coordinates="-4.6 -9.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2419" coordinates="-24.9 2.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2420" coordinates="36.6 21.8 71.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2421" coordinates="-43.6 -10.6 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2422" coordinates="9.1 2.7 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2423" coordinates="-39.4 -1.8 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2424" coordinates="1.6 18.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2425" coordinates="-33.8 -37.9 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2426" coordinates="-42.1 21.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2427" coordinates="15.8 -0.1 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2428" coordinates="10.5 4.5 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2429" coordinates="28.1 12.2 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2430" coordinates="25.7 15.0 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2431" coordinates="-45.4 -34.0 11.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2432" coordinates="8.7 11.3 28.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2433" coordinates="2.6 5.0 31.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2434" coordinates="-41.0 -21.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2435" coordinates="11.7 8.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2436" coordinates="-9.3 16.7 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2437" coordinates="4.9 3.0 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2438" coordinates="-0.7 -13.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2439" coordinates="21.7 9.1 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2440" coordinates="14.0 20.8 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2441" coordinates="28.6 16.1 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2442" coordinates="27.5 21.9 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2443" coordinates="28.7 9.5 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2444" coordinates="-5.8 9.9 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2445" coordinates="-5.0 -1.7 47.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2446" coordinates="24.4 -1.0 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2447" coordinates="4.7 -22.8 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2448" coordinates="-13.9 -10.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2449" coordinates="10.6 17.0 20.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2450" coordinates="-3.3 -1.7 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2451" coordinates="5.1 18.7 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2452" coordinates="11.3 12.2 17.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2453" coordinates="-12.7 -13.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2454" coordinates="-21.9 3.0 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2455" coordinates="-43.4 -3.0 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2456" coordinates="18.0 22.4 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2457" coordinates="-2.3 23.9 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2458" coordinates="-52.3 12.5 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2459" coordinates="6.5 27.3 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2460" coordinates="2.0 19.6 26.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2461" coordinates="12.5 85.7 62.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2462" coordinates="-22.0 39.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2463" coordinates="-11.3 -6.2 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2464" coordinates="-11.5 2.5 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2465" coordinates="21.6 -3.1 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2466" coordinates="3.5 14.2 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2467" coordinates="188.4 210.2 442.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2468" coordinates="-41.9 0.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2469" coordinates="26.7 23.4 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2470" coordinates="21.4 18.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2471" coordinates="30.0 -3.9 23.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2472" coordinates="-5.5 -22.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2473" coordinates="22.7 -2.9 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2474" coordinates="28.2 19.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2475" coordinates="17.8 12.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2476" coordinates="-33.1 -22.9 47.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2477" coordinates="10.5 13.6 77.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2478" coordinates="27.8 -28.0 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2479" coordinates="11.7 -6.4 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2480" coordinates="9.5 18.6 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2481" coordinates="-26.5 1.2 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2482" coordinates="3.4 12.4 19.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2483" coordinates="-40.8 0.9 132.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2484" coordinates="-38.5 20.7 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2485" coordinates="71.7 86.2 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2486" coordinates="5.2 16.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2487" coordinates="35.7 9.6 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2488" coordinates="15.9 15.7 23.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2489" coordinates="28.8 29.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2490" coordinates="25.4 23.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2491" coordinates="7.7 3.1 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2492" coordinates="15.3 -7.2 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2493" coordinates="-3.1 6.7 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2494" coordinates="23.5 13.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2495" coordinates="24.0 13.3 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2496" coordinates="23.1 15.1 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2497" coordinates="22.6 13.7 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2498" coordinates="12.1 4.1 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
-    <peer id="peer-2499" coordinates="-32.7 -13.3 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-0"    coordinates="25.5 9.4 1.4 "   speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1"    coordinates="-12.7 -9.9 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2"    coordinates="-15.7 9.9 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-3"    coordinates="27.1 7.2 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-4"    coordinates="11.4 10.7 24.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-5"    coordinates="27.1 14.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-6"    coordinates="110.1 31.2 43.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-7"    coordinates="-21.2 -25.2 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-8"    coordinates="-2.3 1.1 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-9"    coordinates="16.8 -11.1 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-10"   coordinates="-6.8 1.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-11"   coordinates="23.0 -4.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-12"   coordinates="29.9 -9.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-13"   coordinates="-2.2 7.2 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-14"   coordinates="26.1 -61.9 144.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-15"   coordinates="-39.4 1.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-16"   coordinates="26.5 -15.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-17"   coordinates="15.0 -0.5 34.5 " speed="730Mf"  bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-18"   coordinates="16.5 11.5 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-19"   coordinates="-37.9 85.0 69.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-20"   coordinates="-2.6 19.4 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-21"   coordinates="-104.4 -162.5 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-22"   coordinates="-41.8 -30.9 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-23"   coordinates="-9.9 10.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-24"   coordinates="8.5 15.3 31.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-25"   coordinates="6.0 -12.6 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-26"   coordinates="89.6 26.1 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-27"   coordinates="13.9 -31.4 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-28"   coordinates="13.6 10.0 25.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-29"   coordinates="32.2 34.0 104.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-30"   coordinates="23.5 21.2 24.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-31"   coordinates="-27.0 -12.1 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-32"   coordinates="18.4 -4.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-33"   coordinates="109.3 253.6 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-34"   coordinates="16.5 9.4 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-35"   coordinates="-35.9 -42.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-36"   coordinates="30.4 18.9 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-37"   coordinates="-23.1 -7.6 39.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-38"   coordinates="135.5 -21.0 83.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-39"   coordinates="17.5 6.7 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-40"   coordinates="22.3 13.6 21.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-41"   coordinates="-2.5 8.3 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-42"   coordinates="-10.3 -8.8 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-43"   coordinates="142.5 63.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-44"   coordinates="5.1 -2.9 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-45"   coordinates="-18.4 23.5 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-46"   coordinates="-26.3 -3.2 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-47"   coordinates="-21.6 11.6 89.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-48"   coordinates="-44.3 17.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-49"   coordinates="-59.8 -16.8 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-50"   coordinates="23.9 35.4 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-51"   coordinates="22.9 10.1 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-52"   coordinates="27.6 25.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-53"   coordinates="9.5 13.3 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-54"   coordinates="-34.2 20.0 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-55"   coordinates="-58.7 -11.7 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-56"   coordinates="-40.3 -27.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-57"   coordinates="19.7 -15.1 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-58"   coordinates="8.4 17.5 32.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-59"   coordinates="25.1 8.8 16.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-60"   coordinates="25.3 13.9 21.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-61"   coordinates="29.5 -58.9 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-62"   coordinates="-48.1 -6.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-63"   coordinates="-17.2 -1.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-64"   coordinates="10.6 18.7 33.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-65"   coordinates="1.9 -3.5 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-66"   coordinates="-3.6 1.6 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-67"   coordinates="-20.1 8.7 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-68"   coordinates="-22.0 5.6 31.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-69"   coordinates="-32.4 -9.4 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-70"   coordinates="13.3 7.2 20.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-71"   coordinates="23.2 10.9 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-72"   coordinates="7.0 17.8 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-73"   coordinates="34.1 37.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-74"   coordinates="-55.4 -5.1 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-75"   coordinates="-3.4 -4.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-76"   coordinates="22.6 0.8 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-77"   coordinates="23.2 15.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-78"   coordinates="21.6 16.4 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-79"   coordinates="12.0 14.2 20.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-80"   coordinates="90.3 79.5 66.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-81"   coordinates="-3.0 2.5 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-82"   coordinates="-7.2 19.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-83"   coordinates="5.9 15.2 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-84"   coordinates="-208.1 -127.0 325.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-85"   coordinates="0.6 8.0 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-86"   coordinates="16.3 17.6 29.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-87"   coordinates="-0.6 8.6 32.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-88"   coordinates="-1.8 6.5 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-89"   coordinates="-6.8 22.6 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-90"   coordinates="17.0 20.6 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-91"   coordinates="-39.1 -30.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-92"   coordinates="110.1 57.3 30.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-93"   coordinates="21.1 -4.7 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-94"   coordinates="-36.4 -12.8 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-95"   coordinates="33.2 -20.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-96"   coordinates="25.9 15.4 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-97"   coordinates="-1.0 3.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-98"   coordinates="-19.4 1.4 23.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-99"   coordinates="17.1 9.8 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-100"  coordinates="5.5 -16.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-101"  coordinates="3.3 1.8 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-102"  coordinates="1.4 23.0 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-103"  coordinates="-48.5 -29.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-104"  coordinates="7.6 -4.5 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-105"  coordinates="0.2 15.1 30.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-106"  coordinates="6.3 10.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-107"  coordinates="24.4 9.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-108"  coordinates="19.1 11.4 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-109"  coordinates="29.7 12.3 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-110"  coordinates="-0.9 13.4 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-111"  coordinates="19.3 -9.3 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-112"  coordinates="15.8 14.7 18.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-113"  coordinates="2.8 13.2 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-114"  coordinates="18.8 11.5 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-115"  coordinates="-10.4 -2.2 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-116"  coordinates="-45.7 -10.4 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-117"  coordinates="25.7 16.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-118"  coordinates="-0.7 17.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-119"  coordinates="30.2 1.9 22.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-120"  coordinates="0.1 2.7 38.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-121"  coordinates="3.0 19.1 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-122"  coordinates="-6.6 15.4 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-123"  coordinates="10.9 14.3 21.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-124"  coordinates="3.3 21.0 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-125"  coordinates="29.9 8.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-126"  coordinates="-43.0 -18.3 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-127"  coordinates="29.8 8.1 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-128"  coordinates="36.7 17.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-129"  coordinates="106.8 34.2 23.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-130"  coordinates="-29.1 -20.5 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-131"  coordinates="13.1 22.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-132"  coordinates="78.7 137.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-133"  coordinates="100.2 -6.3 185.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-134"  coordinates="0.4 20.3 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-135"  coordinates="24.0 -2.4 38.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-136"  coordinates="-4.1 1.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-137"  coordinates="7.7 19.2 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-138"  coordinates="-19.6 -5.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-139"  coordinates="9.7 3.1 24.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-140"  coordinates="112.9 69.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-141"  coordinates="-8.8 -9.0 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-142"  coordinates="26.2 12.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-143"  coordinates="32.9 0.6 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-144"  coordinates="-33.5 -9.2 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-145"  coordinates="21.8 13.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-146"  coordinates="29.9 14.0 99.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-147"  coordinates="-33.3 -41.3 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-148"  coordinates="12.1 14.0 21.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-149"  coordinates="12.6 4.8 28.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-150"  coordinates="-21.0 -24.0 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-151"  coordinates="13.1 13.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-152"  coordinates="20.1 23.0 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-153"  coordinates="6.4 15.0 30.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-154"  coordinates="25.1 4.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-155"  coordinates="28.8 29.7 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-156"  coordinates="10.5 -8.2 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-157"  coordinates="13.7 3.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-158"  coordinates="24.0 23.1 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-159"  coordinates="53.0 55.5 18.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-160"  coordinates="10.8 5.4 38.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-161"  coordinates="-74.9 -31.9 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-162"  coordinates="2.5 8.3 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-163"  coordinates="85.6 28.1 90.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-164"  coordinates="8.1 9.4 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-165"  coordinates="18.0 8.9 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-166"  coordinates="-6.4 0.1 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-167"  coordinates="23.9 29.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-168"  coordinates="19.2 19.4 40.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-169"  coordinates="4.1 9.2 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-170"  coordinates="2.5 32.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-171"  coordinates="2.5 0.2 30.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-172"  coordinates="-5.1 7.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-173"  coordinates="35.8 27.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-174"  coordinates="-35.4 2.7 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-175"  coordinates="27.0 9.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-176"  coordinates="9.5 5.3 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-177"  coordinates="-36.1 -15.7 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-178"  coordinates="-22.5 74.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-179"  coordinates="6.3 14.3 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-180"  coordinates="-23.3 -18.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-181"  coordinates="19.4 10.3 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-182"  coordinates="-16.7 37.0 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-183"  coordinates="12.5 13.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-184"  coordinates="14.5 14.1 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-185"  coordinates="28.9 15.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-186"  coordinates="-5.9 -4.6 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-187"  coordinates="-11.1 7.8 18.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-188"  coordinates="1.1 -2.9 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-189"  coordinates="-13.8 -5.3 47.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-190"  coordinates="28.1 38.3 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-191"  coordinates="35.0 16.3 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-192"  coordinates="-7.5 -5.1 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-193"  coordinates="52.3 60.9 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-194"  coordinates="0.6 2.3 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-195"  coordinates="22.9 3.2 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-196"  coordinates="17.8 6.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-197"  coordinates="9.0 13.0 71.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-198"  coordinates="-51.7 44.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-199"  coordinates="-40.8 -10.6 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-200"  coordinates="15.8 10.6 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-201"  coordinates="-25.4 8.9 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-202"  coordinates="-60.4 100.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-203"  coordinates="25.5 23.0 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-204"  coordinates="38.4 26.8 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-205"  coordinates="9.0 20.5 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-206"  coordinates="39.1 16.7 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-207"  coordinates="19.1 18.2 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-208"  coordinates="7.7 8.5 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-209"  coordinates="20.0 11.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-210"  coordinates="19.5 12.6 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-211"  coordinates="-22.5 14.0 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-212"  coordinates="-2.4 2.2 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-213"  coordinates="12.8 6.7 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-214"  coordinates="0.1 -2.0 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-215"  coordinates="7.7 -8.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-216"  coordinates="-11.1 -8.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-217"  coordinates="6.2 -7.1 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-218"  coordinates="-49.1 -25.9 23.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-219"  coordinates="15.0 19.0 34.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-220"  coordinates="-38.7 -6.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-221"  coordinates="6.0 -2.0 26.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-222"  coordinates="-47.5 -29.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-223"  coordinates="-27.4 2.5 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-224"  coordinates="29.8 3.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-225"  coordinates="-40.9 -3.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-226"  coordinates="35.1 35.6 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-227"  coordinates="-37.0 -6.4 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-228"  coordinates="15.9 5.1 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-229"  coordinates="-38.5 -8.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-230"  coordinates="32.0 4.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-231"  coordinates="-29.6 -2.4 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-232"  coordinates="3.7 8.6 31.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-233"  coordinates="9.9 2.0 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-234"  coordinates="-8.2 -2.6 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-235"  coordinates="18.9 -2.8 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-236"  coordinates="-18.0 -5.7 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-237"  coordinates="19.3 -1.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-238"  coordinates="14.8 23.7 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-239"  coordinates="-0.0 8.2 52.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-240"  coordinates="-22.4 -40.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-241"  coordinates="-13.3 -0.5 21.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-242"  coordinates="9.8 7.8 18.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-243"  coordinates="-25.7 -20.9 19.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-244"  coordinates="25.0 10.0 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-245"  coordinates="19.1 22.1 145.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-246"  coordinates="7.4 16.1 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-247"  coordinates="7.4 -2.7 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-248"  coordinates="4.9 19.9 11.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-249"  coordinates="12.3 -12.4 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-250"  coordinates="-19.9 11.6 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-251"  coordinates="2.1 2.3 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-252"  coordinates="0.1 3.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-253"  coordinates="24.5 26.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-254"  coordinates="-10.5 4.5 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-255"  coordinates="-17.4 33.1 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-256"  coordinates="17.6 1.7 27.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-257"  coordinates="-48.0 1.9 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-258"  coordinates="25.9 2.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-259"  coordinates="0.9 3.8 26.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-260"  coordinates="-70.8 21.0 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-261"  coordinates="17.1 1.8 18.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-262"  coordinates="3.3 -13.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-263"  coordinates="-49.1 -4.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-264"  coordinates="-28.0 8.0 48.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-265"  coordinates="2.9 2.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-266"  coordinates="113.8 15.0 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-267"  coordinates="32.1 13.9 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-268"  coordinates="-13.1 -33.9 30.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-269"  coordinates="-17.5 18.3 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-270"  coordinates="29.7 22.7 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-271"  coordinates="6.6 15.5 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-272"  coordinates="1.9 3.1 32.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-273"  coordinates="21.6 2.6 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-274"  coordinates="12.7 14.0 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-275"  coordinates="17.3 14.3 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-276"  coordinates="32.0 12.8 68.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-277"  coordinates="-30.2 -0.1 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-278"  coordinates="-12.5 1.7 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-279"  coordinates="31.1 22.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-280"  coordinates="24.0 11.6 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-281"  coordinates="52.9 2.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-282"  coordinates="23.1 18.8 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-283"  coordinates="-17.6 -36.1 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-284"  coordinates="14.1 -21.4 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-285"  coordinates="9.0 1.3 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-286"  coordinates="28.4 -14.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-287"  coordinates="27.1 8.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-288"  coordinates="3.7 7.1 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-289"  coordinates="-31.8 -34.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-290"  coordinates="19.9 20.1 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-291"  coordinates="25.5 18.9 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-292"  coordinates="-5.2 8.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-293"  coordinates="11.0 3.2 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-294"  coordinates="-6.4 12.2 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-295"  coordinates="29.9 13.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-296"  coordinates="9.7 6.8 31.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-297"  coordinates="-30.7 -29.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-298"  coordinates="3.7 31.4 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-299"  coordinates="6.5 19.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-300"  coordinates="25.0 3.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-301"  coordinates="-32.8 -7.0 20.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-302"  coordinates="7.2 13.4 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-303"  coordinates="15.1 16.1 39.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-304"  coordinates="-28.8 14.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-305"  coordinates="8.3 22.8 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-306"  coordinates="-1.1 8.6 27.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-307"  coordinates="-23.1 -9.6 33.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-308"  coordinates="13.7 -15.2 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-309"  coordinates="13.8 -5.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-310"  coordinates="10.9 -23.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-311"  coordinates="-14.2 24.1 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-312"  coordinates="17.9 14.3 37.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-313"  coordinates="-29.2 -21.6 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-314"  coordinates="-41.8 -11.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-315"  coordinates="-18.9 -1.0 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-316"  coordinates="-21.8 52.0 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-317"  coordinates="23.3 10.4 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-318"  coordinates="4.0 0.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-319"  coordinates="8.0 26.9 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-320"  coordinates="-24.9 -4.2 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-321"  coordinates="95.4 56.7 51.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-322"  coordinates="-17.5 44.3 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-323"  coordinates="22.4 19.4 22.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-324"  coordinates="18.3 9.6 21.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-325"  coordinates="12.9 5.8 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-326"  coordinates="45.6 -7.2 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-327"  coordinates="35.6 18.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-328"  coordinates="-13.4 8.4 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-329"  coordinates="-12.1 -1.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-330"  coordinates="14.6 4.6 16.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-331"  coordinates="17.3 14.7 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-332"  coordinates="27.3 36.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-333"  coordinates="-4.6 9.6 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-334"  coordinates="-38.9 15.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-335"  coordinates="13.9 9.9 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-336"  coordinates="85.9 60.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-337"  coordinates="-31.1 12.5 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-338"  coordinates="17.3 -5.5 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-339"  coordinates="-30.4 0.5 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-340"  coordinates="14.5 5.6 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-341"  coordinates="47.7 -30.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-342"  coordinates="31.0 11.5 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-343"  coordinates="-1.2 5.1 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-344"  coordinates="-30.2 40.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-345"  coordinates="-35.9 -17.4 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-346"  coordinates="-0.1 25.1 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-347"  coordinates="31.9 18.7 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-348"  coordinates="27.6 17.0 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-349"  coordinates="32.1 23.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-350"  coordinates="21.6 -21.4 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-351"  coordinates="52.6 9.8 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-352"  coordinates="-30.9 -16.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-353"  coordinates="23.8 20.9 46.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-354"  coordinates="19.7 16.9 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-355"  coordinates="-21.1 -19.7 31.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-356"  coordinates="-19.6 -26.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-357"  coordinates="-40.4 -18.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-358"  coordinates="33.4 17.2 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-359"  coordinates="-11.4 -20.0 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-360"  coordinates="-5.1 19.5 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-361"  coordinates="11.2 -2.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-362"  coordinates="-3.9 4.2 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-363"  coordinates="3.9 -3.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-364"  coordinates="-34.3 -18.6 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-365"  coordinates="29.3 18.3 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-366"  coordinates="25.7 26.8 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-367"  coordinates="19.3 16.2 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-368"  coordinates="30.9 -3.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-369"  coordinates="5.7 2.1 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-370"  coordinates="15.9 9.3 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-371"  coordinates="7.2 27.5 31.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-372"  coordinates="-28.1 -20.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-373"  coordinates="13.5 -3.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-374"  coordinates="20.6 31.6 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-375"  coordinates="-37.4 4.1 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-376"  coordinates="-47.4 -34.1 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-377"  coordinates="-22.7 -1.4 15.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-378"  coordinates="22.5 4.2 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-379"  coordinates="3.0 22.3 21.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-380"  coordinates="21.9 22.7 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-381"  coordinates="-38.8 -11.8 23.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-382"  coordinates="11.8 5.7 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-383"  coordinates="-4.2 14.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-384"  coordinates="34.4 9.0 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-385"  coordinates="24.2 9.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-386"  coordinates="38.1 -29.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-387"  coordinates="28.6 5.5 20.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-388"  coordinates="36.8 44.0 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-389"  coordinates="-5.1 1.1 42.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-390"  coordinates="-24.2 -33.5 200.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-391"  coordinates="9.5 8.6 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-392"  coordinates="0.4 8.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-393"  coordinates="17.5 5.9 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-394"  coordinates="11.8 5.2 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-395"  coordinates="-13.9 -38.6 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-396"  coordinates="14.5 -72.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-397"  coordinates="-15.0 -3.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-398"  coordinates="62.4 -2.0 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-399"  coordinates="-38.3 14.4 51.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-400"  coordinates="64.4 38.3 33.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-401"  coordinates="-1.3 22.5 21.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-402"  coordinates="18.3 28.9 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-403"  coordinates="-32.6 18.5 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-404"  coordinates="16.9 11.5 18.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-405"  coordinates="18.8 4.0 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-406"  coordinates="9.4 17.0 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-407"  coordinates="10.6 25.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-408"  coordinates="25.0 6.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-409"  coordinates="18.0 15.7 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-410"  coordinates="28.3 10.8 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-411"  coordinates="6.4 0.3 21.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-412"  coordinates="31.5 20.3 47.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-413"  coordinates="21.0 -3.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-414"  coordinates="-25.7 -15.3 120.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-415"  coordinates="-30.4 23.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-416"  coordinates="37.9 -4.0 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-417"  coordinates="24.1 5.5 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-418"  coordinates="-3.2 11.3 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-419"  coordinates="32.2 21.0 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-420"  coordinates="21.1 17.3 15.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-421"  coordinates="2.2 17.2 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-422"  coordinates="-23.1 -2.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-423"  coordinates="31.3 18.9 29.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-424"  coordinates="29.9 11.3 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-425"  coordinates="20.0 21.4 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-426"  coordinates="-41.9 -4.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-427"  coordinates="-5.8 0.7 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-428"  coordinates="2.6 4.9 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-429"  coordinates="23.0 11.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-430"  coordinates="139.7 149.8 80.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-431"  coordinates="-20.4 -15.7 33.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-432"  coordinates="-8.9 26.1 38.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-433"  coordinates="26.8 -15.0 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-434"  coordinates="-16.9 -6.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-435"  coordinates="28.1 14.7 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-436"  coordinates="23.0 22.9 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-437"  coordinates="23.6 16.6 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-438"  coordinates="16.7 8.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-439"  coordinates="3.4 -10.3 32.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-440"  coordinates="7.1 39.0 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-441"  coordinates="-61.7 7.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-442"  coordinates="-24.4 -4.0 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-443"  coordinates="45.2 48.7 115.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-444"  coordinates="13.1 -10.4 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-445"  coordinates="-26.9 -22.4 49.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-446"  coordinates="5.6 6.1 19.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-447"  coordinates="-10.6 4.3 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-448"  coordinates="-32.8 -21.5 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-449"  coordinates="16.0 10.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-450"  coordinates="-45.4 -21.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-451"  coordinates="11.9 11.7 23.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-452"  coordinates="13.0 -6.5 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-453"  coordinates="13.5 6.4 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-454"  coordinates="-5.1 8.4 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-455"  coordinates="11.4 12.6 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-456"  coordinates="9.5 9.6 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-457"  coordinates="-59.7 -32.3 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-458"  coordinates="37.7 17.6 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-459"  coordinates="7.6 11.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-460"  coordinates="-1.5 5.3 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-461"  coordinates="33.8 11.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-462"  coordinates="-14.5 36.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-463"  coordinates="94.6 120.0 105.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-464"  coordinates="-3.4 -5.6 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-465"  coordinates="-165.4 -67.3 80.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-466"  coordinates="23.1 -2.1 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-467"  coordinates="10.0 3.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-468"  coordinates="7.2 14.0 11.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-469"  coordinates="-68.2 10.8 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-470"  coordinates="132.0 25.5 32.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-471"  coordinates="31.7 1.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-472"  coordinates="26.9 33.4 10.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-473"  coordinates="29.9 21.2 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-474"  coordinates="27.4 26.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-475"  coordinates="99.9 77.7 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-476"  coordinates="39.3 20.8 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-477"  coordinates="35.2 4.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-478"  coordinates="29.0 10.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-479"  coordinates="-6.0 23.4 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-480"  coordinates="-1.6 7.7 28.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-481"  coordinates="29.3 19.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-482"  coordinates="-1.4 4.4 29.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-483"  coordinates="4.6 1.9 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-484"  coordinates="11.6 -1.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-485"  coordinates="18.9 15.7 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-486"  coordinates="-30.4 -31.6 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-487"  coordinates="15.0 1.8 25.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-488"  coordinates="9.6 3.9 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-489"  coordinates="30.9 20.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-490"  coordinates="245.2 137.8 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-491"  coordinates="-19.7 -2.9 256.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-492"  coordinates="-23.8 -2.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-493"  coordinates="29.5 26.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-494"  coordinates="34.3 10.2 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-495"  coordinates="33.5 12.0 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-496"  coordinates="-16.4 -77.3 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-497"  coordinates="5.4 8.7 25.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-498"  coordinates="2.9 46.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-499"  coordinates="13.0 58.7 53.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-500"  coordinates="26.9 -0.9 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-501"  coordinates="22.8 9.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-502"  coordinates="-11.4 4.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-503"  coordinates="-45.9 8.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-504"  coordinates="26.1 10.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-505"  coordinates="9.1 12.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-506"  coordinates="124.5 16.5 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-507"  coordinates="14.5 -1.3 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-508"  coordinates="10.3 -1.0 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-509"  coordinates="10.7 9.1 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-510"  coordinates="17.3 8.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-511"  coordinates="16.6 -1.2 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-512"  coordinates="22.2 21.5 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-513"  coordinates="-0.0 6.7 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-514"  coordinates="22.5 9.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-515"  coordinates="9.9 -53.5 364.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-516"  coordinates="3.6 7.5 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-517"  coordinates="15.0 2.0 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-518"  coordinates="-51.3 -2.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-519"  coordinates="105.9 15.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-520"  coordinates="2.0 19.8 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-521"  coordinates="10.9 10.0 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-522"  coordinates="7.5 14.9 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-523"  coordinates="-14.3 18.9 11.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-524"  coordinates="-25.1 -21.0 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-525"  coordinates="-4.9 21.2 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-526"  coordinates="19.4 15.8 23.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-527"  coordinates="26.3 14.2 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-528"  coordinates="12.5 16.2 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-529"  coordinates="-29.4 -4.1 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-530"  coordinates="-31.8 5.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-531"  coordinates="0.5 -1.6 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-532"  coordinates="-21.1 50.6 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-533"  coordinates="-5.1 9.9 18.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-534"  coordinates="26.2 16.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-535"  coordinates="79.7 103.3 126.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-536"  coordinates="-25.8 -3.9 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-537"  coordinates="-20.6 -20.5 48.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-538"  coordinates="37.8 5.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-539"  coordinates="-17.0 -7.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-540"  coordinates="-6.3 29.6 39.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-541"  coordinates="-43.3 -1.4 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-542"  coordinates="25.3 -13.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-543"  coordinates="-24.1 -27.4 22.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-544"  coordinates="11.3 17.1 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-545"  coordinates="-6.4 -38.5 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-546"  coordinates="11.9 17.7 23.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-547"  coordinates="18.3 -12.3 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-548"  coordinates="-33.2 -13.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-549"  coordinates="-6.5 -2.3 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-550"  coordinates="-0.3 -5.0 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-551"  coordinates="16.7 -1.0 30.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-552"  coordinates="21.8 5.9 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-553"  coordinates="-21.2 -21.6 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-554"  coordinates="34.7 15.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-555"  coordinates="18.4 23.7 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-556"  coordinates="29.1 8.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-557"  coordinates="28.5 19.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-558"  coordinates="24.5 8.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-559"  coordinates="48.5 16.1 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-560"  coordinates="31.8 2.8 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-561"  coordinates="-0.5 6.3 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-562"  coordinates="-9.4 -39.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-563"  coordinates="22.6 18.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-564"  coordinates="33.0 14.7 34.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-565"  coordinates="9.5 -47.8 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-566"  coordinates="-18.1 -6.4 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-567"  coordinates="4.6 0.0 30.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-568"  coordinates="44.7 14.2 81.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-569"  coordinates="12.4 34.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-570"  coordinates="4.3 4.1 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-571"  coordinates="222.6 -77.4 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-572"  coordinates="-19.2 -5.2 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-573"  coordinates="18.5 -1.9 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-574"  coordinates="11.1 -1.7 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-575"  coordinates="28.9 11.2 73.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-576"  coordinates="7.9 -3.5 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-577"  coordinates="2.4 32.5 33.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-578"  coordinates="-14.1 -2.8 34.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-579"  coordinates="15.5 12.5 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-580"  coordinates="-8.6 2.8 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-581"  coordinates="-27.7 -16.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-582"  coordinates="-36.1 -0.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-583"  coordinates="20.6 10.1 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-584"  coordinates="13.5 -19.9 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-585"  coordinates="-40.2 2.0 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-586"  coordinates="-33.5 14.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-587"  coordinates="0.6 27.4 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-588"  coordinates="24.4 41.5 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-589"  coordinates="20.3 9.8 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-590"  coordinates="-8.4 -0.8 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-591"  coordinates="36.4 4.4 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-592"  coordinates="6.6 12.4 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-593"  coordinates="20.0 7.9 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-594"  coordinates="-15.7 -9.5 206.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-595"  coordinates="70.4 84.5 31.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-596"  coordinates="-6.3 9.5 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-597"  coordinates="25.4 1.8 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-598"  coordinates="-5.6 9.0 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-599"  coordinates="-27.3 -13.6 38.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-600"  coordinates="11.1 15.3 19.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-601"  coordinates="24.3 4.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-602"  coordinates="11.9 -6.7 32.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-603"  coordinates="10.1 15.0 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-604"  coordinates="42.4 33.2 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-605"  coordinates="32.3 18.7 74.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-606"  coordinates="-8.7 0.3 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-607"  coordinates="-32.5 6.7 228.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-608"  coordinates="-101.6 -63.6 101.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-609"  coordinates="-11.8 3.1 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-610"  coordinates="15.4 -1.7 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-611"  coordinates="5.5 -5.2 20.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-612"  coordinates="-6.3 -16.2 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-613"  coordinates="-17.5 -0.9 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-614"  coordinates="39.1 10.7 55.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-615"  coordinates="24.6 8.9 92.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-616"  coordinates="23.2 -34.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-617"  coordinates="28.1 16.7 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-618"  coordinates="90.3 59.6 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-619"  coordinates="7.3 17.2 27.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-620"  coordinates="-163.6 -102.5 34.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-621"  coordinates="16.9 14.6 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-622"  coordinates="2.9 9.5 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-623"  coordinates="-6.6 0.8 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-624"  coordinates="7.0 -0.8 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-625"  coordinates="-41.9 -6.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-626"  coordinates="-1.9 36.6 25.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-627"  coordinates="18.4 14.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-628"  coordinates="-43.3 -68.2 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-629"  coordinates="121.1 78.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-630"  coordinates="-10.1 8.3 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-631"  coordinates="25.5 24.5 77.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-632"  coordinates="-35.8 -10.0 215.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-633"  coordinates="-33.7 5.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-634"  coordinates="32.8 14.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-635"  coordinates="-51.5 3.0 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-636"  coordinates="21.4 39.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-637"  coordinates="16.4 6.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-638"  coordinates="25.9 20.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-639"  coordinates="19.4 37.6 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-640"  coordinates="-34.6 -30.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-641"  coordinates="62.5 4.1 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-642"  coordinates="31.5 -9.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-643"  coordinates="21.3 10.3 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-644"  coordinates="36.1 3.9 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-645"  coordinates="-6.2 2.5 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-646"  coordinates="20.4 9.4 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-647"  coordinates="-28.5 -16.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-648"  coordinates="-8.0 8.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-649"  coordinates="-19.5 -4.3 47.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-650"  coordinates="-15.5 -33.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-651"  coordinates="12.1 4.6 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-652"  coordinates="11.8 7.5 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-653"  coordinates="6.2 2.6 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-654"  coordinates="6.1 22.5 14.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-655"  coordinates="-7.0 5.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-656"  coordinates="115.5 41.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-657"  coordinates="29.7 7.2 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-658"  coordinates="21.2 16.0 67.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-659"  coordinates="-43.2 -5.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-660"  coordinates="23.3 10.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-661"  coordinates="-29.5 -13.3 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-662"  coordinates="-13.4 5.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-663"  coordinates="-11.3 -6.6 31.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-664"  coordinates="-26.5 -5.1 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-665"  coordinates="-8.2 -3.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-666"  coordinates="2.3 13.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-667"  coordinates="17.6 15.3 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-668"  coordinates="87.4 59.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-669"  coordinates="20.1 -4.0 26.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-670"  coordinates="-38.5 -21.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-671"  coordinates="11.8 7.3 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-672"  coordinates="2.1 -2.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-673"  coordinates="-10.6 10.4 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-674"  coordinates="-8.4 -32.4 159.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-675"  coordinates="-27.9 -20.3 21.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-676"  coordinates="253.9 -129.4 295.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-677"  coordinates="-8.9 17.8 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-678"  coordinates="-187.7 -99.1 21.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-679"  coordinates="27.9 11.3 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-680"  coordinates="13.8 -10.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-681"  coordinates="-25.5 -7.1 20.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-682"  coordinates="21.9 28.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-683"  coordinates="-47.2 -7.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-684"  coordinates="22.4 26.7 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-685"  coordinates="95.4 -9.9 71.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-686"  coordinates="-0.2 6.4 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-687"  coordinates="-5.3 14.6 38.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-688"  coordinates="-25.7 6.6 177.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-689"  coordinates="-40.3 -2.1 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-690"  coordinates="0.4 -1.4 17.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-691"  coordinates="24.8 1.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-692"  coordinates="10.7 -7.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-693"  coordinates="24.3 7.5 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-694"  coordinates="33.3 18.7 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-695"  coordinates="-30.8 8.4 41.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-696"  coordinates="-39.4 -12.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-697"  coordinates="-26.3 -13.2 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-698"  coordinates="-1.1 1.2 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-699"  coordinates="-49.4 -9.4 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-700"  coordinates="-5.3 -0.1 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-701"  coordinates="17.8 6.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-702"  coordinates="20.2 22.8 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-703"  coordinates="107.7 7.4 65.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-704"  coordinates="-1.5 6.2 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-705"  coordinates="-28.9 -1.8 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-706"  coordinates="-15.8 8.4 61.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-707"  coordinates="-32.7 -49.6 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-708"  coordinates="59.1 20.5 70.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-709"  coordinates="23.9 22.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-710"  coordinates="-34.0 2.2 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-711"  coordinates="9.1 4.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-712"  coordinates="37.2 -3.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-713"  coordinates="-21.7 -11.4 20.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-714"  coordinates="18.1 7.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-715"  coordinates="28.4 18.9 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-716"  coordinates="-16.9 -2.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-717"  coordinates="-4.6 -5.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-718"  coordinates="24.8 15.5 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-719"  coordinates="-42.9 -16.5 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-720"  coordinates="29.0 12.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-721"  coordinates="-99.5 -134.2 42.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-722"  coordinates="26.6 35.8 11.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-723"  coordinates="19.1 9.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-724"  coordinates="-3.0 -1.4 36.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-725"  coordinates="-24.9 13.3 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-726"  coordinates="-49.3 -25.6 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-727"  coordinates="35.8 20.7 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-728"  coordinates="-46.9 -35.8 146.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-729"  coordinates="13.5 42.2 20.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-730"  coordinates="-12.7 -18.2 16.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-731"  coordinates="-4.4 -1.1 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-732"  coordinates="-20.1 29.7 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-733"  coordinates="-3.9 10.2 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-734"  coordinates="13.5 -9.3 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-735"  coordinates="2.4 1.7 46.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-736"  coordinates="30.9 19.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-737"  coordinates="-6.7 17.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-738"  coordinates="-3.7 4.6 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-739"  coordinates="8.7 -19.0 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-740"  coordinates="13.9 25.7 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-741"  coordinates="-24.6 -20.7 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-742"  coordinates="27.0 14.8 51.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-743"  coordinates="0.1 4.0 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-744"  coordinates="1.4 2.2 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-745"  coordinates="3.0 -22.1 25.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-746"  coordinates="-27.2 21.5 36.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-747"  coordinates="26.6 19.6 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-748"  coordinates="-30.9 -30.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-749"  coordinates="-82.8 -30.3 136.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-750"  coordinates="-6.5 3.5 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-751"  coordinates="4.5 7.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-752"  coordinates="12.7 -17.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-753"  coordinates="-1.2 9.6 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-754"  coordinates="90.2 51.5 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-755"  coordinates="14.4 -1.1 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-756"  coordinates="32.2 22.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-757"  coordinates="15.4 11.1 18.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-758"  coordinates="122.1 82.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-759"  coordinates="-27.9 -3.4 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-760"  coordinates="-40.2 -3.5 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-761"  coordinates="33.6 12.7 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-762"  coordinates="19.0 -0.4 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-763"  coordinates="-0.0 30.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-764"  coordinates="8.2 4.6 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-765"  coordinates="15.6 4.3 23.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-766"  coordinates="-4.6 8.1 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-767"  coordinates="23.2 14.8 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-768"  coordinates="34.1 10.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-769"  coordinates="11.4 9.2 26.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-770"  coordinates="13.4 30.3 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-771"  coordinates="-13.9 2.3 30.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-772"  coordinates="-39.5 -3.3 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-773"  coordinates="-129.4 103.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-774"  coordinates="9.3 12.0 20.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-775"  coordinates="29.4 21.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-776"  coordinates="23.9 12.9 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-777"  coordinates="-1.3 3.1 30.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-778"  coordinates="15.2 11.2 19.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-779"  coordinates="-15.8 -4.1 60.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-780"  coordinates="14.2 25.9 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-781"  coordinates="25.8 9.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-782"  coordinates="117.3 31.7 39.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-783"  coordinates="4.5 4.6 43.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-784"  coordinates="9.1 -5.4 21.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-785"  coordinates="-34.0 -26.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-786"  coordinates="-24.4 -2.7 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-787"  coordinates="23.6 14.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-788"  coordinates="15.7 3.1 23.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-789"  coordinates="-4.5 11.1 34.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-790"  coordinates="9.0 12.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-791"  coordinates="-1.2 -3.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-792"  coordinates="-175.6 52.3 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-793"  coordinates="-37.5 -15.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-794"  coordinates="2.9 10.6 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-795"  coordinates="29.3 7.4 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-796"  coordinates="12.0 1.7 70.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-797"  coordinates="23.8 18.7 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-798"  coordinates="-116.2 111.3 41.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-799"  coordinates="9.8 2.4 28.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-800"  coordinates="6.7 18.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-801"  coordinates="30.9 37.4 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-802"  coordinates="25.0 9.7 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-803"  coordinates="-26.0 -11.2 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-804"  coordinates="19.3 7.6 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-805"  coordinates="-18.4 -15.6 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-806"  coordinates="16.3 10.8 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-807"  coordinates="15.7 20.2 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-808"  coordinates="-1.9 0.6 20.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-809"  coordinates="-67.8 -7.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-810"  coordinates="10.9 7.9 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-811"  coordinates="-29.0 -40.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-812"  coordinates="24.7 22.3 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-813"  coordinates="-12.9 -13.1 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-814"  coordinates="41.8 4.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-815"  coordinates="2.5 12.5 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-816"  coordinates="-14.2 -10.5 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-817"  coordinates="-56.0 2.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-818"  coordinates="-3.5 11.9 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-819"  coordinates="8.8 30.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-820"  coordinates="26.5 18.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-821"  coordinates="-30.4 -11.8 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-822"  coordinates="-34.2 -7.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-823"  coordinates="22.8 19.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-824"  coordinates="-38.3 74.0 31.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-825"  coordinates="23.3 9.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-826"  coordinates="-8.4 11.1 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-827"  coordinates="-40.7 -11.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-828"  coordinates="-50.1 -18.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-829"  coordinates="35.2 46.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-830"  coordinates="23.5 -0.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-831"  coordinates="-8.4 4.2 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-832"  coordinates="20.4 18.6 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-833"  coordinates="15.4 3.1 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-834"  coordinates="-46.3 -5.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-835"  coordinates="-36.8 -26.1 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-836"  coordinates="13.3 12.1 34.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-837"  coordinates="-18.8 -23.9 19.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-838"  coordinates="14.2 4.6 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-839"  coordinates="27.9 11.8 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-840"  coordinates="23.7 7.1 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-841"  coordinates="1.9 -6.7 59.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-842"  coordinates="32.0 14.1 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-843"  coordinates="-52.1 -7.7 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-844"  coordinates="-9.3 -14.9 23.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-845"  coordinates="13.8 16.8 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-846"  coordinates="-22.4 0.2 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-847"  coordinates="-4.5 -18.9 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-848"  coordinates="32.6 26.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-849"  coordinates="-35.2 -16.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-850"  coordinates="18.7 11.9 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-851"  coordinates="-2.7 21.1 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-852"  coordinates="0.2 0.2 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-853"  coordinates="27.6 11.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-854"  coordinates="-32.1 -11.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-855"  coordinates="-5.8 1.1 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-856"  coordinates="-39.7 5.4 15.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-857"  coordinates="-15.9 -21.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-858"  coordinates="26.6 20.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-859"  coordinates="-7.6 6.2 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-860"  coordinates="-14.5 8.5 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-861"  coordinates="12.0 13.7 19.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-862"  coordinates="101.0 83.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-863"  coordinates="12.5 3.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-864"  coordinates="-41.0 -2.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-865"  coordinates="28.0 14.0 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-866"  coordinates="-11.3 -19.8 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-867"  coordinates="0.8 12.8 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-868"  coordinates="-18.8 -26.6 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-869"  coordinates="17.4 4.4 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-870"  coordinates="0.5 3.6 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-871"  coordinates="-26.2 -17.0 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-872"  coordinates="7.8 7.8 25.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-873"  coordinates="-40.8 -4.5 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-874"  coordinates="8.1 1.5 47.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-875"  coordinates="10.9 3.3 21.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-876"  coordinates="13.9 20.5 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-877"  coordinates="1.7 3.7 19.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-878"  coordinates="-40.7 4.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-879"  coordinates="-36.0 -13.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-880"  coordinates="-0.0 4.5 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-881"  coordinates="-5.5 14.2 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-882"  coordinates="-34.4 -24.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-883"  coordinates="5.9 -11.2 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-884"  coordinates="28.2 11.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-885"  coordinates="26.1 25.7 26.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-886"  coordinates="-16.8 2.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-887"  coordinates="-35.5 -23.1 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-888"  coordinates="25.9 18.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-889"  coordinates="2.2 27.2 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-890"  coordinates="24.7 5.6 11.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-891"  coordinates="38.9 18.2 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-892"  coordinates="-124.4 -126.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-893"  coordinates="26.4 2.8 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-894"  coordinates="33.5 6.6 105.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-895"  coordinates="25.0 21.5 24.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-896"  coordinates="-19.1 -6.8 36.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-897"  coordinates="43.5 18.8 67.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-898"  coordinates="-47.6 -2.4 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-899"  coordinates="61.1 -38.0 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-900"  coordinates="31.6 9.8 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-901"  coordinates="116.2 7.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-902"  coordinates="111.3 -29.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-903"  coordinates="-0.3 19.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-904"  coordinates="116.8 19.3 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-905"  coordinates="-6.4 5.1 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-906"  coordinates="10.4 8.3 29.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-907"  coordinates="26.0 9.4 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-908"  coordinates="29.2 22.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-909"  coordinates="-8.4 -40.4 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-910"  coordinates="-78.7 -27.2 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-911"  coordinates="19.8 10.7 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-912"  coordinates="10.3 7.4 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-913"  coordinates="-69.3 -31.8 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-914"  coordinates="10.9 48.7 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-915"  coordinates="6.0 7.3 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-916"  coordinates="-27.8 -5.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-917"  coordinates="-5.1 -4.5 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-918"  coordinates="16.8 -67.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-919"  coordinates="-29.2 -22.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-920"  coordinates="24.6 19.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-921"  coordinates="-36.8 -1.4 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-922"  coordinates="-48.9 -34.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-923"  coordinates="22.1 21.4 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-924"  coordinates="22.6 3.2 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-925"  coordinates="9.3 20.0 87.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-926"  coordinates="3.4 4.6 16.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-927"  coordinates="9.2 17.4 37.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-928"  coordinates="34.6 8.0 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-929"  coordinates="-26.0 -32.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-930"  coordinates="-3.3 5.3 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-931"  coordinates="20.0 15.4 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-932"  coordinates="26.2 6.8 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-933"  coordinates="-30.3 -27.6 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-934"  coordinates="107.3 101.2 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-935"  coordinates="13.2 21.1 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-936"  coordinates="32.8 5.7 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-937"  coordinates="13.3 41.7 63.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-938"  coordinates="24.0 11.2 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-939"  coordinates="2.1 -3.3 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-940"  coordinates="-143.7 -120.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-941"  coordinates="66.9 -180.8 100.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-942"  coordinates="28.0 9.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-943"  coordinates="-40.6 -16.4 48.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-944"  coordinates="102.0 37.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-945"  coordinates="20.2 23.2 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-946"  coordinates="-72.4 9.6 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-947"  coordinates="1.5 12.0 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-948"  coordinates="29.1 16.0 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-949"  coordinates="20.1 21.0 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-950"  coordinates="6.8 6.1 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-951"  coordinates="10.7 5.0 31.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-952"  coordinates="17.3 13.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-953"  coordinates="99.1 75.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-954"  coordinates="5.2 31.0 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-955"  coordinates="27.9 17.9 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-956"  coordinates="23.9 13.4 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-957"  coordinates="13.8 13.8 22.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-958"  coordinates="25.4 20.8 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-959"  coordinates="-38.1 -17.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-960"  coordinates="23.2 5.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-961"  coordinates="1.7 24.6 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-962"  coordinates="37.4 15.0 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-963"  coordinates="9.8 -3.4 22.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-964"  coordinates="13.0 5.2 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-965"  coordinates="-5.2 6.2 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-966"  coordinates="19.7 16.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-967"  coordinates="15.3 12.0 29.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-968"  coordinates="20.3 13.6 27.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-969"  coordinates="-31.0 -8.5 19.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-970"  coordinates="6.0 4.6 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-971"  coordinates="-1.0 2.1 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-972"  coordinates="-15.0 -1.9 18.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-973"  coordinates="-5.4 0.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-974"  coordinates="1.1 -5.6 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-975"  coordinates="9.7 -14.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-976"  coordinates="-27.5 6.2 68.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-977"  coordinates="29.6 25.4 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-978"  coordinates="-45.4 36.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-979"  coordinates="6.3 24.3 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-980"  coordinates="32.2 9.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-981"  coordinates="-42.5 -15.2 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-982"  coordinates="14.5 12.9 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-983"  coordinates="19.4 -24.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-984"  coordinates="-43.4 -17.5 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-985"  coordinates="31.3 5.0 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-986"  coordinates="17.9 20.3 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-987"  coordinates="6.9 6.3 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-988"  coordinates="129.1 -23.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-989"  coordinates="11.1 -9.0 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-990"  coordinates="-53.0 1.3 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-991"  coordinates="42.1 36.1 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-992"  coordinates="305.6 294.6 229.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-993"  coordinates="18.2 6.4 36.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-994"  coordinates="15.3 -3.6 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-995"  coordinates="-14.4 3.2 19.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-996"  coordinates="12.3 -3.9 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-997"  coordinates="40.3 -41.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-998"  coordinates="8.6 21.5 21.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-999"  coordinates="20.3 11.1 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1000" coordinates="17.7 25.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1001" coordinates="-35.3 -8.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1002" coordinates="-25.3 -20.8 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1003" coordinates="11.7 -3.5 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1004" coordinates="-29.6 -13.1 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1005" coordinates="22.3 7.7 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1006" coordinates="-14.3 33.6 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1007" coordinates="23.1 20.4 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1008" coordinates="31.1 -11.0 17.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1009" coordinates="15.2 8.5 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1010" coordinates="-13.4 4.3 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1011" coordinates="38.3 31.4 23.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1012" coordinates="128.8 -216.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1013" coordinates="9.6 5.4 23.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1014" coordinates="-9.6 -12.8 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1015" coordinates="18.1 16.7 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1016" coordinates="-8.5 16.2 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1017" coordinates="15.5 -12.3 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1018" coordinates="5.4 20.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1019" coordinates="7.8 18.6 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1020" coordinates="20.0 5.5 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1021" coordinates="16.6 21.6 14.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1022" coordinates="52.8 75.3 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1023" coordinates="-3.0 4.2 33.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1024" coordinates="16.0 16.6 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1025" coordinates="-0.6 16.4 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1026" coordinates="-3.7 -1.5 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1027" coordinates="66.1 112.9 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1028" coordinates="20.8 8.0 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1029" coordinates="-1.7 4.0 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1030" coordinates="-21.4 61.3 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1031" coordinates="24.5 18.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1032" coordinates="9.8 17.4 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1033" coordinates="-32.2 -18.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1034" coordinates="-4.9 4.5 23.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1035" coordinates="10.7 -4.8 15.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1036" coordinates="-61.4 -57.4 99.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1037" coordinates="17.5 12.8 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1038" coordinates="-36.0 2.7 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1039" coordinates="11.6 23.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1040" coordinates="2.6 11.8 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1041" coordinates="11.1 1.6 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1042" coordinates="4.5 12.1 32.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1043" coordinates="19.4 11.2 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1044" coordinates="1.2 17.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1045" coordinates="-5.0 14.6 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1046" coordinates="35.0 -2.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1047" coordinates="86.5 60.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1048" coordinates="20.5 37.4 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1049" coordinates="34.0 38.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1050" coordinates="-49.7 -8.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1051" coordinates="9.0 4.8 22.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1052" coordinates="34.4 10.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1053" coordinates="-32.8 -12.6 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1054" coordinates="-8.9 3.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1055" coordinates="21.4 12.3 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1056" coordinates="-17.0 -3.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1057" coordinates="-35.0 -15.8 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1058" coordinates="35.6 22.6 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1059" coordinates="-7.8 6.5 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1060" coordinates="6.5 10.4 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1061" coordinates="1.9 -10.8 18.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1062" coordinates="25.7 54.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1063" coordinates="14.2 6.6 15.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1064" coordinates="1.4 5.5 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1065" coordinates="-3.6 -57.0 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1066" coordinates="153.2 68.2 69.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1067" coordinates="0.7 -8.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1068" coordinates="-12.7 -6.1 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1069" coordinates="1.6 7.6 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1070" coordinates="-36.5 -22.2 31.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1071" coordinates="15.9 15.3 17.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1072" coordinates="-44.5 -12.7 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1073" coordinates="30.2 -8.7 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1074" coordinates="32.1 -13.0 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1075" coordinates="85.8 1.6 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1076" coordinates="-20.7 -19.2 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1077" coordinates="27.8 -8.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1078" coordinates="-26.1 -23.1 25.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1079" coordinates="-7.4 14.6 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1080" coordinates="22.6 5.9 27.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1081" coordinates="-20.2 -23.5 174.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1082" coordinates="5.5 3.0 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1083" coordinates="-25.7 -19.2 30.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1084" coordinates="-19.9 -24.8 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1085" coordinates="36.6 25.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1086" coordinates="28.5 13.3 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1087" coordinates="-27.2 -16.1 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1088" coordinates="35.8 3.4 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1089" coordinates="12.6 10.2 150.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1090" coordinates="16.1 15.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1091" coordinates="-10.5 4.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1092" coordinates="-28.1 -11.9 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1093" coordinates="-105.6 -89.8 98.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1094" coordinates="-0.2 10.1 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1095" coordinates="-2.1 6.4 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1096" coordinates="11.0 14.9 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1097" coordinates="46.6 125.1 69.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1098" coordinates="124.8 74.7 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1099" coordinates="11.3 -1.8 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1100" coordinates="17.6 6.6 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1101" coordinates="19.5 19.6 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1102" coordinates="12.2 37.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1103" coordinates="28.5 12.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1104" coordinates="35.7 9.2 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1105" coordinates="18.7 1.9 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1106" coordinates="23.0 5.5 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1107" coordinates="33.4 13.5 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1108" coordinates="-61.3 -55.6 103.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1109" coordinates="-57.4 16.3 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1110" coordinates="18.0 -2.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1111" coordinates="23.5 16.0 50.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1112" coordinates="6.0 4.0 19.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1113" coordinates="-21.0 -3.4 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1114" coordinates="-88.8 -60.6 29.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1115" coordinates="72.7 47.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1116" coordinates="1.9 19.7 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1117" coordinates="4.6 4.7 53.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1118" coordinates="36.3 17.9 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1119" coordinates="-19.3 -27.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1120" coordinates="20.7 14.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1121" coordinates="5.1 -1.2 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1122" coordinates="95.3 43.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1123" coordinates="22.6 13.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1124" coordinates="6.7 17.3 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1125" coordinates="37.2 12.5 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1126" coordinates="-31.0 -39.1 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1127" coordinates="120.5 12.6 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1128" coordinates="-35.5 8.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1129" coordinates="21.7 2.6 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1130" coordinates="9.9 5.1 34.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1131" coordinates="5.7 24.7 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1132" coordinates="24.6 26.8 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1133" coordinates="3.3 4.9 24.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1134" coordinates="43.2 15.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1135" coordinates="-17.1 -2.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1136" coordinates="33.2 14.8 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1137" coordinates="-0.2 9.9 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1138" coordinates="2.8 -19.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1139" coordinates="-37.2 -7.4 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1140" coordinates="8.7 63.2 27.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1141" coordinates="22.1 15.4 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1142" coordinates="4.9 3.1 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1143" coordinates="19.7 -13.4 38.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1144" coordinates="-19.7 -10.8 52.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1145" coordinates="-49.1 -13.3 63.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1146" coordinates="-6.5 -51.7 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1147" coordinates="128.6 60.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1148" coordinates="13.6 23.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1149" coordinates="-4.7 -2.9 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1150" coordinates="17.1 13.6 28.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1151" coordinates="33.6 3.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1152" coordinates="3.9 19.3 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1153" coordinates="-3.1 4.7 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1154" coordinates="-30.1 -25.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1155" coordinates="-22.6 14.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1156" coordinates="17.3 38.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1157" coordinates="4.8 -15.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1158" coordinates="-39.3 -26.2 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1159" coordinates="35.6 18.7 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1160" coordinates="-1.1 9.7 22.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1161" coordinates="-46.2 -15.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1162" coordinates="-1.5 6.3 11.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1163" coordinates="24.8 0.4 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1164" coordinates="7.8 12.7 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1165" coordinates="-4.0 9.6 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1166" coordinates="25.8 -4.4 22.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1167" coordinates="23.1 21.1 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1168" coordinates="-53.4 -16.2 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1169" coordinates="-40.5 -9.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1170" coordinates="24.3 10.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1171" coordinates="-40.8 -10.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1172" coordinates="14.3 21.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1173" coordinates="15.6 11.8 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1174" coordinates="20.1 35.0 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1175" coordinates="7.4 -12.5 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1176" coordinates="21.5 2.6 130.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1177" coordinates="-50.8 -104.8 94.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1178" coordinates="10.6 2.3 20.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1179" coordinates="-84.3 -31.2 97.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1180" coordinates="23.4 7.7 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1181" coordinates="-126.8 -134.0 26.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1182" coordinates="22.2 12.2 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1183" coordinates="27.0 21.5 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1184" coordinates="13.4 11.2 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1185" coordinates="2.7 -0.5 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1186" coordinates="12.2 2.3 19.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1187" coordinates="29.0 -1.4 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1188" coordinates="32.2 3.7 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1189" coordinates="25.8 11.6 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1190" coordinates="-43.2 -9.9 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1191" coordinates="14.8 6.5 24.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1192" coordinates="-18.5 -12.7 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1193" coordinates="23.2 18.2 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1194" coordinates="31.4 8.1 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1195" coordinates="3.4 9.5 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1196" coordinates="16.0 2.0 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1197" coordinates="5.1 4.9 27.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1198" coordinates="15.2 10.8 21.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1199" coordinates="26.6 16.3 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1200" coordinates="-5.3 2.0 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1201" coordinates="30.8 -11.0 130.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1202" coordinates="-13.4 17.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1203" coordinates="-9.4 0.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1204" coordinates="114.5 -2.2 40.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1205" coordinates="25.7 31.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1206" coordinates="12.7 8.3 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1207" coordinates="26.6 11.0 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1208" coordinates="-39.7 83.7 85.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1209" coordinates="23.9 12.9 25.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1210" coordinates="-9.1 17.3 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1211" coordinates="25.9 22.0 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1212" coordinates="17.7 12.2 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1213" coordinates="52.4 -53.2 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1214" coordinates="5.0 8.2 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1215" coordinates="8.7 -4.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1216" coordinates="-6.1 7.7 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1217" coordinates="-7.8 53.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1218" coordinates="109.1 -10.9 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1219" coordinates="-11.8 0.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1220" coordinates="22.1 14.8 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1221" coordinates="-25.5 -37.4 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1222" coordinates="20.0 19.0 93.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1223" coordinates="7.1 4.4 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1224" coordinates="-7.6 -3.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1225" coordinates="-10.0 14.3 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1226" coordinates="31.2 10.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1227" coordinates="-151.3 -75.0 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1228" coordinates="-26.6 -2.0 19.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1229" coordinates="-131.4 -72.1 70.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1230" coordinates="-24.1 -13.2 61.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1231" coordinates="27.6 5.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1232" coordinates="-16.2 11.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1233" coordinates="-28.5 -8.1 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1234" coordinates="-39.2 -1.4 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1235" coordinates="-20.9 -15.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1236" coordinates="-27.5 13.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1237" coordinates="8.7 21.3 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1238" coordinates="3.6 3.6 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1239" coordinates="-158.9 -37.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1240" coordinates="-47.4 -20.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1241" coordinates="4.0 19.2 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1242" coordinates="7.1 5.1 20.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1243" coordinates="3.1 -19.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1244" coordinates="-3.2 1.7 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1245" coordinates="17.9 33.7 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1246" coordinates="18.8 11.4 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1247" coordinates="22.2 12.3 11.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1248" coordinates="-74.4 -8.6 138.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1249" coordinates="10.0 38.8 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1250" coordinates="21.7 12.5 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1251" coordinates="-4.2 22.3 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1252" coordinates="-16.8 7.7 21.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1253" coordinates="-43.8 -9.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1254" coordinates="-68.9 -49.2 83.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1255" coordinates="-1.8 7.9 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1256" coordinates="31.0 -7.0 21.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1257" coordinates="29.9 12.8 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1258" coordinates="-8.0 14.3 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1259" coordinates="14.4 -2.9 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1260" coordinates="-39.1 2.4 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1261" coordinates="13.0 20.5 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1262" coordinates="94.4 24.5 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1263" coordinates="10.3 13.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1264" coordinates="7.9 6.1 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1265" coordinates="17.2 13.3 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1266" coordinates="18.6 -9.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1267" coordinates="22.8 -3.3 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1268" coordinates="11.4 0.2 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1269" coordinates="-15.1 10.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1270" coordinates="-107.5 164.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1271" coordinates="14.6 -9.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1272" coordinates="-4.0 -1.9 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1273" coordinates="12.9 7.1 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1274" coordinates="-0.8 -16.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1275" coordinates="-14.0 -0.6 23.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1276" coordinates="91.5 45.7 35.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1277" coordinates="24.9 -4.9 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1278" coordinates="-7.5 7.9 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1279" coordinates="23.3 22.3 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1280" coordinates="20.3 27.2 32.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1281" coordinates="22.8 7.1 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1282" coordinates="30.7 13.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1283" coordinates="-7.4 -11.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1284" coordinates="16.2 6.4 14.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1285" coordinates="-36.6 13.0 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1286" coordinates="24.2 15.5 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1287" coordinates="-6.1 -15.6 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1288" coordinates="-42.5 -51.2 216.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1289" coordinates="10.9 34.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1290" coordinates="21.5 17.9 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1291" coordinates="18.7 -0.4 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1292" coordinates="21.7 12.9 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1293" coordinates="-10.3 15.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1294" coordinates="13.9 8.5 18.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1295" coordinates="28.3 5.6 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1296" coordinates="-18.4 -18.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1297" coordinates="-28.5 8.2 99.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1298" coordinates="16.0 8.4 21.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1299" coordinates="14.6 13.0 25.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1300" coordinates="22.6 4.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1301" coordinates="13.8 2.5 22.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1302" coordinates="7.1 11.0 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1303" coordinates="72.3 -14.2 26.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1304" coordinates="14.7 7.5 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1305" coordinates="35.2 16.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1306" coordinates="-21.8 -6.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1307" coordinates="35.2 25.1 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1308" coordinates="-55.3 -27.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1309" coordinates="-16.1 11.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1310" coordinates="-33.5 -31.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1311" coordinates="-30.2 -11.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1312" coordinates="39.4 2.7 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1313" coordinates="21.3 -2.0 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1314" coordinates="9.7 -41.3 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1315" coordinates="24.0 6.8 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1316" coordinates="-34.8 -5.7 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1317" coordinates="-47.4 1.3 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1318" coordinates="36.5 12.0 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1319" coordinates="25.4 17.2 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1320" coordinates="27.8 20.3 36.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1321" coordinates="27.4 1.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1322" coordinates="45.3 17.2 198.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1323" coordinates="51.8 19.7 99.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1324" coordinates="-6.5 10.5 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1325" coordinates="18.0 -34.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1326" coordinates="-10.1 20.6 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1327" coordinates="-6.2 28.8 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1328" coordinates="11.5 5.2 48.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1329" coordinates="28.1 -6.0 26.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1330" coordinates="4.4 -9.2 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1331" coordinates="-35.1 -2.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1332" coordinates="-183.5 -17.6 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1333" coordinates="27.9 23.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1334" coordinates="-42.6 -2.0 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1335" coordinates="25.2 5.4 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1336" coordinates="27.1 10.2 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1337" coordinates="-19.7 -9.0 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1338" coordinates="20.3 14.7 48.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1339" coordinates="-20.6 -7.4 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1340" coordinates="23.2 21.9 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1341" coordinates="-4.8 7.0 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1342" coordinates="24.4 9.1 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1343" coordinates="30.5 19.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1344" coordinates="-14.1 12.3 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1345" coordinates="-36.3 -14.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1346" coordinates="71.0 42.7 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1347" coordinates="48.1 33.1 85.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1348" coordinates="-50.9 -0.9 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1349" coordinates="4.5 33.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1350" coordinates="-13.6 10.3 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1351" coordinates="18.0 8.0 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1352" coordinates="-5.5 5.0 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1353" coordinates="-6.2 -4.5 27.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1354" coordinates="15.1 9.7 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1355" coordinates="-29.9 -8.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1356" coordinates="-6.6 18.0 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1357" coordinates="7.0 58.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1358" coordinates="3.0 -6.0 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1359" coordinates="21.0 22.5 111.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1360" coordinates="5.4 17.6 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1361" coordinates="-41.9 -11.7 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1362" coordinates="5.4 15.0 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1363" coordinates="16.6 15.2 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1364" coordinates="-4.3 -10.9 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1365" coordinates="-15.8 10.2 27.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1366" coordinates="-29.5 -25.8 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1367" coordinates="-9.7 1.2 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1368" coordinates="11.6 10.9 26.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1369" coordinates="-1.5 24.2 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1370" coordinates="16.9 9.5 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1371" coordinates="1.8 3.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1372" coordinates="-33.4 -17.0 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1373" coordinates="11.4 5.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1374" coordinates="22.4 -25.2 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1375" coordinates="29.7 22.5 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1376" coordinates="21.2 54.8 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1377" coordinates="-39.6 -18.0 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1378" coordinates="92.2 -20.1 63.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1379" coordinates="29.0 -3.4 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1380" coordinates="-32.3 6.4 14.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1381" coordinates="18.3 47.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1382" coordinates="-42.5 -21.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1383" coordinates="-178.1 -77.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1384" coordinates="21.8 13.8 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1385" coordinates="20.7 17.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1386" coordinates="-39.5 -5.6 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1387" coordinates="22.7 19.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1388" coordinates="-35.5 4.5 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1389" coordinates="24.6 -4.0 19.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1390" coordinates="28.1 16.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1391" coordinates="3.2 -2.7 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1392" coordinates="9.1 6.1 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1393" coordinates="27.5 17.8 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1394" coordinates="23.1 15.7 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1395" coordinates="13.8 22.2 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1396" coordinates="9.4 22.3 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1397" coordinates="69.6 29.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1398" coordinates="37.6 -42.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1399" coordinates="24.2 15.8 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1400" coordinates="31.4 -6.5 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1401" coordinates="-58.6 -18.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1402" coordinates="15.8 44.9 22.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1403" coordinates="28.6 -80.0 85.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1404" coordinates="12.8 -1.8 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1405" coordinates="-51.6 10.1 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1406" coordinates="4.0 12.3 17.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1407" coordinates="-7.2 20.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1408" coordinates="12.4 13.5 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1409" coordinates="28.7 11.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1410" coordinates="25.3 21.5 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1411" coordinates="22.7 16.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1412" coordinates="-14.1 -7.9 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1413" coordinates="7.6 21.5 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1414" coordinates="-40.7 3.9 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1415" coordinates="22.7 5.3 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1416" coordinates="17.7 -0.9 25.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1417" coordinates="34.6 21.8 37.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1418" coordinates="4.8 -15.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1419" coordinates="24.7 9.0 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1420" coordinates="37.1 28.9 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1421" coordinates="-14.8 -36.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1422" coordinates="1.7 -16.3 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1423" coordinates="17.0 9.2 17.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1424" coordinates="-38.7 14.2 11.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1425" coordinates="-36.4 12.2 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1426" coordinates="-14.9 1.8 27.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1427" coordinates="-25.8 5.1 188.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1428" coordinates="13.4 8.9 20.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1429" coordinates="25.2 15.0 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1430" coordinates="-1.5 0.5 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1431" coordinates="-13.3 7.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1432" coordinates="15.8 16.1 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1433" coordinates="25.7 6.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1434" coordinates="-38.9 -2.8 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1435" coordinates="26.9 -1.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1436" coordinates="-19.7 -28.5 23.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1437" coordinates="2.1 5.6 23.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1438" coordinates="29.3 6.2 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1439" coordinates="23.9 19.4 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1440" coordinates="-12.3 8.1 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1441" coordinates="8.6 -2.8 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1442" coordinates="-46.4 -2.3 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1443" coordinates="13.6 -8.1 14.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1444" coordinates="3.6 8.6 26.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1445" coordinates="15.4 15.6 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1446" coordinates="13.8 45.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1447" coordinates="-34.1 -26.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1448" coordinates="-33.1 -16.1 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1449" coordinates="26.8 10.2 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1450" coordinates="56.9 40.4 25.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1451" coordinates="1.0 6.1 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1452" coordinates="-3.9 42.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1453" coordinates="9.1 3.1 25.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1454" coordinates="38.0 17.0 64.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1455" coordinates="13.9 -19.8 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1456" coordinates="-31.8 33.5 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1457" coordinates="68.0 31.2 40.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1458" coordinates="19.3 6.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1459" coordinates="25.3 5.7 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1460" coordinates="27.5 7.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1461" coordinates="21.5 20.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1462" coordinates="46.9 28.2 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1463" coordinates="35.2 11.3 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1464" coordinates="20.2 8.3 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1465" coordinates="-34.6 -23.3 156.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1466" coordinates="-28.7 -22.5 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1467" coordinates="-27.0 -5.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1468" coordinates="43.0 -11.2 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1469" coordinates="-39.0 -18.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1470" coordinates="19.0 -23.4 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1471" coordinates="-34.5 -25.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1472" coordinates="-23.8 2.9 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1473" coordinates="-50.5 -16.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1474" coordinates="-51.4 -25.0 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1475" coordinates="28.4 -14.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1476" coordinates="-21.9 -1.6 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1477" coordinates="28.3 35.6 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1478" coordinates="20.3 18.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1479" coordinates="18.4 20.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1480" coordinates="-3.8 -38.8 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1481" coordinates="-41.9 -13.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1482" coordinates="1.0 -9.2 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1483" coordinates="3.9 9.2 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1484" coordinates="-40.3 3.6 198.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1485" coordinates="-7.9 24.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1486" coordinates="99.5 65.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1487" coordinates="-171.9 -49.3 43.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1488" coordinates="-33.9 -37.9 21.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1489" coordinates="-40.2 -34.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1490" coordinates="25.0 7.3 36.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1491" coordinates="26.7 -5.3 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1492" coordinates="16.9 14.1 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1493" coordinates="14.5 21.6 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1494" coordinates="-40.6 -9.1 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1495" coordinates="31.0 4.9 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1496" coordinates="13.1 121.2 137.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1497" coordinates="-42.6 -23.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1498" coordinates="13.0 15.8 24.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1499" coordinates="-8.1 29.1 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1500" coordinates="-14.0 -29.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1501" coordinates="-22.8 -6.9 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1502" coordinates="19.2 11.5 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1503" coordinates="32.8 12.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1504" coordinates="-46.9 10.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1505" coordinates="-6.3 -4.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1506" coordinates="21.0 18.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1507" coordinates="20.2 26.4 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1508" coordinates="-149.5 -48.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1509" coordinates="-25.4 -3.7 15.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1510" coordinates="25.0 16.1 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1511" coordinates="-10.3 5.6 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1512" coordinates="-36.5 -16.2 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1513" coordinates="9.3 12.0 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1514" coordinates="8.4 -2.7 26.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1515" coordinates="26.7 47.7 80.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1516" coordinates="8.6 22.6 34.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1517" coordinates="9.6 -13.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1518" coordinates="29.7 26.5 27.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1519" coordinates="-10.3 -31.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1520" coordinates="-17.9 10.4 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1521" coordinates="11.5 13.2 67.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1522" coordinates="1.2 5.4 18.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1523" coordinates="4.8 2.4 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1524" coordinates="10.8 -10.9 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1525" coordinates="-53.1 6.2 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1526" coordinates="-8.2 15.0 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1527" coordinates="13.6 29.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1528" coordinates="2.9 -5.0 39.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1529" coordinates="43.9 16.2 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1530" coordinates="-36.3 -20.1 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1531" coordinates="19.1 5.1 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1532" coordinates="120.9 -143.0 106.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1533" coordinates="-22.4 12.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1534" coordinates="-57.4 -142.0 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1535" coordinates="-19.9 -24.6 20.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1536" coordinates="11.0 19.1 216.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1537" coordinates="-38.5 -20.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1538" coordinates="-28.6 -2.8 29.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1539" coordinates="153.8 14.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1540" coordinates="8.2 32.9 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1541" coordinates="55.9 -38.2 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1542" coordinates="27.9 11.7 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1543" coordinates="7.2 14.5 32.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1544" coordinates="9.4 23.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1545" coordinates="25.9 8.0 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1546" coordinates="27.5 21.9 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1547" coordinates="9.3 7.4 37.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1548" coordinates="512.9 90.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1549" coordinates="9.5 8.4 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1550" coordinates="4.0 0.1 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1551" coordinates="-45.2 -11.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1552" coordinates="40.0 -8.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1553" coordinates="93.0 67.6 72.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1554" coordinates="4.9 17.0 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1555" coordinates="-1.2 9.6 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1556" coordinates="-17.6 -18.2 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1557" coordinates="-24.3 -25.8 42.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1558" coordinates="-38.2 -7.0 18.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1559" coordinates="-2.1 5.7 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1560" coordinates="101.4 103.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1561" coordinates="27.8 12.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1562" coordinates="4.8 8.0 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1563" coordinates="-6.0 81.6 63.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1564" coordinates="33.1 -6.2 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1565" coordinates="-38.9 -7.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1566" coordinates="-29.0 -7.9 10.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1567" coordinates="13.1 20.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1568" coordinates="-17.9 -27.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1569" coordinates="19.1 26.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1570" coordinates="45.5 46.9 45.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1571" coordinates="-5.2 17.8 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1572" coordinates="0.8 13.4 67.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1573" coordinates="20.4 10.0 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1574" coordinates="26.8 15.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1575" coordinates="29.2 25.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1576" coordinates="-11.5 -10.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1577" coordinates="-23.2 -35.5 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1578" coordinates="-40.5 -15.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1579" coordinates="22.8 -12.7 21.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1580" coordinates="38.3 -5.3 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1581" coordinates="23.8 16.7 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1582" coordinates="-31.3 0.5 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1583" coordinates="32.3 10.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1584" coordinates="-22.2 3.8 67.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1585" coordinates="50.5 8.6 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1586" coordinates="-112.7 -32.1 103.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1587" coordinates="34.6 -4.0 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1588" coordinates="-79.2 -11.4 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1589" coordinates="6.6 -8.6 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1590" coordinates="21.6 1.8 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1591" coordinates="-36.1 -9.9 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1592" coordinates="11.2 2.6 24.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1593" coordinates="-51.7 -5.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1594" coordinates="15.5 21.4 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1595" coordinates="4.5 1.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1596" coordinates="18.9 34.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1597" coordinates="-14.2 -5.9 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1598" coordinates="16.0 10.8 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1599" coordinates="24.8 22.6 26.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1600" coordinates="6.7 -11.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1601" coordinates="5.5 3.5 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1602" coordinates="-16.0 9.8 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1603" coordinates="-4.3 12.8 54.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1604" coordinates="21.7 -7.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1605" coordinates="0.3 3.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1606" coordinates="30.4 9.9 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1607" coordinates="-1.7 15.9 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1608" coordinates="-51.7 17.7 14.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1609" coordinates="65.4 26.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1610" coordinates="20.1 10.8 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1611" coordinates="102.9 -7.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1612" coordinates="43.1 3.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1613" coordinates="-44.3 13.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1614" coordinates="-35.5 -22.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1615" coordinates="25.4 53.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1616" coordinates="32.5 -23.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1617" coordinates="22.7 24.8 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1618" coordinates="-41.9 -2.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1619" coordinates="-0.1 19.7 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1620" coordinates="-25.1 34.7 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1621" coordinates="16.8 10.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1622" coordinates="14.8 6.7 31.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1623" coordinates="-26.7 -1.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1624" coordinates="13.0 6.8 26.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1625" coordinates="18.9 3.8 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1626" coordinates="2.8 -19.5 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1627" coordinates="32.6 12.8 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1628" coordinates="-40.4 -4.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1629" coordinates="-15.0 0.5 25.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1630" coordinates="116.3 14.7 37.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1631" coordinates="50.1 -7.6 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1632" coordinates="-28.0 -29.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1633" coordinates="102.9 7.2 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1634" coordinates="-20.8 -15.3 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1635" coordinates="21.2 14.6 18.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1636" coordinates="33.1 4.5 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1637" coordinates="-110.2 -72.1 85.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1638" coordinates="94.0 33.6 41.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1639" coordinates="11.2 1.1 25.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1640" coordinates="-35.0 31.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1641" coordinates="4.2 -17.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1642" coordinates="-4.1 22.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1643" coordinates="17.5 36.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1644" coordinates="-45.6 -7.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1645" coordinates="25.7 8.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1646" coordinates="-8.0 -11.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1647" coordinates="14.3 14.8 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1648" coordinates="6.9 8.6 16.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1649" coordinates="-64.0 -53.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1650" coordinates="9.5 6.1 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1651" coordinates="-44.9 11.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1652" coordinates="-12.2 -15.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1653" coordinates="22.6 1.6 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1654" coordinates="-37.3 -21.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1655" coordinates="30.7 7.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1656" coordinates="-21.2 -8.2 22.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1657" coordinates="24.6 21.2 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1658" coordinates="-2.9 -37.3 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1659" coordinates="19.8 12.8 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1660" coordinates="18.7 -9.6 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1661" coordinates="15.9 8.5 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1662" coordinates="5.3 -4.3 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1663" coordinates="-45.6 19.7 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1664" coordinates="0.4 9.7 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1665" coordinates="50.2 38.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1666" coordinates="-3.0 0.7 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1667" coordinates="57.1 57.1 47.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1668" coordinates="-27.9 -64.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1669" coordinates="9.3 6.3 52.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1670" coordinates="22.2 -25.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1671" coordinates="4.2 10.1 47.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1672" coordinates="21.4 7.2 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1673" coordinates="14.8 15.8 37.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1674" coordinates="10.0 -0.2 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1675" coordinates="15.1 2.0 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1676" coordinates="-13.7 -34.2 159.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1677" coordinates="-13.2 -8.4 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1678" coordinates="-149.3 56.1 85.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1679" coordinates="12.9 30.6 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1680" coordinates="24.3 12.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1681" coordinates="-14.5 3.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1682" coordinates="-2.4 -30.4 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1683" coordinates="18.0 25.5 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1684" coordinates="-25.4 -21.1 14.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1685" coordinates="26.6 10.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1686" coordinates="-6.6 -15.7 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1687" coordinates="2.3 -18.5 51.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1688" coordinates="6.7 22.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1689" coordinates="-32.8 -12.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1690" coordinates="14.1 11.1 29.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1691" coordinates="21.9 16.1 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1692" coordinates="22.6 12.1 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1693" coordinates="28.2 -11.1 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1694" coordinates="-0.4 3.0 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1695" coordinates="-44.6 -7.1 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1696" coordinates="24.4 29.0 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1697" coordinates="28.4 -14.9 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1698" coordinates="22.5 22.2 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1699" coordinates="23.3 15.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1700" coordinates="4.8 10.6 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1701" coordinates="-10.8 -1.7 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1702" coordinates="35.7 5.6 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1703" coordinates="-25.0 -5.2 46.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1704" coordinates="-28.3 -28.5 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1705" coordinates="18.2 4.2 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1706" coordinates="-29.1 -14.4 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1707" coordinates="-24.2 1.5 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1708" coordinates="12.6 11.1 27.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1709" coordinates="24.2 -105.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1710" coordinates="31.1 29.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1711" coordinates="22.5 3.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1712" coordinates="15.2 10.2 25.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1713" coordinates="-187.8 -159.6 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1714" coordinates="31.1 10.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1715" coordinates="26.6 10.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1716" coordinates="89.5 27.4 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1717" coordinates="-3.6 25.6 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1718" coordinates="28.9 -5.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1719" coordinates="34.3 10.2 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1720" coordinates="13.2 -4.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1721" coordinates="-12.8 7.1 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1722" coordinates="52.6 68.6 103.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1723" coordinates="-39.8 -32.8 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1724" coordinates="26.3 11.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1725" coordinates="-62.2 -39.3 206.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1726" coordinates="5.0 12.4 25.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1727" coordinates="24.7 -73.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1728" coordinates="-5.6 -29.1 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1729" coordinates="-21.1 -20.3 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1730" coordinates="-6.5 -10.3 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1731" coordinates="-4.5 7.0 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1732" coordinates="-14.0 -21.3 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1733" coordinates="-12.4 23.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1734" coordinates="9.8 0.2 22.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1735" coordinates="16.0 13.0 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1736" coordinates="33.4 -5.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1737" coordinates="13.9 13.7 24.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1738" coordinates="-40.2 -9.2 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1739" coordinates="-39.8 8.0 33.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1740" coordinates="14.3 7.5 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1741" coordinates="19.0 5.3 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1742" coordinates="-4.6 0.2 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1743" coordinates="16.1 18.7 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1744" coordinates="25.5 11.0 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1745" coordinates="2.1 -3.9 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1746" coordinates="26.8 17.4 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1747" coordinates="18.6 28.7 25.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1748" coordinates="26.0 23.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1749" coordinates="2.1 37.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1750" coordinates="0.4 -3.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1751" coordinates="18.9 -1.8 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1752" coordinates="33.3 13.9 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1753" coordinates="12.9 7.1 49.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1754" coordinates="114.2 28.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1755" coordinates="65.0 52.7 89.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1756" coordinates="-28.7 -10.4 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1757" coordinates="31.7 18.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1758" coordinates="30.2 9.2 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1759" coordinates="17.7 21.0 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1760" coordinates="4.0 -7.3 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1761" coordinates="5.0 20.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1762" coordinates="-4.7 -71.8 92.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1763" coordinates="-34.9 -18.3 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1764" coordinates="9.9 14.5 20.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1765" coordinates="4.2 -1.7 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1766" coordinates="22.2 -1.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1767" coordinates="17.1 9.6 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1768" coordinates="35.8 -13.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1769" coordinates="24.0 2.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1770" coordinates="15.8 13.8 26.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1771" coordinates="20.0 8.0 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1772" coordinates="45.0 -0.3 113.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1773" coordinates="7.7 1.0 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1774" coordinates="21.9 13.4 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1775" coordinates="-36.0 -19.5 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1776" coordinates="26.6 12.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1777" coordinates="15.0 33.3 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1778" coordinates="15.5 -7.7 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1779" coordinates="2.9 7.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1780" coordinates="-10.9 3.0 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1781" coordinates="41.2 27.4 27.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1782" coordinates="-58.5 -2.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1783" coordinates="101.2 -12.8 113.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1784" coordinates="14.9 7.8 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1785" coordinates="11.6 12.2 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1786" coordinates="-12.7 -5.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1787" coordinates="15.0 9.7 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1788" coordinates="-2.2 19.5 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1789" coordinates="15.2 -3.8 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1790" coordinates="1.6 -3.1 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1791" coordinates="30.6 7.5 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1792" coordinates="16.1 18.4 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1793" coordinates="-22.7 4.1 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1794" coordinates="21.3 14.8 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1795" coordinates="13.4 8.4 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1796" coordinates="21.6 63.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1797" coordinates="-13.2 12.4 26.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1798" coordinates="-32.4 2.2 34.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1799" coordinates="2.5 1.6 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1800" coordinates="-9.5 19.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1801" coordinates="-3.0 30.9 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1802" coordinates="-20.7 -10.7 25.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1803" coordinates="9.6 4.9 20.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1804" coordinates="0.8 4.7 20.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1805" coordinates="-0.8 10.9 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1806" coordinates="24.9 32.6 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1807" coordinates="7.0 20.0 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1808" coordinates="1.5 18.4 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1809" coordinates="-40.6 -11.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1810" coordinates="-16.2 -20.2 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1811" coordinates="-48.5 12.9 16.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1812" coordinates="25.3 12.1 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1813" coordinates="-38.1 -16.7 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1814" coordinates="-12.7 -5.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1815" coordinates="16.2 12.6 21.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1816" coordinates="1.5 -2.1 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1817" coordinates="9.5 19.3 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1818" coordinates="-150.5 -287.8 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1819" coordinates="-21.3 -1.6 21.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1820" coordinates="4.9 -8.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1821" coordinates="-48.9 -19.6 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1822" coordinates="21.5 14.1 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1823" coordinates="16.6 9.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1824" coordinates="-9.5 16.5 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1825" coordinates="-16.6 -39.2 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1826" coordinates="-9.7 6.9 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1827" coordinates="19.4 12.5 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1828" coordinates="-45.0 4.0 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1829" coordinates="33.2 -22.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1830" coordinates="-0.4 1.3 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1831" coordinates="15.9 41.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1832" coordinates="12.1 7.8 26.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1833" coordinates="-3.3 11.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1834" coordinates="10.7 20.8 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1835" coordinates="45.6 17.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1836" coordinates="54.1 -4.6 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1837" coordinates="24.4 8.2 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1838" coordinates="-32.6 -12.7 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1839" coordinates="31.7 8.9 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1840" coordinates="-43.0 0.8 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1841" coordinates="38.0 -1.8 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1842" coordinates="-3.6 12.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1843" coordinates="140.1 154.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1844" coordinates="33.0 9.5 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1845" coordinates="14.5 11.8 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1846" coordinates="-0.7 2.1 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1847" coordinates="17.6 9.2 17.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1848" coordinates="-6.4 15.8 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1849" coordinates="8.3 13.0 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1850" coordinates="31.9 26.1 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1851" coordinates="8.8 15.4 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1852" coordinates="24.0 20.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1853" coordinates="-0.1 -0.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1854" coordinates="-8.5 -3.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1855" coordinates="14.9 9.2 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1856" coordinates="27.4 11.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1857" coordinates="27.0 3.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1858" coordinates="5.9 9.4 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1859" coordinates="4.5 5.4 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1860" coordinates="-1.9 4.4 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1861" coordinates="21.6 5.2 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1862" coordinates="6.6 21.3 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1863" coordinates="5.1 -7.8 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1864" coordinates="-5.5 9.9 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1865" coordinates="23.9 15.5 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1866" coordinates="-6.7 21.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1867" coordinates="18.2 7.5 19.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1868" coordinates="-35.6 -26.6 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1869" coordinates="16.6 -0.5 23.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1870" coordinates="27.9 1.4 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1871" coordinates="32.0 16.9 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1872" coordinates="-20.4 15.2 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1873" coordinates="-6.7 -16.6 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1874" coordinates="-34.5 -9.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1875" coordinates="-33.5 -17.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1876" coordinates="22.9 12.1 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1877" coordinates="9.7 12.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1878" coordinates="35.4 7.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1879" coordinates="22.6 9.5 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1880" coordinates="32.8 12.2 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1881" coordinates="43.5 11.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1882" coordinates="26.0 17.3 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1883" coordinates="34.5 8.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1884" coordinates="22.7 24.2 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1885" coordinates="24.5 17.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1886" coordinates="70.1 57.7 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1887" coordinates="6.9 10.9 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1888" coordinates="-13.3 -12.9 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1889" coordinates="0.1 12.2 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1890" coordinates="26.2 11.0 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1891" coordinates="16.2 -12.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1892" coordinates="26.1 13.3 21.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1893" coordinates="26.0 13.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1894" coordinates="30.3 11.1 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1895" coordinates="-16.9 1.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1896" coordinates="20.8 14.4 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1897" coordinates="24.4 17.5 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1898" coordinates="23.0 25.9 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1899" coordinates="-44.2 -16.2 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1900" coordinates="-47.2 -0.9 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1901" coordinates="-37.9 12.0 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1902" coordinates="-3.6 19.3 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1903" coordinates="23.3 4.9 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1904" coordinates="5.1 17.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1905" coordinates="4.3 5.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1906" coordinates="2.6 -13.3 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1907" coordinates="-5.3 13.0 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1908" coordinates="-41.4 -8.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1909" coordinates="2.8 42.0 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1910" coordinates="55.0 22.0 52.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1911" coordinates="-17.9 -5.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1912" coordinates="3.4 -16.3 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1913" coordinates="16.7 11.8 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1914" coordinates="10.6 25.9 37.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1915" coordinates="24.9 23.4 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1916" coordinates="10.5 14.0 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1917" coordinates="-36.7 -0.9 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1918" coordinates="11.4 -3.6 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1919" coordinates="-0.5 -3.7 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1920" coordinates="11.6 7.5 29.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1921" coordinates="-28.0 32.8 28.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1922" coordinates="-187.1 -61.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1923" coordinates="30.3 4.5 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1924" coordinates="-13.7 10.3 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1925" coordinates="-4.5 -7.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1926" coordinates="5.7 4.4 33.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1927" coordinates="27.3 11.3 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1928" coordinates="-1.8 6.3 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1929" coordinates="-43.8 19.1 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1930" coordinates="23.8 17.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1931" coordinates="10.6 1.5 28.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1932" coordinates="-8.2 1.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1933" coordinates="-42.2 8.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1934" coordinates="-14.5 -2.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1935" coordinates="-35.7 -22.5 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1936" coordinates="-8.9 50.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1937" coordinates="0.5 10.3 11.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1938" coordinates="7.2 12.2 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1939" coordinates="-38.2 -3.8 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1940" coordinates="-34.1 -21.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1941" coordinates="31.0 -9.5 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1942" coordinates="-46.3 120.8 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1943" coordinates="17.1 11.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1944" coordinates="22.1 26.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1945" coordinates="-22.4 -21.5 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1946" coordinates="129.3 -38.0 53.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1947" coordinates="-19.5 -12.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1948" coordinates="115.9 88.9 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1949" coordinates="22.9 12.4 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1950" coordinates="5.9 -41.7 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1951" coordinates="12.1 -5.0 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1952" coordinates="19.7 11.3 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1953" coordinates="-15.4 16.0 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1954" coordinates="14.3 2.9 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1955" coordinates="13.7 20.3 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1956" coordinates="-13.2 -7.8 27.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1957" coordinates="-24.3 -24.0 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1958" coordinates="26.9 -2.8 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1959" coordinates="6.7 21.3 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1960" coordinates="26.8 4.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1961" coordinates="-11.8 -6.7 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1962" coordinates="-37.0 6.3 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1963" coordinates="25.7 14.2 105.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1964" coordinates="33.6 10.2 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1965" coordinates="9.8 21.7 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1966" coordinates="27.9 6.0 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1967" coordinates="11.9 19.8 23.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1968" coordinates="17.1 -4.2 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1969" coordinates="26.2 22.9 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1970" coordinates="25.0 6.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1971" coordinates="9.4 -6.7 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1972" coordinates="-0.2 -3.5 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1973" coordinates="26.0 19.7 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1974" coordinates="5.9 -17.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1975" coordinates="39.9 8.2 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1976" coordinates="-35.4 24.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1977" coordinates="-32.6 -16.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1978" coordinates="9.3 63.8 44.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1979" coordinates="-41.1 -6.0 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1980" coordinates="-26.8 -10.7 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1981" coordinates="11.3 -13.2 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1982" coordinates="9.9 -1.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1983" coordinates="-35.3 -1.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1984" coordinates="-27.2 -22.5 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1985" coordinates="42.9 46.0 76.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1986" coordinates="27.8 12.4 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1987" coordinates="6.5 24.9 22.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1988" coordinates="-28.3 -26.1 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1989" coordinates="12.1 20.5 17.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1990" coordinates="-19.9 2.5 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1991" coordinates="-40.7 -8.8 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1992" coordinates="-28.6 -12.2 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1993" coordinates="3.2 -1.2 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1994" coordinates="-27.5 -13.6 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1995" coordinates="3.3 4.8 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1996" coordinates="20.7 13.4 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1997" coordinates="-68.1 65.5 109.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1998" coordinates="38.1 13.9 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-1999" coordinates="-36.0 -15.3 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2000" coordinates="-33.5 -10.8 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2001" coordinates="9.9 3.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2002" coordinates="-2.0 10.3 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2003" coordinates="25.3 10.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2004" coordinates="2.2 24.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2005" coordinates="48.9 40.2 55.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2006" coordinates="-39.4 -14.7 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2007" coordinates="14.1 4.1 15.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2008" coordinates="36.4 15.9 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2009" coordinates="-20.6 24.2 22.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2010" coordinates="86.6 61.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2011" coordinates="21.4 14.1 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2012" coordinates="-42.0 -11.2 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2013" coordinates="24.5 14.8 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2014" coordinates="-39.2 -22.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2015" coordinates="63.2 30.9 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2016" coordinates="4.3 -4.5 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2017" coordinates="-9.5 -14.0 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2018" coordinates="-49.6 -26.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2019" coordinates="26.2 3.8 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2020" coordinates="-9.6 -14.8 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2021" coordinates="14.1 64.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2022" coordinates="-10.4 15.0 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2023" coordinates="5.4 6.2 17.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2024" coordinates="12.0 15.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2025" coordinates="10.8 -1.3 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2026" coordinates="-32.1 -5.7 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2027" coordinates="30.2 12.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2028" coordinates="-24.9 80.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2029" coordinates="84.6 12.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2030" coordinates="11.4 32.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2031" coordinates="-0.1 -1.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2032" coordinates="-11.5 6.0 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2033" coordinates="12.4 10.6 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2034" coordinates="-39.9 7.0 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2035" coordinates="-12.7 -4.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2036" coordinates="-52.9 -25.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2037" coordinates="-41.4 -4.2 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2038" coordinates="34.2 7.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2039" coordinates="9.4 13.4 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2040" coordinates="26.4 9.7 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2041" coordinates="23.8 31.1 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2042" coordinates="26.2 6.9 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2043" coordinates="36.2 -18.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2044" coordinates="15.5 14.5 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2045" coordinates="13.4 -57.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2046" coordinates="23.1 -6.1 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2047" coordinates="-30.5 -0.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2048" coordinates="26.6 13.1 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2049" coordinates="30.2 9.6 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2050" coordinates="8.8 23.0 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2051" coordinates="13.4 23.5 31.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2052" coordinates="8.5 -16.8 19.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2053" coordinates="26.9 14.7 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2054" coordinates="9.3 -15.8 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2055" coordinates="9.8 4.4 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2056" coordinates="1.0 12.4 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2057" coordinates="4.6 13.6 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2058" coordinates="22.3 17.9 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2059" coordinates="15.1 16.7 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2060" coordinates="73.7 130.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2061" coordinates="-18.8 -0.6 37.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2062" coordinates="-211.8 -33.1 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2063" coordinates="15.0 22.1 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2064" coordinates="8.3 4.5 22.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2065" coordinates="-16.2 -19.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2066" coordinates="21.9 5.6 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2067" coordinates="-25.1 -53.8 23.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2068" coordinates="33.3 37.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2069" coordinates="22.2 8.9 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2070" coordinates="-4.7 11.3 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2071" coordinates="-3.3 2.9 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2072" coordinates="11.7 9.7 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2073" coordinates="34.0 13.1 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2074" coordinates="-28.8 -13.6 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2075" coordinates="24.0 18.3 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2076" coordinates="-16.1 -335.1 78.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2077" coordinates="-38.3 -18.6 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2078" coordinates="2.8 -14.8 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2079" coordinates="78.0 50.1 40.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2080" coordinates="-54.8 -45.1 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2081" coordinates="20.7 18.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2082" coordinates="11.9 41.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2083" coordinates="-46.6 -4.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2084" coordinates="-15.6 7.2 37.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2085" coordinates="21.2 -7.1 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2086" coordinates="18.7 -9.2 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2087" coordinates="25.5 11.4 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2088" coordinates="-2.5 12.8 38.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2089" coordinates="-42.0 -1.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2090" coordinates="25.3 45.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2091" coordinates="-42.7 1.8 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2092" coordinates="-70.9 -1.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2093" coordinates="36.0 7.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2094" coordinates="-4.7 2.0 28.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2095" coordinates="4.0 4.4 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2096" coordinates="24.7 30.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2097" coordinates="5.0 -3.8 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2098" coordinates="-34.8 -6.2 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2099" coordinates="-12.1 -2.9 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2100" coordinates="36.6 19.9 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2101" coordinates="-44.0 -17.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2102" coordinates="-18.0 1.0 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2103" coordinates="26.2 12.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2104" coordinates="-35.7 1.6 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2105" coordinates="-20.0 -3.2 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2106" coordinates="5.2 17.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2107" coordinates="-2.4 7.3 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2108" coordinates="-11.1 7.3 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2109" coordinates="-4.4 7.4 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2110" coordinates="28.8 -13.5 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2111" coordinates="25.4 -0.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2112" coordinates="29.1 37.1 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2113" coordinates="23.0 3.5 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2114" coordinates="-36.4 -29.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2115" coordinates="28.7 11.4 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2116" coordinates="17.0 18.0 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2117" coordinates="99.4 24.2 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2118" coordinates="12.5 25.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2119" coordinates="-28.3 -16.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2120" coordinates="5.5 6.7 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2121" coordinates="-1.4 2.0 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2122" coordinates="23.3 38.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2123" coordinates="21.9 -1.6 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2124" coordinates="83.3 63.4 43.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2125" coordinates="24.3 -31.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2126" coordinates="-2.6 -7.5 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2127" coordinates="23.5 11.0 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2128" coordinates="22.8 7.8 14.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2129" coordinates="-43.0 -6.0 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2130" coordinates="4.1 13.1 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2131" coordinates="18.1 12.8 24.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2132" coordinates="-13.4 -4.1 27.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2133" coordinates="12.8 7.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2134" coordinates="16.3 11.3 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2135" coordinates="24.2 15.3 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2136" coordinates="23.6 1.4 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2137" coordinates="17.6 49.7 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2138" coordinates="12.4 18.7 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2139" coordinates="13.4 7.9 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2140" coordinates="31.5 14.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2141" coordinates="17.5 -5.1 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2142" coordinates="3.6 -45.7 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2143" coordinates="22.0 23.4 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2144" coordinates="-91.6 -31.9 134.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2145" coordinates="2.6 2.9 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2146" coordinates="27.0 15.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2147" coordinates="14.5 20.3 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2148" coordinates="-30.0 17.8 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2149" coordinates="-4.7 -2.3 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2150" coordinates="-41.4 -10.4 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2151" coordinates="-43.2 -35.3 173.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2152" coordinates="22.9 9.8 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2153" coordinates="29.7 14.7 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2154" coordinates="-114.2 114.5 66.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2155" coordinates="50.6 -8.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2156" coordinates="-59.9 -26.2 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2157" coordinates="32.8 25.0 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2158" coordinates="16.0 23.4 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2159" coordinates="-39.1 -2.3 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2160" coordinates="-4.3 -13.1 36.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2161" coordinates="-48.7 -2.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2162" coordinates="31.1 5.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2163" coordinates="36.0 13.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2164" coordinates="-18.5 11.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2165" coordinates="-25.2 -19.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2166" coordinates="0.9 82.7 173.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2167" coordinates="14.4 18.2 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2168" coordinates="-5.5 13.0 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2169" coordinates="7.2 12.7 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2170" coordinates="-21.2 -18.0 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2171" coordinates="26.7 9.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2172" coordinates="14.4 -4.7 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2173" coordinates="-6.6 3.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2174" coordinates="15.0 11.3 17.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2175" coordinates="11.8 5.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2176" coordinates="-33.0 -5.2 40.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2177" coordinates="80.3 81.0 11.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2178" coordinates="2.9 -37.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2179" coordinates="-3.2 20.8 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2180" coordinates="-8.2 -4.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2181" coordinates="-29.7 -7.5 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2182" coordinates="-40.9 6.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2183" coordinates="136.0 -22.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2184" coordinates="83.1 48.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2185" coordinates="17.0 13.9 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2186" coordinates="-38.9 -32.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2187" coordinates="-4.7 4.9 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2188" coordinates="-21.9 22.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2189" coordinates="-12.9 -9.2 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2190" coordinates="16.6 1.9 23.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2191" coordinates="6.3 0.9 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2192" coordinates="-20.6 -7.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2193" coordinates="23.4 17.8 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2194" coordinates="-49.8 23.9 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2195" coordinates="15.6 10.4 19.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2196" coordinates="-42.3 6.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2197" coordinates="40.4 7.0 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2198" coordinates="-28.0 -22.8 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2199" coordinates="33.6 25.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2200" coordinates="32.1 14.6 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2201" coordinates="27.8 13.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2202" coordinates="18.0 15.2 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2203" coordinates="53.8 114.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2204" coordinates="21.1 11.7 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2205" coordinates="-13.2 13.5 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2206" coordinates="-11.2 12.9 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2207" coordinates="9.3 23.2 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2208" coordinates="10.7 -39.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2209" coordinates="-43.5 -1.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2210" coordinates="22.0 10.1 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2211" coordinates="19.4 18.0 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2212" coordinates="13.6 4.3 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2213" coordinates="13.1 16.1 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2214" coordinates="23.7 17.5 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2215" coordinates="2.8 -2.2 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2216" coordinates="9.9 7.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2217" coordinates="102.1 4.1 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2218" coordinates="-16.2 19.4 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2219" coordinates="2.5 15.6 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2220" coordinates="28.3 1.3 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2221" coordinates="-54.2 -5.7 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2222" coordinates="-2.3 2.5 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2223" coordinates="20.9 8.3 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2224" coordinates="4.9 2.0 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2225" coordinates="13.8 7.9 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2226" coordinates="-47.3 -13.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2227" coordinates="70.8 81.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2228" coordinates="17.2 12.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2229" coordinates="22.8 18.1 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2230" coordinates="-30.6 -13.4 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2231" coordinates="17.6 21.4 57.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2232" coordinates="-0.4 3.3 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2233" coordinates="35.1 -27.4 158.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2234" coordinates="8.5 10.1 24.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2235" coordinates="-7.1 9.2 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2236" coordinates="20.8 9.2 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2237" coordinates="11.6 3.8 31.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2238" coordinates="38.5 3.6 261.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2239" coordinates="20.0 15.3 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2240" coordinates="27.4 18.9 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2241" coordinates="11.1 13.3 16.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2242" coordinates="-33.8 -15.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2243" coordinates="-41.3 -14.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2244" coordinates="-38.4 -13.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2245" coordinates="14.6 -4.7 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2246" coordinates="17.5 33.6 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2247" coordinates="5.7 1.5 19.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2248" coordinates="-52.9 -2.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2249" coordinates="-8.9 38.2 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2250" coordinates="-36.2 2.4 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2251" coordinates="33.3 18.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2252" coordinates="25.2 20.1 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2253" coordinates="-31.7 -26.4 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2254" coordinates="11.5 10.0 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2255" coordinates="25.6 0.4 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2256" coordinates="-24.4 -13.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2257" coordinates="25.3 15.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2258" coordinates="23.6 6.7 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2259" coordinates="-6.2 19.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2260" coordinates="-11.0 6.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2261" coordinates="10.9 19.1 22.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2262" coordinates="-5.1 6.0 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2263" coordinates="13.9 22.3 23.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2264" coordinates="9.2 -7.8 18.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2265" coordinates="-37.5 -49.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2266" coordinates="15.6 3.5 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2267" coordinates="40.0 22.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2268" coordinates="-25.4 0.2 30.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2269" coordinates="29.8 22.9 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2270" coordinates="-44.8 -16.7 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2271" coordinates="31.9 16.1 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2272" coordinates="6.8 3.5 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2273" coordinates="29.6 17.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2274" coordinates="-2.8 20.0 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2275" coordinates="4.2 7.2 23.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2276" coordinates="-17.2 -6.4 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2277" coordinates="50.9 37.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2278" coordinates="32.4 -10.7 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2279" coordinates="47.8 16.3 73.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2280" coordinates="-50.3 -18.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2281" coordinates="-51.1 -8.7 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2282" coordinates="-2.0 -1.5 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2283" coordinates="4.6 -6.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2284" coordinates="5.0 22.9 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2285" coordinates="-17.3 -14.6 66.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2286" coordinates="23.7 9.8 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2287" coordinates="19.6 25.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2288" coordinates="26.6 -6.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2289" coordinates="5.8 -3.5 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2290" coordinates="36.9 5.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2291" coordinates="32.4 9.2 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2292" coordinates="27.3 4.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2293" coordinates="-36.1 -14.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2294" coordinates="6.9 -1.7 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2295" coordinates="16.3 6.2 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2296" coordinates="29.6 7.4 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2297" coordinates="19.7 17.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2298" coordinates="-49.7 -30.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2299" coordinates="34.8 20.4 20.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2300" coordinates="-50.4 20.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2301" coordinates="-51.2 -9.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2302" coordinates="7.0 4.7 17.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2303" coordinates="10.8 2.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2304" coordinates="25.1 13.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2305" coordinates="9.5 21.3 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2306" coordinates="7.9 11.0 24.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2307" coordinates="35.6 75.8 36.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2308" coordinates="25.9 0.5 28.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2309" coordinates="-29.5 -9.2 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2310" coordinates="205.7 90.4 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2311" coordinates="-39.3 -4.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2312" coordinates="23.4 13.6 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2313" coordinates="-48.6 -1.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2314" coordinates="-31.6 -8.2 86.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2315" coordinates="-49.0 5.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2316" coordinates="-14.2 -13.4 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2317" coordinates="26.3 8.7 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2318" coordinates="-25.1 -28.1 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2319" coordinates="-5.2 14.8 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2320" coordinates="41.8 73.2 107.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2321" coordinates="-9.9 -2.3 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2322" coordinates="24.3 13.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2323" coordinates="31.7 19.2 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2324" coordinates="-12.6 -1.6 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2325" coordinates="-31.7 -18.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2326" coordinates="-67.8 -35.9 149.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2327" coordinates="33.7 -19.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2328" coordinates="17.3 22.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2329" coordinates="6.3 10.2 18.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2330" coordinates="-37.7 -41.6 156.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2331" coordinates="-41.4 26.3 33.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2332" coordinates="-40.9 1.0 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2333" coordinates="32.0 -21.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2334" coordinates="44.8 30.7 103.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2335" coordinates="11.5 0.6 20.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2336" coordinates="23.5 -2.9 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2337" coordinates="18.3 17.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2338" coordinates="25.1 12.2 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2339" coordinates="-24.5 -13.4 39.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2340" coordinates="-34.7 -4.4 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2341" coordinates="-34.8 -36.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2342" coordinates="45.2 12.6 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2343" coordinates="-40.9 -13.2 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2344" coordinates="37.2 29.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2345" coordinates="-39.8 -5.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2346" coordinates="-79.7 196.5 105.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2347" coordinates="-2.2 10.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2348" coordinates="32.9 4.9 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2349" coordinates="34.1 14.3 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2350" coordinates="4.3 7.2 24.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2351" coordinates="-6.8 9.7 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2352" coordinates="-52.6 -15.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2353" coordinates="38.5 44.1 54.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2354" coordinates="-35.7 -11.6 55.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2355" coordinates="6.0 4.4 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2356" coordinates="24.4 19.0 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2357" coordinates="22.2 13.7 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2358" coordinates="-1.7 8.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2359" coordinates="-31.9 -10.9 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2360" coordinates="-22.7 10.3 23.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2361" coordinates="-28.2 -9.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2362" coordinates="21.5 21.9 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2363" coordinates="6.8 -8.6 18.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2364" coordinates="22.5 25.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2365" coordinates="16.3 2.2 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2366" coordinates="10.8 6.2 17.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2367" coordinates="0.0 -52.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2368" coordinates="-46.1 -19.3 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2369" coordinates="42.2 11.2 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2370" coordinates="17.3 -2.7 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2371" coordinates="-49.7 -9.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2372" coordinates="26.9 18.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2373" coordinates="11.6 13.7 65.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2374" coordinates="33.5 9.5 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2375" coordinates="0.3 12.9 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2376" coordinates="20.3 -3.1 36.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2377" coordinates="14.2 16.7 24.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2378" coordinates="-7.5 -18.4 38.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2379" coordinates="7.8 17.4 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2380" coordinates="76.6 -63.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2381" coordinates="-42.9 0.0 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2382" coordinates="17.0 -10.8 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2383" coordinates="-2.1 0.3 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2384" coordinates="-2.9 -7.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2385" coordinates="-26.8 -23.7 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2386" coordinates="19.1 0.6 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2387" coordinates="-13.3 3.3 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2388" coordinates="21.4 1.7 20.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2389" coordinates="-38.1 -21.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2390" coordinates="35.4 -30.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2391" coordinates="28.8 6.0 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2392" coordinates="-31.1 11.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2393" coordinates="-8.5 3.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2394" coordinates="10.7 -10.6 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2395" coordinates="-2.3 -106.9 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2396" coordinates="-33.8 -6.1 22.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2397" coordinates="9.2 -14.8 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2398" coordinates="17.7 18.2 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2399" coordinates="-12.7 -18.5 25.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2400" coordinates="39.1 11.5 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2401" coordinates="17.3 36.2 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2402" coordinates="15.4 18.1 20.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2403" coordinates="64.3 47.4 118.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2404" coordinates="-8.4 -8.5 20.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2405" coordinates="6.0 10.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2406" coordinates="14.5 2.6 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2407" coordinates="-16.1 3.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2408" coordinates="31.5 14.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2409" coordinates="-0.4 51.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2410" coordinates="13.8 -6.0 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2411" coordinates="-6.4 -1.2 48.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2412" coordinates="34.4 14.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2413" coordinates="17.9 2.2 34.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2414" coordinates="8.0 8.4 21.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2415" coordinates="-34.1 -31.1 23.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2416" coordinates="20.9 20.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2417" coordinates="-21.5 6.2 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2418" coordinates="-4.6 -9.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2419" coordinates="-24.9 2.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2420" coordinates="36.6 21.8 71.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2421" coordinates="-43.6 -10.6 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2422" coordinates="9.1 2.7 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2423" coordinates="-39.4 -1.8 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2424" coordinates="1.6 18.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2425" coordinates="-33.8 -37.9 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2426" coordinates="-42.1 21.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2427" coordinates="15.8 -0.1 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2428" coordinates="10.5 4.5 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2429" coordinates="28.1 12.2 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2430" coordinates="25.7 15.0 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2431" coordinates="-45.4 -34.0 11.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2432" coordinates="8.7 11.3 28.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2433" coordinates="2.6 5.0 31.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2434" coordinates="-41.0 -21.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2435" coordinates="11.7 8.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2436" coordinates="-9.3 16.7 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2437" coordinates="4.9 3.0 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2438" coordinates="-0.7 -13.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2439" coordinates="21.7 9.1 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2440" coordinates="14.0 20.8 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2441" coordinates="28.6 16.1 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2442" coordinates="27.5 21.9 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2443" coordinates="28.7 9.5 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2444" coordinates="-5.8 9.9 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2445" coordinates="-5.0 -1.7 47.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2446" coordinates="24.4 -1.0 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2447" coordinates="4.7 -22.8 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2448" coordinates="-13.9 -10.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2449" coordinates="10.6 17.0 20.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2450" coordinates="-3.3 -1.7 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2451" coordinates="5.1 18.7 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2452" coordinates="11.3 12.2 17.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2453" coordinates="-12.7 -13.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2454" coordinates="-21.9 3.0 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2455" coordinates="-43.4 -3.0 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2456" coordinates="18.0 22.4 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2457" coordinates="-2.3 23.9 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2458" coordinates="-52.3 12.5 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2459" coordinates="6.5 27.3 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2460" coordinates="2.0 19.6 26.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2461" coordinates="12.5 85.7 62.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2462" coordinates="-22.0 39.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2463" coordinates="-11.3 -6.2 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2464" coordinates="-11.5 2.5 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2465" coordinates="21.6 -3.1 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2466" coordinates="3.5 14.2 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2467" coordinates="188.4 210.2 442.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2468" coordinates="-41.9 0.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2469" coordinates="26.7 23.4 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2470" coordinates="21.4 18.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2471" coordinates="30.0 -3.9 23.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2472" coordinates="-5.5 -22.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2473" coordinates="22.7 -2.9 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2474" coordinates="28.2 19.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2475" coordinates="17.8 12.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2476" coordinates="-33.1 -22.9 47.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2477" coordinates="10.5 13.6 77.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2478" coordinates="27.8 -28.0 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2479" coordinates="11.7 -6.4 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2480" coordinates="9.5 18.6 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2481" coordinates="-26.5 1.2 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2482" coordinates="3.4 12.4 19.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2483" coordinates="-40.8 0.9 132.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2484" coordinates="-38.5 20.7 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2485" coordinates="71.7 86.2 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2486" coordinates="5.2 16.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2487" coordinates="35.7 9.6 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2488" coordinates="15.9 15.7 23.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2489" coordinates="28.8 29.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2490" coordinates="25.4 23.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2491" coordinates="7.7 3.1 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2492" coordinates="15.3 -7.2 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2493" coordinates="-3.1 6.7 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2494" coordinates="23.5 13.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2495" coordinates="24.0 13.3 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2496" coordinates="23.1 15.1 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2497" coordinates="22.6 13.7 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2498" coordinates="12.1 4.1 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-2499" coordinates="-32.7 -13.3 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
   </AS>
 </platform> 
index 8194e5b..7e2bd26 100644 (file)
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
   <config id="General">
     <prop id="network/coordinates" value="yes"></prop>
   </config>
 
   <AS  id="AS0"  routing="Vivaldi">
-    <peer id="peer-0" coordinates="-30.8 -183.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1" coordinates="-1.3 3.4 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-2" coordinates="6.6 6.7 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-3" coordinates="-16.7 19.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-4" coordinates="7.8 5.6 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-5" coordinates="-5.9 -4.4 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-6" coordinates="0.0 -5.0 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-7" coordinates="0.3 -4.1 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-8" coordinates="-1.3 -10.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-9" coordinates="2.3 -5.9 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-10" coordinates="2.9 -3.0 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-11" coordinates="4.3 4.7 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-12" coordinates="3.0 -1.0 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-13" coordinates="8.2 -4.9 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-14" coordinates="6.5 -0.9 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-15" coordinates="9.1 -3.9 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-16" coordinates="-6.0 18.8 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-17" coordinates="4.6 1.3 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-18" coordinates="6.0 -12.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-19" coordinates="3.3 10.1 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-20" coordinates="10.6 0.8 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-21" coordinates="-6.3 15.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-22" coordinates="-1.6 2.5 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-23" coordinates="-3.4 1.9 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-24" coordinates="-10.0 -1.7 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-25" coordinates="-8.7 -2.3 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-26" coordinates="-10.6 -9.4 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-27" coordinates="-0.6 -0.2 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-28" coordinates="8.4 -11.4 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-29" coordinates="0.3 8.6 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-30" coordinates="5.5 -10.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-31" coordinates="-0.2 -4.9 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-32" coordinates="5.2 5.2 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-33" coordinates="9.4 -9.5 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-34" coordinates="5.8 -4.9 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-35" coordinates="1.9 -7.6 22.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-36" coordinates="-1.1 0.7 15.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-37" coordinates="7.6 -0.2 44.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-38" coordinates="8.9 19.6 23.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-39" coordinates="0.3 0.3 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-40" coordinates="7.0 12.5 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-41" coordinates="4.2 6.9 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-42" coordinates="1.4 -9.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-43" coordinates="0.6 1.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-44" coordinates="0.4 -5.5 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-45" coordinates="6.9 2.6 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-46" coordinates="6.9 3.0 10.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-47" coordinates="1.4 -6.6 30.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-48" coordinates="3.4 17.4 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-49" coordinates="10.5 -6.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-50" coordinates="-17.2 19.6 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-51" coordinates="8.5 24.4 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-52" coordinates="-4.0 -1.1 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-53" coordinates="-4.3 -17.1 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-54" coordinates="-5.7 -1.2 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-55" coordinates="-6.4 35.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-56" coordinates="-0.3 1.1 31.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-57" coordinates="1.8 -8.2 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-58" coordinates="2.3 2.6 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-59" coordinates="3.6 0.3 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-60" coordinates="13.8 -10.9 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-61" coordinates="-1.0 -9.6 18.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-62" coordinates="14.1 20.7 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-63" coordinates="18.3 -11.0 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-64" coordinates="7.0 -1.6 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-65" coordinates="-6.8 -13.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-66" coordinates="10.6 -9.6 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-67" coordinates="-0.5 -3.8 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-68" coordinates="8.5 -8.8 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-69" coordinates="1.4 -6.1 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-70" coordinates="0.6 -2.5 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-71" coordinates="-11.5 -6.8 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-72" coordinates="1.0 20.4 14.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-73" coordinates="-2.2 19.5 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-74" coordinates="-9.6 -5.1 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-75" coordinates="-0.6 0.6 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-76" coordinates="8.6 24.5 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-77" coordinates="-0.4 8.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-78" coordinates="-11.7 34.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-79" coordinates="-10.6 22.8 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-80" coordinates="9.1 -15.4 45.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-81" coordinates="20.3 -5.0 35.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-82" coordinates="-3.0 -6.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-83" coordinates="0.4 30.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-84" coordinates="24.2 -9.9 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-85" coordinates="2.6 -8.5 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-86" coordinates="4.7 -8.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-87" coordinates="-2.9 23.9 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-88" coordinates="1.7 -5.0 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-89" coordinates="77.3 8.0 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-90" coordinates="11.6 -8.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-91" coordinates="10.1 -9.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-92" coordinates="2.0 -62.0 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-93" coordinates="12.5 6.8 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-94" coordinates="-8.1 -10.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-95" coordinates="16.4 -6.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-96" coordinates="-11.8 25.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-97" coordinates="-12.3 24.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-98" coordinates="-0.2 25.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-99" coordinates="7.2 -16.5 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-100" coordinates="11.7 -7.9 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-101" coordinates="0.1 -14.6 29.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-102" coordinates="7.1 -2.5 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-103" coordinates="0.4 -54.7 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-104" coordinates="-0.8 0.8 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-105" coordinates="-5.6 -4.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-106" coordinates="13.8 2.3 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-107" coordinates="-0.4 -12.9 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-108" coordinates="-3.0 17.7 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-109" coordinates="-13.3 8.2 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-110" coordinates="28.3 51.7 50.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-111" coordinates="-3.6 3.8 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-112" coordinates="8.6 20.3 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-113" coordinates="6.2 -8.3 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-114" coordinates="-3.6 12.6 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-115" coordinates="-1.6 21.5 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-116" coordinates="-4.7 -1.4 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-117" coordinates="21.7 -12.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-118" coordinates="9.4 -1.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-119" coordinates="24.1 -66.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-120" coordinates="0.9 -41.4 28.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-121" coordinates="3.6 -70.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-122" coordinates="26.4 -63.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-123" coordinates="-13.6 -63.4 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-124" coordinates="19.6 -55.9 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-125" coordinates="12.3 -62.6 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-126" coordinates="-7.7 -64.3 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-127" coordinates="10.6 -76.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-128" coordinates="-55.2 82.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-129" coordinates="-46.5 83.3 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-130" coordinates="-54.6 125.3 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-131" coordinates="3.0 -5.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-132" coordinates="7.6 0.9 17.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-133" coordinates="26.6 -4.8 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-134" coordinates="-5.6 -47.0 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-135" coordinates="13.4 -56.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-136" coordinates="7.3 -3.1 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-137" coordinates="5.7 -54.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-138" coordinates="18.6 1.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-139" coordinates="17.2 -6.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-140" coordinates="6.8 -6.8 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-141" coordinates="4.1 -2.7 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-142" coordinates="7.1 -8.1 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-143" coordinates="-0.4 2.7 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-144" coordinates="24.2 -4.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-145" coordinates="-0.4 -2.7 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-146" coordinates="32.9 -24.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-147" coordinates="22.5 -42.6 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-148" coordinates="10.6 -54.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-149" coordinates="-12.7 75.5 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-150" coordinates="-10.6 73.4 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-151" coordinates="70.5 94.3 11.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-152" coordinates="122.9 -24.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-153" coordinates="-47.3 61.8 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-154" coordinates="-31.3 81.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-155" coordinates="-15.0 23.7 57.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-156" coordinates="48.3 105.0 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-157" coordinates="10.0 -14.1 117.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-158" coordinates="2.8 -57.8 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-159" coordinates="-10.2 0.1 14.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-160" coordinates="4.8 -51.0 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-161" coordinates="1.9 -47.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-162" coordinates="3.6 -12.0 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-163" coordinates="31.3 -11.8 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-164" coordinates="2.2 18.2 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-165" coordinates="-9.7 25.4 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-166" coordinates="-11.1 -48.9 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-167" coordinates="8.7 -1.3 22.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-168" coordinates="59.8 101.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-169" coordinates="-0.3 -9.0 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-170" coordinates="18.2 -60.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-171" coordinates="6.4 -54.9 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-172" coordinates="12.8 -52.7 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-173" coordinates="-4.5 -47.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-174" coordinates="6.7 -7.9 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-175" coordinates="11.8 -52.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-176" coordinates="9.9 94.6 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-177" coordinates="9.7 126.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-178" coordinates="-17.5 52.9 53.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-179" coordinates="-30.1 63.8 51.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-180" coordinates="-24.4 52.4 48.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-181" coordinates="-8.8 27.4 73.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-182" coordinates="14.4 59.2 42.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-183" coordinates="-20.0 101.7 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-184" coordinates="6.4 -16.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-185" coordinates="1.7 -7.5 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-186" coordinates="-27.4 27.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-187" coordinates="-0.3 4.5 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-188" coordinates="1.6 29.0 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-189" coordinates="-4.4 -6.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-190" coordinates="8.2 -60.4 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-191" coordinates="-1.6 3.1 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-192" coordinates="0.5 1.5 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-193" coordinates="1.0 -58.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-194" coordinates="-17.8 -59.9 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-195" coordinates="8.7 -58.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-196" coordinates="22.8 -10.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-197" coordinates="2.7 -5.8 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-198" coordinates="7.2 -9.6 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-199" coordinates="5.8 26.9 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-200" coordinates="30.6 12.8 64.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-201" coordinates="-0.1 -3.3 85.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-202" coordinates="4.0 5.3 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-203" coordinates="-4.0 -49.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-204" coordinates="7.9 -51.6 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-205" coordinates="2.4 -53.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-206" coordinates="4.8 -1.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-207" coordinates="1.4 16.1 81.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-208" coordinates="52.3 79.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-209" coordinates="11.5 -18.0 65.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-210" coordinates="-6.0 -64.0 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-211" coordinates="-0.7 7.9 25.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-212" coordinates="25.3 -61.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-213" coordinates="5.6 -58.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-214" coordinates="-39.5 100.5 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-215" coordinates="5.8 21.1 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-216" coordinates="-12.0 -4.3 79.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-217" coordinates="5.2 -6.8 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-218" coordinates="2.6 6.5 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-219" coordinates="-0.0 4.6 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-220" coordinates="-6.8 -47.6 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-221" coordinates="23.7 -34.1 30.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-222" coordinates="-55.1 64.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-223" coordinates="-0.6 76.7 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-224" coordinates="-36.0 97.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-225" coordinates="-16.1 -58.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-226" coordinates="-0.2 -9.1 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-227" coordinates="7.3 -6.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-228" coordinates="37.7 46.5 54.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-229" coordinates="32.3 -63.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-230" coordinates="2.6 27.1 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-231" coordinates="-7.5 20.0 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-232" coordinates="3.0 -12.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-233" coordinates="16.4 -6.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-234" coordinates="-3.6 28.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-235" coordinates="1.5 -5.4 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-236" coordinates="5.7 -5.4 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-237" coordinates="6.1 0.0 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-238" coordinates="-4.2 23.4 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-239" coordinates="-0.1 -9.3 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-240" coordinates="-0.3 -1.5 18.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-241" coordinates="-5.6 21.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-242" coordinates="8.2 -18.2 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-243" coordinates="-4.6 20.7 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-244" coordinates="9.5 -57.3 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-245" coordinates="-30.4 -38.8 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-246" coordinates="-16.7 23.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-247" coordinates="-13.2 -82.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-248" coordinates="-7.4 -62.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-249" coordinates="11.0 -51.3 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-250" coordinates="14.5 -50.5 35.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-251" coordinates="35.2 7.8 89.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-252" coordinates="1.6 6.3 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-253" coordinates="-7.0 38.9 93.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-254" coordinates="12.8 -0.1 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-255" coordinates="3.3 -10.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-256" coordinates="2.0 -14.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-257" coordinates="9.6 18.7 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-258" coordinates="-9.5 3.3 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-259" coordinates="-2.9 -4.9 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-260" coordinates="-24.1 79.3 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-261" coordinates="3.9 -57.9 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-262" coordinates="3.1 -9.1 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-263" coordinates="-3.8 9.3 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-264" coordinates="-1.4 25.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-265" coordinates="-6.9 24.2 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-266" coordinates="10.1 2.0 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-267" coordinates="-9.6 3.1 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-268" coordinates="23.8 -0.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-269" coordinates="9.6 8.7 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-270" coordinates="-6.1 -10.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-271" coordinates="5.0 -9.6 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-272" coordinates="3.8 21.8 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-273" coordinates="10.7 -5.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-274" coordinates="-1.8 -8.2 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-275" coordinates="-2.2 4.6 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-276" coordinates="-0.3 -12.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-277" coordinates="11.7 -10.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-278" coordinates="7.2 -9.4 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-279" coordinates="3.9 -8.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-280" coordinates="7.4 26.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-281" coordinates="0.7 29.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-282" coordinates="-5.1 1.2 48.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-283" coordinates="2.8 -9.5 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-284" coordinates="-20.6 62.4 40.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-285" coordinates="-7.3 -5.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-286" coordinates="12.2 -2.3 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-287" coordinates="8.1 -2.9 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-288" coordinates="-10.9 -7.6 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-289" coordinates="8.2 2.2 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-290" coordinates="9.8 2.9 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-291" coordinates="13.3 -6.0 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-292" coordinates="10.1 -15.3 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-293" coordinates="7.2 -14.2 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-294" coordinates="8.3 28.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-295" coordinates="-2.9 24.7 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-296" coordinates="13.7 12.8 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-297" coordinates="-6.2 25.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-298" coordinates="5.9 -22.1 20.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-299" coordinates="10.7 15.5 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-300" coordinates="5.8 19.5 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-301" coordinates="4.9 13.8 19.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-302" coordinates="-15.9 -68.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-303" coordinates="6.8 -10.3 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-304" coordinates="1.6 -49.5 49.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-305" coordinates="18.7 -48.7 40.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-306" coordinates="28.2 -85.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-307" coordinates="-49.7 67.4 35.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-308" coordinates="-2.1 -52.3 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-309" coordinates="2.7 32.6 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-310" coordinates="3.8 5.7 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-311" coordinates="1.9 -10.0 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-312" coordinates="17.5 27.3 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-313" coordinates="5.7 -12.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-314" coordinates="1.3 21.8 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-315" coordinates="-34.6 6.1 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-316" coordinates="15.9 22.4 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-317" coordinates="9.5 -8.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-318" coordinates="12.6 -16.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-319" coordinates="12.6 10.5 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-320" coordinates="3.5 2.5 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-321" coordinates="-4.5 -37.7 54.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-322" coordinates="16.9 -6.7 11.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-323" coordinates="1.9 2.6 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-324" coordinates="1.2 12.4 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-325" coordinates="-85.9 72.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-326" coordinates="-0.9 -2.8 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-327" coordinates="2.1 -2.9 16.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-328" coordinates="1.1 -5.1 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-329" coordinates="6.1 -0.4 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-330" coordinates="3.2 28.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-331" coordinates="5.6 21.6 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-332" coordinates="6.8 -9.5 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-333" coordinates="-3.8 -4.7 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-334" coordinates="-3.2 9.3 27.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-335" coordinates="-3.0 -12.5 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-336" coordinates="6.5 -2.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-337" coordinates="5.2 -0.9 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-338" coordinates="6.0 -1.2 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-339" coordinates="-7.7 19.9 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-340" coordinates="41.5 8.0 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-341" coordinates="-8.7 2.6 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-342" coordinates="0.8 -60.0 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-343" coordinates="50.5 -23.4 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-344" coordinates="-1.1 -5.8 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-345" coordinates="-0.5 3.0 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-346" coordinates="3.0 9.9 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-347" coordinates="11.6 -57.6 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-348" coordinates="18.6 -49.2 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-349" coordinates="38.7 -59.5 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-350" coordinates="-3.7 -58.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-351" coordinates="5.6 -58.2 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-352" coordinates="233.1 75.6 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-353" coordinates="-0.9 -49.5 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-354" coordinates="5.2 -49.9 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-355" coordinates="7.7 -45.9 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-356" coordinates="22.1 -61.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-357" coordinates="10.4 -73.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-358" coordinates="-0.2 -56.2 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-359" coordinates="-5.0 -54.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-360" coordinates="-12.8 -81.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-361" coordinates="11.0 -57.1 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-362" coordinates="23.8 -65.7 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-363" coordinates="24.0 -81.9 73.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-364" coordinates="10.8 -46.7 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-365" coordinates="11.6 -47.7 14.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-366" coordinates="-6.1 -55.9 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-367" coordinates="-105.0 -55.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-368" coordinates="-18.0 -86.0 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-369" coordinates="0.8 -54.4 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-370" coordinates="-10.7 -48.7 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-371" coordinates="8.1 -31.8 73.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-372" coordinates="-15.7 -65.2 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-373" coordinates="7.6 -58.8 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-374" coordinates="5.2 -44.5 33.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-375" coordinates="7.9 -71.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-376" coordinates="-2.1 -54.5 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-377" coordinates="-2.5 -26.0 46.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-378" coordinates="39.2 -53.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-379" coordinates="-26.6 -66.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-380" coordinates="-22.1 -65.8 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-381" coordinates="21.1 -46.4 22.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-382" coordinates="-1.1 -60.0 25.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-383" coordinates="-49.1 -51.7 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-384" coordinates="21.2 -51.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-385" coordinates="-0.9 -50.1 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-386" coordinates="0.3 -65.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-387" coordinates="-3.4 -65.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-388" coordinates="0.4 -53.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-389" coordinates="20.8 -60.3 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-390" coordinates="5.7 -25.3 44.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-391" coordinates="18.9 -47.0 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-392" coordinates="-0.6 -56.7 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-393" coordinates="6.5 -42.5 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-394" coordinates="0.1 -51.0 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-395" coordinates="0.1 -47.6 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-396" coordinates="13.5 -65.6 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-397" coordinates="-7.7 -48.3 19.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-398" coordinates="-16.7 -70.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-399" coordinates="36.8 -65.7 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-400" coordinates="-15.3 -74.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-401" coordinates="-4.9 -61.8 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-402" coordinates="0.0 -59.5 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-403" coordinates="8.9 -60.4 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-404" coordinates="10.9 -29.9 46.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-405" coordinates="4.1 -70.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-406" coordinates="-9.1 -54.6 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-407" coordinates="27.4 -55.8 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-408" coordinates="2.4 -78.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-409" coordinates="8.8 -48.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-410" coordinates="11.1 -49.8 21.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-411" coordinates="0.2 -51.2 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-412" coordinates="-278.9 -96.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-413" coordinates="25.3 -51.5 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-414" coordinates="13.2 -62.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-415" coordinates="2.4 -59.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-416" coordinates="-14.3 -57.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-417" coordinates="-0.4 -66.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-418" coordinates="3.1 -9.3 57.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-419" coordinates="-2.9 -49.7 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-420" coordinates="10.8 -48.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-421" coordinates="34.2 -55.4 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-422" coordinates="6.1 -45.9 20.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-423" coordinates="22.5 -59.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-424" coordinates="-0.2 -50.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-425" coordinates="-15.7 -47.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-426" coordinates="3.6 -75.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-427" coordinates="9.2 -50.6 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-428" coordinates="6.6 -58.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-429" coordinates="-0.8 -50.1 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-430" coordinates="16.3 -64.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-431" coordinates="-102.2 -106.7 151.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-432" coordinates="-3.7 -53.5 18.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-433" coordinates="14.5 -55.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-434" coordinates="3.9 -46.0 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-435" coordinates="9.4 -51.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-436" coordinates="6.7 -49.2 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-437" coordinates="28.5 -49.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-438" coordinates="-5.7 -55.3 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-439" coordinates="-13.0 -52.3 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-440" coordinates="8.2 -50.5 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-441" coordinates="-3.0 -47.9 23.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-442" coordinates="9.0 -57.1 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-443" coordinates="3.6 -41.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-444" coordinates="-77.6 19.1 103.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-445" coordinates="7.8 -44.3 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-446" coordinates="-18.2 -42.2 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-447" coordinates="1.5 -46.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-448" coordinates="22.6 -48.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-449" coordinates="6.6 -49.8 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-450" coordinates="7.4 -41.3 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-451" coordinates="10.4 -54.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-452" coordinates="6.8 -53.2 14.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-453" coordinates="-10.2 -57.6 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-454" coordinates="6.1 -70.3 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-455" coordinates="-5.1 -53.7 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-456" coordinates="-9.7 -70.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-457" coordinates="30.6 -65.0 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-458" coordinates="-4.9 -63.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-459" coordinates="8.5 -71.1 16.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-460" coordinates="54.3 -0.6 87.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-461" coordinates="-19.4 -65.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-462" coordinates="15.2 -71.3 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-463" coordinates="8.9 -65.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-464" coordinates="-5.6 -61.5 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-465" coordinates="1.2 -55.4 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-466" coordinates="-7.4 -57.0 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-467" coordinates="2.0 -63.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-468" coordinates="21.0 -55.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-469" coordinates="12.5 -60.5 132.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-470" coordinates="-20.7 -59.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-471" coordinates="10.7 -43.7 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-472" coordinates="-1.3 -47.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-473" coordinates="-9.1 -59.9 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-474" coordinates="7.1 -48.3 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-475" coordinates="30.0 -67.8 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-476" coordinates="5.7 -54.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-477" coordinates="1.7 -50.2 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-478" coordinates="6.4 -62.3 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-479" coordinates="2.7 -52.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-480" coordinates="-0.4 -50.6 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-481" coordinates="-4.9 -61.6 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-482" coordinates="94.1 -11.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-483" coordinates="119.0 -138.5 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-484" coordinates="-32.9 -62.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-485" coordinates="-3.6 -60.2 20.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-486" coordinates="73.6 -65.8 103.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-487" coordinates="-2.2 -59.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-488" coordinates="7.5 -53.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-489" coordinates="0.1 -51.0 26.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-490" coordinates="1.4 -11.9 68.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-491" coordinates="-1.0 -71.2 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-492" coordinates="25.0 -66.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-493" coordinates="31.6 -43.4 30.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-494" coordinates="-104.4 13.8 30.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-495" coordinates="-1.4 -54.3 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-496" coordinates="-40.1 -68.3 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-497" coordinates="18.9 -57.4 10.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-498" coordinates="15.6 -49.6 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-499" coordinates="8.0 -38.8 54.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-500" coordinates="6.0 -54.4 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-501" coordinates="21.7 -59.7 25.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-502" coordinates="27.0 -40.4 32.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-503" coordinates="7.6 -63.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-504" coordinates="-29.1 -97.7 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-505" coordinates="10.9 -47.6 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-506" coordinates="19.8 -45.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-507" coordinates="21.6 -67.5 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-508" coordinates="-8.3 -63.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-509" coordinates="-2.9 -64.8 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-510" coordinates="-2.1 -47.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-511" coordinates="15.3 -53.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-512" coordinates="-9.1 -48.2 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-513" coordinates="7.8 -56.1 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-514" coordinates="-12.2 -52.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-515" coordinates="14.9 -41.7 34.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-516" coordinates="-1.0 -48.1 32.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-517" coordinates="22.1 -57.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-518" coordinates="-5.9 -53.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-519" coordinates="-0.8 -56.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-520" coordinates="35.6 0.1 266.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-521" coordinates="-13.2 28.5 127.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-522" coordinates="-2.0 -31.7 116.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-523" coordinates="10.6 -2.4 84.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-524" coordinates="42.9 -10.6 171.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-525" coordinates="39.2 1.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-526" coordinates="33.0 14.0 257.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-527" coordinates="-56.3 -64.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-528" coordinates="48.0 -43.3 93.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-529" coordinates="34.3 -25.0 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-530" coordinates="-17.3 -10.6 23.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-531" coordinates="-2.8 -2.4 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-532" coordinates="-3.1 -1.1 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-533" coordinates="3.4 -1.6 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-534" coordinates="1.9 4.2 32.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-535" coordinates="-15.0 -3.7 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-536" coordinates="6.2 21.4 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-537" coordinates="2.2 -3.6 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-538" coordinates="-4.2 34.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-539" coordinates="7.3 -7.1 11.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-540" coordinates="-6.1 15.5 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-541" coordinates="3.3 17.7 16.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-542" coordinates="-7.4 -4.0 21.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-543" coordinates="8.1 3.3 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-544" coordinates="2.2 25.0 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-545" coordinates="-3.2 29.6 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-546" coordinates="-13.9 26.1 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-547" coordinates="2.9 5.9 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-548" coordinates="-9.1 2.4 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-549" coordinates="4.6 -7.4 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-550" coordinates="2.9 5.0 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-551" coordinates="-12.0 2.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-552" coordinates="-0.3 3.7 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-553" coordinates="-2.1 3.5 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-554" coordinates="-6.5 25.4 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-555" coordinates="5.9 -9.4 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-556" coordinates="8.0 -20.6 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-557" coordinates="6.9 -10.4 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-558" coordinates="9.5 -3.5 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-559" coordinates="31.0 39.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-560" coordinates="15.9 21.0 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-561" coordinates="3.3 -0.1 18.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-562" coordinates="-1.1 -2.5 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-563" coordinates="-0.3 -11.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-564" coordinates="7.8 11.0 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-565" coordinates="2.2 2.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-566" coordinates="17.4 -6.7 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-567" coordinates="4.1 -2.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-568" coordinates="1.4 -9.0 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-569" coordinates="11.1 -13.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-570" coordinates="-2.4 -4.0 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-571" coordinates="16.3 32.7 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-572" coordinates="1.5 5.6 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-573" coordinates="-4.7 5.8 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-574" coordinates="1.4 -1.0 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-575" coordinates="4.2 -1.5 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-576" coordinates="4.9 9.8 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-577" coordinates="-1.0 -0.5 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-578" coordinates="8.1 2.2 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-579" coordinates="2.8 2.6 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-580" coordinates="-1.7 9.6 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-581" coordinates="6.8 22.5 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-582" coordinates="4.8 -10.1 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-583" coordinates="3.0 -17.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-584" coordinates="-6.0 5.2 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-585" coordinates="1.7 -0.3 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-586" coordinates="6.6 30.1 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-587" coordinates="-0.9 -7.7 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-588" coordinates="7.9 -2.5 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-589" coordinates="4.6 -0.7 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-590" coordinates="4.3 1.6 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-591" coordinates="-0.4 -10.4 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-592" coordinates="12.8 -13.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-593" coordinates="7.6 2.6 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-594" coordinates="10.7 -14.2 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-595" coordinates="8.1 0.9 25.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-596" coordinates="7.9 27.9 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-597" coordinates="-7.6 20.0 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-598" coordinates="9.2 -9.0 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-599" coordinates="-12.0 0.8 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-600" coordinates="14.3 30.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-601" coordinates="-10.1 22.1 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-602" coordinates="2.5 29.4 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-603" coordinates="-6.7 26.2 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-604" coordinates="-2.2 -4.7 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-605" coordinates="-8.3 19.7 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-606" coordinates="9.1 26.7 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-607" coordinates="5.0 -10.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-608" coordinates="5.4 -8.8 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-609" coordinates="6.8 -11.2 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-610" coordinates="4.9 1.6 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-611" coordinates="18.9 2.7 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-612" coordinates="-2.7 22.4 19.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-613" coordinates="17.3 -6.5 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-614" coordinates="3.0 -8.1 75.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-615" coordinates="0.5 -8.7 74.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-616" coordinates="0.9 -1.9 58.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-617" coordinates="-8.6 -2.3 22.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-618" coordinates="1.1 -15.4 33.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-619" coordinates="-2.2 -0.3 40.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-620" coordinates="16.7 -3.9 76.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-621" coordinates="3.1 -6.0 78.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-622" coordinates="74.8 14.8 28.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-623" coordinates="-26.4 -6.0 44.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-624" coordinates="-54.0 -6.8 24.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-625" coordinates="-0.3 0.1 82.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-626" coordinates="-58.7 12.6 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-627" coordinates="75.8 -3.9 20.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-628" coordinates="70.1 -30.1 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-629" coordinates="62.9 -28.5 21.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-630" coordinates="-0.3 -4.4 69.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-631" coordinates="-67.8 -16.0 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-632" coordinates="33.3 -19.0 45.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-633" coordinates="82.9 2.4 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-634" coordinates="81.9 -39.7 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-635" coordinates="60.9 -71.4 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-636" coordinates="4.8 -1.4 79.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-637" coordinates="0.3 -0.8 78.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-638" coordinates="0.7 -0.3 76.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-639" coordinates="12.5 -6.4 98.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-640" coordinates="13.8 3.1 75.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-641" coordinates="74.4 -37.1 24.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-642" coordinates="1.7 -2.3 64.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-643" coordinates="-69.6 -22.0 25.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-644" coordinates="-64.9 23.2 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-645" coordinates="4.8 -7.6 61.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-646" coordinates="31.6 2.4 45.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-647" coordinates="24.5 -1.5 57.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-648" coordinates="62.8 -12.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-649" coordinates="1.9 -3.0 68.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-650" coordinates="51.9 -37.5 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-651" coordinates="-8.1 -4.2 72.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-652" coordinates="2.4 -12.0 54.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-653" coordinates="-33.8 -10.8 29.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-654" coordinates="83.7 -26.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-655" coordinates="-46.7 -50.4 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-656" coordinates="7.0 3.5 69.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-657" coordinates="4.9 -7.8 58.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-658" coordinates="-18.2 -2.0 61.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-659" coordinates="-0.7 1.2 45.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-660" coordinates="2.9 -1.2 43.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-661" coordinates="-2.9 10.0 34.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-662" coordinates="14.2 20.5 25.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-663" coordinates="-21.9 -10.2 35.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-664" coordinates="5.6 -3.8 75.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-665" coordinates="9.7 -4.0 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-666" coordinates="15.6 -4.1 89.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-667" coordinates="11.9 -6.5 71.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-668" coordinates="-13.9 -4.7 79.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-669" coordinates="-0.6 -12.7 25.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-670" coordinates="21.2 3.9 65.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-671" coordinates="1.2 -7.4 42.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-672" coordinates="73.2 -68.7 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-673" coordinates="-66.2 -11.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-674" coordinates="-29.0 -7.9 30.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-675" coordinates="3.7 -1.6 76.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-676" coordinates="6.9 -2.1 74.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-677" coordinates="3.7 -1.7 104.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-678" coordinates="26.5 -12.0 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-679" coordinates="2.7 0.5 59.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-680" coordinates="9.5 -9.0 56.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-681" coordinates="15.9 2.4 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-682" coordinates="-1.7 2.0 85.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-683" coordinates="5.4 5.2 68.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-684" coordinates="-4.9 -8.6 72.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-685" coordinates="78.5 13.4 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-686" coordinates="-0.4 -6.0 75.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-687" coordinates="23.7 -9.2 43.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-688" coordinates="20.6 -2.0 74.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-689" coordinates="11.1 -2.6 69.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-690" coordinates="8.0 -5.4 70.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-691" coordinates="19.6 6.2 74.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-692" coordinates="5.9 -5.3 70.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-693" coordinates="-11.7 -7.8 34.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-694" coordinates="10.3 -9.6 57.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-695" coordinates="15.0 10.3 60.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-696" coordinates="-3.4 -1.0 67.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-697" coordinates="-39.6 -13.5 232.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-698" coordinates="-10.8 -7.1 23.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-699" coordinates="64.5 129.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-700" coordinates="57.6 59.7 48.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-701" coordinates="-53.7 86.6 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-702" coordinates="-26.9 128.6 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-703" coordinates="147.4 37.9 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-704" coordinates="-24.4 -91.9 63.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-705" coordinates="-268.9 -66.0 57.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-706" coordinates="-21.4 10.5 73.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-707" coordinates="204.7 266.5 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-708" coordinates="-22.7 101.1 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-709" coordinates="40.2 92.1 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-710" coordinates="42.8 0.7 130.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-711" coordinates="-51.3 82.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-712" coordinates="-123.4 5.2 198.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-713" coordinates="-8.5 114.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-714" coordinates="-11.6 95.5 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-715" coordinates="18.9 87.2 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-716" coordinates="49.8 102.7 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-717" coordinates="-21.6 34.0 116.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-718" coordinates="-132.9 80.5 191.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-719" coordinates="-20.4 84.8 30.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-720" coordinates="88.2 54.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-721" coordinates="-34.0 41.9 46.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-722" coordinates="5.6 88.5 34.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-723" coordinates="-20.7 67.8 53.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-724" coordinates="-33.9 100.5 29.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-725" coordinates="22.1 28.6 73.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-726" coordinates="4.7 27.4 88.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-727" coordinates="-5.2 57.5 39.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-728" coordinates="-109.2 59.1 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-729" coordinates="28.4 32.1 86.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-730" coordinates="-10.2 85.1 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-731" coordinates="9.1 91.0 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-732" coordinates="11.8 80.8 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-733" coordinates="-38.5 80.0 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-734" coordinates="77.3 94.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-735" coordinates="37.4 80.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-736" coordinates="-22.7 81.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-737" coordinates="-72.9 60.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-738" coordinates="32.4 79.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-739" coordinates="25.0 97.2 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-740" coordinates="-15.8 90.9 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-741" coordinates="-25.9 86.1 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-742" coordinates="-39.7 70.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-743" coordinates="14.4 80.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-744" coordinates="9.1 30.2 74.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-745" coordinates="11.1 -11.5 92.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-746" coordinates="-45.0 78.6 26.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-747" coordinates="-8.2 79.3 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-748" coordinates="42.8 -37.8 82.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-749" coordinates="-5.4 21.2 271.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-750" coordinates="-9.5 66.1 27.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-751" coordinates="49.0 82.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-752" coordinates="32.0 56.3 20.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-753" coordinates="9.3 103.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-754" coordinates="-133.9 -21.1 190.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-755" coordinates="11.1 28.0 116.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-756" coordinates="155.5 161.6 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-757" coordinates="20.9 70.9 53.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-758" coordinates="57.3 77.3 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-759" coordinates="53.5 90.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-760" coordinates="77.4 73.6 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-761" coordinates="89.7 125.6 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-762" coordinates="-20.4 104.4 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-763" coordinates="-24.7 90.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-764" coordinates="-27.9 92.8 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-765" coordinates="-24.7 100.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-766" coordinates="-92.9 47.3 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-767" coordinates="61.1 69.6 60.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-768" coordinates="-19.9 55.8 59.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-769" coordinates="90.0 87.4 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-770" coordinates="-31.3 93.7 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-771" coordinates="32.3 24.1 58.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-772" coordinates="7.3 42.3 86.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-773" coordinates="-15.3 3.2 113.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-774" coordinates="40.5 51.8 48.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-775" coordinates="14.7 105.3 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-776" coordinates="93.7 42.6 229.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-777" coordinates="89.1 76.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-778" coordinates="-184.0 66.0 140.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-779" coordinates="-11.1 91.2 12.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-780" coordinates="-6.1 120.6 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-781" coordinates="58.3 71.3 73.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-782" coordinates="55.9 79.2 37.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-783" coordinates="16.2 104.4 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-784" coordinates="-17.1 20.1 291.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-785" coordinates="-3.4 70.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-786" coordinates="2.4 117.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-787" coordinates="72.2 137.7 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-788" coordinates="-2.5 102.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-789" coordinates="-6.8 58.8 64.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-790" coordinates="43.1 97.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-791" coordinates="53.6 93.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-792" coordinates="-38.2 70.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-793" coordinates="-91.0 97.2 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-794" coordinates="-80.6 91.1 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-795" coordinates="8.0 117.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-796" coordinates="25.0 56.0 52.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-797" coordinates="71.3 78.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-798" coordinates="-10.7 65.1 86.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-799" coordinates="138.7 96.0 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-800" coordinates="-95.0 130.5 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-801" coordinates="-14.4 -10.9 107.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-802" coordinates="17.8 -23.0 110.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-803" coordinates="-31.8 40.3 86.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-804" coordinates="1.4 27.5 75.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-805" coordinates="-3.0 53.3 104.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-806" coordinates="62.5 47.6 74.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-807" coordinates="36.8 79.1 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-808" coordinates="-3.9 74.8 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-809" coordinates="-120.0 82.0 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-810" coordinates="33.0 24.6 93.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-811" coordinates="-4.8 61.6 50.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-812" coordinates="16.8 69.0 38.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-813" coordinates="16.4 76.8 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-814" coordinates="-88.7 38.2 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-815" coordinates="42.1 103.5 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-816" coordinates="85.3 81.3 17.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-817" coordinates="-10.2 29.6 71.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-818" coordinates="0.9 55.6 81.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-819" coordinates="-15.6 54.6 44.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-820" coordinates="0.1 30.0 98.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-821" coordinates="119.6 79.5 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-822" coordinates="23.3 116.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-823" coordinates="37.7 69.1 53.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-824" coordinates="72.8 117.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-825" coordinates="-10.5 87.7 44.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-826" coordinates="3.8 26.6 74.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-827" coordinates="-8.2 40.7 63.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-828" coordinates="108.4 99.7 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-829" coordinates="64.8 113.6 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-830" coordinates="-14.3 88.2 41.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-831" coordinates="9.6 111.0 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-832" coordinates="-11.3 102.8 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-833" coordinates="-25.1 88.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-834" coordinates="72.9 96.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-835" coordinates="-34.2 42.4 68.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-836" coordinates="13.4 78.1 24.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-837" coordinates="12.7 75.1 71.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-838" coordinates="34.0 39.2 81.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-839" coordinates="57.1 119.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-840" coordinates="34.6 54.7 61.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-841" coordinates="39.0 134.3 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-842" coordinates="67.4 116.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-843" coordinates="-3.1 54.5 54.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-844" coordinates="-26.3 60.3 66.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-845" coordinates="27.8 119.5 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-846" coordinates="52.4 134.8 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-847" coordinates="44.6 47.4 76.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-848" coordinates="46.2 76.0 79.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-849" coordinates="66.9 72.5 40.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-850" coordinates="46.8 118.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-851" coordinates="53.8 161.0 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-852" coordinates="95.8 116.1 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-853" coordinates="7.4 129.2 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-854" coordinates="31.9 133.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-855" coordinates="76.0 87.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-856" coordinates="-37.8 98.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-857" coordinates="-18.4 20.7 85.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-858" coordinates="58.0 101.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-859" coordinates="17.3 68.5 37.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-860" coordinates="55.6 79.0 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-861" coordinates="-20.0 44.5 54.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-862" coordinates="-51.0 105.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-863" coordinates="38.6 22.2 69.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-864" coordinates="-13.9 106.9 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-865" coordinates="-8.3 21.4 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-866" coordinates="1.7 -8.4 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-867" coordinates="2.3 -3.4 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-868" coordinates="-4.8 3.9 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-869" coordinates="8.9 -13.9 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-870" coordinates="-2.5 24.0 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-871" coordinates="1.8 0.0 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-872" coordinates="17.0 22.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-873" coordinates="11.7 7.6 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-874" coordinates="-0.2 1.9 24.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-875" coordinates="6.4 2.6 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-876" coordinates="6.9 17.6 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-877" coordinates="-0.5 26.0 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-878" coordinates="2.8 -2.8 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-879" coordinates="3.1 -3.1 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-880" coordinates="-1.0 -16.8 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-881" coordinates="-0.8 -4.7 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-882" coordinates="12.0 -10.2 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-883" coordinates="-47.7 24.5 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-884" coordinates="6.9 -9.4 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-885" coordinates="-4.3 -6.9 15.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-886" coordinates="-19.7 29.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-887" coordinates="21.3 4.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-888" coordinates="11.5 1.5 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-889" coordinates="4.9 22.3 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-890" coordinates="-0.7 3.2 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-891" coordinates="0.5 22.0 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-892" coordinates="24.0 18.5 12.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-893" coordinates="7.2 -8.9 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-894" coordinates="1.5 -12.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-895" coordinates="2.8 6.0 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-896" coordinates="17.2 4.2 32.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-897" coordinates="6.8 -6.1 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-898" coordinates="1.6 -3.8 21.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-899" coordinates="8.3 8.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-900" coordinates="3.2 -15.2 18.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-901" coordinates="-5.1 24.5 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-902" coordinates="5.3 6.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-903" coordinates="3.9 -0.6 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-904" coordinates="2.6 -13.4 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-905" coordinates="8.6 6.3 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-906" coordinates="2.6 -21.6 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-907" coordinates="10.2 -11.7 24.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-908" coordinates="2.6 -3.1 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-909" coordinates="5.7 3.8 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-910" coordinates="8.1 -4.0 17.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-911" coordinates="-0.8 -2.4 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-912" coordinates="7.1 -10.3 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-913" coordinates="1.8 -14.1 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-914" coordinates="-0.9 2.9 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-915" coordinates="6.9 -12.6 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-916" coordinates="-11.2 20.9 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-917" coordinates="12.7 -5.9 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-918" coordinates="-1.1 -13.7 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-919" coordinates="-25.6 4.5 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-920" coordinates="17.1 1.6 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-921" coordinates="6.6 8.1 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-922" coordinates="-6.1 26.0 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-923" coordinates="-4.7 20.9 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-924" coordinates="-0.5 -11.4 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-925" coordinates="-15.6 -5.9 39.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-926" coordinates="8.9 13.4 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-927" coordinates="11.1 12.9 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-928" coordinates="13.6 -7.1 15.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-929" coordinates="4.7 -10.6 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-930" coordinates="1.2 7.0 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-931" coordinates="6.0 5.9 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-932" coordinates="0.1 3.6 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-933" coordinates="-2.7 2.9 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-934" coordinates="0.6 -5.5 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-935" coordinates="-10.6 -9.9 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-936" coordinates="7.8 -7.8 30.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-937" coordinates="-7.4 -9.7 31.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-938" coordinates="11.2 -7.3 22.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-939" coordinates="-0.7 -8.0 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-940" coordinates="2.7 -2.1 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-941" coordinates="-15.1 4.3 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-942" coordinates="-0.4 1.0 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-943" coordinates="-6.9 0.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-944" coordinates="3.9 -12.0 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-945" coordinates="-17.2 3.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-946" coordinates="4.2 -1.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-947" coordinates="18.1 -4.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-948" coordinates="4.5 3.6 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-949" coordinates="2.8 -12.7 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-950" coordinates="14.6 6.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-951" coordinates="16.1 0.2 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-952" coordinates="-9.3 30.6 7.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-953" coordinates="4.3 32.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-954" coordinates="0.3 -9.3 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-955" coordinates="2.4 14.8 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-956" coordinates="-9.6 21.0 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-957" coordinates="10.3 -2.1 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-958" coordinates="-1.3 19.5 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-959" coordinates="-9.1 19.7 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-960" coordinates="20.2 -8.1 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-961" coordinates="1.9 29.6 24.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-962" coordinates="0.1 -1.1 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-963" coordinates="12.8 -0.1 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-964" coordinates="-7.0 65.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-965" coordinates="1.4 16.8 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-966" coordinates="-7.4 10.5 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-967" coordinates="7.4 -11.1 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-968" coordinates="8.4 22.6 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-969" coordinates="2.5 1.8 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-970" coordinates="-0.7 -1.0 12.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-971" coordinates="7.7 -9.6 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-972" coordinates="-18.2 10.8 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-973" coordinates="4.0 -4.8 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-974" coordinates="9.8 -4.2 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-975" coordinates="4.8 -13.1 12.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-976" coordinates="-3.0 13.8 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-977" coordinates="9.4 24.2 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-978" coordinates="1.6 25.6 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-979" coordinates="2.2 25.3 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-980" coordinates="-3.5 0.1 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-981" coordinates="-0.3 -5.1 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-982" coordinates="4.7 -10.1 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-983" coordinates="10.6 -1.4 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-984" coordinates="-4.3 27.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-985" coordinates="-1.4 -3.5 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-986" coordinates="-10.0 -11.8 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-987" coordinates="-1.7 -0.3 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-988" coordinates="10.9 26.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-989" coordinates="5.8 1.6 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-990" coordinates="-0.6 2.9 28.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-991" coordinates="8.3 22.7 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-992" coordinates="-8.1 -9.6 6.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-993" coordinates="5.4 -9.8 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-994" coordinates="-3.0 13.4 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-995" coordinates="-8.6 5.2 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-996" coordinates="3.1 -12.4 34.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-997" coordinates="0.1 -7.8 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-998" coordinates="-0.8 2.6 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-999" coordinates="-241.9 -50.8 74.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1000" coordinates="5.2 10.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1001" coordinates="36.0 -11.1 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1002" coordinates="7.6 32.0 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1003" coordinates="3.9 4.2 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1004" coordinates="1.5 5.5 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1005" coordinates="-18.2 27.8 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1006" coordinates="3.6 -10.8 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1007" coordinates="-6.4 -11.6 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1008" coordinates="5.8 8.4 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1009" coordinates="18.0 13.5 14.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1010" coordinates="10.3 -7.4 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1011" coordinates="-8.7 -9.2 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1012" coordinates="5.3 0.4 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1013" coordinates="-3.1 26.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1014" coordinates="7.8 6.2 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1015" coordinates="14.0 14.6 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1016" coordinates="12.5 -8.5 32.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1017" coordinates="-4.3 12.4 15.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1018" coordinates="-3.5 16.8 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1019" coordinates="17.8 23.8 12.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1020" coordinates="10.9 -5.3 18.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1021" coordinates="5.0 1.7 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1022" coordinates="-13.4 4.4 29.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1023" coordinates="27.2 27.9 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1024" coordinates="-0.1 -4.4 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1025" coordinates="2.3 27.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1026" coordinates="5.1 7.3 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1027" coordinates="7.3 3.2 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1028" coordinates="6.1 9.5 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1029" coordinates="-26.7 1.6 16.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1030" coordinates="2.4 -3.9 16.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1031" coordinates="-2.1 -1.0 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1032" coordinates="5.8 -9.6 7.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1033" coordinates="-1.5 -3.3 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1034" coordinates="9.3 26.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1035" coordinates="-1.1 0.4 15.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1036" coordinates="11.4 18.1 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1037" coordinates="18.4 5.0 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1038" coordinates="2.7 1.3 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1039" coordinates="-1.6 3.1 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1040" coordinates="-1.6 -3.0 14.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1041" coordinates="19.0 -6.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1042" coordinates="3.1 25.6 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1043" coordinates="-2.0 3.2 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1044" coordinates="6.0 -4.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1045" coordinates="1.8 24.6 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1046" coordinates="-2.3 26.2 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1047" coordinates="7.8 -0.2 17.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1048" coordinates="4.0 -0.2 8.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1049" coordinates="4.8 4.7 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1050" coordinates="9.2 -0.4 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1051" coordinates="-8.1 23.3 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1052" coordinates="-1.4 -1.7 16.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1053" coordinates="-10.3 -10.2 11.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1054" coordinates="6.7 -1.3 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1055" coordinates="-2.1 5.6 17.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1056" coordinates="-1.3 25.0 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1057" coordinates="4.0 -6.7 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1058" coordinates="4.8 -10.9 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1059" coordinates="5.7 12.9 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1060" coordinates="-9.2 -6.4 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1061" coordinates="5.5 3.5 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1062" coordinates="-7.9 -0.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1063" coordinates="8.2 -12.5 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1064" coordinates="9.9 -12.3 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1065" coordinates="-0.9 28.6 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1066" coordinates="-12.8 -3.2 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1067" coordinates="-0.6 -12.5 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1068" coordinates="37.0 -15.6 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1069" coordinates="-3.8 -10.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1070" coordinates="11.9 -10.1 29.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1071" coordinates="-12.1 -1.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1072" coordinates="4.7 -3.0 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1073" coordinates="6.8 -1.8 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1074" coordinates="-1.2 25.0 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1075" coordinates="-14.2 -2.6 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1076" coordinates="14.3 -5.6 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1077" coordinates="12.7 -12.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1078" coordinates="-6.0 4.8 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1079" coordinates="10.4 -2.4 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1080" coordinates="-5.5 21.8 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1081" coordinates="7.0 3.5 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1082" coordinates="5.5 -0.9 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1083" coordinates="6.6 -4.2 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1084" coordinates="13.7 7.6 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1085" coordinates="0.5 -5.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1086" coordinates="-34.9 -19.1 64.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1087" coordinates="6.6 10.8 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1088" coordinates="4.3 -14.2 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1089" coordinates="12.3 -1.1 16.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1090" coordinates="6.6 -18.7 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1091" coordinates="-1.8 33.5 222.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1092" coordinates="-2.0 -8.8 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1093" coordinates="-12.2 0.7 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1094" coordinates="-6.4 -4.8 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1095" coordinates="18.0 40.1 48.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1096" coordinates="19.8 0.3 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1097" coordinates="8.8 -6.8 7.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1098" coordinates="10.5 5.9 17.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1099" coordinates="4.8 20.2 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1100" coordinates="24.6 7.2 82.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1101" coordinates="-7.6 5.7 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1102" coordinates="2.1 -6.0 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1103" coordinates="-22.9 -9.1 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1104" coordinates="-6.8 -0.9 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1105" coordinates="-3.9 -6.9 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1106" coordinates="14.6 19.4 18.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1107" coordinates="11.6 22.8 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1108" coordinates="8.2 25.2 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1109" coordinates="3.1 16.9 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1110" coordinates="-27.0 -8.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1111" coordinates="-18.9 23.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1112" coordinates="4.5 2.3 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1113" coordinates="30.9 -19.9 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1114" coordinates="8.6 3.2 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1115" coordinates="11.2 -20.4 25.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1116" coordinates="-0.1 20.7 11.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1117" coordinates="16.6 4.6 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1118" coordinates="1.2 -0.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1119" coordinates="3.4 -8.0 5.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1120" coordinates="5.2 -10.9 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1121" coordinates="7.7 -15.0 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1122" coordinates="3.6 5.8 13.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1123" coordinates="2.3 -7.1 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1124" coordinates="0.2 -0.3 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1125" coordinates="3.3 3.1 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1126" coordinates="-11.2 10.3 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1127" coordinates="-9.4 0.5 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1128" coordinates="0.5 -11.9 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1129" coordinates="2.9 -9.1 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1130" coordinates="13.8 2.1 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1131" coordinates="0.4 4.2 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1132" coordinates="-4.0 -5.7 12.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1133" coordinates="-0.5 -14.4 32.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1134" coordinates="8.9 -2.6 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1135" coordinates="-7.8 -13.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1136" coordinates="-0.4 2.1 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1137" coordinates="-6.5 21.6 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1138" coordinates="3.0 27.6 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1139" coordinates="8.2 -9.1 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1140" coordinates="6.1 -14.4 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1141" coordinates="-1.1 -13.1 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1142" coordinates="8.4 -9.2 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1143" coordinates="15.8 5.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1144" coordinates="7.2 9.1 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1145" coordinates="13.1 2.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1146" coordinates="-3.7 7.7 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1147" coordinates="8.2 1.5 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1148" coordinates="4.7 -11.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1149" coordinates="1.1 0.1 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1150" coordinates="4.0 -11.8 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1151" coordinates="5.3 1.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1152" coordinates="18.4 -4.2 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1153" coordinates="1.2 32.2 20.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1154" coordinates="-2.1 6.8 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1155" coordinates="7.6 -1.3 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1156" coordinates="6.7 2.6 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1157" coordinates="1.7 21.2 35.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1158" coordinates="2.2 9.6 35.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1159" coordinates="7.2 -8.7 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1160" coordinates="5.0 3.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1161" coordinates="1.6 1.4 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1162" coordinates="9.2 -5.7 16.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1163" coordinates="16.0 14.8 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1164" coordinates="-16.4 40.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1165" coordinates="-2.3 1.6 36.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1166" coordinates="5.4 26.7 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1167" coordinates="-17.2 -10.6 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1168" coordinates="2.4 -1.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1169" coordinates="0.4 4.9 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1170" coordinates="-14.5 5.8 26.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1171" coordinates="13.6 12.8 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1172" coordinates="11.2 -9.0 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1173" coordinates="8.5 -10.4 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1174" coordinates="5.9 -11.5 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1175" coordinates="7.1 -4.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1176" coordinates="-3.4 1.0 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1177" coordinates="20.7 -13.6 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1178" coordinates="-4.0 17.8 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1179" coordinates="16.0 8.3 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1180" coordinates="7.3 36.0 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1181" coordinates="7.8 -10.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1182" coordinates="10.0 -8.4 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1183" coordinates="76.4 59.5 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1184" coordinates="17.1 26.9 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1185" coordinates="-4.8 0.2 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1186" coordinates="-2.3 -0.7 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1187" coordinates="-6.0 1.1 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1188" coordinates="-2.0 7.8 12.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1189" coordinates="4.3 1.3 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1190" coordinates="-1.9 5.3 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1191" coordinates="4.1 -13.7 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1192" coordinates="2.6 5.0 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1193" coordinates="2.6 17.6 17.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1194" coordinates="7.3 14.6 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1195" coordinates="5.9 4.1 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1196" coordinates="7.3 -1.7 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1197" coordinates="3.6 0.8 8.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1198" coordinates="-5.5 21.7 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1199" coordinates="-4.3 14.7 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1200" coordinates="0.1 -0.6 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1201" coordinates="-5.2 -6.4 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1202" coordinates="7.7 4.4 15.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1203" coordinates="-19.7 6.3 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1204" coordinates="3.3 -3.0 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1205" coordinates="6.7 18.7 8.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1206" coordinates="6.3 31.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1207" coordinates="-17.0 17.1 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1208" coordinates="-5.5 16.7 18.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1209" coordinates="-13.5 -5.3 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1210" coordinates="-3.0 -13.5 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1211" coordinates="0.3 -9.5 7.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1212" coordinates="5.7 -1.1 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1213" coordinates="-0.1 -12.5 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1214" coordinates="60.7 -9.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1215" coordinates="2.1 7.5 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1216" coordinates="4.9 22.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1217" coordinates="-0.4 26.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1218" coordinates="-10.0 0.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1219" coordinates="-7.0 28.1 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1220" coordinates="1.7 2.0 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1221" coordinates="19.5 -3.4 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1222" coordinates="6.5 -8.3 15.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1223" coordinates="-5.0 4.5 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1224" coordinates="1.1 1.0 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1225" coordinates="0.5 3.5 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1226" coordinates="4.5 -1.4 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1227" coordinates="16.0 -3.9 18.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1228" coordinates="11.7 8.2 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1229" coordinates="13.8 28.5 44.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1230" coordinates="10.0 -5.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1231" coordinates="1.2 27.3 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1232" coordinates="-4.0 -14.0 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1233" coordinates="13.6 -4.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1234" coordinates="4.8 -10.1 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1235" coordinates="19.4 -8.7 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1236" coordinates="13.3 10.9 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1237" coordinates="-8.0 23.8 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1238" coordinates="11.4 -5.4 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1239" coordinates="-273.2 -20.4 42.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1240" coordinates="5.1 20.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1241" coordinates="15.8 -2.5 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1242" coordinates="11.8 6.8 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1243" coordinates="5.7 32.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1244" coordinates="1.6 -0.2 14.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1245" coordinates="5.5 -12.7 20.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1246" coordinates="-6.1 21.1 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1247" coordinates="7.0 7.8 5.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1248" coordinates="13.2 -5.6 21.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1249" coordinates="-0.5 -11.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1250" coordinates="7.0 1.6 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1251" coordinates="6.1 -6.6 78.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1252" coordinates="0.8 3.1 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1253" coordinates="-15.2 99.7 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1254" coordinates="10.8 94.9 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1255" coordinates="-32.4 72.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1256" coordinates="39.2 59.4 18.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1257" coordinates="2.4 47.6 65.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1258" coordinates="-25.5 75.9 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1259" coordinates="-1.0 77.5 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1260" coordinates="19.1 91.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1261" coordinates="3.1 91.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1262" coordinates="-9.3 78.1 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1263" coordinates="-3.3 22.2 64.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1264" coordinates="-42.8 74.2 28.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1265" coordinates="-13.3 61.0 30.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1266" coordinates="-1.6 83.8 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1267" coordinates="-19.5 67.6 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1268" coordinates="-57.2 70.2 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1269" coordinates="-5.7 81.6 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1270" coordinates="12.3 74.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1271" coordinates="-10.1 87.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1272" coordinates="14.0 80.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1273" coordinates="-15.6 53.2 40.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1274" coordinates="44.2 109.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1275" coordinates="-8.2 89.6 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1276" coordinates="-78.7 68.7 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1277" coordinates="1.6 79.4 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1278" coordinates="11.1 85.7 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1279" coordinates="-8.1 99.7 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1280" coordinates="78.4 53.8 35.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1281" coordinates="-39.7 66.5 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1282" coordinates="-44.5 79.6 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1283" coordinates="-18.4 70.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1284" coordinates="9.9 21.8 76.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1285" coordinates="-51.0 70.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1286" coordinates="-44.0 84.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1287" coordinates="10.5 69.3 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1288" coordinates="-6.1 77.6 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1289" coordinates="22.8 94.4 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1290" coordinates="96.1 121.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1291" coordinates="-76.8 80.9 5.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1292" coordinates="18.2 82.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1293" coordinates="12.7 80.6 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1294" coordinates="-19.9 92.0 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1295" coordinates="-48.0 57.2 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1296" coordinates="68.7 85.0 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1297" coordinates="100.5 29.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1298" coordinates="1.6 84.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1299" coordinates="0.9 60.3 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1300" coordinates="-42.3 88.1 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1301" coordinates="6.0 19.4 67.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1302" coordinates="16.3 90.8 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1303" coordinates="-36.3 77.0 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1304" coordinates="-25.6 69.6 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1305" coordinates="-5.5 83.9 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1306" coordinates="-28.8 66.7 13.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1307" coordinates="-50.8 64.8 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1308" coordinates="-22.9 77.3 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1309" coordinates="-5.7 79.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1310" coordinates="-53.7 58.3 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1311" coordinates="-12.1 93.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1312" coordinates="18.0 98.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1313" coordinates="-20.4 92.9 10.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1314" coordinates="3.8 20.8 81.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1315" coordinates="-8.9 54.9 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1316" coordinates="-33.6 81.9 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1317" coordinates="-19.4 86.8 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1318" coordinates="14.8 76.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1319" coordinates="11.8 -50.8 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1320" coordinates="-0.8 -56.2 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1321" coordinates="39.6 -40.5 14.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1322" coordinates="-20.2 -69.5 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1323" coordinates="9.1 -48.8 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1324" coordinates="-0.9 -63.7 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1325" coordinates="195.2 -155.7 56.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1326" coordinates="18.6 -59.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1327" coordinates="34.9 -78.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1328" coordinates="11.2 -53.2 43.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1329" coordinates="8.8 -59.0 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1330" coordinates="0.9 -53.6 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1331" coordinates="1.7 -69.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1332" coordinates="29.1 -29.5 74.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1333" coordinates="4.3 -52.3 16.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1334" coordinates="-12.0 -62.7 157.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1335" coordinates="5.8 -50.9 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1336" coordinates="-1.8 -62.4 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1337" coordinates="7.7 -61.8 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1338" coordinates="-11.0 -66.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1339" coordinates="15.6 -62.9 30.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1340" coordinates="6.1 -45.5 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1341" coordinates="-11.1 -73.8 83.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1342" coordinates="48.0 -39.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1343" coordinates="-5.3 -74.9 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1344" coordinates="23.7 -47.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1345" coordinates="4.7 -57.4 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1346" coordinates="6.1 -62.1 48.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1347" coordinates="-6.1 -71.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1348" coordinates="-2.8 -56.4 25.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1349" coordinates="4.6 -57.1 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1350" coordinates="-19.7 -62.3 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1351" coordinates="12.4 -48.0 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1352" coordinates="-3.3 -46.9 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1353" coordinates="12.1 -61.0 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1354" coordinates="16.9 -66.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1355" coordinates="40.4 -56.5 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1356" coordinates="1.9 -57.7 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1357" coordinates="-59.0 -109.1 76.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1358" coordinates="0.4 -61.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1359" coordinates="30.1 -48.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1360" coordinates="-4.3 -59.5 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1361" coordinates="1.5 -48.0 25.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1362" coordinates="207.1 -30.8 109.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1363" coordinates="9.7 -61.2 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1364" coordinates="2.5 -51.2 7.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1365" coordinates="-25.2 -77.4 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1366" coordinates="17.3 -72.7 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1367" coordinates="-2.4 -52.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1368" coordinates="31.4 -57.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1369" coordinates="13.8 -62.8 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1370" coordinates="31.2 -59.4 26.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1371" coordinates="-20.5 -60.9 151.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1372" coordinates="-13.7 -54.9 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1373" coordinates="0.7 -47.7 78.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1374" coordinates="5.3 -52.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1375" coordinates="14.7 -87.3 11.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1376" coordinates="31.5 -85.4 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1377" coordinates="-4.3 -61.9 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1378" coordinates="10.0 -71.9 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1379" coordinates="54.7 -66.8 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1380" coordinates="-9.1 -48.8 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1381" coordinates="6.1 -48.7 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1382" coordinates="-4.8 -50.3 39.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1383" coordinates="-8.5 -67.4 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1384" coordinates="5.7 -55.1 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1385" coordinates="39.1 -89.2 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1386" coordinates="34.2 -60.2 29.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1387" coordinates="16.6 -64.3 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1388" coordinates="-2.1 -62.0 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1389" coordinates="-1.3 -52.6 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1390" coordinates="9.2 -61.1 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1391" coordinates="20.6 -60.5 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1392" coordinates="10.1 -66.8 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1393" coordinates="-9.9 -58.5 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1394" coordinates="9.2 -52.1 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1395" coordinates="38.0 -27.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1396" coordinates="-1.8 -63.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1397" coordinates="11.6 -55.9 19.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1398" coordinates="2.6 -36.5 64.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1399" coordinates="-12.9 -46.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1400" coordinates="7.2 -75.4 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1401" coordinates="0.5 -50.1 17.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1402" coordinates="15.4 -47.8 16.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1403" coordinates="8.5 -51.7 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1404" coordinates="-5.2 -51.6 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1405" coordinates="-77.0 -17.5 141.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1406" coordinates="33.7 -87.4 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1407" coordinates="54.3 -41.4 82.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1408" coordinates="2.0 -27.2 78.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1409" coordinates="0.8 -18.4 56.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1410" coordinates="-92.0 -40.5 2.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1411" coordinates="17.5 -60.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1412" coordinates="2.2 -41.8 27.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1413" coordinates="-5.0 -61.2 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1414" coordinates="33.8 -58.3 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1415" coordinates="33.7 -54.6 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1416" coordinates="-7.0 -52.7 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1417" coordinates="-2.6 -53.1 27.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1418" coordinates="19.6 -62.1 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1419" coordinates="7.9 -67.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1420" coordinates="5.3 -49.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1421" coordinates="10.8 -70.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1422" coordinates="-0.4 -60.3 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1423" coordinates="3.0 -62.5 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1424" coordinates="-11.5 -54.1 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1425" coordinates="22.4 -52.5 19.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1426" coordinates="10.4 -45.3 63.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1427" coordinates="8.1 -82.7 10.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1428" coordinates="-3.3 -55.2 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1429" coordinates="15.6 -69.8 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1430" coordinates="-4.8 -49.9 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1431" coordinates="-12.5 -29.8 61.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1432" coordinates="29.7 -36.9 40.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1433" coordinates="18.6 -43.6 26.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1434" coordinates="31.7 -58.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1435" coordinates="16.6 -61.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1436" coordinates="19.3 -61.9 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1437" coordinates="1.7 -60.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1438" coordinates="15.5 -51.8 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1439" coordinates="13.3 -70.5 15.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1440" coordinates="7.9 -64.6 10.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1441" coordinates="4.1 -51.9 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1442" coordinates="-11.4 -65.5 3.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1443" coordinates="2.9 -45.8 24.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1444" coordinates="-2.3 -57.8 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1445" coordinates="-9.2 -25.2 17.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1446" coordinates="5.8 -49.7 13.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1447" coordinates="4.2 -57.1 21.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1448" coordinates="-1.2 -37.4 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1449" coordinates="12.1 -52.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1450" coordinates="2.9 -49.4 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1451" coordinates="49.3 -56.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1452" coordinates="6.3 -58.3 20.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1453" coordinates="-1.9 -47.3 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1454" coordinates="12.8 -55.3 20.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1455" coordinates="-1.5 3.7 229.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1456" coordinates="-13.3 -13.6 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1457" coordinates="-2.7 -1.9 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1458" coordinates="-14.2 20.6 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1459" coordinates="10.3 -24.7 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1460" coordinates="4.3 -10.1 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1461" coordinates="22.8 18.2 20.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1462" coordinates="1.7 28.0 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1463" coordinates="15.9 -0.9 6.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1464" coordinates="-2.8 22.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1465" coordinates="2.6 -0.9 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1466" coordinates="-4.9 -8.2 18.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1467" coordinates="-3.6 22.9 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1468" coordinates="-5.1 15.9 4.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1469" coordinates="0.0 -0.2 13.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1470" coordinates="1.7 -5.7 4.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1471" coordinates="-1.5 2.1 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1472" coordinates="-0.3 -1.9 18.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1473" coordinates="2.9 1.4 9.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1474" coordinates="2.7 -6.6 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1475" coordinates="-5.5 19.1 6.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1476" coordinates="-0.0 -3.7 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1477" coordinates="2.9 -4.3 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1478" coordinates="10.0 -9.0 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1479" coordinates="10.9 -5.1 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1480" coordinates="-0.1 2.7 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1481" coordinates="-4.1 1.9 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1482" coordinates="9.1 1.9 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1483" coordinates="9.0 10.6 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1484" coordinates="-11.6 5.6 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1485" coordinates="-11.9 26.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1486" coordinates="1.5 2.1 12.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1487" coordinates="1.8 -5.6 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1488" coordinates="19.5 1.0 3.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1489" coordinates="5.5 -1.8 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1490" coordinates="0.5 -7.8 5.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1491" coordinates="9.7 -4.1 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1492" coordinates="2.5 8.9 14.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1493" coordinates="12.5 -2.2 61.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1494" coordinates="-3.2 -12.6 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1495" coordinates="2.6 -0.8 30.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1496" coordinates="7.2 1.3 12.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1497" coordinates="2.9 1.1 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1498" coordinates="24.0 -11.8 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1499" coordinates="-26.3 -10.6 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1500" coordinates="25.9 18.0 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1501" coordinates="-13.6 30.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1502" coordinates="3.4 -16.6 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1503" coordinates="0.3 -6.6 7.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1504" coordinates="2.4 -4.4 3.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1505" coordinates="3.6 -1.0 11.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1506" coordinates="0.8 8.2 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1507" coordinates="-1.8 5.1 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1508" coordinates="7.9 2.0 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1509" coordinates="-11.6 -40.5 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1510" coordinates="3.9 13.3 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1511" coordinates="2.0 3.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1512" coordinates="24.1 -4.3 21.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1513" coordinates="-14.9 14.3 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1514" coordinates="3.4 2.7 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1515" coordinates="7.4 8.0 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1516" coordinates="2.9 0.3 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1517" coordinates="8.6 -8.3 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1518" coordinates="0.8 7.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1519" coordinates="5.3 -9.7 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1520" coordinates="-13.2 27.1 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1521" coordinates="4.0 -0.6 9.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1522" coordinates="4.5 7.7 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1523" coordinates="11.5 7.2 8.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1524" coordinates="6.4 -6.4 12.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1525" coordinates="-3.3 21.9 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1526" coordinates="6.1 23.9 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1527" coordinates="-3.1 26.9 19.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1528" coordinates="-6.5 29.4 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1529" coordinates="-0.6 4.9 8.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1530" coordinates="-3.2 -2.6 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1531" coordinates="-35.4 19.3 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1532" coordinates="4.9 5.7 5.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1533" coordinates="-1.8 -5.1 9.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1534" coordinates="8.4 -2.2 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1535" coordinates="2.6 -11.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1536" coordinates="-1.8 -9.4 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1537" coordinates="2.0 0.2 16.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1538" coordinates="0.1 16.7 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1539" coordinates="-7.6 8.1 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1540" coordinates="-8.8 0.9 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1541" coordinates="13.4 -6.0 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1542" coordinates="0.4 3.5 2.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1543" coordinates="5.6 23.0 11.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1544" coordinates="3.7 -7.2 13.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1545" coordinates="-23.6 17.7 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1546" coordinates="-3.9 13.4 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1547" coordinates="-3.1 -10.1 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1548" coordinates="5.0 -0.2 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1549" coordinates="6.5 17.6 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1550" coordinates="10.3 3.2 4.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1551" coordinates="14.1 -11.2 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1552" coordinates="3.7 -1.5 6.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1553" coordinates="4.5 27.0 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1554" coordinates="-3.3 -4.3 64.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1555" coordinates="0.6 -4.9 7.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1556" coordinates="8.0 -6.0 74.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1557" coordinates="4.1 -1.0 4.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1558" coordinates="58.6 -3.1 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1559" coordinates="-12.0 -13.9 5.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1560" coordinates="-295.5 15.4 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1561" coordinates="-36.4 -12.1 246.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1562" coordinates="-18.7 11.6 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1563" coordinates="17.8 28.5 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1564" coordinates="8.0 5.4 8.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1565" coordinates="-13.7 28.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1566" coordinates="0.3 -3.9 6.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1567" coordinates="5.2 21.5 1.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1568" coordinates="7.3 -0.4 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1569" coordinates="22.5 24.4 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1570" coordinates="0.6 -8.0 13.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1571" coordinates="2.7 5.4 21.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1572" coordinates="-5.0 23.3 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1573" coordinates="5.7 -10.0 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1574" coordinates="-0.6 -4.0 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1575" coordinates="6.7 21.1 13.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1576" coordinates="12.8 4.9 2.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1577" coordinates="-2.5 -12.9 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1578" coordinates="-7.5 -0.9 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1579" coordinates="4.8 29.0 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1580" coordinates="19.2 -6.0 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1581" coordinates="-0.6 5.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1582" coordinates="-3.8 4.8 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1583" coordinates="-0.9 21.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1584" coordinates="-0.1 29.1 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1585" coordinates="-3.6 -5.7 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1586" coordinates="-2.2 -11.4 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1587" coordinates="8.1 17.4 4.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1588" coordinates="9.3 -4.6 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1589" coordinates="5.8 25.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1590" coordinates="18.9 0.2 8.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1591" coordinates="11.7 3.0 11.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1592" coordinates="3.6 -9.6 13.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1593" coordinates="-5.9 -9.4 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1594" coordinates="-3.3 -0.4 12.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1595" coordinates="10.8 -7.8 6.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1596" coordinates="9.4 -8.9 3.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1597" coordinates="11.6 -0.6 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1598" coordinates="-19.2 4.1 10.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1599" coordinates="18.3 13.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1600" coordinates="-9.2 -0.6 8.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1601" coordinates="6.0 -9.5 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1602" coordinates="5.9 -9.5 20.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1603" coordinates="9.0 -8.5 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1604" coordinates="4.1 27.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1605" coordinates="13.6 -5.0 6.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1606" coordinates="5.9 -7.1 9.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1607" coordinates="0.3 -5.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1608" coordinates="1.5 4.6 7.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1609" coordinates="20.0 12.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1610" coordinates="4.8 3.5 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1611" coordinates="10.8 20.6 6.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1612" coordinates="8.4 8.4 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1613" coordinates="4.5 -65.8 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1614" coordinates="12.9 -53.6 9.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1615" coordinates="4.2 -64.1 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1616" coordinates="2.4 -54.9 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1617" coordinates="-7.1 -68.5 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1618" coordinates="-6.3 -56.8 20.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1619" coordinates="3.3 -45.7 20.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1620" coordinates="8.3 -47.0 24.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1621" coordinates="-12.5 -37.6 10.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1622" coordinates="2.5 -59.5 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1623" coordinates="-44.4 -87.8 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1624" coordinates="-4.0 -54.8 18.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1625" coordinates="36.5 -76.2 3.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1626" coordinates="5.6 -40.8 11.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1627" coordinates="2.0 -43.2 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1628" coordinates="-3.0 -57.3 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1629" coordinates="6.7 -69.7 4.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1630" coordinates="7.2 -76.4 3.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1631" coordinates="-18.4 -90.2 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1632" coordinates="-16.0 -82.9 16.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1633" coordinates="-3.6 -61.0 0.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1634" coordinates="19.1 -82.9 2.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1635" coordinates="13.8 -48.5 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1636" coordinates="8.2 -101.8 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1637" coordinates="14.2 -56.8 10.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1638" coordinates="14.4 -48.4 24.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1639" coordinates="-1.0 -48.8 29.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1640" coordinates="-17.4 -59.4 8.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1641" coordinates="0.7 -48.6 41.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1642" coordinates="14.5 -47.9 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1643" coordinates="-21.6 -56.3 6.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1644" coordinates="-5.8 -63.2 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1645" coordinates="-8.2 -47.1 18.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1646" coordinates="10.5 -55.2 22.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1647" coordinates="-3.8 -55.9 35.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1648" coordinates="7.6 -82.2 1.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1649" coordinates="-8.7 85.0 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1650" coordinates="-1.5 91.4 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1651" coordinates="-25.1 81.8 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1652" coordinates="-24.3 84.1 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1653" coordinates="-11.9 70.3 21.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1654" coordinates="-65.6 49.8 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1655" coordinates="-27.0 88.4 0.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1656" coordinates="-9.6 75.5 8.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1657" coordinates="-12.8 94.8 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1658" coordinates="6.1 90.3 0.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1659" coordinates="-8.9 78.9 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1660" coordinates="-10.9 83.9 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1661" coordinates="-13.3 87.4 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1662" coordinates="-31.4 68.0 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1663" coordinates="16.4 -5.4 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1664" coordinates="0.4 -11.0 12.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1665" coordinates="12.4 -3.8 9.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1666" coordinates="5.5 -1.7 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1667" coordinates="-5.6 7.5 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1668" coordinates="7.4 -13.4 1.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1669" coordinates="-7.2 4.1 1.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1670" coordinates="5.1 0.1 9.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1671" coordinates="-15.9 -1.7 0.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1672" coordinates="4.6 -7.6 9.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1673" coordinates="10.9 -2.9 2.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1674" coordinates="10.0 -6.8 22.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1675" coordinates="-0.3 -6.5 15.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1676" coordinates="-1.4 5.3 0.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1677" coordinates="18.4 -4.3 3.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1678" coordinates="4.8 26.2 9.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1679" coordinates="2.5 -9.8 3.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1680" coordinates="4.8 16.8 9.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1681" coordinates="-1.7 -9.9 10.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1682" coordinates="1.9 -11.4 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1683" coordinates="2.4 -7.2 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1684" coordinates="3.8 0.9 5.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1685" coordinates="-10.0 -73.5 2.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1686" coordinates="-5.0 -51.0 19.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1687" coordinates="5.4 26.4 55.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1688" coordinates="2.3 78.2 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1689" coordinates="-15.2 92.2 1.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1690" coordinates="-19.2 81.0 5.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1691" coordinates="1.6 53.9 28.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1692" coordinates="-46.7 62.9 2.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1693" coordinates="12.1 88.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1694" coordinates="29.5 42.4 46.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1695" coordinates="-2.8 31.1 50.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1696" coordinates="-15.0 90.0 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1697" coordinates="-5.1 46.7 36.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1698" coordinates="-4.9 71.0 61.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1699" coordinates="-14.6 96.7 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1700" coordinates="-32.7 96.9 10.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1701" coordinates="10.0 -40.2 10.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1702" coordinates="6.0 -51.8 0.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1703" coordinates="9.1 -59.3 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1704" coordinates="4.5 -11.7 3.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1705" coordinates="-7.0 22.9 17.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1706" coordinates="4.7 -3.8 7.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1707" coordinates="9.5 -9.1 3.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1708" coordinates="35.8 25.5 1.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1709" coordinates="29.1 11.1 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1710" coordinates="-0.2 -2.0 40.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1711" coordinates="-1.2 -9.3 2.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1712" coordinates="-5.4 -7.7 13.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1713" coordinates="9.9 -10.7 7.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1714" coordinates="8.3 -9.9 13.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1715" coordinates="-1.2 -3.4 6.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1716" coordinates="3.1 0.9 5.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1717" coordinates="5.0 -10.2 4.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1718" coordinates="5.0 4.2 4.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1719" coordinates="-10.5 4.8 24.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1720" coordinates="1.6 -1.6 1.0 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1721" coordinates="13.4 -1.6 21.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1722" coordinates="3.7 -2.2 1.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1723" coordinates="1.5 -6.5 2.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1724" coordinates="-5.6 24.5 5.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1725" coordinates="-2.8 -12.8 4.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1726" coordinates="8.8 -0.8 14.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1727" coordinates="0.1 4.1 11.3 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1728" coordinates="6.8 -1.5 10.4 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1729" coordinates="11.5 17.8 1.9 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1730" coordinates="-26.3 -10.6 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1731" coordinates="-0.1 6.9 4.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1732" coordinates="5.7 23.3 0.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1733" coordinates="29.0 12.7 0.2 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1734" coordinates="37.4 -11.5 57.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1735" coordinates="-9.0 63.3 53.8 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1736" coordinates="1.6 11.6 1.6 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1737" coordinates="-14.8 -64.6 2.1 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1738" coordinates="21.3 -77.5 0.5 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
-    <peer id="peer-1739" coordinates="36.2 -52.2 0.7 " power="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
+    <peer id="peer-0" coordinates="-30.8 -183.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1" coordinates="-1.3 3.4 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-2" coordinates="6.6 6.7 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-3" coordinates="-16.7 19.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-4" coordinates="7.8 5.6 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-5" coordinates="-5.9 -4.4 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-6" coordinates="0.0 -5.0 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-7" coordinates="0.3 -4.1 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-8" coordinates="-1.3 -10.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-9" coordinates="2.3 -5.9 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-10" coordinates="2.9 -3.0 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-11" coordinates="4.3 4.7 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-12" coordinates="3.0 -1.0 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-13" coordinates="8.2 -4.9 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-14" coordinates="6.5 -0.9 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-15" coordinates="9.1 -3.9 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-16" coordinates="-6.0 18.8 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-17" coordinates="4.6 1.3 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-18" coordinates="6.0 -12.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-19" coordinates="3.3 10.1 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-20" coordinates="10.6 0.8 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-21" coordinates="-6.3 15.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-22" coordinates="-1.6 2.5 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-23" coordinates="-3.4 1.9 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-24" coordinates="-10.0 -1.7 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-25" coordinates="-8.7 -2.3 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-26" coordinates="-10.6 -9.4 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-27" coordinates="-0.6 -0.2 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-28" coordinates="8.4 -11.4 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-29" coordinates="0.3 8.6 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-30" coordinates="5.5 -10.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-31" coordinates="-0.2 -4.9 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-32" coordinates="5.2 5.2 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-33" coordinates="9.4 -9.5 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-34" coordinates="5.8 -4.9 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-35" coordinates="1.9 -7.6 22.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-36" coordinates="-1.1 0.7 15.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-37" coordinates="7.6 -0.2 44.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-38" coordinates="8.9 19.6 23.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-39" coordinates="0.3 0.3 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-40" coordinates="7.0 12.5 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-41" coordinates="4.2 6.9 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-42" coordinates="1.4 -9.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-43" coordinates="0.6 1.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-44" coordinates="0.4 -5.5 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-45" coordinates="6.9 2.6 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-46" coordinates="6.9 3.0 10.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-47" coordinates="1.4 -6.6 30.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-48" coordinates="3.4 17.4 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-49" coordinates="10.5 -6.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-50" coordinates="-17.2 19.6 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-51" coordinates="8.5 24.4 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-52" coordinates="-4.0 -1.1 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-53" coordinates="-4.3 -17.1 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-54" coordinates="-5.7 -1.2 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-55" coordinates="-6.4 35.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-56" coordinates="-0.3 1.1 31.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-57" coordinates="1.8 -8.2 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-58" coordinates="2.3 2.6 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-59" coordinates="3.6 0.3 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-60" coordinates="13.8 -10.9 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-61" coordinates="-1.0 -9.6 18.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-62" coordinates="14.1 20.7 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-63" coordinates="18.3 -11.0 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-64" coordinates="7.0 -1.6 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-65" coordinates="-6.8 -13.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-66" coordinates="10.6 -9.6 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-67" coordinates="-0.5 -3.8 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-68" coordinates="8.5 -8.8 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-69" coordinates="1.4 -6.1 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-70" coordinates="0.6 -2.5 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-71" coordinates="-11.5 -6.8 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-72" coordinates="1.0 20.4 14.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-73" coordinates="-2.2 19.5 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-74" coordinates="-9.6 -5.1 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-75" coordinates="-0.6 0.6 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-76" coordinates="8.6 24.5 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-77" coordinates="-0.4 8.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-78" coordinates="-11.7 34.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-79" coordinates="-10.6 22.8 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-80" coordinates="9.1 -15.4 45.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-81" coordinates="20.3 -5.0 35.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-82" coordinates="-3.0 -6.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-83" coordinates="0.4 30.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-84" coordinates="24.2 -9.9 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-85" coordinates="2.6 -8.5 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-86" coordinates="4.7 -8.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-87" coordinates="-2.9 23.9 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-88" coordinates="1.7 -5.0 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-89" coordinates="77.3 8.0 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-90" coordinates="11.6 -8.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-91" coordinates="10.1 -9.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-92" coordinates="2.0 -62.0 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-93" coordinates="12.5 6.8 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-94" coordinates="-8.1 -10.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-95" coordinates="16.4 -6.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-96" coordinates="-11.8 25.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-97" coordinates="-12.3 24.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-98" coordinates="-0.2 25.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-99" coordinates="7.2 -16.5 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-100" coordinates="11.7 -7.9 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-101" coordinates="0.1 -14.6 29.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-102" coordinates="7.1 -2.5 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-103" coordinates="0.4 -54.7 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-104" coordinates="-0.8 0.8 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-105" coordinates="-5.6 -4.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-106" coordinates="13.8 2.3 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-107" coordinates="-0.4 -12.9 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-108" coordinates="-3.0 17.7 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-109" coordinates="-13.3 8.2 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-110" coordinates="28.3 51.7 50.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-111" coordinates="-3.6 3.8 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-112" coordinates="8.6 20.3 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-113" coordinates="6.2 -8.3 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-114" coordinates="-3.6 12.6 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-115" coordinates="-1.6 21.5 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-116" coordinates="-4.7 -1.4 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-117" coordinates="21.7 -12.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-118" coordinates="9.4 -1.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-119" coordinates="24.1 -66.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-120" coordinates="0.9 -41.4 28.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-121" coordinates="3.6 -70.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-122" coordinates="26.4 -63.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-123" coordinates="-13.6 -63.4 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-124" coordinates="19.6 -55.9 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-125" coordinates="12.3 -62.6 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-126" coordinates="-7.7 -64.3 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-127" coordinates="10.6 -76.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-128" coordinates="-55.2 82.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-129" coordinates="-46.5 83.3 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-130" coordinates="-54.6 125.3 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-131" coordinates="3.0 -5.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-132" coordinates="7.6 0.9 17.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-133" coordinates="26.6 -4.8 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-134" coordinates="-5.6 -47.0 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-135" coordinates="13.4 -56.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-136" coordinates="7.3 -3.1 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-137" coordinates="5.7 -54.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-138" coordinates="18.6 1.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-139" coordinates="17.2 -6.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-140" coordinates="6.8 -6.8 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-141" coordinates="4.1 -2.7 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-142" coordinates="7.1 -8.1 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-143" coordinates="-0.4 2.7 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-144" coordinates="24.2 -4.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-145" coordinates="-0.4 -2.7 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-146" coordinates="32.9 -24.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-147" coordinates="22.5 -42.6 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-148" coordinates="10.6 -54.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-149" coordinates="-12.7 75.5 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-150" coordinates="-10.6 73.4 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-151" coordinates="70.5 94.3 11.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-152" coordinates="122.9 -24.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-153" coordinates="-47.3 61.8 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-154" coordinates="-31.3 81.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-155" coordinates="-15.0 23.7 57.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-156" coordinates="48.3 105.0 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-157" coordinates="10.0 -14.1 117.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-158" coordinates="2.8 -57.8 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-159" coordinates="-10.2 0.1 14.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-160" coordinates="4.8 -51.0 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-161" coordinates="1.9 -47.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-162" coordinates="3.6 -12.0 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-163" coordinates="31.3 -11.8 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-164" coordinates="2.2 18.2 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-165" coordinates="-9.7 25.4 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-166" coordinates="-11.1 -48.9 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-167" coordinates="8.7 -1.3 22.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-168" coordinates="59.8 101.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-169" coordinates="-0.3 -9.0 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-170" coordinates="18.2 -60.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-171" coordinates="6.4 -54.9 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-172" coordinates="12.8 -52.7 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-173" coordinates="-4.5 -47.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-174" coordinates="6.7 -7.9 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-175" coordinates="11.8 -52.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-176" coordinates="9.9 94.6 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-177" coordinates="9.7 126.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-178" coordinates="-17.5 52.9 53.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-179" coordinates="-30.1 63.8 51.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-180" coordinates="-24.4 52.4 48.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-181" coordinates="-8.8 27.4 73.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-182" coordinates="14.4 59.2 42.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-183" coordinates="-20.0 101.7 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-184" coordinates="6.4 -16.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-185" coordinates="1.7 -7.5 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-186" coordinates="-27.4 27.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-187" coordinates="-0.3 4.5 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-188" coordinates="1.6 29.0 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-189" coordinates="-4.4 -6.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-190" coordinates="8.2 -60.4 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-191" coordinates="-1.6 3.1 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-192" coordinates="0.5 1.5 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-193" coordinates="1.0 -58.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-194" coordinates="-17.8 -59.9 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-195" coordinates="8.7 -58.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-196" coordinates="22.8 -10.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-197" coordinates="2.7 -5.8 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-198" coordinates="7.2 -9.6 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-199" coordinates="5.8 26.9 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-200" coordinates="30.6 12.8 64.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-201" coordinates="-0.1 -3.3 85.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-202" coordinates="4.0 5.3 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-203" coordinates="-4.0 -49.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-204" coordinates="7.9 -51.6 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-205" coordinates="2.4 -53.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-206" coordinates="4.8 -1.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-207" coordinates="1.4 16.1 81.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-208" coordinates="52.3 79.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-209" coordinates="11.5 -18.0 65.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-210" coordinates="-6.0 -64.0 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-211" coordinates="-0.7 7.9 25.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-212" coordinates="25.3 -61.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-213" coordinates="5.6 -58.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-214" coordinates="-39.5 100.5 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-215" coordinates="5.8 21.1 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-216" coordinates="-12.0 -4.3 79.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-217" coordinates="5.2 -6.8 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-218" coordinates="2.6 6.5 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-219" coordinates="-0.0 4.6 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-220" coordinates="-6.8 -47.6 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-221" coordinates="23.7 -34.1 30.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-222" coordinates="-55.1 64.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-223" coordinates="-0.6 76.7 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-224" coordinates="-36.0 97.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-225" coordinates="-16.1 -58.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-226" coordinates="-0.2 -9.1 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-227" coordinates="7.3 -6.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-228" coordinates="37.7 46.5 54.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-229" coordinates="32.3 -63.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-230" coordinates="2.6 27.1 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-231" coordinates="-7.5 20.0 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-232" coordinates="3.0 -12.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-233" coordinates="16.4 -6.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-234" coordinates="-3.6 28.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-235" coordinates="1.5 -5.4 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-236" coordinates="5.7 -5.4 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-237" coordinates="6.1 0.0 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-238" coordinates="-4.2 23.4 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-239" coordinates="-0.1 -9.3 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-240" coordinates="-0.3 -1.5 18.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-241" coordinates="-5.6 21.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-242" coordinates="8.2 -18.2 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-243" coordinates="-4.6 20.7 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-244" coordinates="9.5 -57.3 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-245" coordinates="-30.4 -38.8 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-246" coordinates="-16.7 23.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-247" coordinates="-13.2 -82.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-248" coordinates="-7.4 -62.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-249" coordinates="11.0 -51.3 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-250" coordinates="14.5 -50.5 35.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-251" coordinates="35.2 7.8 89.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-252" coordinates="1.6 6.3 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-253" coordinates="-7.0 38.9 93.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-254" coordinates="12.8 -0.1 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-255" coordinates="3.3 -10.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-256" coordinates="2.0 -14.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-257" coordinates="9.6 18.7 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-258" coordinates="-9.5 3.3 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-259" coordinates="-2.9 -4.9 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-260" coordinates="-24.1 79.3 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-261" coordinates="3.9 -57.9 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-262" coordinates="3.1 -9.1 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-263" coordinates="-3.8 9.3 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-264" coordinates="-1.4 25.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-265" coordinates="-6.9 24.2 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-266" coordinates="10.1 2.0 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-267" coordinates="-9.6 3.1 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-268" coordinates="23.8 -0.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-269" coordinates="9.6 8.7 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-270" coordinates="-6.1 -10.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-271" coordinates="5.0 -9.6 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-272" coordinates="3.8 21.8 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-273" coordinates="10.7 -5.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-274" coordinates="-1.8 -8.2 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-275" coordinates="-2.2 4.6 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-276" coordinates="-0.3 -12.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-277" coordinates="11.7 -10.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-278" coordinates="7.2 -9.4 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-279" coordinates="3.9 -8.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-280" coordinates="7.4 26.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-281" coordinates="0.7 29.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-282" coordinates="-5.1 1.2 48.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-283" coordinates="2.8 -9.5 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-284" coordinates="-20.6 62.4 40.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-285" coordinates="-7.3 -5.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-286" coordinates="12.2 -2.3 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-287" coordinates="8.1 -2.9 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-288" coordinates="-10.9 -7.6 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-289" coordinates="8.2 2.2 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-290" coordinates="9.8 2.9 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-291" coordinates="13.3 -6.0 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-292" coordinates="10.1 -15.3 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-293" coordinates="7.2 -14.2 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-294" coordinates="8.3 28.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-295" coordinates="-2.9 24.7 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-296" coordinates="13.7 12.8 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-297" coordinates="-6.2 25.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-298" coordinates="5.9 -22.1 20.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-299" coordinates="10.7 15.5 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-300" coordinates="5.8 19.5 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-301" coordinates="4.9 13.8 19.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-302" coordinates="-15.9 -68.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-303" coordinates="6.8 -10.3 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-304" coordinates="1.6 -49.5 49.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-305" coordinates="18.7 -48.7 40.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-306" coordinates="28.2 -85.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-307" coordinates="-49.7 67.4 35.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-308" coordinates="-2.1 -52.3 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-309" coordinates="2.7 32.6 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-310" coordinates="3.8 5.7 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-311" coordinates="1.9 -10.0 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-312" coordinates="17.5 27.3 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-313" coordinates="5.7 -12.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-314" coordinates="1.3 21.8 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-315" coordinates="-34.6 6.1 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-316" coordinates="15.9 22.4 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-317" coordinates="9.5 -8.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-318" coordinates="12.6 -16.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-319" coordinates="12.6 10.5 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-320" coordinates="3.5 2.5 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-321" coordinates="-4.5 -37.7 54.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-322" coordinates="16.9 -6.7 11.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-323" coordinates="1.9 2.6 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-324" coordinates="1.2 12.4 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-325" coordinates="-85.9 72.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-326" coordinates="-0.9 -2.8 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-327" coordinates="2.1 -2.9 16.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-328" coordinates="1.1 -5.1 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-329" coordinates="6.1 -0.4 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-330" coordinates="3.2 28.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-331" coordinates="5.6 21.6 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-332" coordinates="6.8 -9.5 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-333" coordinates="-3.8 -4.7 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-334" coordinates="-3.2 9.3 27.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-335" coordinates="-3.0 -12.5 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-336" coordinates="6.5 -2.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-337" coordinates="5.2 -0.9 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-338" coordinates="6.0 -1.2 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-339" coordinates="-7.7 19.9 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-340" coordinates="41.5 8.0 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-341" coordinates="-8.7 2.6 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-342" coordinates="0.8 -60.0 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-343" coordinates="50.5 -23.4 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-344" coordinates="-1.1 -5.8 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-345" coordinates="-0.5 3.0 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-346" coordinates="3.0 9.9 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-347" coordinates="11.6 -57.6 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-348" coordinates="18.6 -49.2 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-349" coordinates="38.7 -59.5 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-350" coordinates="-3.7 -58.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-351" coordinates="5.6 -58.2 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-352" coordinates="233.1 75.6 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-353" coordinates="-0.9 -49.5 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-354" coordinates="5.2 -49.9 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-355" coordinates="7.7 -45.9 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-356" coordinates="22.1 -61.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-357" coordinates="10.4 -73.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-358" coordinates="-0.2 -56.2 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-359" coordinates="-5.0 -54.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-360" coordinates="-12.8 -81.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-361" coordinates="11.0 -57.1 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-362" coordinates="23.8 -65.7 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-363" coordinates="24.0 -81.9 73.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-364" coordinates="10.8 -46.7 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-365" coordinates="11.6 -47.7 14.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-366" coordinates="-6.1 -55.9 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-367" coordinates="-105.0 -55.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-368" coordinates="-18.0 -86.0 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-369" coordinates="0.8 -54.4 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-370" coordinates="-10.7 -48.7 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-371" coordinates="8.1 -31.8 73.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-372" coordinates="-15.7 -65.2 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-373" coordinates="7.6 -58.8 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-374" coordinates="5.2 -44.5 33.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-375" coordinates="7.9 -71.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-376" coordinates="-2.1 -54.5 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-377" coordinates="-2.5 -26.0 46.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-378" coordinates="39.2 -53.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-379" coordinates="-26.6 -66.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-380" coordinates="-22.1 -65.8 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-381" coordinates="21.1 -46.4 22.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-382" coordinates="-1.1 -60.0 25.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-383" coordinates="-49.1 -51.7 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-384" coordinates="21.2 -51.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-385" coordinates="-0.9 -50.1 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-386" coordinates="0.3 -65.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-387" coordinates="-3.4 -65.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-388" coordinates="0.4 -53.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-389" coordinates="20.8 -60.3 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-390" coordinates="5.7 -25.3 44.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-391" coordinates="18.9 -47.0 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-392" coordinates="-0.6 -56.7 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-393" coordinates="6.5 -42.5 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-394" coordinates="0.1 -51.0 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-395" coordinates="0.1 -47.6 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-396" coordinates="13.5 -65.6 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-397" coordinates="-7.7 -48.3 19.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-398" coordinates="-16.7 -70.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-399" coordinates="36.8 -65.7 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-400" coordinates="-15.3 -74.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-401" coordinates="-4.9 -61.8 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-402" coordinates="0.0 -59.5 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-403" coordinates="8.9 -60.4 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-404" coordinates="10.9 -29.9 46.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-405" coordinates="4.1 -70.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-406" coordinates="-9.1 -54.6 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-407" coordinates="27.4 -55.8 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-408" coordinates="2.4 -78.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-409" coordinates="8.8 -48.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-410" coordinates="11.1 -49.8 21.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-411" coordinates="0.2 -51.2 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-412" coordinates="-278.9 -96.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-413" coordinates="25.3 -51.5 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-414" coordinates="13.2 -62.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-415" coordinates="2.4 -59.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-416" coordinates="-14.3 -57.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-417" coordinates="-0.4 -66.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-418" coordinates="3.1 -9.3 57.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-419" coordinates="-2.9 -49.7 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-420" coordinates="10.8 -48.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-421" coordinates="34.2 -55.4 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-422" coordinates="6.1 -45.9 20.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-423" coordinates="22.5 -59.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-424" coordinates="-0.2 -50.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-425" coordinates="-15.7 -47.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-426" coordinates="3.6 -75.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-427" coordinates="9.2 -50.6 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-428" coordinates="6.6 -58.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-429" coordinates="-0.8 -50.1 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-430" coordinates="16.3 -64.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-431" coordinates="-102.2 -106.7 151.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-432" coordinates="-3.7 -53.5 18.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-433" coordinates="14.5 -55.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-434" coordinates="3.9 -46.0 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-435" coordinates="9.4 -51.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-436" coordinates="6.7 -49.2 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-437" coordinates="28.5 -49.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-438" coordinates="-5.7 -55.3 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-439" coordinates="-13.0 -52.3 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-440" coordinates="8.2 -50.5 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-441" coordinates="-3.0 -47.9 23.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-442" coordinates="9.0 -57.1 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-443" coordinates="3.6 -41.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-444" coordinates="-77.6 19.1 103.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-445" coordinates="7.8 -44.3 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-446" coordinates="-18.2 -42.2 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-447" coordinates="1.5 -46.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-448" coordinates="22.6 -48.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-449" coordinates="6.6 -49.8 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-450" coordinates="7.4 -41.3 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-451" coordinates="10.4 -54.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-452" coordinates="6.8 -53.2 14.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-453" coordinates="-10.2 -57.6 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-454" coordinates="6.1 -70.3 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-455" coordinates="-5.1 -53.7 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-456" coordinates="-9.7 -70.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-457" coordinates="30.6 -65.0 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-458" coordinates="-4.9 -63.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-459" coordinates="8.5 -71.1 16.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-460" coordinates="54.3 -0.6 87.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-461" coordinates="-19.4 -65.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-462" coordinates="15.2 -71.3 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-463" coordinates="8.9 -65.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-464" coordinates="-5.6 -61.5 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-465" coordinates="1.2 -55.4 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-466" coordinates="-7.4 -57.0 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-467" coordinates="2.0 -63.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-468" coordinates="21.0 -55.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-469" coordinates="12.5 -60.5 132.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-470" coordinates="-20.7 -59.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-471" coordinates="10.7 -43.7 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-472" coordinates="-1.3 -47.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-473" coordinates="-9.1 -59.9 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-474" coordinates="7.1 -48.3 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-475" coordinates="30.0 -67.8 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-476" coordinates="5.7 -54.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-477" coordinates="1.7 -50.2 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-478" coordinates="6.4 -62.3 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-479" coordinates="2.7 -52.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-480" coordinates="-0.4 -50.6 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-481" coordinates="-4.9 -61.6 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-482" coordinates="94.1 -11.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-483" coordinates="119.0 -138.5 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-484" coordinates="-32.9 -62.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-485" coordinates="-3.6 -60.2 20.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-486" coordinates="73.6 -65.8 103.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-487" coordinates="-2.2 -59.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-488" coordinates="7.5 -53.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-489" coordinates="0.1 -51.0 26.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-490" coordinates="1.4 -11.9 68.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-491" coordinates="-1.0 -71.2 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-492" coordinates="25.0 -66.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-493" coordinates="31.6 -43.4 30.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-494" coordinates="-104.4 13.8 30.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-495" coordinates="-1.4 -54.3 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-496" coordinates="-40.1 -68.3 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-497" coordinates="18.9 -57.4 10.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-498" coordinates="15.6 -49.6 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-499" coordinates="8.0 -38.8 54.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-500" coordinates="6.0 -54.4 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-501" coordinates="21.7 -59.7 25.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-502" coordinates="27.0 -40.4 32.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-503" coordinates="7.6 -63.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-504" coordinates="-29.1 -97.7 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-505" coordinates="10.9 -47.6 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-506" coordinates="19.8 -45.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-507" coordinates="21.6 -67.5 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-508" coordinates="-8.3 -63.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-509" coordinates="-2.9 -64.8 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-510" coordinates="-2.1 -47.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-511" coordinates="15.3 -53.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-512" coordinates="-9.1 -48.2 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-513" coordinates="7.8 -56.1 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-514" coordinates="-12.2 -52.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-515" coordinates="14.9 -41.7 34.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-516" coordinates="-1.0 -48.1 32.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-517" coordinates="22.1 -57.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-518" coordinates="-5.9 -53.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-519" coordinates="-0.8 -56.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-520" coordinates="35.6 0.1 266.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-521" coordinates="-13.2 28.5 127.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-522" coordinates="-2.0 -31.7 116.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-523" coordinates="10.6 -2.4 84.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-524" coordinates="42.9 -10.6 171.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-525" coordinates="39.2 1.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-526" coordinates="33.0 14.0 257.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-527" coordinates="-56.3 -64.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-528" coordinates="48.0 -43.3 93.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-529" coordinates="34.3 -25.0 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-530" coordinates="-17.3 -10.6 23.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-531" coordinates="-2.8 -2.4 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-532" coordinates="-3.1 -1.1 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-533" coordinates="3.4 -1.6 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-534" coordinates="1.9 4.2 32.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-535" coordinates="-15.0 -3.7 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-536" coordinates="6.2 21.4 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-537" coordinates="2.2 -3.6 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-538" coordinates="-4.2 34.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-539" coordinates="7.3 -7.1 11.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-540" coordinates="-6.1 15.5 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-541" coordinates="3.3 17.7 16.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-542" coordinates="-7.4 -4.0 21.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-543" coordinates="8.1 3.3 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-544" coordinates="2.2 25.0 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-545" coordinates="-3.2 29.6 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-546" coordinates="-13.9 26.1 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-547" coordinates="2.9 5.9 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-548" coordinates="-9.1 2.4 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-549" coordinates="4.6 -7.4 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-550" coordinates="2.9 5.0 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-551" coordinates="-12.0 2.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-552" coordinates="-0.3 3.7 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-553" coordinates="-2.1 3.5 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-554" coordinates="-6.5 25.4 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-555" coordinates="5.9 -9.4 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-556" coordinates="8.0 -20.6 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-557" coordinates="6.9 -10.4 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-558" coordinates="9.5 -3.5 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-559" coordinates="31.0 39.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-560" coordinates="15.9 21.0 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-561" coordinates="3.3 -0.1 18.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-562" coordinates="-1.1 -2.5 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-563" coordinates="-0.3 -11.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-564" coordinates="7.8 11.0 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-565" coordinates="2.2 2.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-566" coordinates="17.4 -6.7 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-567" coordinates="4.1 -2.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-568" coordinates="1.4 -9.0 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-569" coordinates="11.1 -13.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-570" coordinates="-2.4 -4.0 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-571" coordinates="16.3 32.7 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-572" coordinates="1.5 5.6 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-573" coordinates="-4.7 5.8 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-574" coordinates="1.4 -1.0 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-575" coordinates="4.2 -1.5 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-576" coordinates="4.9 9.8 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-577" coordinates="-1.0 -0.5 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-578" coordinates="8.1 2.2 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-579" coordinates="2.8 2.6 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-580" coordinates="-1.7 9.6 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-581" coordinates="6.8 22.5 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-582" coordinates="4.8 -10.1 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-583" coordinates="3.0 -17.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-584" coordinates="-6.0 5.2 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-585" coordinates="1.7 -0.3 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-586" coordinates="6.6 30.1 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-587" coordinates="-0.9 -7.7 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-588" coordinates="7.9 -2.5 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-589" coordinates="4.6 -0.7 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-590" coordinates="4.3 1.6 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-591" coordinates="-0.4 -10.4 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-592" coordinates="12.8 -13.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-593" coordinates="7.6 2.6 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-594" coordinates="10.7 -14.2 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-595" coordinates="8.1 0.9 25.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-596" coordinates="7.9 27.9 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-597" coordinates="-7.6 20.0 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-598" coordinates="9.2 -9.0 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-599" coordinates="-12.0 0.8 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-600" coordinates="14.3 30.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-601" coordinates="-10.1 22.1 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-602" coordinates="2.5 29.4 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-603" coordinates="-6.7 26.2 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-604" coordinates="-2.2 -4.7 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-605" coordinates="-8.3 19.7 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-606" coordinates="9.1 26.7 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-607" coordinates="5.0 -10.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-608" coordinates="5.4 -8.8 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-609" coordinates="6.8 -11.2 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-610" coordinates="4.9 1.6 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-611" coordinates="18.9 2.7 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-612" coordinates="-2.7 22.4 19.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-613" coordinates="17.3 -6.5 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-614" coordinates="3.0 -8.1 75.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-615" coordinates="0.5 -8.7 74.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-616" coordinates="0.9 -1.9 58.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-617" coordinates="-8.6 -2.3 22.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-618" coordinates="1.1 -15.4 33.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-619" coordinates="-2.2 -0.3 40.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-620" coordinates="16.7 -3.9 76.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-621" coordinates="3.1 -6.0 78.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-622" coordinates="74.8 14.8 28.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-623" coordinates="-26.4 -6.0 44.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-624" coordinates="-54.0 -6.8 24.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-625" coordinates="-0.3 0.1 82.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-626" coordinates="-58.7 12.6 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-627" coordinates="75.8 -3.9 20.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-628" coordinates="70.1 -30.1 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-629" coordinates="62.9 -28.5 21.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-630" coordinates="-0.3 -4.4 69.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-631" coordinates="-67.8 -16.0 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-632" coordinates="33.3 -19.0 45.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-633" coordinates="82.9 2.4 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-634" coordinates="81.9 -39.7 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-635" coordinates="60.9 -71.4 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-636" coordinates="4.8 -1.4 79.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-637" coordinates="0.3 -0.8 78.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-638" coordinates="0.7 -0.3 76.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-639" coordinates="12.5 -6.4 98.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-640" coordinates="13.8 3.1 75.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-641" coordinates="74.4 -37.1 24.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-642" coordinates="1.7 -2.3 64.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-643" coordinates="-69.6 -22.0 25.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-644" coordinates="-64.9 23.2 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-645" coordinates="4.8 -7.6 61.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-646" coordinates="31.6 2.4 45.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-647" coordinates="24.5 -1.5 57.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-648" coordinates="62.8 -12.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-649" coordinates="1.9 -3.0 68.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-650" coordinates="51.9 -37.5 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-651" coordinates="-8.1 -4.2 72.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-652" coordinates="2.4 -12.0 54.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-653" coordinates="-33.8 -10.8 29.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-654" coordinates="83.7 -26.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-655" coordinates="-46.7 -50.4 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-656" coordinates="7.0 3.5 69.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-657" coordinates="4.9 -7.8 58.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-658" coordinates="-18.2 -2.0 61.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-659" coordinates="-0.7 1.2 45.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-660" coordinates="2.9 -1.2 43.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-661" coordinates="-2.9 10.0 34.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-662" coordinates="14.2 20.5 25.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-663" coordinates="-21.9 -10.2 35.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-664" coordinates="5.6 -3.8 75.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-665" coordinates="9.7 -4.0 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-666" coordinates="15.6 -4.1 89.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-667" coordinates="11.9 -6.5 71.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-668" coordinates="-13.9 -4.7 79.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-669" coordinates="-0.6 -12.7 25.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-670" coordinates="21.2 3.9 65.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-671" coordinates="1.2 -7.4 42.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-672" coordinates="73.2 -68.7 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-673" coordinates="-66.2 -11.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-674" coordinates="-29.0 -7.9 30.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-675" coordinates="3.7 -1.6 76.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-676" coordinates="6.9 -2.1 74.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-677" coordinates="3.7 -1.7 104.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-678" coordinates="26.5 -12.0 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-679" coordinates="2.7 0.5 59.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-680" coordinates="9.5 -9.0 56.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-681" coordinates="15.9 2.4 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-682" coordinates="-1.7 2.0 85.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-683" coordinates="5.4 5.2 68.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-684" coordinates="-4.9 -8.6 72.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-685" coordinates="78.5 13.4 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-686" coordinates="-0.4 -6.0 75.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-687" coordinates="23.7 -9.2 43.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-688" coordinates="20.6 -2.0 74.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-689" coordinates="11.1 -2.6 69.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-690" coordinates="8.0 -5.4 70.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-691" coordinates="19.6 6.2 74.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-692" coordinates="5.9 -5.3 70.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-693" coordinates="-11.7 -7.8 34.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-694" coordinates="10.3 -9.6 57.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-695" coordinates="15.0 10.3 60.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-696" coordinates="-3.4 -1.0 67.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-697" coordinates="-39.6 -13.5 232.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-698" coordinates="-10.8 -7.1 23.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-699" coordinates="64.5 129.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-700" coordinates="57.6 59.7 48.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-701" coordinates="-53.7 86.6 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-702" coordinates="-26.9 128.6 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-703" coordinates="147.4 37.9 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-704" coordinates="-24.4 -91.9 63.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-705" coordinates="-268.9 -66.0 57.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-706" coordinates="-21.4 10.5 73.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-707" coordinates="204.7 266.5 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-708" coordinates="-22.7 101.1 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-709" coordinates="40.2 92.1 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-710" coordinates="42.8 0.7 130.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-711" coordinates="-51.3 82.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-712" coordinates="-123.4 5.2 198.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-713" coordinates="-8.5 114.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-714" coordinates="-11.6 95.5 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-715" coordinates="18.9 87.2 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-716" coordinates="49.8 102.7 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-717" coordinates="-21.6 34.0 116.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-718" coordinates="-132.9 80.5 191.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-719" coordinates="-20.4 84.8 30.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-720" coordinates="88.2 54.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-721" coordinates="-34.0 41.9 46.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-722" coordinates="5.6 88.5 34.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-723" coordinates="-20.7 67.8 53.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-724" coordinates="-33.9 100.5 29.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-725" coordinates="22.1 28.6 73.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-726" coordinates="4.7 27.4 88.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-727" coordinates="-5.2 57.5 39.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-728" coordinates="-109.2 59.1 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-729" coordinates="28.4 32.1 86.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-730" coordinates="-10.2 85.1 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-731" coordinates="9.1 91.0 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-732" coordinates="11.8 80.8 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-733" coordinates="-38.5 80.0 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-734" coordinates="77.3 94.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-735" coordinates="37.4 80.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-736" coordinates="-22.7 81.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-737" coordinates="-72.9 60.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-738" coordinates="32.4 79.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-739" coordinates="25.0 97.2 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-740" coordinates="-15.8 90.9 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-741" coordinates="-25.9 86.1 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-742" coordinates="-39.7 70.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-743" coordinates="14.4 80.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-744" coordinates="9.1 30.2 74.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-745" coordinates="11.1 -11.5 92.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-746" coordinates="-45.0 78.6 26.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-747" coordinates="-8.2 79.3 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-748" coordinates="42.8 -37.8 82.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-749" coordinates="-5.4 21.2 271.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-750" coordinates="-9.5 66.1 27.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-751" coordinates="49.0 82.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-752" coordinates="32.0 56.3 20.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-753" coordinates="9.3 103.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-754" coordinates="-133.9 -21.1 190.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-755" coordinates="11.1 28.0 116.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-756" coordinates="155.5 161.6 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-757" coordinates="20.9 70.9 53.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-758" coordinates="57.3 77.3 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-759" coordinates="53.5 90.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-760" coordinates="77.4 73.6 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-761" coordinates="89.7 125.6 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-762" coordinates="-20.4 104.4 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-763" coordinates="-24.7 90.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-764" coordinates="-27.9 92.8 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-765" coordinates="-24.7 100.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-766" coordinates="-92.9 47.3 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-767" coordinates="61.1 69.6 60.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-768" coordinates="-19.9 55.8 59.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-769" coordinates="90.0 87.4 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-770" coordinates="-31.3 93.7 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-771" coordinates="32.3 24.1 58.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-772" coordinates="7.3 42.3 86.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-773" coordinates="-15.3 3.2 113.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-774" coordinates="40.5 51.8 48.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-775" coordinates="14.7 105.3 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-776" coordinates="93.7 42.6 229.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-777" coordinates="89.1 76.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-778" coordinates="-184.0 66.0 140.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-779" coordinates="-11.1 91.2 12.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-780" coordinates="-6.1 120.6 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-781" coordinates="58.3 71.3 73.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-782" coordinates="55.9 79.2 37.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-783" coordinates="16.2 104.4 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-784" coordinates="-17.1 20.1 291.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-785" coordinates="-3.4 70.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-786" coordinates="2.4 117.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-787" coordinates="72.2 137.7 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-788" coordinates="-2.5 102.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-789" coordinates="-6.8 58.8 64.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-790" coordinates="43.1 97.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-791" coordinates="53.6 93.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-792" coordinates="-38.2 70.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-793" coordinates="-91.0 97.2 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-794" coordinates="-80.6 91.1 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-795" coordinates="8.0 117.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-796" coordinates="25.0 56.0 52.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-797" coordinates="71.3 78.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-798" coordinates="-10.7 65.1 86.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-799" coordinates="138.7 96.0 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-800" coordinates="-95.0 130.5 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-801" coordinates="-14.4 -10.9 107.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-802" coordinates="17.8 -23.0 110.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-803" coordinates="-31.8 40.3 86.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-804" coordinates="1.4 27.5 75.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-805" coordinates="-3.0 53.3 104.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-806" coordinates="62.5 47.6 74.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-807" coordinates="36.8 79.1 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-808" coordinates="-3.9 74.8 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-809" coordinates="-120.0 82.0 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-810" coordinates="33.0 24.6 93.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-811" coordinates="-4.8 61.6 50.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-812" coordinates="16.8 69.0 38.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-813" coordinates="16.4 76.8 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-814" coordinates="-88.7 38.2 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-815" coordinates="42.1 103.5 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-816" coordinates="85.3 81.3 17.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-817" coordinates="-10.2 29.6 71.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-818" coordinates="0.9 55.6 81.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-819" coordinates="-15.6 54.6 44.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-820" coordinates="0.1 30.0 98.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-821" coordinates="119.6 79.5 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-822" coordinates="23.3 116.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-823" coordinates="37.7 69.1 53.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-824" coordinates="72.8 117.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-825" coordinates="-10.5 87.7 44.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-826" coordinates="3.8 26.6 74.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-827" coordinates="-8.2 40.7 63.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-828" coordinates="108.4 99.7 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-829" coordinates="64.8 113.6 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-830" coordinates="-14.3 88.2 41.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-831" coordinates="9.6 111.0 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-832" coordinates="-11.3 102.8 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-833" coordinates="-25.1 88.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-834" coordinates="72.9 96.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-835" coordinates="-34.2 42.4 68.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-836" coordinates="13.4 78.1 24.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-837" coordinates="12.7 75.1 71.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-838" coordinates="34.0 39.2 81.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-839" coordinates="57.1 119.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-840" coordinates="34.6 54.7 61.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-841" coordinates="39.0 134.3 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-842" coordinates="67.4 116.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-843" coordinates="-3.1 54.5 54.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-844" coordinates="-26.3 60.3 66.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-845" coordinates="27.8 119.5 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-846" coordinates="52.4 134.8 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-847" coordinates="44.6 47.4 76.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-848" coordinates="46.2 76.0 79.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-849" coordinates="66.9 72.5 40.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-850" coordinates="46.8 118.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-851" coordinates="53.8 161.0 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-852" coordinates="95.8 116.1 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-853" coordinates="7.4 129.2 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-854" coordinates="31.9 133.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-855" coordinates="76.0 87.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-856" coordinates="-37.8 98.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-857" coordinates="-18.4 20.7 85.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-858" coordinates="58.0 101.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-859" coordinates="17.3 68.5 37.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-860" coordinates="55.6 79.0 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-861" coordinates="-20.0 44.5 54.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-862" coordinates="-51.0 105.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-863" coordinates="38.6 22.2 69.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-864" coordinates="-13.9 106.9 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-865" coordinates="-8.3 21.4 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-866" coordinates="1.7 -8.4 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-867" coordinates="2.3 -3.4 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-868" coordinates="-4.8 3.9 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-869" coordinates="8.9 -13.9 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-870" coordinates="-2.5 24.0 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-871" coordinates="1.8 0.0 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-872" coordinates="17.0 22.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-873" coordinates="11.7 7.6 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-874" coordinates="-0.2 1.9 24.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-875" coordinates="6.4 2.6 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-876" coordinates="6.9 17.6 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-877" coordinates="-0.5 26.0 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-878" coordinates="2.8 -2.8 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-879" coordinates="3.1 -3.1 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-880" coordinates="-1.0 -16.8 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-881" coordinates="-0.8 -4.7 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-882" coordinates="12.0 -10.2 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-883" coordinates="-47.7 24.5 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-884" coordinates="6.9 -9.4 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-885" coordinates="-4.3 -6.9 15.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-886" coordinates="-19.7 29.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-887" coordinates="21.3 4.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-888" coordinates="11.5 1.5 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-889" coordinates="4.9 22.3 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-890" coordinates="-0.7 3.2 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-891" coordinates="0.5 22.0 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-892" coordinates="24.0 18.5 12.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-893" coordinates="7.2 -8.9 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-894" coordinates="1.5 -12.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-895" coordinates="2.8 6.0 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-896" coordinates="17.2 4.2 32.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-897" coordinates="6.8 -6.1 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-898" coordinates="1.6 -3.8 21.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-899" coordinates="8.3 8.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-900" coordinates="3.2 -15.2 18.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-901" coordinates="-5.1 24.5 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-902" coordinates="5.3 6.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-903" coordinates="3.9 -0.6 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-904" coordinates="2.6 -13.4 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-905" coordinates="8.6 6.3 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-906" coordinates="2.6 -21.6 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-907" coordinates="10.2 -11.7 24.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-908" coordinates="2.6 -3.1 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-909" coordinates="5.7 3.8 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-910" coordinates="8.1 -4.0 17.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-911" coordinates="-0.8 -2.4 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-912" coordinates="7.1 -10.3 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-913" coordinates="1.8 -14.1 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-914" coordinates="-0.9 2.9 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-915" coordinates="6.9 -12.6 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-916" coordinates="-11.2 20.9 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-917" coordinates="12.7 -5.9 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-918" coordinates="-1.1 -13.7 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-919" coordinates="-25.6 4.5 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-920" coordinates="17.1 1.6 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-921" coordinates="6.6 8.1 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-922" coordinates="-6.1 26.0 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-923" coordinates="-4.7 20.9 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-924" coordinates="-0.5 -11.4 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-925" coordinates="-15.6 -5.9 39.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-926" coordinates="8.9 13.4 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-927" coordinates="11.1 12.9 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-928" coordinates="13.6 -7.1 15.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-929" coordinates="4.7 -10.6 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-930" coordinates="1.2 7.0 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-931" coordinates="6.0 5.9 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-932" coordinates="0.1 3.6 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-933" coordinates="-2.7 2.9 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-934" coordinates="0.6 -5.5 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-935" coordinates="-10.6 -9.9 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-936" coordinates="7.8 -7.8 30.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-937" coordinates="-7.4 -9.7 31.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-938" coordinates="11.2 -7.3 22.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-939" coordinates="-0.7 -8.0 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-940" coordinates="2.7 -2.1 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-941" coordinates="-15.1 4.3 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-942" coordinates="-0.4 1.0 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-943" coordinates="-6.9 0.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-944" coordinates="3.9 -12.0 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-945" coordinates="-17.2 3.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-946" coordinates="4.2 -1.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-947" coordinates="18.1 -4.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-948" coordinates="4.5 3.6 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-949" coordinates="2.8 -12.7 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-950" coordinates="14.6 6.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-951" coordinates="16.1 0.2 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-952" coordinates="-9.3 30.6 7.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-953" coordinates="4.3 32.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-954" coordinates="0.3 -9.3 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-955" coordinates="2.4 14.8 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-956" coordinates="-9.6 21.0 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-957" coordinates="10.3 -2.1 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-958" coordinates="-1.3 19.5 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-959" coordinates="-9.1 19.7 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-960" coordinates="20.2 -8.1 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-961" coordinates="1.9 29.6 24.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-962" coordinates="0.1 -1.1 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-963" coordinates="12.8 -0.1 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-964" coordinates="-7.0 65.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-965" coordinates="1.4 16.8 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-966" coordinates="-7.4 10.5 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-967" coordinates="7.4 -11.1 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-968" coordinates="8.4 22.6 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-969" coordinates="2.5 1.8 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-970" coordinates="-0.7 -1.0 12.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-971" coordinates="7.7 -9.6 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-972" coordinates="-18.2 10.8 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-973" coordinates="4.0 -4.8 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-974" coordinates="9.8 -4.2 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-975" coordinates="4.8 -13.1 12.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-976" coordinates="-3.0 13.8 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-977" coordinates="9.4 24.2 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-978" coordinates="1.6 25.6 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-979" coordinates="2.2 25.3 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-980" coordinates="-3.5 0.1 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-981" coordinates="-0.3 -5.1 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-982" coordinates="4.7 -10.1 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-983" coordinates="10.6 -1.4 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-984" coordinates="-4.3 27.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-985" coordinates="-1.4 -3.5 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-986" coordinates="-10.0 -11.8 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-987" coordinates="-1.7 -0.3 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-988" coordinates="10.9 26.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-989" coordinates="5.8 1.6 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-990" coordinates="-0.6 2.9 28.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-991" coordinates="8.3 22.7 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-992" coordinates="-8.1 -9.6 6.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-993" coordinates="5.4 -9.8 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-994" coordinates="-3.0 13.4 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-995" coordinates="-8.6 5.2 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-996" coordinates="3.1 -12.4 34.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-997" coordinates="0.1 -7.8 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-998" coordinates="-0.8 2.6 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-999" coordinates="-241.9 -50.8 74.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1000" coordinates="5.2 10.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1001" coordinates="36.0 -11.1 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1002" coordinates="7.6 32.0 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1003" coordinates="3.9 4.2 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1004" coordinates="1.5 5.5 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1005" coordinates="-18.2 27.8 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1006" coordinates="3.6 -10.8 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1007" coordinates="-6.4 -11.6 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1008" coordinates="5.8 8.4 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1009" coordinates="18.0 13.5 14.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1010" coordinates="10.3 -7.4 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1011" coordinates="-8.7 -9.2 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1012" coordinates="5.3 0.4 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1013" coordinates="-3.1 26.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1014" coordinates="7.8 6.2 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1015" coordinates="14.0 14.6 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1016" coordinates="12.5 -8.5 32.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1017" coordinates="-4.3 12.4 15.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1018" coordinates="-3.5 16.8 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1019" coordinates="17.8 23.8 12.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1020" coordinates="10.9 -5.3 18.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1021" coordinates="5.0 1.7 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1022" coordinates="-13.4 4.4 29.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1023" coordinates="27.2 27.9 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1024" coordinates="-0.1 -4.4 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1025" coordinates="2.3 27.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1026" coordinates="5.1 7.3 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1027" coordinates="7.3 3.2 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1028" coordinates="6.1 9.5 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1029" coordinates="-26.7 1.6 16.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1030" coordinates="2.4 -3.9 16.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1031" coordinates="-2.1 -1.0 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1032" coordinates="5.8 -9.6 7.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1033" coordinates="-1.5 -3.3 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1034" coordinates="9.3 26.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1035" coordinates="-1.1 0.4 15.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1036" coordinates="11.4 18.1 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1037" coordinates="18.4 5.0 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1038" coordinates="2.7 1.3 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1039" coordinates="-1.6 3.1 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1040" coordinates="-1.6 -3.0 14.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1041" coordinates="19.0 -6.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1042" coordinates="3.1 25.6 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1043" coordinates="-2.0 3.2 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1044" coordinates="6.0 -4.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1045" coordinates="1.8 24.6 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1046" coordinates="-2.3 26.2 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1047" coordinates="7.8 -0.2 17.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1048" coordinates="4.0 -0.2 8.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1049" coordinates="4.8 4.7 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1050" coordinates="9.2 -0.4 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1051" coordinates="-8.1 23.3 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1052" coordinates="-1.4 -1.7 16.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1053" coordinates="-10.3 -10.2 11.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1054" coordinates="6.7 -1.3 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1055" coordinates="-2.1 5.6 17.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1056" coordinates="-1.3 25.0 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1057" coordinates="4.0 -6.7 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1058" coordinates="4.8 -10.9 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1059" coordinates="5.7 12.9 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1060" coordinates="-9.2 -6.4 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1061" coordinates="5.5 3.5 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1062" coordinates="-7.9 -0.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1063" coordinates="8.2 -12.5 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1064" coordinates="9.9 -12.3 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1065" coordinates="-0.9 28.6 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1066" coordinates="-12.8 -3.2 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1067" coordinates="-0.6 -12.5 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1068" coordinates="37.0 -15.6 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1069" coordinates="-3.8 -10.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1070" coordinates="11.9 -10.1 29.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1071" coordinates="-12.1 -1.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1072" coordinates="4.7 -3.0 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1073" coordinates="6.8 -1.8 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1074" coordinates="-1.2 25.0 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1075" coordinates="-14.2 -2.6 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1076" coordinates="14.3 -5.6 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1077" coordinates="12.7 -12.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1078" coordinates="-6.0 4.8 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1079" coordinates="10.4 -2.4 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1080" coordinates="-5.5 21.8 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1081" coordinates="7.0 3.5 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1082" coordinates="5.5 -0.9 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1083" coordinates="6.6 -4.2 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1084" coordinates="13.7 7.6 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1085" coordinates="0.5 -5.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1086" coordinates="-34.9 -19.1 64.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1087" coordinates="6.6 10.8 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1088" coordinates="4.3 -14.2 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1089" coordinates="12.3 -1.1 16.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1090" coordinates="6.6 -18.7 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1091" coordinates="-1.8 33.5 222.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1092" coordinates="-2.0 -8.8 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1093" coordinates="-12.2 0.7 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1094" coordinates="-6.4 -4.8 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1095" coordinates="18.0 40.1 48.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1096" coordinates="19.8 0.3 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1097" coordinates="8.8 -6.8 7.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1098" coordinates="10.5 5.9 17.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1099" coordinates="4.8 20.2 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1100" coordinates="24.6 7.2 82.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1101" coordinates="-7.6 5.7 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1102" coordinates="2.1 -6.0 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1103" coordinates="-22.9 -9.1 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1104" coordinates="-6.8 -0.9 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1105" coordinates="-3.9 -6.9 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1106" coordinates="14.6 19.4 18.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1107" coordinates="11.6 22.8 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1108" coordinates="8.2 25.2 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1109" coordinates="3.1 16.9 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1110" coordinates="-27.0 -8.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1111" coordinates="-18.9 23.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1112" coordinates="4.5 2.3 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1113" coordinates="30.9 -19.9 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1114" coordinates="8.6 3.2 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1115" coordinates="11.2 -20.4 25.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1116" coordinates="-0.1 20.7 11.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1117" coordinates="16.6 4.6 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1118" coordinates="1.2 -0.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1119" coordinates="3.4 -8.0 5.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1120" coordinates="5.2 -10.9 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1121" coordinates="7.7 -15.0 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1122" coordinates="3.6 5.8 13.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1123" coordinates="2.3 -7.1 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1124" coordinates="0.2 -0.3 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1125" coordinates="3.3 3.1 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1126" coordinates="-11.2 10.3 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1127" coordinates="-9.4 0.5 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1128" coordinates="0.5 -11.9 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1129" coordinates="2.9 -9.1 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1130" coordinates="13.8 2.1 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1131" coordinates="0.4 4.2 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1132" coordinates="-4.0 -5.7 12.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1133" coordinates="-0.5 -14.4 32.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1134" coordinates="8.9 -2.6 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1135" coordinates="-7.8 -13.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1136" coordinates="-0.4 2.1 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1137" coordinates="-6.5 21.6 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1138" coordinates="3.0 27.6 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1139" coordinates="8.2 -9.1 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1140" coordinates="6.1 -14.4 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1141" coordinates="-1.1 -13.1 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1142" coordinates="8.4 -9.2 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1143" coordinates="15.8 5.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1144" coordinates="7.2 9.1 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1145" coordinates="13.1 2.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1146" coordinates="-3.7 7.7 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1147" coordinates="8.2 1.5 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1148" coordinates="4.7 -11.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1149" coordinates="1.1 0.1 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1150" coordinates="4.0 -11.8 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1151" coordinates="5.3 1.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1152" coordinates="18.4 -4.2 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1153" coordinates="1.2 32.2 20.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1154" coordinates="-2.1 6.8 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1155" coordinates="7.6 -1.3 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1156" coordinates="6.7 2.6 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1157" coordinates="1.7 21.2 35.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1158" coordinates="2.2 9.6 35.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1159" coordinates="7.2 -8.7 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1160" coordinates="5.0 3.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1161" coordinates="1.6 1.4 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1162" coordinates="9.2 -5.7 16.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1163" coordinates="16.0 14.8 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1164" coordinates="-16.4 40.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1165" coordinates="-2.3 1.6 36.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1166" coordinates="5.4 26.7 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1167" coordinates="-17.2 -10.6 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1168" coordinates="2.4 -1.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1169" coordinates="0.4 4.9 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1170" coordinates="-14.5 5.8 26.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1171" coordinates="13.6 12.8 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1172" coordinates="11.2 -9.0 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1173" coordinates="8.5 -10.4 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1174" coordinates="5.9 -11.5 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1175" coordinates="7.1 -4.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1176" coordinates="-3.4 1.0 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1177" coordinates="20.7 -13.6 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1178" coordinates="-4.0 17.8 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1179" coordinates="16.0 8.3 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1180" coordinates="7.3 36.0 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1181" coordinates="7.8 -10.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1182" coordinates="10.0 -8.4 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1183" coordinates="76.4 59.5 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1184" coordinates="17.1 26.9 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1185" coordinates="-4.8 0.2 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1186" coordinates="-2.3 -0.7 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1187" coordinates="-6.0 1.1 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1188" coordinates="-2.0 7.8 12.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1189" coordinates="4.3 1.3 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1190" coordinates="-1.9 5.3 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1191" coordinates="4.1 -13.7 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1192" coordinates="2.6 5.0 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1193" coordinates="2.6 17.6 17.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1194" coordinates="7.3 14.6 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1195" coordinates="5.9 4.1 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1196" coordinates="7.3 -1.7 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1197" coordinates="3.6 0.8 8.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1198" coordinates="-5.5 21.7 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1199" coordinates="-4.3 14.7 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1200" coordinates="0.1 -0.6 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1201" coordinates="-5.2 -6.4 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1202" coordinates="7.7 4.4 15.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1203" coordinates="-19.7 6.3 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1204" coordinates="3.3 -3.0 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1205" coordinates="6.7 18.7 8.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1206" coordinates="6.3 31.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1207" coordinates="-17.0 17.1 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1208" coordinates="-5.5 16.7 18.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1209" coordinates="-13.5 -5.3 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1210" coordinates="-3.0 -13.5 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1211" coordinates="0.3 -9.5 7.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1212" coordinates="5.7 -1.1 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1213" coordinates="-0.1 -12.5 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1214" coordinates="60.7 -9.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1215" coordinates="2.1 7.5 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1216" coordinates="4.9 22.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1217" coordinates="-0.4 26.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1218" coordinates="-10.0 0.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1219" coordinates="-7.0 28.1 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1220" coordinates="1.7 2.0 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1221" coordinates="19.5 -3.4 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1222" coordinates="6.5 -8.3 15.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1223" coordinates="-5.0 4.5 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1224" coordinates="1.1 1.0 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1225" coordinates="0.5 3.5 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1226" coordinates="4.5 -1.4 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1227" coordinates="16.0 -3.9 18.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1228" coordinates="11.7 8.2 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1229" coordinates="13.8 28.5 44.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1230" coordinates="10.0 -5.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1231" coordinates="1.2 27.3 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1232" coordinates="-4.0 -14.0 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1233" coordinates="13.6 -4.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1234" coordinates="4.8 -10.1 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1235" coordinates="19.4 -8.7 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1236" coordinates="13.3 10.9 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1237" coordinates="-8.0 23.8 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1238" coordinates="11.4 -5.4 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1239" coordinates="-273.2 -20.4 42.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1240" coordinates="5.1 20.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1241" coordinates="15.8 -2.5 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1242" coordinates="11.8 6.8 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1243" coordinates="5.7 32.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1244" coordinates="1.6 -0.2 14.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1245" coordinates="5.5 -12.7 20.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1246" coordinates="-6.1 21.1 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1247" coordinates="7.0 7.8 5.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1248" coordinates="13.2 -5.6 21.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1249" coordinates="-0.5 -11.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1250" coordinates="7.0 1.6 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1251" coordinates="6.1 -6.6 78.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1252" coordinates="0.8 3.1 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1253" coordinates="-15.2 99.7 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1254" coordinates="10.8 94.9 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1255" coordinates="-32.4 72.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1256" coordinates="39.2 59.4 18.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1257" coordinates="2.4 47.6 65.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1258" coordinates="-25.5 75.9 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1259" coordinates="-1.0 77.5 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1260" coordinates="19.1 91.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1261" coordinates="3.1 91.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1262" coordinates="-9.3 78.1 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1263" coordinates="-3.3 22.2 64.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1264" coordinates="-42.8 74.2 28.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1265" coordinates="-13.3 61.0 30.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1266" coordinates="-1.6 83.8 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1267" coordinates="-19.5 67.6 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1268" coordinates="-57.2 70.2 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1269" coordinates="-5.7 81.6 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1270" coordinates="12.3 74.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1271" coordinates="-10.1 87.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1272" coordinates="14.0 80.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1273" coordinates="-15.6 53.2 40.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1274" coordinates="44.2 109.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1275" coordinates="-8.2 89.6 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1276" coordinates="-78.7 68.7 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1277" coordinates="1.6 79.4 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1278" coordinates="11.1 85.7 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1279" coordinates="-8.1 99.7 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1280" coordinates="78.4 53.8 35.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1281" coordinates="-39.7 66.5 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1282" coordinates="-44.5 79.6 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1283" coordinates="-18.4 70.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1284" coordinates="9.9 21.8 76.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1285" coordinates="-51.0 70.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1286" coordinates="-44.0 84.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1287" coordinates="10.5 69.3 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1288" coordinates="-6.1 77.6 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1289" coordinates="22.8 94.4 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1290" coordinates="96.1 121.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1291" coordinates="-76.8 80.9 5.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1292" coordinates="18.2 82.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1293" coordinates="12.7 80.6 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1294" coordinates="-19.9 92.0 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1295" coordinates="-48.0 57.2 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1296" coordinates="68.7 85.0 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1297" coordinates="100.5 29.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1298" coordinates="1.6 84.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1299" coordinates="0.9 60.3 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1300" coordinates="-42.3 88.1 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1301" coordinates="6.0 19.4 67.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1302" coordinates="16.3 90.8 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1303" coordinates="-36.3 77.0 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1304" coordinates="-25.6 69.6 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1305" coordinates="-5.5 83.9 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1306" coordinates="-28.8 66.7 13.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1307" coordinates="-50.8 64.8 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1308" coordinates="-22.9 77.3 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1309" coordinates="-5.7 79.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1310" coordinates="-53.7 58.3 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1311" coordinates="-12.1 93.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1312" coordinates="18.0 98.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1313" coordinates="-20.4 92.9 10.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1314" coordinates="3.8 20.8 81.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1315" coordinates="-8.9 54.9 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1316" coordinates="-33.6 81.9 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1317" coordinates="-19.4 86.8 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1318" coordinates="14.8 76.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1319" coordinates="11.8 -50.8 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1320" coordinates="-0.8 -56.2 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1321" coordinates="39.6 -40.5 14.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1322" coordinates="-20.2 -69.5 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1323" coordinates="9.1 -48.8 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1324" coordinates="-0.9 -63.7 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1325" coordinates="195.2 -155.7 56.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1326" coordinates="18.6 -59.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1327" coordinates="34.9 -78.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1328" coordinates="11.2 -53.2 43.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1329" coordinates="8.8 -59.0 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1330" coordinates="0.9 -53.6 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1331" coordinates="1.7 -69.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1332" coordinates="29.1 -29.5 74.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1333" coordinates="4.3 -52.3 16.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1334" coordinates="-12.0 -62.7 157.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1335" coordinates="5.8 -50.9 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1336" coordinates="-1.8 -62.4 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1337" coordinates="7.7 -61.8 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1338" coordinates="-11.0 -66.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1339" coordinates="15.6 -62.9 30.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1340" coordinates="6.1 -45.5 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1341" coordinates="-11.1 -73.8 83.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1342" coordinates="48.0 -39.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1343" coordinates="-5.3 -74.9 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1344" coordinates="23.7 -47.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1345" coordinates="4.7 -57.4 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1346" coordinates="6.1 -62.1 48.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1347" coordinates="-6.1 -71.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1348" coordinates="-2.8 -56.4 25.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1349" coordinates="4.6 -57.1 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1350" coordinates="-19.7 -62.3 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1351" coordinates="12.4 -48.0 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1352" coordinates="-3.3 -46.9 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1353" coordinates="12.1 -61.0 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1354" coordinates="16.9 -66.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1355" coordinates="40.4 -56.5 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1356" coordinates="1.9 -57.7 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1357" coordinates="-59.0 -109.1 76.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1358" coordinates="0.4 -61.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1359" coordinates="30.1 -48.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1360" coordinates="-4.3 -59.5 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1361" coordinates="1.5 -48.0 25.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1362" coordinates="207.1 -30.8 109.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1363" coordinates="9.7 -61.2 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1364" coordinates="2.5 -51.2 7.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1365" coordinates="-25.2 -77.4 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1366" coordinates="17.3 -72.7 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1367" coordinates="-2.4 -52.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1368" coordinates="31.4 -57.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1369" coordinates="13.8 -62.8 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1370" coordinates="31.2 -59.4 26.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1371" coordinates="-20.5 -60.9 151.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1372" coordinates="-13.7 -54.9 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1373" coordinates="0.7 -47.7 78.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1374" coordinates="5.3 -52.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1375" coordinates="14.7 -87.3 11.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1376" coordinates="31.5 -85.4 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1377" coordinates="-4.3 -61.9 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1378" coordinates="10.0 -71.9 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1379" coordinates="54.7 -66.8 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1380" coordinates="-9.1 -48.8 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1381" coordinates="6.1 -48.7 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1382" coordinates="-4.8 -50.3 39.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1383" coordinates="-8.5 -67.4 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1384" coordinates="5.7 -55.1 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1385" coordinates="39.1 -89.2 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1386" coordinates="34.2 -60.2 29.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1387" coordinates="16.6 -64.3 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1388" coordinates="-2.1 -62.0 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1389" coordinates="-1.3 -52.6 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1390" coordinates="9.2 -61.1 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1391" coordinates="20.6 -60.5 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1392" coordinates="10.1 -66.8 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1393" coordinates="-9.9 -58.5 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1394" coordinates="9.2 -52.1 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1395" coordinates="38.0 -27.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1396" coordinates="-1.8 -63.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1397" coordinates="11.6 -55.9 19.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1398" coordinates="2.6 -36.5 64.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1399" coordinates="-12.9 -46.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1400" coordinates="7.2 -75.4 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1401" coordinates="0.5 -50.1 17.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1402" coordinates="15.4 -47.8 16.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1403" coordinates="8.5 -51.7 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1404" coordinates="-5.2 -51.6 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1405" coordinates="-77.0 -17.5 141.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1406" coordinates="33.7 -87.4 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1407" coordinates="54.3 -41.4 82.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1408" coordinates="2.0 -27.2 78.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1409" coordinates="0.8 -18.4 56.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1410" coordinates="-92.0 -40.5 2.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1411" coordinates="17.5 -60.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1412" coordinates="2.2 -41.8 27.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1413" coordinates="-5.0 -61.2 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1414" coordinates="33.8 -58.3 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1415" coordinates="33.7 -54.6 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1416" coordinates="-7.0 -52.7 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1417" coordinates="-2.6 -53.1 27.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1418" coordinates="19.6 -62.1 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1419" coordinates="7.9 -67.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1420" coordinates="5.3 -49.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1421" coordinates="10.8 -70.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1422" coordinates="-0.4 -60.3 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1423" coordinates="3.0 -62.5 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1424" coordinates="-11.5 -54.1 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1425" coordinates="22.4 -52.5 19.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1426" coordinates="10.4 -45.3 63.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1427" coordinates="8.1 -82.7 10.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1428" coordinates="-3.3 -55.2 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1429" coordinates="15.6 -69.8 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1430" coordinates="-4.8 -49.9 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1431" coordinates="-12.5 -29.8 61.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1432" coordinates="29.7 -36.9 40.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1433" coordinates="18.6 -43.6 26.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1434" coordinates="31.7 -58.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1435" coordinates="16.6 -61.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1436" coordinates="19.3 -61.9 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1437" coordinates="1.7 -60.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1438" coordinates="15.5 -51.8 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1439" coordinates="13.3 -70.5 15.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1440" coordinates="7.9 -64.6 10.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1441" coordinates="4.1 -51.9 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1442" coordinates="-11.4 -65.5 3.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1443" coordinates="2.9 -45.8 24.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1444" coordinates="-2.3 -57.8 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1445" coordinates="-9.2 -25.2 17.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1446" coordinates="5.8 -49.7 13.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1447" coordinates="4.2 -57.1 21.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1448" coordinates="-1.2 -37.4 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1449" coordinates="12.1 -52.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1450" coordinates="2.9 -49.4 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1451" coordinates="49.3 -56.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1452" coordinates="6.3 -58.3 20.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1453" coordinates="-1.9 -47.3 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1454" coordinates="12.8 -55.3 20.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1455" coordinates="-1.5 3.7 229.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1456" coordinates="-13.3 -13.6 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1457" coordinates="-2.7 -1.9 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1458" coordinates="-14.2 20.6 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1459" coordinates="10.3 -24.7 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1460" coordinates="4.3 -10.1 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1461" coordinates="22.8 18.2 20.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1462" coordinates="1.7 28.0 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1463" coordinates="15.9 -0.9 6.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1464" coordinates="-2.8 22.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1465" coordinates="2.6 -0.9 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1466" coordinates="-4.9 -8.2 18.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1467" coordinates="-3.6 22.9 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1468" coordinates="-5.1 15.9 4.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1469" coordinates="0.0 -0.2 13.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1470" coordinates="1.7 -5.7 4.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1471" coordinates="-1.5 2.1 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1472" coordinates="-0.3 -1.9 18.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1473" coordinates="2.9 1.4 9.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1474" coordinates="2.7 -6.6 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1475" coordinates="-5.5 19.1 6.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1476" coordinates="-0.0 -3.7 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1477" coordinates="2.9 -4.3 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1478" coordinates="10.0 -9.0 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1479" coordinates="10.9 -5.1 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1480" coordinates="-0.1 2.7 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1481" coordinates="-4.1 1.9 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1482" coordinates="9.1 1.9 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1483" coordinates="9.0 10.6 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1484" coordinates="-11.6 5.6 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1485" coordinates="-11.9 26.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1486" coordinates="1.5 2.1 12.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1487" coordinates="1.8 -5.6 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1488" coordinates="19.5 1.0 3.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1489" coordinates="5.5 -1.8 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1490" coordinates="0.5 -7.8 5.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1491" coordinates="9.7 -4.1 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1492" coordinates="2.5 8.9 14.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1493" coordinates="12.5 -2.2 61.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1494" coordinates="-3.2 -12.6 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1495" coordinates="2.6 -0.8 30.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1496" coordinates="7.2 1.3 12.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1497" coordinates="2.9 1.1 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1498" coordinates="24.0 -11.8 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1499" coordinates="-26.3 -10.6 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1500" coordinates="25.9 18.0 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1501" coordinates="-13.6 30.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1502" coordinates="3.4 -16.6 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1503" coordinates="0.3 -6.6 7.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1504" coordinates="2.4 -4.4 3.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1505" coordinates="3.6 -1.0 11.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1506" coordinates="0.8 8.2 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1507" coordinates="-1.8 5.1 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1508" coordinates="7.9 2.0 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1509" coordinates="-11.6 -40.5 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1510" coordinates="3.9 13.3 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1511" coordinates="2.0 3.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1512" coordinates="24.1 -4.3 21.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1513" coordinates="-14.9 14.3 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1514" coordinates="3.4 2.7 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1515" coordinates="7.4 8.0 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1516" coordinates="2.9 0.3 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1517" coordinates="8.6 -8.3 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1518" coordinates="0.8 7.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1519" coordinates="5.3 -9.7 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1520" coordinates="-13.2 27.1 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1521" coordinates="4.0 -0.6 9.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1522" coordinates="4.5 7.7 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1523" coordinates="11.5 7.2 8.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1524" coordinates="6.4 -6.4 12.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1525" coordinates="-3.3 21.9 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1526" coordinates="6.1 23.9 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1527" coordinates="-3.1 26.9 19.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1528" coordinates="-6.5 29.4 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1529" coordinates="-0.6 4.9 8.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1530" coordinates="-3.2 -2.6 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1531" coordinates="-35.4 19.3 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1532" coordinates="4.9 5.7 5.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1533" coordinates="-1.8 -5.1 9.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1534" coordinates="8.4 -2.2 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1535" coordinates="2.6 -11.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1536" coordinates="-1.8 -9.4 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1537" coordinates="2.0 0.2 16.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1538" coordinates="0.1 16.7 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1539" coordinates="-7.6 8.1 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1540" coordinates="-8.8 0.9 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1541" coordinates="13.4 -6.0 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1542" coordinates="0.4 3.5 2.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1543" coordinates="5.6 23.0 11.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1544" coordinates="3.7 -7.2 13.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1545" coordinates="-23.6 17.7 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1546" coordinates="-3.9 13.4 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1547" coordinates="-3.1 -10.1 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1548" coordinates="5.0 -0.2 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1549" coordinates="6.5 17.6 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1550" coordinates="10.3 3.2 4.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1551" coordinates="14.1 -11.2 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1552" coordinates="3.7 -1.5 6.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1553" coordinates="4.5 27.0 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1554" coordinates="-3.3 -4.3 64.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1555" coordinates="0.6 -4.9 7.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1556" coordinates="8.0 -6.0 74.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1557" coordinates="4.1 -1.0 4.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1558" coordinates="58.6 -3.1 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1559" coordinates="-12.0 -13.9 5.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1560" coordinates="-295.5 15.4 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1561" coordinates="-36.4 -12.1 246.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1562" coordinates="-18.7 11.6 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1563" coordinates="17.8 28.5 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1564" coordinates="8.0 5.4 8.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1565" coordinates="-13.7 28.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1566" coordinates="0.3 -3.9 6.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1567" coordinates="5.2 21.5 1.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1568" coordinates="7.3 -0.4 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1569" coordinates="22.5 24.4 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1570" coordinates="0.6 -8.0 13.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1571" coordinates="2.7 5.4 21.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1572" coordinates="-5.0 23.3 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1573" coordinates="5.7 -10.0 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1574" coordinates="-0.6 -4.0 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1575" coordinates="6.7 21.1 13.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1576" coordinates="12.8 4.9 2.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1577" coordinates="-2.5 -12.9 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1578" coordinates="-7.5 -0.9 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1579" coordinates="4.8 29.0 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1580" coordinates="19.2 -6.0 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1581" coordinates="-0.6 5.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1582" coordinates="-3.8 4.8 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1583" coordinates="-0.9 21.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1584" coordinates="-0.1 29.1 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1585" coordinates="-3.6 -5.7 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1586" coordinates="-2.2 -11.4 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1587" coordinates="8.1 17.4 4.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1588" coordinates="9.3 -4.6 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1589" coordinates="5.8 25.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1590" coordinates="18.9 0.2 8.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1591" coordinates="11.7 3.0 11.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1592" coordinates="3.6 -9.6 13.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1593" coordinates="-5.9 -9.4 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1594" coordinates="-3.3 -0.4 12.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1595" coordinates="10.8 -7.8 6.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1596" coordinates="9.4 -8.9 3.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1597" coordinates="11.6 -0.6 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1598" coordinates="-19.2 4.1 10.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1599" coordinates="18.3 13.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1600" coordinates="-9.2 -0.6 8.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1601" coordinates="6.0 -9.5 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1602" coordinates="5.9 -9.5 20.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1603" coordinates="9.0 -8.5 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1604" coordinates="4.1 27.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1605" coordinates="13.6 -5.0 6.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1606" coordinates="5.9 -7.1 9.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1607" coordinates="0.3 -5.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1608" coordinates="1.5 4.6 7.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1609" coordinates="20.0 12.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1610" coordinates="4.8 3.5 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1611" coordinates="10.8 20.6 6.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1612" coordinates="8.4 8.4 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1613" coordinates="4.5 -65.8 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1614" coordinates="12.9 -53.6 9.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1615" coordinates="4.2 -64.1 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1616" coordinates="2.4 -54.9 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1617" coordinates="-7.1 -68.5 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1618" coordinates="-6.3 -56.8 20.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1619" coordinates="3.3 -45.7 20.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1620" coordinates="8.3 -47.0 24.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1621" coordinates="-12.5 -37.6 10.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1622" coordinates="2.5 -59.5 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1623" coordinates="-44.4 -87.8 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1624" coordinates="-4.0 -54.8 18.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1625" coordinates="36.5 -76.2 3.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1626" coordinates="5.6 -40.8 11.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1627" coordinates="2.0 -43.2 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1628" coordinates="-3.0 -57.3 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1629" coordinates="6.7 -69.7 4.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1630" coordinates="7.2 -76.4 3.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1631" coordinates="-18.4 -90.2 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1632" coordinates="-16.0 -82.9 16.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1633" coordinates="-3.6 -61.0 0.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1634" coordinates="19.1 -82.9 2.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1635" coordinates="13.8 -48.5 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1636" coordinates="8.2 -101.8 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1637" coordinates="14.2 -56.8 10.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1638" coordinates="14.4 -48.4 24.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1639" coordinates="-1.0 -48.8 29.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1640" coordinates="-17.4 -59.4 8.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1641" coordinates="0.7 -48.6 41.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1642" coordinates="14.5 -47.9 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1643" coordinates="-21.6 -56.3 6.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1644" coordinates="-5.8 -63.2 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1645" coordinates="-8.2 -47.1 18.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1646" coordinates="10.5 -55.2 22.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1647" coordinates="-3.8 -55.9 35.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1648" coordinates="7.6 -82.2 1.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1649" coordinates="-8.7 85.0 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1650" coordinates="-1.5 91.4 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1651" coordinates="-25.1 81.8 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1652" coordinates="-24.3 84.1 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1653" coordinates="-11.9 70.3 21.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1654" coordinates="-65.6 49.8 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1655" coordinates="-27.0 88.4 0.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1656" coordinates="-9.6 75.5 8.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1657" coordinates="-12.8 94.8 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1658" coordinates="6.1 90.3 0.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1659" coordinates="-8.9 78.9 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1660" coordinates="-10.9 83.9 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1661" coordinates="-13.3 87.4 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1662" coordinates="-31.4 68.0 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1663" coordinates="16.4 -5.4 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1664" coordinates="0.4 -11.0 12.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1665" coordinates="12.4 -3.8 9.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1666" coordinates="5.5 -1.7 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1667" coordinates="-5.6 7.5 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1668" coordinates="7.4 -13.4 1.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1669" coordinates="-7.2 4.1 1.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1670" coordinates="5.1 0.1 9.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1671" coordinates="-15.9 -1.7 0.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1672" coordinates="4.6 -7.6 9.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1673" coordinates="10.9 -2.9 2.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1674" coordinates="10.0 -6.8 22.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1675" coordinates="-0.3 -6.5 15.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1676" coordinates="-1.4 5.3 0.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1677" coordinates="18.4 -4.3 3.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1678" coordinates="4.8 26.2 9.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1679" coordinates="2.5 -9.8 3.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1680" coordinates="4.8 16.8 9.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1681" coordinates="-1.7 -9.9 10.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1682" coordinates="1.9 -11.4 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1683" coordinates="2.4 -7.2 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1684" coordinates="3.8 0.9 5.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1685" coordinates="-10.0 -73.5 2.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1686" coordinates="-5.0 -51.0 19.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1687" coordinates="5.4 26.4 55.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1688" coordinates="2.3 78.2 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1689" coordinates="-15.2 92.2 1.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1690" coordinates="-19.2 81.0 5.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1691" coordinates="1.6 53.9 28.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1692" coordinates="-46.7 62.9 2.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1693" coordinates="12.1 88.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1694" coordinates="29.5 42.4 46.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1695" coordinates="-2.8 31.1 50.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1696" coordinates="-15.0 90.0 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1697" coordinates="-5.1 46.7 36.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1698" coordinates="-4.9 71.0 61.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1699" coordinates="-14.6 96.7 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1700" coordinates="-32.7 96.9 10.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1701" coordinates="10.0 -40.2 10.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1702" coordinates="6.0 -51.8 0.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1703" coordinates="9.1 -59.3 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1704" coordinates="4.5 -11.7 3.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1705" coordinates="-7.0 22.9 17.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1706" coordinates="4.7 -3.8 7.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1707" coordinates="9.5 -9.1 3.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1708" coordinates="35.8 25.5 1.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1709" coordinates="29.1 11.1 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1710" coordinates="-0.2 -2.0 40.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1711" coordinates="-1.2 -9.3 2.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1712" coordinates="-5.4 -7.7 13.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1713" coordinates="9.9 -10.7 7.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1714" coordinates="8.3 -9.9 13.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1715" coordinates="-1.2 -3.4 6.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1716" coordinates="3.1 0.9 5.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1717" coordinates="5.0 -10.2 4.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1718" coordinates="5.0 4.2 4.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1719" coordinates="-10.5 4.8 24.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1720" coordinates="1.6 -1.6 1.0 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1721" coordinates="13.4 -1.6 21.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1722" coordinates="3.7 -2.2 1.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1723" coordinates="1.5 -6.5 2.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1724" coordinates="-5.6 24.5 5.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1725" coordinates="-2.8 -12.8 4.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1726" coordinates="8.8 -0.8 14.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1727" coordinates="0.1 4.1 11.3 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1728" coordinates="6.8 -1.5 10.4 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1729" coordinates="11.5 17.8 1.9 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1730" coordinates="-26.3 -10.6 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1731" coordinates="-0.1 6.9 4.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1732" coordinates="5.7 23.3 0.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1733" coordinates="29.0 12.7 0.2 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1734" coordinates="37.4 -11.5 57.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1735" coordinates="-9.0 63.3 53.8 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1736" coordinates="1.6 11.6 1.6 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1737" coordinates="-14.8 -64.6 2.1 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1738" coordinates="21.3 -77.5 0.5 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us"/>
+    <peer id="peer-1739" coordinates="36.2 -52.2 0.7 " speed="730Mf" bw_in="13.38MBps" bw_out="1.024MBps" lat="500us" />
   </AS>
 </platform> 
index dc877cb..a0bec80 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="node-" suffix=".acme.org"
-   radical="0-11" power="1Gf" bw="125MBps" lat="50us" topology="TORUS" topo_parameters="3,2,2" 
-   loopback_bw="100000000" loopback_lat="0"/>
+  <cluster id="bob_cluster" prefix="node-" suffix=".acme.org" radical="0-11" speed="1Gf" 
+           bw="125MBps" lat="50us" topology="TORUS" topo_parameters="3,2,2" loopback_bw="100MBps" loopback_lat="0"/>
 </AS>
 </platform>
diff --git a/examples/platforms/two_hosts.xml b/examples/platforms/two_hosts.xml
new file mode 100644 (file)
index 0000000..6a7a389
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="AS0" routing="Full">
+    <host id="Tremblay" speed="25Mf"/>
+    <host id="Jupiter" speed="25Mf" availability_file="trace/jupiter_speed.trace"/>
+
+    <link id="1" bandwidth="125MBps" latency="100us" bandwidth_file="trace/link1_avail.trace"/>
+
+    <route src="Tremblay" dst="Jupiter"><link_ctn id="1"/></route>
+  </AS>
+
+  <trace id="Tremblay_power" periodicity="6.0">
+    1.0 0.5
+    4.0 1.0
+  </trace>
+  <trace_connect trace="Tremblay_power" element="Tremblay" kind="SPEED"/>
+</platform>
index 531e661..b784909 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS  id="AS0"  routing="Full">
-    <host id="host0" core="4" power="8095000000"/>
-    <host id="host1" core="4" power="8095000000"/>
-    <link id="link1" bandwidth="125000000" latency="0.000100"/>
-   <route src="host0" dst="host1"><link_ctn id="link1"/></route>
+    <host id="host0" core="4" speed="8.095Gf"/>
+    <host id="host1" core="4" speed="8.095Gf"/>
+    <link id="link1" bandwidth="125MBps" latency="100us"/>
+    <route src="host0" dst="host1"><link_ctn id="link1"/></route>
   </AS>
 </platform>
index b1aeab6..3d93800 100644 (file)
@@ -1,20 +1,14 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="4Gf"/>
-   <host id="cpu1" power="4Gf"/>
-   <link id="link0" bandwidth="125MBps" latency="100us" sharing_policy="SHARED"/>
-   <route src="cpu0" dst="cpu0">
-     <link_ctn id="link0"/>
-   </route>
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
-   <route src="cpu1" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0" routing="Full">
+  <host id="cpu0" speed="4Gf"/>
+  <host id="cpu1" speed="4Gf"/>
+
+  <link id="link0" bandwidth="125MBps" latency="100us" sharing_policy="SHARED"/>
+
+  <route src="cpu0" dst="cpu0"><link_ctn id="link0"/></route>
+  <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+  <route src="cpu1" dst="cpu1"><link_ctn id="link0"/></route>
+</AS>
+</platform>
index 99b0c57..5012186 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="Cpu A" power="10f" availability_file="trace/trace_A.txt" state_file="trace/trace_A_failure.txt"/>
-   <host id="Cpu B" power="10f" availability_file="trace/trace_B.txt"/>
-   <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
-   <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="Cpu A" speed="10f" availability_file="trace/trace_A.txt" state_file="trace/trace_A_failure.txt"/>
+  <host id="Cpu B" speed="10f" availability_file="trace/trace_B.txt"/>
+  <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
+  <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
+</AS>
+</platform>
index 88e4b72..6a9dd8a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <trace id="A" periodicity="1.0">
 0.0 1.0
 11.0 0.5
 10.0 0.8
 20.0 0.4
 </trace>
- <AS  id="AS0"  routing="Full">
-   <host id="Cpu A" power="10f"/>
-   <host id="Cpu B" power="10f"/>
-   <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
-   <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
- </AS>
-<trace_connect kind="POWER" trace="A" element="Cpu A"/>
+
+<AS id="AS0" routing="Full">
+  <host id="Cpu A" speed="10f"/>
+  <host id="Cpu B" speed="10f"/>
+  <link id="LinkA" bandwidth="10MBps" latency="200ms"/>
+  <route src="Cpu A" dst="Cpu B"><link_ctn id="LinkA"/></route>
+</AS>
+
+<trace_connect kind="SPEED" trace="A" element="Cpu A"/>
 <trace_connect kind="HOST_AVAIL" trace="A_failure" element="Cpu A"/>
-<trace_connect kind="POWER" trace="B" element="Cpu B"/>
- </platform>
+<trace_connect kind="SPEED" trace="B" element="Cpu B"/>
+</platform>
index 7e4abae..7bd805c 100644 (file)
@@ -1,20 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       
-<AS  id="AS0"  routing="Vivaldi">       
-       <peer id="100030591"
-               coordinates="25.5 9.4 1.4"
-               power="1.5Gf"
-               bw_in="2.25GBps"
-               bw_out="2.25GBps"
-               lat="500us" />
-               
-       <peer id="100036570"
-               coordinates="-12.7 -9.9 2.1"
-               power="730Mf"   
-               bw_in="2.25GBps"
-               bw_out="2.25GBps"
-               lat="500us" />
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS id="AS0" routing="Vivaldi">
+  <peer id="100030591" coordinates="25.5 9.4 1.4" speed="1.5Gf" bw_in="2.25GBps" bw_out="2.25GBps" lat="500us" />
+  <peer id="100036570" coordinates="-12.7 -9.9 2.1" speed="730Mf" bw_in="2.25GBps" bw_out="2.25GBps" lat="500us" />
 </AS>
 </platform>
index 49ada2e..2f3a4fb 100644 (file)
@@ -1,50 +1,49 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <config id="General">
-       <prop id="network/coordinates" value="yes"></prop>
-</config>      
- <AS  id="AS0"  routing="Vivaldi">
-       <host id="100030591" coordinates="25.5 9.4 1.4" power="1.5Gf" />
-       <host id="100036570" coordinates="-12.7 -9.9 2.1" power="730Mf" />
-       <host id="100041334" coordinates="-15.7 9.9 14.7" power="2.8Gf" />
-       <host id="100055671" coordinates="27.1 7.2 19.2" power="880Mf" />
-       <host id="100066658" coordinates="11.4 10.7 24.8" power="2Gf" />
-       <host id="100090691" coordinates="27.1 14.9 0.3" power="1Gf" />
-       <host id="100094952" coordinates="110.1 31.2 43.7" power="340Mf" />
-       <host id="100117943" coordinates="-21.2 -25.2 4.1" power="1.2Gf" />
-       <host id="100126290" coordinates="-2.3 1.1 12.0" power="1.3Gf" />
-       <host id="100144483" coordinates="16.8 -11.1 15.4" power="1.4Gf" />
-       <host id="100152889" coordinates="-6.8 1.6 0.3" power="1.6Gf" />
-       <host id="100178474" coordinates="23.0 -4.1 1.0" power="1.7Gf" />
-       <host id="100180261" coordinates="29.9 -9.2 0.2" power="2.2Gf" />
-       <host id="100185883" coordinates="-2.2 7.2 11.0" power="770Mf" />
-       <host id="100186365" coordinates="26.1 -61.9 144.7" power="840Mf" />
-       <host id="100200866" coordinates="-39.4 1.1 0.6" power="1.5Gf" />
-       <host id="100207885" coordinates="26.5 -15.1 0.3" power="1.6Gf" />
-       <host id="100224447" coordinates="15.0 -0.5 34.5" power="720Mf" />
-       <host id="100238799" coordinates="16.5 11.5 19.2" power="1.4Gf" />
-       <host id="100273297" coordinates="-37.9 85.0 69.8" power="2.3Gf" />
-       <host id="100280711" coordinates="-2.6 19.4 6.4" power="2.3Gf" />
-       <host id="100284574" coordinates="-104.4 -162.5 1.7" power="2.3Gf" />
-       <host id="100292843" coordinates="-41.8 -30.9 5.8" power="700Mf" />
-       <host id="100309685" coordinates="-9.9 10.4 1.9" power="2.3Gf" />
-       <host id="100315281" coordinates="8.5 15.3 31.9" power="2.2Gf" />
-       <host id="100317715" coordinates="6.0 -12.6 7.0" power="1.7Gf" />
-       <host id="100324694" coordinates="89.6 26.1 17.9" power="2.2Gf" />
-       <host id="100326641" coordinates="13.9 -31.4 8.2" power="1.5Gf" />
-       <host id="100331484" coordinates="13.6 10.0 25.0" power="2.2Gf" />
-       <host id="100347816" coordinates="32.2 34.0 104.4" power="2.8Gf" />
-       <host id="100354536" coordinates="23.5 21.2 24.5" power="2Gf" />
-       <host id="100355017" coordinates="-27.0 -12.1 4.8" power="1.3Gf" />
-       <host id="100359203" coordinates="18.4 -4.5 1.2" power="2.3Gf" />
-       <host id="100379397" coordinates="109.3 253.6 2.0" power="2.5Gf" />
-       <host id="100404046" coordinates="16.5 9.4 4.2" power="2.3Gf" />
-       <host id="100413314" coordinates="-35.9 -42.6 1.0" power="2.8Gf" />
-       <host id="100416828" coordinates="30.4 18.9 3.5" power="1.3Gf" />
-       <host id="100422926" coordinates="-23.1 -7.6 39.9" power="1.6Gf" />
-       <host id="100427449" coordinates="135.5 -21.0 83.4" power="1.4Gf" />
-       <host id="100429957" coordinates="17.5 6.7 18.8" power="830Mf" />
-       </AS>
+  <prop id="network/coordinates" value="yes"></prop>
+</config>  
+<AS id="AS0" routing="Vivaldi">
+  <host id="100030591" coordinates="25.5 9.4 1.4" speed="1.5Gf" />
+  <host id="100036570" coordinates="-12.7 -9.9 2.1" speed="730Mf" />
+  <host id="100041334" coordinates="-15.7 9.9 14.7" speed="2.8Gf" />
+  <host id="100055671" coordinates="27.1 7.2 19.2" speed="880Mf" />
+  <host id="100066658" coordinates="11.4 10.7 24.8" speed="2Gf" />
+  <host id="100090691" coordinates="27.1 14.9 0.3" speed="1Gf" />
+  <host id="100094952" coordinates="110.1 31.2 43.7" speed="340Mf" />
+  <host id="100117943" coordinates="-21.2 -25.2 4.1" speed="1.2Gf" />
+  <host id="100126290" coordinates="-2.3 1.1 12.0" speed="1.3Gf" />
+  <host id="100144483" coordinates="16.8 -11.1 15.4" speed="1.4Gf" />
+  <host id="100152889" coordinates="-6.8 1.6 0.3" speed="1.6Gf" />
+  <host id="100178474" coordinates="23.0 -4.1 1.0" speed="1.7Gf" />
+  <host id="100180261" coordinates="29.9 -9.2 0.2" speed="2.2Gf" />
+  <host id="100185883" coordinates="-2.2 7.2 11.0" speed="770Mf" />
+  <host id="100186365" coordinates="26.1 -61.9 144.7" speed="840Mf" />
+  <host id="100200866" coordinates="-39.4 1.1 0.6" speed="1.5Gf" />
+  <host id="100207885" coordinates="26.5 -15.1 0.3" speed="1.6Gf" />
+  <host id="100224447" coordinates="15.0 -0.5 34.5" speed="720Mf" />
+  <host id="100238799" coordinates="16.5 11.5 19.2" speed="1.4Gf" />
+  <host id="100273297" coordinates="-37.9 85.0 69.8" speed="2.3Gf" />
+  <host id="100280711" coordinates="-2.6 19.4 6.4" speed="2.3Gf" />
+  <host id="100284574" coordinates="-104.4 -162.5 1.7" speed="2.3Gf" />
+  <host id="100292843" coordinates="-41.8 -30.9 5.8" speed="700Mf" />
+  <host id="100309685" coordinates="-9.9 10.4 1.9" speed="2.3Gf" />
+  <host id="100315281" coordinates="8.5 15.3 31.9" speed="2.2Gf" />
+  <host id="100317715" coordinates="6.0 -12.6 7.0" speed="1.7Gf" />
+  <host id="100324694" coordinates="89.6 26.1 17.9" speed="2.2Gf" />
+  <host id="100326641" coordinates="13.9 -31.4 8.2" speed="1.5Gf" />
+  <host id="100331484" coordinates="13.6 10.0 25.0" speed="2.2Gf" />
+  <host id="100347816" coordinates="32.2 34.0 104.4" speed="2.8Gf" />
+  <host id="100354536" coordinates="23.5 21.2 24.5" speed="2Gf" />
+  <host id="100355017" coordinates="-27.0 -12.1 4.8" speed="1.3Gf" />
+  <host id="100359203" coordinates="18.4 -4.5 1.2" speed="2.3Gf" />
+  <host id="100379397" coordinates="109.3 253.6 2.0" speed="2.5Gf" />
+  <host id="100404046" coordinates="16.5 9.4 4.2" speed="2.3Gf" />
+  <host id="100413314" coordinates="-35.9 -42.6 1.0" speed="2.8Gf" />
+  <host id="100416828" coordinates="30.4 18.9 3.5" speed="1.3Gf" />
+  <host id="100422926" coordinates="-23.1 -7.6 39.9" speed="1.6Gf" />
+  <host id="100427449" coordinates="135.5 -21.0 83.4" speed="1.4Gf" />
+  <host id="100429957" coordinates="17.5 6.7 18.8" speed="830Mf" />
+</AS>
 </platform>
index 617d170..a092a3d 100644 (file)
@@ -1,24 +1,4 @@
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/basic)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/io)
-
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
\ No newline at end of file
+  PARENT_SCOPE)
\ No newline at end of file
index 22794a0..5d2c207 100644 (file)
@@ -1,28 +1,12 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(s4u_basic s4u_basic.cpp)
-
-### Add definitions for compile
 target_link_libraries(s4u_basic simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/s4u_basic.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/s4u_basic.cpp
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c1e3ca5..0a7c018 100644 (file)
@@ -11,41 +11,41 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category");
 
 class Worker : simgrid::s4u::Actor {
 public:
-       Worker(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
-                       : simgrid::s4u::Actor(procname,host,argc,argv){}
+  Worker(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
+      : simgrid::s4u::Actor(procname,host,argc,argv){}
 
-       int main(int argc, char **argv) {
-               XBT_INFO("Hello s4u, I'm ready to serve");
+  int main(int argc, char **argv) {
+    XBT_INFO("Hello s4u, I'm ready to serve");
 
-               char *msg = (char*)recv(*simgrid::s4u::Mailbox::byName("worker"));
-               XBT_INFO("I received '%s'",msg);
-               XBT_INFO("I'm done. See you.");
-               return 1;
-       }
+    char *msg = (char*)recv(*simgrid::s4u::Mailbox::byName("worker"));
+    XBT_INFO("I received '%s'",msg);
+    XBT_INFO("I'm done. See you.");
+    return 1;
+  }
 };
 
 class Master : simgrid::s4u::Actor {
 public:
-       Master(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
-                       : Actor(procname,host,argc,argv){}
+  Master(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
+      : Actor(procname,host,argc,argv){}
 
-       int main(int argc, char **argv) {
-               const char *msg = "GaBuZoMeu";
-               XBT_INFO("Hello s4u, I have something to send");
-               send(*simgrid::s4u::Mailbox::byName("worker"), xbt_strdup(msg), strlen(msg));
+  int main(int argc, char **argv) {
+    const char *msg = "GaBuZoMeu";
+    XBT_INFO("Hello s4u, I have something to send");
+    send(*simgrid::s4u::Mailbox::byName("worker"), xbt_strdup(msg), strlen(msg));
 
-               XBT_INFO("I'm done. See you.");
-               return 1;
-       }
+    XBT_INFO("I'm done. See you.");
+    return 1;
+  }
 };
 
 
 int main(int argc, char **argv) {
-       simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv);
-       e->loadPlatform("../../platforms/two_hosts_platform.xml");
+  simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv);
+  e->loadPlatform("../../platforms/two_hosts_platform.xml");
 
-       new Worker("worker", simgrid::s4u::Host::by_name("host0"), 0, NULL);
-       new Master("master", simgrid::s4u::Host::by_name("host1"), 0, NULL);
-       e->run();
-       return 0;
+  new Worker("worker", simgrid::s4u::Host::by_name("host0"), 0, NULL);
+  new Master("master", simgrid::s4u::Host::by_name("host1"), 0, NULL);
+  e->run();
+  return 0;
 }
index efc26cd..7fdeb48 100644 (file)
@@ -6,16 +6,7 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/s4u_io.tesh
   PARENT_SCOPE)
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/s4u_io_test.cpp
   PARENT_SCOPE)
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE)
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE)
index c2e9757..789a8f4 100644 (file)
@@ -13,103 +13,103 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category");
 
 class myHost : simgrid::s4u::Actor {
 public:
-       myHost(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
+  myHost(const char*procname, simgrid::s4u::Host *host,int argc, char **argv)
 : simgrid::s4u::Actor(procname,host,argc,argv){}
 
-       void show_info(boost::unordered_map <std::string, simgrid::s4u::Storage*> const&mounts) {
-               XBT_INFO("Storage info on %s:",
-                       simgrid::s4u::Host::current()->name().c_str());
-
-               for (const auto&kv : mounts) {
-                       const char* mountpoint = kv.first.c_str();
-                       simgrid::s4u::Storage &storage = *kv.second;
-
-                       // Retrieve disk's information
-                       sg_size_t free_size = storage.size_free();
-                       sg_size_t used_size = storage.size_used();
-                       sg_size_t size = storage.size();
-
-                       XBT_INFO("    %s (%s) Used: %llu; Free: %llu; Total: %llu.",
-                                       storage.name(), mountpoint, used_size, free_size, size);
-               }
-       }
-
-       int main(int argc, char **argv) {
-               boost::unordered_map <std::string, simgrid::s4u::Storage *> const& mounts =
-                       simgrid::s4u::Host::current()->mounted_storages();
-
-               show_info(mounts);
-
-               // Open an non-existing file to create it
-               const char *filename = "/home/tmp/data.txt";
-               simgrid::s4u::File *file = new simgrid::s4u::File(filename, NULL);
-               sg_size_t write, read, file_size;
-
-               write = file->write(200000);  // Write 200,000 bytes
-               XBT_INFO("Create a %llu bytes file named '%s' on /sd1", write, filename);
-
-               // check that sizes have changed
-               show_info(mounts);
-
-               // Now retrieve the size of created file and read it completely
-               file_size = file->size();
-               file->seek(0);
-               read = file->read(file_size);
-               XBT_INFO("Read %llu bytes on %s", read, filename);
-
-               // Now write 100,000 bytes in tmp/data.txt
-               write = file->write(100000);  // Write 100,000 bytes
-               XBT_INFO("Write %llu bytes on %s", write, filename);
-
-               simgrid::s4u::Storage &storage = simgrid::s4u::Storage::byName("Disk4");
-
-               // Now rename file from ./tmp/data.txt to ./tmp/simgrid.readme
-               const char *newpath = "/home/tmp/simgrid.readme";
-               XBT_INFO("Move '%s' to '%s'", file->path(), newpath);
-               file->move(newpath);
-
-               // Test attaching some user data to the file
-               file->set_userdata(xbt_strdup("777"));
-               XBT_INFO("User data attached to the file: %s", (char*)file->userdata());
-
-               // Close the file
-               delete file;
-
-               // Now attach some user data to disk1
-               XBT_INFO("Get/set data for storage element: %s",storage.name());
-               XBT_INFO("    Uninitialized storage data: '%s'", (char*)storage.userdata());
-
-               storage.set_userdata(xbt_strdup("Some user data"));
-               XBT_INFO("    Set and get data: '%s'", (char*)storage.userdata());
-
-               /*
-                 // Dump disks contents
-                 XBT_INFO("*** Dump content of %s ***",Host::current()->name());
-                 xbt_dict_t contents = NULL;
-                 contents = MSG_host_get_storage_content(MSG_host_self()); // contents is a dict of dicts
-                 xbt_dict_cursor_t curs, curs2 = NULL;
-                 char* mountname;
-                 xbt_dict_t content;
-                 char* path;
-                 sg_size_t *size;
-                 xbt_dict_foreach(contents, curs, mountname, content){
-                   XBT_INFO("Print the content of mount point: %s",mountname);
-                   xbt_dict_foreach(content,curs2,path,size){
-                      XBT_INFO("%s size: %llu bytes", path,*((sg_size_t*)size));
-                   }
-                 xbt_dict_free(&content);
-                 }
-                 xbt_dict_free(&contents);
-                */
-               return 0;
-       }
+  void show_info(boost::unordered_map <std::string, simgrid::s4u::Storage*> const&mounts) {
+    XBT_INFO("Storage info on %s:",
+      simgrid::s4u::Host::current()->name().c_str());
+
+    for (const auto&kv : mounts) {
+      const char* mountpoint = kv.first.c_str();
+      simgrid::s4u::Storage &storage = *kv.second;
+
+      // Retrieve disk's information
+      sg_size_t free_size = storage.size_free();
+      sg_size_t used_size = storage.size_used();
+      sg_size_t size = storage.size();
+
+      XBT_INFO("    %s (%s) Used: %llu; Free: %llu; Total: %llu.",
+          storage.name(), mountpoint, used_size, free_size, size);
+    }
+  }
+
+  int main(int argc, char **argv) {
+    boost::unordered_map <std::string, simgrid::s4u::Storage *> const& mounts =
+      simgrid::s4u::Host::current()->mounted_storages();
+
+    show_info(mounts);
+
+    // Open an non-existing file to create it
+    const char *filename = "/home/tmp/data.txt";
+    simgrid::s4u::File *file = new simgrid::s4u::File(filename, NULL);
+    sg_size_t write, read, file_size;
+
+    write = file->write(200000);  // Write 200,000 bytes
+    XBT_INFO("Create a %llu bytes file named '%s' on /sd1", write, filename);
+
+    // check that sizes have changed
+    show_info(mounts);
+
+    // Now retrieve the size of created file and read it completely
+    file_size = file->size();
+    file->seek(0);
+    read = file->read(file_size);
+    XBT_INFO("Read %llu bytes on %s", read, filename);
+
+    // Now write 100,000 bytes in tmp/data.txt
+    write = file->write(100000);  // Write 100,000 bytes
+    XBT_INFO("Write %llu bytes on %s", write, filename);
+
+    simgrid::s4u::Storage &storage = simgrid::s4u::Storage::byName("Disk4");
+
+    // Now rename file from ./tmp/data.txt to ./tmp/simgrid.readme
+    const char *newpath = "/home/tmp/simgrid.readme";
+    XBT_INFO("Move '%s' to '%s'", file->path(), newpath);
+    file->move(newpath);
+
+    // Test attaching some user data to the file
+    file->set_userdata(xbt_strdup("777"));
+    XBT_INFO("User data attached to the file: %s", (char*)file->userdata());
+
+    // Close the file
+    delete file;
+
+    // Now attach some user data to disk1
+    XBT_INFO("Get/set data for storage element: %s",storage.name());
+    XBT_INFO("    Uninitialized storage data: '%s'", (char*)storage.userdata());
+
+    storage.set_userdata(xbt_strdup("Some user data"));
+    XBT_INFO("    Set and get data: '%s'", (char*)storage.userdata());
+
+    /*
+      // Dump disks contents
+      XBT_INFO("*** Dump content of %s ***",Host::current()->name());
+      xbt_dict_t contents = NULL;
+      contents = MSG_host_get_storage_content(MSG_host_self()); // contents is a dict of dicts
+      xbt_dict_cursor_t curs, curs2 = NULL;
+      char* mountname;
+      xbt_dict_t content;
+      char* path;
+      sg_size_t *size;
+      xbt_dict_foreach(contents, curs, mountname, content){
+        XBT_INFO("Print the content of mount point: %s",mountname);
+        xbt_dict_foreach(content,curs2,path,size){
+           XBT_INFO("%s size: %llu bytes", path,*((sg_size_t*)size));
+        }
+      xbt_dict_free(&content);
+      }
+      xbt_dict_free(&contents);
+     */
+    return 0;
+  }
 };
 
 int main(int argc, char **argv) {
-       simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv);
-       e->loadPlatform("../../platforms/storage/storage.xml");
+  simgrid::s4u::Engine *e = new simgrid::s4u::Engine(&argc,argv);
+  e->loadPlatform("../../platforms/storage/storage.xml");
 
-       new myHost("host", simgrid::s4u::Host::by_name("denise"), 0, NULL);
-       e->run();
-       return 0;
+  new myHost("host", simgrid::s4u::Host::by_name("denise"), 0, NULL);
+  e->run();
+  return 0;
 }
diff --git a/examples/scala/CMakeLists.txt b/examples/scala/CMakeLists.txt
deleted file mode 100644 (file)
index e2c117f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
-
diff --git a/examples/scala/master_slave_bypass/CMakeLists.txt b/examples/scala/master_slave_bypass/CMakeLists.txt
deleted file mode 100644 (file)
index 138566a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-set(example scala_master_slave_bypass)
-set(sources
-  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Master.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/MsBypass.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.scala
-  )
-
-if(enable_scala)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
-                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-endif()
-
-set(tesh_files
-  ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/bypass.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
diff --git a/examples/scala/master_slave_bypass/FinalizeTask.scala b/examples/scala/master_slave_bypass/FinalizeTask.scala
deleted file mode 100644 (file)
index ca08d59..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-
-package master_slave_bypass
-import org.simgrid.msg.Task
-
-class FinalizeTask extends Task("finalize",0,0) {}
diff --git a/examples/scala/master_slave_bypass/Master.scala b/examples/scala/master_slave_bypass/Master.scala
deleted file mode 100644 (file)
index 9969982..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Master of a basic master/slave example in Java
- *
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package.
- */
-
-package master_slave_bypass
-
-import Stream._
-import org.simgrid.msg.HostNotFoundException
-import org.simgrid.msg.Msg
-import org.simgrid.msg.MsgException
-import org.simgrid.msg.Process
-import org.simgrid.msg.Task
-
-class Master(hostname:String, name:String) extends Process(hostname,name) {
-
-  def main(args:Array[String]) {
-    Msg.info("Master Hello!")
-
-    //Create a slave on host "alice"
-    try {
-      Msg.info("Create process on host 'Tremblay'")
-      new Slave("Tremblay","process2").start()
-    } catch {
-      case e:MsgException => println("Process2!")
-    }
-
-    //Wait for slave "alice"
-    continually({Task.receive("Tremblay")})
-      .takeWhile(!_.isInstanceOf[FinalizeTask])
-      .force // to force the list to be compute
-
-    Msg.info("Received Finalize. I'm done. See you!")
-  }
-}
diff --git a/examples/scala/master_slave_bypass/MsBypass.scala b/examples/scala/master_slave_bypass/MsBypass.scala
deleted file mode 100644 (file)
index a52c77e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package.
- */
-
-package master_slave_bypass
-
-import org.simgrid.msg.Msg
-import org.simgrid.msg.MsgException
-import org.simgrid.msg.NativeException
-
-object MsBypass extends App {
- /* This only contains the launcher. If you do nothing more than than you can run
-  *   scala simgrid.msg.Msg
-  * which also contains such a launcher
-  */
-
-  /* initialize the MSG simulation. Must be done before anything else (even logging). */
-  Msg.init(args)
-  Msg.createEnvironment(args(0))
-
-  /* bypass deployment */
-  try {
-    new Master("Jupiter","process1").start()
-  }
-  catch {
-    case e:MsgException => println("Create processes failed!")
-  }
-
-  /*  execute the simulation. */
-  Msg.run()
-}
diff --git a/examples/scala/master_slave_bypass/Slave.scala b/examples/scala/master_slave_bypass/Slave.scala
deleted file mode 100644 (file)
index ab595be..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package.
- */
-package master_slave_bypass
-
-import org.simgrid.msg.HostFailureException
-import org.simgrid.msg.HostNotFoundException
-import org.simgrid.msg.Msg
-import org.simgrid.msg.TimeoutException
-import org.simgrid.msg.TransferFailureException
-import org.simgrid.msg.Process
-
-class Slave(hostname:String, name:String) extends Process(hostname, name) {
-  def main(args:Array[String]) {
-    Msg.info("Slave Hello!")
-    val task = new FinalizeTask()
-    Msg.info("Send finalize!")
-    task.send("Tremblay")
-  }
-}
diff --git a/examples/scala/master_slave_bypass/bypass.tesh b/examples/scala/master_slave_bypass/bypass.tesh
deleted file mode 100644 (file)
index a38a098..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#! tesh
-
-! output sort 19
-$ java -classpath ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/../platforms/small_platform.xml
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [Jupiter:process1:(1) 0.000000] [jmsg/INFO] Master Hello!
-> [Jupiter:process1:(1) 0.000000] [jmsg/INFO] Create process on host 'Tremblay'
-> [Tremblay:process2:(2) 0.000000] [jmsg/INFO] Slave Hello!
-> [Tremblay:process2:(2) 0.000000] [jmsg/INFO] Send finalize!
-> [Jupiter:process1:(1) 0.019014] [jmsg/INFO] Received Finalize. I'm done. See you!
-> [0.019014] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
diff --git a/examples/scala/master_slave_kill/FinalizeTask.scala b/examples/scala/master_slave_kill/FinalizeTask.scala
deleted file mode 100644 (file)
index b017adf..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-
-package master_slave_kill
-
-import org.simgrid.msg.Task
-
-class FinalizeTask extends Task("finalize",0,0) {}
-    
diff --git a/examples/scala/master_slave_kill/Master.scala b/examples/scala/master_slave_kill/Master.scala
deleted file mode 100644 (file)
index 0685987..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Master of a basic master/slave example in Java
- *
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package.
- */
-
-package master_slave_kill
-
-import Stream._
-import org.simgrid.msg.HostNotFoundException
-import org.simgrid.msg.Msg
-import org.simgrid.msg.MsgException
-import org.simgrid.msg.Process
-import org.simgrid.msg.Task
-
-class Master(hostname:String, name:String) extends Process(hostname, name) {
-  def main(args:Array[String]) {
-    Msg.info("Master Hello!")
-    var process2:Slave = null
-
-    //Create a slave on host "alice"
-    try {
-      Msg.info("Create process on host 'alice'")
-      process2 = new Slave("Tremblay","slave")
-      process2.start()
-    } catch {
-      case e:MsgException => println("Process2!")
-    }
-
-    //Wait for slave "alice"
-    continually({Task.receive("mail1")})
-      .takeWhile(!_.isInstanceOf[FinalizeTask])
-      .force // to force the list to be compute
-
-    Msg.info("Received mail1!")
-    process2.kill()
-    Msg.info("Process2 is now killed, should exit now")
-  }
-}
diff --git a/examples/scala/master_slave_kill/MsKill.scala b/examples/scala/master_slave_kill/MsKill.scala
deleted file mode 100644 (file)
index f2f7c1a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package.
- */
-
-package master_slave_kill;
-
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.NativeException;
-
-object MsKill extends App{
-
-  /* This only contains the launcher. If you do nothing more than than you can run
-  *   scala simgrid.msg.Msg
-  * which also contains such a launcher
-  */
-
-
-  /* initialize the MSG simulation. Must be done before anything else (even logging). */
-  Msg.init(args)
-  Msg.createEnvironment(args(0))
-
-  /* bypass deploymemt */
-  try {
-    val process1 = new Master("Jupiter","master")
-    process1.start()
-  }
-  catch {
-    case e:MsgException => println("Create processes failed!")
-  }
-
-  /*  execute the simulation. */
-  Msg.run()
-}
diff --git a/examples/scala/master_slave_kill/Slave.scala b/examples/scala/master_slave_kill/Slave.scala
deleted file mode 100644 (file)
index 2d50368..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-package master_slave_kill
-
-import org.simgrid.msg.HostFailureException
-import org.simgrid.msg.HostNotFoundException
-import org.simgrid.msg.Msg
-import org.simgrid.msg.MsgException
-import org.simgrid.msg.Task
-import org.simgrid.msg.TimeoutException
-import org.simgrid.msg.TransferFailureException
-import org.simgrid.msg.Process
-
-class Slave(hostname:String, name:String) extends Process(hostname, name) {
-  def main(args:Array[String]) {
-    Msg.info("Slave Hello!")
-       
-    val task = new FinalizeTask();
-    Msg.info("Send Mail1!");
-    task.send("mail1");
-       
-    try {
-      Task.receive("mail2");
-    } catch {
-      case e:MsgException => {Msg.debug("Received failed")
-                              return}
-    }
-    Msg.info("Receive Mail2!")
-  }
-}
diff --git a/examples/scala/master_slave_kill/kill.tesh b/examples/scala/master_slave_kill/kill.tesh
deleted file mode 100644 (file)
index c06a0b8..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/../platforms/small_platform.xml
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [Jupiter:master:(1) 0.000000] [jmsg/INFO] Master Hello!
-> [Jupiter:master:(1) 0.000000] [jmsg/INFO] Create process on host 'alice'
-> [Tremblay:slave:(2) 0.000000] [jmsg/INFO] Slave Hello!
-> [Tremblay:slave:(2) 0.000000] [jmsg/INFO] Send Mail1!
-> [Jupiter:master:(1) 0.019014] [jmsg/INFO] Received mail1!
-> [Jupiter:master:(1) 0.019014] [jmsg/INFO] Process2 is now killed, should exit now
-> [0.019014] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
diff --git a/examples/scala/masterslave/CMakeLists.txt b/examples/scala/masterslave/CMakeLists.txt
deleted file mode 100644 (file)
index b81f30c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-set(example scala_masterslave)
-set(sources
-  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Forwarder.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Master.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Masterslave.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.scala
-  )
-
-if(enable_scala)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
-                             -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-endif()
-
-set(tesh_files
-  ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/masterslaveDeployment.xml
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/README
-  PARENT_SCOPE
-  )
diff --git a/examples/scala/masterslave/FinalizeTask.scala b/examples/scala/masterslave/FinalizeTask.scala
deleted file mode 100644 (file)
index 45952fc..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-
-package masterslave
-import org.simgrid.msg.Task
-
-class FinalizeTask extends Task("finalize",0,0) {}
-    
diff --git a/examples/scala/masterslave/Forwarder.scala b/examples/scala/masterslave/Forwarder.scala
deleted file mode 100644 (file)
index a3cd4ff..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-
-package masterslave
-
-import Stream._
-import org.simgrid.msg.Host
-import org.simgrid.msg.Msg
-import org.simgrid.msg.MsgException
-import org.simgrid.msg.Task
-import org.simgrid.msg.Process
-
-class Forwarder(host:Host, name:String, args:Array[String]) extends Process(host,name,args) {
-
-   def main(args: Array[String]){
-      if (args.length < 3) {    
-        Msg.info("Forwarder needs 3 arguments (input mailbox, first output mailbox, last one)")
-        Msg.info("Got "+args.length+" instead")
-        System.exit(1)
-      }
-      val input = args(0).toInt                
-      val firstOutput = args(1).toInt          
-      val lastOutput = args(2).toInt           
-      
-      var taskCount = 0
-      val slavesCount = lastOutput - firstOutput + 1
-      Msg.info("Receiving on 'slave_"+input+"'")
-      var cont = true
-      
-      continually({Task.receive("slave_"+input)})
-        .takeWhile(!_.isInstanceOf[FinalizeTask])
-        .foreach(task => {
-          val dest = firstOutput + (taskCount % slavesCount)
-          Msg.info("Sending \"" + task.getName() + "\" to \"slave_" + dest + "\"")
-          task.send("slave_"+dest)
-          taskCount += 1
-        })
-
-      Msg.info("Got a finalize task. Let's forward that we're done.")
-      for (cpt <- firstOutput to lastOutput) {
-        val tf = new FinalizeTask()
-        tf.send("slave_"+cpt)
-      }
-        
-      Msg.info("I'm done. See you!")
-   }
-}
-
diff --git a/examples/scala/masterslave/Master.scala b/examples/scala/masterslave/Master.scala
deleted file mode 100644 (file)
index 15779c9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Master of a basic master/slave example in Java
- *
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-package masterslave;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.MsgException;
-import org.simgrid.msg.Task;
-import org.simgrid.msg.Process;;
-
-class Master(host:Host, name:String, args:Array[String]) extends Process(host,name,args) {
-  def main(args:Array[String]) {
-    if (args.length < 4) {
-      Msg.info("Master needs 4 arguments")
-      System.exit(1)
-    }
-
-    val tasksCount = args(0).toInt             
-    val taskComputeSize = args(1).toDouble             
-    val taskCommunicateSize = args(2).toDouble
-    val slavesCount = args(3).toInt
-
-    Msg.info("Hello! Got " +  slavesCount + " slaves and " + tasksCount + " tasks to process")
-
-    for (i <- 0 until tasksCount) {
-      val task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize)
-      task.send("slave_"+(i%slavesCount))
-    }
-
-    Msg.info("All tasks have been dispatched. Let's tell everybody the computation is over.")
-
-    for (i <- 0 until slavesCount) {
-      val task = new FinalizeTask()
-      task.send("slave_"+(i%slavesCount))
-    }
-
-    Msg.info("Goodbye now!")
-  }
-}
diff --git a/examples/scala/masterslave/Masterslave.scala b/examples/scala/masterslave/Masterslave.scala
deleted file mode 100644 (file)
index 8f6a102..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-
-package masterslave
-
-import org.simgrid.msg.Msg
-import org.simgrid.msg.NativeException
-import org.simgrid.msg.Task
-
-object Masterslave extends App {
-   val TASK_COMP_SIZE = 10000000
-   val TASK_COMM_SIZE = 10000000
-   /* This only contains the launcher. If you do nothing more than than you can run 
-    *   scala simgrid.msg.Msg
-    * which also contains such a launcher
-    */
-
-     /* initialize the MSG simulation. Must be done before anything else (even logging). */
-     Msg.init(args)
-       
-     if (args.length < 2) {                    
-       Msg.info("Usage   : Masterslave platform_file deployment_file")
-       Msg.info("example : Masterslave basic_platform.xml basic_deployment.xml")
-       System.exit(1)
-     }
-               
-     /* construct the platform and deploy the application */
-     Msg.createEnvironment(args(0))
-     Msg.deployApplication(args(1))
-     /*  execute the simulation. */
-     Msg.run()
-}
diff --git a/examples/scala/masterslave/README b/examples/scala/masterslave/README
deleted file mode 100644 (file)
index 9207911..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-This is a somehow basic master/slaves example.
-
-There is 3 kind of processes:
- * Master: creates some tasks, and dispatches them to its slaves
- * Forwarder: get tasks from master, and dispatch them further
- * Slave: get tasks from either master or forwarder, and run them
-At the end of the execution:
- - the master sends FinalizeTask to every known slave to stop them
- - On reception of FT, forwarders send FT to every slave, and stop.
- - On reception of FinalizeTask, slaves stop.
\ No newline at end of file
diff --git a/examples/scala/masterslave/Slave.scala b/examples/scala/masterslave/Slave.scala
deleted file mode 100644 (file)
index cc1e531..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2006-2013. The SimGrid Team.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. 
- */
-package masterslave;
-
-import Stream._
-import org.simgrid.msg.Host
-import org.simgrid.msg.HostFailureException
-import org.simgrid.msg.Msg
-import org.simgrid.msg.Task
-import org.simgrid.msg.TaskCancelledException
-import org.simgrid.msg.TimeoutException
-import org.simgrid.msg.TransferFailureException
-import org.simgrid.msg.Process
-
-class Slave(host:Host, name:String, args:Array[String]) extends Process(host,name,args) {
-  def main(args:Array[String]){
-    if (args.length < 1) {
-      Msg.info("Slave needs 1 argument (its number)")
-      System.exit(1)
-    }
-
-    val num = args(0).toInt
-    
-    continually({Task.receive("slave_"+num)})
-      .takeWhile(!_.isInstanceOf[FinalizeTask])
-      .foreach(task => {
-        Msg.info("Received \"" + task.getName() +  "\". Processing it.");
-        try {
-          task.execute();
-        } catch {
-          case e:TaskCancelledException => {}
-        }
-      })
-
-    Msg.info("Received Finalize. I'm done. See you!")
-  }
-}
diff --git a/examples/scala/masterslave/masterslave.tesh b/examples/scala/masterslave/masterslave.tesh
deleted file mode 100644 (file)
index 189988d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/../platforms/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Using regular java threads.
-> [  0.000000] (1:masterslave.Master@Jacquelin) Hello! Got 7 slaves and 5 tasks to process
-> [  0.000000] (2:masterslave.Forwarder@Jackson) Receiving on 'slave_0'
-> [  0.000000] (3:masterslave.Forwarder@Casavant) Receiving on 'slave_1'
-> [  0.851467] (2:masterslave.Forwarder@Jackson) Sending "Task_0" to "slave_7"
-> [  2.208482] (3:masterslave.Forwarder@Casavant) Sending "Task_1" to "slave_9"
-> [  2.720407] (11:masterslave.Slave@Sirois) Received "Task_1". Processing it.
-> [  3.553979] (9:masterslave.Slave@Stephen) Received "Task_0". Processing it.
-> [  5.252157] (4:masterslave.Slave@iRMX) Received "Task_2". Processing it.
-> [  6.266855] (5:masterslave.Slave@Bousquet) Received "Task_3". Processing it.
-> [  7.710549] (1:masterslave.Master@Jacquelin) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  7.710549] (6:masterslave.Slave@Soucy) Received "Task_4". Processing it.
-> [  8.562012] (2:masterslave.Forwarder@Jackson) Got a finalize task. Let's forward that we're done.
-> [  9.919019] (3:masterslave.Forwarder@Casavant) Got a finalize task. Let's forward that we're done.
-> [ 10.430937] (11:masterslave.Slave@Sirois) Received Finalize. I'm done. See you!
-> [ 11.264486] (9:masterslave.Slave@Stephen) Received Finalize. I'm done. See you!
-> [ 11.318423] (12:masterslave.Slave@Monique) Received Finalize. I'm done. See you!
-> [ 11.318423] (3:masterslave.Forwarder@Casavant) I'm done. See you!
-> [ 12.962677] (4:masterslave.Slave@iRMX) Received Finalize. I'm done. See you!
-> [ 13.907575] (10:masterslave.Slave@Robert) Received Finalize. I'm done. See you!
-> [ 13.907575] (2:masterslave.Forwarder@Jackson) I'm done. See you!
-> [ 13.977355] (5:masterslave.Slave@Bousquet) Received Finalize. I'm done. See you!
-> [ 15.421041] (6:masterslave.Slave@Soucy) Received Finalize. I'm done. See you!
-> [ 16.278350] (7:masterslave.Slave@Kuenning) Received Finalize. I'm done. See you!
-> [ 17.251680] (0:maestro@) MSG_main finished; Cleaning up the simulation...
-> [ 17.251680] (1:masterslave.Master@Jacquelin) Goodbye now!
-> [ 17.251680] (8:masterslave.Slave@Browne) Received Finalize. I'm done. See you!
diff --git a/examples/scala/masterslave/masterslaveDeployment.xml b/examples/scala/masterslave/masterslaveDeployment.xml
deleted file mode 100644 (file)
index 6c01ac0..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <process host="Jacquelin" function="masterslave.Master">
-     <argument value="5"/>     <!-- Amount of tasks to dispatch -->
-     <argument value="50000"/> <!-- Computation size of each task -->
-     <argument value="10"/>    <!-- Communication size of each one -->
-     <argument value="7"/>     <!-- Amount of slaves waiting for orders -->
-  </process>
-  
-  <process host="Jackson" function="masterslave.Forwarder">
-     <argument value="0"/>  <!-- Input mailbox -->
-     <argument value="7"/>  <!-- First output mailbox -->
-     <argument value="8"/>  <!-- Last output mailbox -->
-  </process>
-  <process host="Casavant" function="masterslave.Forwarder">
-     <argument value="1"/>  <!-- Input mailbox -->
-     <argument value="9"/>  <!-- First output mailbox -->
-     <argument value="10"/> <!-- Last output mailbox -->
-  </process>
-  
-  <process host="iRMX" function="masterslave.Slave">
-     <argument value="2"/>  <!-- Input mailbox -->
-  </process>
-  <process host="Bousquet" function="masterslave.Slave">
-     <argument value="3"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Soucy" function="masterslave.Slave">
-     <argument value="4"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Kuenning" function="masterslave.Slave">
-     <argument value="5"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Browne" function="masterslave.Slave">
-     <argument value="6"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Stephen" function="masterslave.Slave">
-     <argument value="7"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Robert" function="masterslave.Slave">
-     <argument value="8"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Sirois" function="masterslave.Slave">
-     <argument value="9"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Monique" function="masterslave.Slave">
-     <argument value="10"/>  <!-- Input mailbox -->
-  </process>  
-</platform>
index b40bf27..bd57c5b 100644 (file)
@@ -1,49 +1,18 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
-add_executable(ex_sd_test sd_test.c)
+add_executable(sd_test sd_test.c)
 add_executable(sd_test2 sd_test2.c)
 add_executable(sd_fail sd_fail.c)
 add_executable(sd_avail sd_avail.c)
 add_executable(sd_typed_tasks_test sd_typed_tasks_test.c)
 add_executable(sd_comm_throttling sd_comm_throttling.c)
 
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(ex_sd_test simgrid pthread )
-  target_link_libraries(sd_test2 simgrid pthread )
-  target_link_libraries(sd_fail simgrid pthread )
-  target_link_libraries(sd_avail simgrid pthread )
-  target_link_libraries(sd_typed_tasks_test simgrid pthread )
-  target_link_libraries(sd_comm_throttling simgrid pthread )
-
-  add_custom_command(TARGET ex_sd_test
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/ex_sd_test ${CMAKE_CURRENT_BINARY_DIR}/sd_test
-    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
-    )
-  get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
-  set_directory_properties(
-    PROPERTIES
-    ADDITIONAL_MAKE_CLEAN_FILES "${extra_clean_files};${CMAKE_CURRENT_BINARY_DIR}/sd_test")
-
-else()
-  target_link_libraries(ex_sd_test simgrid)
-  target_link_libraries(sd_test2 simgrid)
-  target_link_libraries(sd_fail simgrid)
-  target_link_libraries(sd_avail simgrid)
-  target_link_libraries(sd_typed_tasks_test simgrid)
-  target_link_libraries(sd_comm_throttling simgrid)
-  
-  add_custom_command(TARGET ex_sd_test
-    POST_BUILD
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/ex_sd_test.exe ${CMAKE_CURRENT_BINARY_DIR}/sd_test.exe
-    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
-    )
-  get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
-  set_directory_properties(
-    PROPERTIES
-    ADDITIONAL_MAKE_CLEAN_FILES "${extra_clean_files};${CMAKE_CURRENT_BINARY_DIR}/sd_test.exe")
-endif()
+target_link_libraries(sd_test simgrid)
+target_link_libraries(sd_test2 simgrid)
+target_link_libraries(sd_fail simgrid)
+target_link_libraries(sd_avail simgrid)
+target_link_libraries(sd_typed_tasks_test simgrid)
+target_link_libraries(sd_comm_throttling simgrid)
 
 set(tesh_files
   ${tesh_files}
@@ -53,15 +22,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/test_simdag_typed_tasks.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_simdag_avail.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_simdag_fail.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/2clusters.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/faulty_host.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_avail.c
@@ -70,18 +31,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_test.c
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_test2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_typed_tasks_test.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_script.lua
-  ${CMAKE_CURRENT_SOURCE_DIR}/test_simdag.in
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/faulty_host.trace
-  ${CMAKE_CURRENT_SOURCE_DIR}/jupiter_power.trace
-  ${CMAKE_CURRENT_SOURCE_DIR}/link1_avail.trace
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 56c3b75..77dafa0 100644 (file)
@@ -1,39 +1,19 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(dax_test dax_test.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(dax_test simgrid pthread )
-else()
-  target_link_libraries(dax_test simgrid)
-endif()
+target_link_libraries(dax_test simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/simple_dax_with_cycle.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/smalldax.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/Montage_50.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/simple_dax_with_cycle.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/smalldax.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dax_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/generate_forkjoin.pl
-  ${CMAKE_CURRENT_SOURCE_DIR}/generate_strassen.pl
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
diff --git a/examples/simdag/dax/Montage_50.xml b/examples/simdag/dax/Montage_50.xml
deleted file mode 100644 (file)
index 479f0af..0000000
+++ /dev/null
@@ -1,440 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generated: 2008-09-24T14:28:18-07:00 -->
-<!-- generated by: shishir [??] -->
-<adag xmlns="http://pegasus.isi.edu/schema/DAX" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pegasus.isi.edu/schema/DAX http://pegasus.isi.edu/schema/dax-2.1.xsd" version="2.1" count="1" index="0" name="test" jobCount="50" fileCount="0" childCount="42">
-<!-- part 1: list of all referenced files (may be empty) -->
-<!-- part 2: definition of all jobs (at least one) -->
-  <job id="ID00000" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.08">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4161238"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4161238"/>
-  </job>
-  <job id="ID00001" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.48">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4154331"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4154331"/>
-  </job>
-  <job id="ID00002" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.55">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4146522"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4146522"/>
-  </job>
-  <job id="ID00003" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.31">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4169621"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4169621"/>
-  </job>
-  <job id="ID00004" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.43">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4168548"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4168548"/>
-  </job>
-  <job id="ID00005" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.60">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4165516"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4165516"/>
-  </job>
-  <job id="ID00006" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.60">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00006s-jID00006.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4158282"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4158282"/>
-  </job>
-  <job id="ID00007" namespace="Montage" name="mProjectPP" version="1.0" runtime="13.17">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4222080"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4160080"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4160080"/>
-  </job>
-  <job id="ID00008" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.65">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4161238"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4161238"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="261"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="425541"/>
-  </job>
-  <job id="ID00009" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.68">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4143966"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4143966"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154331"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154331"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="286"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="330000"/>
-  </job>
-  <job id="ID00010" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.69">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155521"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155521"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146522"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146522"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="279"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="351987"/>
-  </job>
-  <job id="ID00011" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.78">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4185551"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4185551"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169621"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169621"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="266"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="378266"/>
-  </job>
-  <job id="ID00012" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.56">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162779"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162779"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165516"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165516"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="281"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="267120"/>
-  </job>
-  <job id="ID00013" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.59">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169022"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169022"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162424"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162424"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="259"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="190570"/>
-  </job>
-  <job id="ID00014" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.70">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4161972"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4161972"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="283"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="345692"/>
-  </job>
-  <job id="ID00015" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.54">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169468"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169468"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4143502"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4143502"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="261"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="157793"/>
-  </job>
-  <job id="ID00016" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.51">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4171205"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4171205"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168548"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168548"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="275"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="332486"/>
-  </job>
-  <job id="ID00017" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.71">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157076"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157076"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4160080"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4160080"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="272"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="405131"/>
-  </job>
-  <job id="ID00018" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.48">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169406"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4169406"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="287"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="287937"/>
-  </job>
-  <job id="ID00019" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.31">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4156149"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4156149"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159853"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159853"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="256"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="366476"/>
-  </job>
-  <job id="ID00020" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.63">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4177908"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4177908"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4164219"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4164219"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="294"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="390046"/>
-  </job>
-  <job id="ID00021" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.36">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158714"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158714"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="276"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="302010"/>
-  </job>
-  <job id="ID00022" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.60">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162873"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162873"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168212"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168212"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="276"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="338777"/>
-  </job>
-  <job id="ID00023" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.56">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4149016"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4149016"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157773"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157773"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="270"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="386009"/>
-  </job>
-  <job id="ID00024" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.28">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146371"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146371"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154489"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154489"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="272"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="296484"/>
-  </job>
-  <job id="ID00025" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.51">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4149518"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4149518"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4147415"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4147415"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="271"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="218054"/>
-  </job>
-  <job id="ID00026" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.41">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4170054"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4170054"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="274"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="328551"/>
-  </job>
-  <job id="ID00027" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.54">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159304"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159304"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4152519"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4152519"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="280"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="386935"/>
-  </job>
-  <job id="ID00028" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.64">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4151363"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4151363"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168356"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4168356"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="278"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="314756"/>
-  </job>
-  <job id="ID00029" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.62">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4163403"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4163403"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4190630"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4190630"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="259"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="277759"/>
-  </job>
-  <job id="ID00030" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.65">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158342"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158342"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158282"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158282"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="274"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="419684"/>
-  </job>
-  <job id="ID00031" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.68">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158312"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158312"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154414"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154414"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="257"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="342607"/>
-  </job>
-  <job id="ID00032" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.69">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159410"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4159410"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4156921"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4156921"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="272"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="147754"/>
-  </job>
-  <job id="ID00033" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.60">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158314"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4158314"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162382"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162382"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="269"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="298295"/>
-  </job>
-  <job id="ID00034" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.56">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157868"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4157868"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172887"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172887"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="271"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="168183"/>
-  </job>
-  <job id="ID00035" namespace="Montage" name="mDiffFit" version="1.0" runtime="10.56">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4131118"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4131118"/>
-    <uses file="fit.txt" link="output" register="true" transfer="true" optional="false" type="data" size="273"/>
-    <uses file="diff.txt" link="output" register="true" transfer="true" optional="false" type="data" size="172213"/>
-  </job>
-  <job id="ID00036" namespace="Montage" name="mConcatFit" version="1.0" runtime="2.24">
-    <uses file="fits_list.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="763"/>
-    <uses file="fit.txt" link="input" register="true" transfer="true" optional="false" type="data" size="261"/>
-    <uses file="diff.txt" link="input" register="true" transfer="true" optional="false" type="data" size="425541"/>
-    <uses file="fits.tbl" link="output" register="true" transfer="true" optional="false" type="data" size="5878"/>
-  </job>
-  <job id="ID00037" namespace="Montage" name="mBgModel" version="1.0" runtime="4.20">
-    <uses file="pimages.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="1340"/>
-    <uses file="fits.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="5878"/>
-    <uses file="corrections.tbl" link="output" register="true" transfer="true" optional="false" type="data" size="425"/>
-  </job>
-  <job id="ID00038" namespace="Montage" name="mBackground" version="1.0" runtime="10.99">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-    <uses file="p2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-    <uses file="c2mass-atlas-ID00000s-jID00000_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-    <uses file="c2mass-atlas-ID00000s-jID00000.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-  </job>
-  <job id="ID00039" namespace="Montage" name="mBackground" version="1.0" runtime="10.66">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-    <uses file="p2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-    <uses file="c2mass-atlas-ID00001s-jID00001_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-    <uses file="c2mass-atlas-ID00001s-jID00001.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-  </job>
-  <job id="ID00040" namespace="Montage" name="mBackground" version="1.0" runtime="10.47">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-    <uses file="p2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-    <uses file="c2mass-atlas-ID00002s-jID00002_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-    <uses file="c2mass-atlas-ID00002s-jID00002.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-  </job>
-  <job id="ID00041" namespace="Montage" name="mBackground" version="1.0" runtime="10.53">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-    <uses file="p2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-    <uses file="c2mass-atlas-ID00003s-jID00003.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-    <uses file="c2mass-atlas-ID00003s-jID00003_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-  </job>
-  <job id="ID00042" namespace="Montage" name="mBackground" version="1.0" runtime="10.74">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-    <uses file="p2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-    <uses file="c2mass-atlas-ID00004s-jID00004.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-    <uses file="c2mass-atlas-ID00004s-jID00004_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-  </job>
-  <job id="ID00043" namespace="Montage" name="mBackground" version="1.0" runtime="10.49">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-    <uses file="p2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-    <uses file="c2mass-atlas-ID00005s-jID00005_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-    <uses file="c2mass-atlas-ID00005s-jID00005.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-  </job>
-  <job id="ID00044" namespace="Montage" name="mBackground" version="1.0" runtime="10.54">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-    <uses file="p2mass-atlas-ID00006s-jID00006_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-    <uses file="c2mass-atlas-ID00006s-jID00006_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-    <uses file="c2mass-atlas-ID00006s-jID00006.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-  </job>
-  <job id="ID00045" namespace="Montage" name="mBackground" version="1.0" runtime="10.42">
-    <uses file="corrections.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="425"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-    <uses file="p2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-    <uses file="c2mass-atlas-ID00007s-jID00007.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-    <uses file="c2mass-atlas-ID00007s-jID00007_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-  </job>
-  <job id="ID00046" namespace="Montage" name="mImgTbl" version="1.0" runtime="3.20">
-    <uses file="cimages.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="1340"/>
-    <uses file="c2mass-atlas-ID00000s-jID00000_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-    <uses file="c2mass-atlas-ID00000s-jID00000.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4162470"/>
-    <uses file="c2mass-atlas-ID00001s-jID00001_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-    <uses file="c2mass-atlas-ID00001s-jID00001.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4172520"/>
-    <uses file="c2mass-atlas-ID00002s-jID00002_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-    <uses file="c2mass-atlas-ID00002s-jID00002.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4155227"/>
-    <uses file="c2mass-atlas-ID00003s-jID00003.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-    <uses file="c2mass-atlas-ID00003s-jID00003_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4154656"/>
-    <uses file="c2mass-atlas-ID00004s-jID00004.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-    <uses file="c2mass-atlas-ID00004s-jID00004_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4165471"/>
-    <uses file="c2mass-atlas-ID00005s-jID00005_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-    <uses file="c2mass-atlas-ID00005s-jID00005.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4142911"/>
-    <uses file="c2mass-atlas-ID00006s-jID00006_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-    <uses file="c2mass-atlas-ID00006s-jID00006.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4153325"/>
-    <uses file="c2mass-atlas-ID00007s-jID00007.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-    <uses file="c2mass-atlas-ID00007s-jID00007_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="4146119"/>
-    <uses file="newcimages.tbl" link="output" register="true" transfer="true" optional="false" type="data" size="3558"/>
-  </job>
-  <job id="ID00047" namespace="Montage" name="mAdd" version="1.0" runtime="4.75">
-    <uses file="region.hdr" link="input" register="true" transfer="true" optional="false" type="data" size="304"/>
-    <uses file="newcimages.tbl" link="input" register="true" transfer="true" optional="false" type="data" size="3558"/>
-    <uses file="mosaic_ID00047_ID00047.fits" link="output" register="true" transfer="true" optional="false" type="data" size="69693297"/>
-    <uses file="mosaic_ID00047_ID00047_area.fits" link="output" register="true" transfer="true" optional="false" type="data" size="69693297"/>
-  </job>
-  <job id="ID00048" namespace="Montage" name="mShrink" version="1.0" runtime="4.88">
-    <uses file="mosaic_ID00047_ID00047.fits" link="input" register="true" transfer="true" optional="false" type="data" size="69693297"/>
-    <uses file="mosaic_ID00047_ID00047_area.fits" link="input" register="true" transfer="true" optional="false" type="data" size="69693297"/>
-    <uses file="shrunken_ID00048_ID00048.fits" link="output" register="true" transfer="true" optional="false" type="data" size="2788847"/>
-  </job>
-  <job id="ID00049" namespace="Montage" name="mJPEG" version="1.0" runtime="1.22">
-    <uses file="shrunken_ID00048_ID00048.fits" link="input" register="true" transfer="true" optional="false" type="data" size="2788847"/>
-    <uses file="shrunken_ID00048_ID00048.jpg" link="output" register="true" transfer="true" optional="false" type="data" size="720562"/>
-  </job>
-<!-- part 3: list of control-flow dependencies (may be empty) -->
-  <child ref="ID00008"><parent ref="ID00000"/></child>
-  <child ref="ID00009"><parent ref="ID00001"/><parent ref="ID00000"/></child>
-  <child ref="ID00010"><parent ref="ID00002"/><parent ref="ID00000"/></child>
-  <child ref="ID00011"><parent ref="ID00000"/><parent ref="ID00003"/></child>
-  <child ref="ID00012"><parent ref="ID00000"/><parent ref="ID00005"/></child>
-  <child ref="ID00013"><parent ref="ID00001"/><parent ref="ID00000"/></child>
-  <child ref="ID00014"><parent ref="ID00001"/></child>
-  <child ref="ID00015"><parent ref="ID00002"/><parent ref="ID00001"/></child>
-  <child ref="ID00016"><parent ref="ID00001"/><parent ref="ID00004"/></child>
-  <child ref="ID00017"><parent ref="ID00001"/><parent ref="ID00007"/></child>
-  <child ref="ID00018"><parent ref="ID00002"/></child>
-  <child ref="ID00019"><parent ref="ID00002"/><parent ref="ID00003"/></child>
-  <child ref="ID00020"><parent ref="ID00001"/><parent ref="ID00003"/></child>
-  <child ref="ID00021"><parent ref="ID00003"/></child>
-  <child ref="ID00022"><parent ref="ID00004"/><parent ref="ID00003"/></child>
-  <child ref="ID00023"><parent ref="ID00005"/><parent ref="ID00003"/></child>
-  <child ref="ID00024"><parent ref="ID00000"/><parent ref="ID00004"/></child>
-  <child ref="ID00025"><parent ref="ID00004"/><parent ref="ID00003"/></child>
-  <child ref="ID00026"><parent ref="ID00004"/></child>
-  <child ref="ID00027"><parent ref="ID00000"/><parent ref="ID00005"/></child>
-  <child ref="ID00028"><parent ref="ID00001"/><parent ref="ID00005"/></child>
-  <child ref="ID00029"><parent ref="ID00005"/><parent ref="ID00003"/></child>
-  <child ref="ID00030"><parent ref="ID00006"/><parent ref="ID00005"/></child>
-  <child ref="ID00031"><parent ref="ID00006"/><parent ref="ID00004"/></child>
-  <child ref="ID00032"><parent ref="ID00002"/><parent ref="ID00007"/></child>
-  <child ref="ID00033"><parent ref="ID00003"/><parent ref="ID00007"/></child>
-  <child ref="ID00034"><parent ref="ID00005"/><parent ref="ID00007"/></child>
-  <child ref="ID00035"><parent ref="ID00007"/></child>
-  <child ref="ID00036"><parent ref="ID00009"/><parent ref="ID00008"/><parent ref="ID00034"/><parent ref="ID00035"/><parent ref="ID00032"/><parent ref="ID00033"/><parent ref="ID00012"/><parent ref="ID00030"/><parent ref="ID00013"/><parent ref="ID00031"/><parent ref="ID00010"/><parent ref="ID00011"/><parent ref="ID00016"/><parent ref="ID00017"/><parent ref="ID00014"/><parent ref="ID00015"/><parent ref="ID00018"/><parent ref="ID00019"/><parent ref="ID00020"/><parent ref="ID00021"/><parent ref="ID00022"/><parent ref="ID00023"/><parent ref="ID00024"/><parent ref="ID00025"/><parent ref="ID00026"/><parent ref="ID00027"/><parent ref="ID00028"/><parent ref="ID00029"/></child>
-  <child ref="ID00037"><parent ref="ID00036"/></child>
-  <child ref="ID00038"><parent ref="ID00000"/><parent ref="ID00037"/></child>
-  <child ref="ID00039"><parent ref="ID00001"/><parent ref="ID00037"/></child>
-  <child ref="ID00040"><parent ref="ID00002"/><parent ref="ID00037"/></child>
-  <child ref="ID00041"><parent ref="ID00003"/><parent ref="ID00037"/></child>
-  <child ref="ID00042"><parent ref="ID00004"/><parent ref="ID00037"/></child>
-  <child ref="ID00043"><parent ref="ID00005"/><parent ref="ID00037"/></child>
-  <child ref="ID00044"><parent ref="ID00006"/><parent ref="ID00037"/></child>
-  <child ref="ID00045"><parent ref="ID00007"/><parent ref="ID00037"/></child>
-  <child ref="ID00046"><parent ref="ID00043"/><parent ref="ID00044"/><parent ref="ID00045"/><parent ref="ID00040"/><parent ref="ID00041"/><parent ref="ID00042"/><parent ref="ID00038"/><parent ref="ID00039"/></child>
-  <child ref="ID00047"><parent ref="ID00046"/></child>
-  <child ref="ID00048"><parent ref="ID00047"/></child>
-  <child ref="ID00049"><parent ref="ID00048"/></child>
-</adag>
index 024c00d..3954c6b 100644 (file)
@@ -6,22 +6,16 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdlib.h>
 #include <stdio.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
-#include "xbt/ex.h"
 #include <string.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
 static int name_compare_hosts(const void *n1, const void *n2)
 {
-  return strcmp(
-      sg_host_get_name(*(sg_host_t *) n1),
-      sg_host_get_name(*(sg_host_t *) n2)
-  );
+  return strcmp(sg_host_get_name(*(sg_host_t *) n1), sg_host_get_name(*(sg_host_t *) n2));
 }
 
 int main(int argc, char **argv)
@@ -35,16 +29,13 @@ int main(int argc, char **argv)
 
   /* Check our arguments */
   xbt_assert(argc > 2, "Usage: %s platform_file dax_file [jedule_file]\n"
-            "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed", 
-            argv[0], argv[0]);
+       "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed", argv[0], argv[0]);
 
   char *last = strrchr(argv[2], '.');
-  char * tracefilename = bprintf("%.*s.trace",(int) (last == NULL ? 
-                                                  strlen(argv[2]) : 
-                                                  last - argv[2]), argv[2]);  
+  char * tracefilename = bprintf("%.*s.trace",(int) (last == NULL ? strlen(argv[2]):last - argv[2]), argv[2]);
   if (argc == 4)
     tracefilename = xbt_strdup(argv[3]);
+
   /* creation of the environment */
   SD_create_environment(argv[1]);
 
@@ -58,8 +49,7 @@ int main(int argc, char **argv)
   }
 
   /* Display all the tasks */
-  XBT_INFO
-      ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dax, cursor, task) {
     SD_task_dump(task);
   }
@@ -72,12 +62,11 @@ int main(int argc, char **argv)
   fprintf(dotout, "}\n");
   fclose(dotout);
 
-  /* Schedule them all on the first workstation */
+  /* Schedule them all on the first host */
   XBT_INFO("------------------- Schedule tasks ---------------------------");
   const sg_host_t *ws_list = sg_host_list();
   int hosts_count = sg_host_count();
-  qsort((void *) ws_list, hosts_count, sizeof(sg_host_t),
-        name_compare_hosts);
+  qsort((void *) ws_list, hosts_count, sizeof(sg_host_t), name_compare_hosts);
 
   xbt_dynar_foreach(dax, cursor, task) {
     if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ) {
@@ -88,11 +77,9 @@ int main(int argc, char **argv)
     }
   }
 
-  XBT_INFO
-      ("------------------- Run the schedule ---------------------------");
+  XBT_INFO("------------------- Run the schedule ---------------------------");
   SD_simulate(-1);
-  XBT_INFO
-      ("------------------- Produce the trace file---------------------------");
+  XBT_INFO("------------------- Produce the trace file---------------------------");
   XBT_INFO("Producing the trace of the run into %s", tracefilename);
   FILE *out = fopen(tracefilename, "w");
   xbt_assert(out, "Cannot write to %s", tracefilename);
@@ -103,32 +90,23 @@ int main(int argc, char **argv)
     sg_host_t *wsl = SD_task_get_workstation_list(task);
     switch (kind) {
     case SD_TASK_COMP_SEQ:
-      fprintf(out, "[%f] %s compute %f # %s\n",
-              SD_task_get_start_time(task),
-              sg_host_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f] %s compute %f # %s\n", SD_task_get_start_time(task), sg_host_get_name(wsl[0]),
+              SD_task_get_amount(task), SD_task_get_name(task));
       break;
     case SD_TASK_COMM_E2E:
-      fprintf(out, "[%f] %s send %s %f # %s\n",
-              SD_task_get_start_time(task),
-              sg_host_get_name(wsl[0]),
-              sg_host_get_name(wsl[1]), SD_task_get_amount(task),
-              SD_task_get_name(task));
-      fprintf(out, "[%f] %s recv %s %f # %s\n",
-              SD_task_get_finish_time(task),
-              sg_host_get_name(wsl[1]),
-              sg_host_get_name(wsl[0]), SD_task_get_amount(task),
-              SD_task_get_name(task));
+      fprintf(out, "[%f] %s send %s %f # %s\n", SD_task_get_start_time(task), sg_host_get_name(wsl[0]),
+              sg_host_get_name(wsl[1]), SD_task_get_amount(task), SD_task_get_name(task));
+      fprintf(out, "[%f] %s recv %s %f # %s\n", SD_task_get_finish_time(task), sg_host_get_name(wsl[1]),
+              sg_host_get_name(wsl[0]), SD_task_get_amount(task), SD_task_get_name(task));
       break;
     default:
-      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task),
-              SD_task_get_kind(task));
+      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task), SD_task_get_kind(task));
     }
     SD_task_destroy(task);
   }
   fclose(out);
   xbt_dynar_free_container(&dax);
-  /* exit */
+
   SD_exit();
   return 0;
 }
diff --git a/examples/simdag/dax/generate_forkjoin.pl b/examples/simdag/dax/generate_forkjoin.pl
deleted file mode 100755 (executable)
index 545ccf9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#! /usr/bin/env perl
-
-# Copyright (c) 2009, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use strict;
-
-my $node_count = int($ARGV[0]) || die "Usage: $0 node_count level_count\n";
-my $level_count = int($ARGV[1]) || die "Usage: $0 node_count level_count\n";
-
-print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
-print "<!-- generated: ".(localtime())." -->\n";
-print "<adag xmlns=\"http://pegasus.isi.edu/schema/DAX\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://pegasus.isi.edu/schema/DAX http://pegasus.isi.edu/schema/dax-2.1.xsd\" version=\"2.1\" count=\"1\" index=\"0\" name=\"test\" jobCount=\"25\" fileCount=\"0\" childCount=\"20\">\n";
-
-for (my $level=1;$level<=$level_count;$level++) {
-    for (my $i=1;$i<=$node_count;$i++) {
-       print "<job id=\"node$i\" namespace=\"ForkJoin\" name=\"level$level\" version=\"1.0\" runtime=\"10\">\n";
-       print "  <uses file=\"n${i}_l${level}_in\" link=\"input\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
-       print "  <uses file=\"n${i}_l${level}_out\" link=\"output\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
-       print "</job>\n";
-    }
-
-    if ($level<$level_count) {
-       print "<job id=\"join$level\" namespace=\"ForkJoin\" name=\"join\" version=\"1.0\" runtime=\"10\">\n";
-       for (my $i=1;$i<=$node_count;$i++) {
-           print "  <uses file=\"n${i}_l${level}_out\" link=\"input\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
-           print "  <uses file=\"n${i}_l".(${level}+1)."_in\" link=\"output\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"1000\"/>\n";
-       }
-       print "</job>\n";
-    }
-}
-
-print "</adag>\n";
diff --git a/examples/simdag/dax/generate_strassen.pl b/examples/simdag/dax/generate_strassen.pl
deleted file mode 100755 (executable)
index 060f899..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-#! /usr/bin/env perl
-
-# Copyright (c) 2009, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use strict;
-
-sub job {
-    print "<job id=\"$_[0]\" namespace=\"$_[1]\" name=\"$_[2]\" version=\"1.0\" runtime=\"$_[3]\">\n";
-}
-sub file {
-    print "  <uses file=\"$_[0]\" link=\"$_[1]\" register=\"true\" transfer=\"true\" optional=\"false\" type=\"data\" size=\"$_[2]\"/>\n";
-}
-sub strassen {
-    my $matSize=shift;
-    my $max_level=shift||1;
-    my $level=shift||1;
-    my $A = shift||"A";
-    my $B = shift||"B";
-
-    if ($level<$max_level) {
-      die "Recursive Strassen don't work yet\n";
-    }
-    
-    my $sizeAdd=$matSize*$matSize/4;
-    my $sizeMult=$matSize*$matSize*$matSize/8;
-    my $sizeBlock=$sizeAdd;
-
-    # T1 = A11 + A22
-    job("T1","Strassen","l$level",$sizeAdd);
-    file("${A}11l$level","input",$sizeBlock);
-    file("${A}22l$level","input",$sizeBlock);
-    file("T1l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # T2 = A21 + A22
-    job("T2","Strassen","l$level",$sizeAdd);
-    file("${A}21l$level","input",$sizeBlock);
-    file("${A}22l$level","input",$sizeBlock);
-    file("T2l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # T3 = A11 + A12
-    job("T3","Strassen","l$level",$sizeAdd);
-    file("${A}11l$level","input",$sizeBlock);
-    file("${A}12l$level","input",$sizeBlock);
-    file("T3l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # T4 = A21 âˆ’ A11
-    job("T4","Strassen","l$level",$sizeAdd);
-    file("${A}21l$level","input",$sizeBlock);
-    file("${A}11l$level","input",$sizeBlock);
-    file("T4l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # T5 = A12 âˆ’ A22
-    job("T5","Strassen","l$level",$sizeAdd);
-    file("${A}12l$level","input",$sizeBlock);
-    file("${A}22l$level","input",$sizeBlock);
-    file("T5l$level","output",$sizeBlock);
-    print("</job>\n");
-    
-    # T6 = B11 + B22
-    job("T6","Strassen","l$level",$sizeAdd);
-    file("${B}11l$level","input",$sizeBlock);
-    file("${B}22l$level","input",$sizeBlock);
-    file("T6l$level","output",$sizeBlock);
-    print("</job>\n");
-    
-    # T7 = B12 âˆ’ B22
-    job("T7","Strassen","l$level",$sizeAdd);
-    file("${B}12l$level","input",$sizeBlock);
-    file("${B}22l$level","input",$sizeBlock);
-    file("T7l$level","output",$sizeBlock);
-    print("</job>\n");
-    
-    # T8 = B21 âˆ’ B11
-    job("T8","Strassen","l$level",$sizeAdd);
-    file("${B}21l$level","input",$sizeBlock);
-    file("${B}11l$level","input",$sizeBlock);
-    file("T8l$level","output",$sizeBlock);
-    print("</job>\n");
-         
-    # T9 = B11 + B12
-    job("T9","Strassen","l$level",$sizeAdd);
-    file("${B}11l$level","input",$sizeBlock);
-    file("${B}12l$level","input",$sizeBlock);
-    file("T9l$level","output",$sizeBlock);
-    print("</job>\n");
-    
-    # T10 = B21 + B22
-    job("T10","Strassen","l$level",$sizeAdd);
-    file("${B}21l$level","input",$sizeBlock);
-    file("${B}22l$level","input",$sizeBlock);
-    file("T10l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # Q1 = T1 Ã— T6
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"T1_","T6_");
-    } else {
-       job("Q1","Strassen","l$level",$sizeMult);
-       file("T1l$level","input",$sizeBlock);
-       file("T6l$level","input",$sizeBlock);
-       file("Q1l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-
-    # Q2 = T2 Ã— B11
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"T2_","B11_");
-    } else {
-       job("Q2","Strassen","l$level",$sizeMult);
-       file("T2l$level","input",$sizeBlock);
-       file("${B}11l$level","input",$sizeBlock);
-       file("Q2l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-
-    # Q3 = A11 Ã— T7         
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"A11_","T7_");
-    } else {
-       job("Q3","Strassen","l$level",$sizeMult);
-       file("${A}11l$level","input",$sizeBlock);
-       file("T7l$level","input",$sizeBlock);
-       file("Q3l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-    
-    # Q4 = A22 Ã— T8
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"A22_","T8_");
-    } else {
-       job("Q4","Strassen","l$level",$sizeMult);
-       file("${A}22l$level","input",$sizeBlock);
-       file("T8l$level","input",$sizeBlock);
-       file("Q4l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-    
-    # Q5 = T3 Ã— B22
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"T3_","B22_");
-    } else {
-       job("Q5","Strassen","l$level",$sizeMult);
-       file("T3l$level","input",$sizeBlock);
-       file("${B}22l$level","input",$sizeBlock);
-       file("Q5l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-    
-    # Q6 = T4 Ã— T9
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"T4_","T9_");
-    } else {
-       job("Q6","Strassen","l$level",$sizeMult);
-       file("T4l$level","input",$sizeBlock);
-       file("T9l$level","input",$sizeBlock);
-       file("Q6l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-    
-    # Q7 = T5 Ã— T10
-    if ($level<$max_level) {
-       strassen($sizeBlock,$max_level,$level+1,"T5_","T10_");
-    } else {
-       job("Q7","Strassen","l$level",$sizeMult);
-       file("T5l$level","input",$sizeBlock);
-       file("T10l$level","input",$sizeBlock);
-       file("Q7l$level","output",$sizeBlock);
-       print("</job>\n");
-    }
-    
-    # C11 = Q1 + Q4 âˆ’ Q5 + Q7
-    job("Q11","Strassen","l$level",$sizeAdd*3);
-    file("Q1l$level","input",$sizeBlock);
-    file("Q4l$level","input",$sizeBlock);
-    file("Q5l$level","input",$sizeBlock);
-    file("Q7l$level","input",$sizeBlock);
-    file("C11l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # C12 = Q3 + Q5
-    job("C12","Strassen","l$level",$sizeAdd);
-    file("Q3l$level","input",$sizeBlock);
-    file("Q5l$level","input",$sizeBlock);
-    file("C12l$level","output",$sizeBlock);
-    print("</job>\n");
-    
-    # C21 = Q2 + Q4
-    job("C21","Strassen","l$level",$sizeAdd);
-    file("Q2l$level","input",$sizeBlock);
-    file("Q4l$level","input",$sizeBlock);
-    file("C21l$level","output",$sizeBlock);
-    print("</job>\n");
-
-    # C22 = Q1 âˆ’ Q2 + Q3 + Q6
-    job("C22","Strassen","l$level",$sizeMult);
-    file("Q1l$level","input",$sizeBlock);
-    file("Q2l$level","input",$sizeBlock);
-    file("Q3l$level","input",$sizeBlock);
-    file("Q6l$level","input",$sizeBlock);
-    file("C22l$level","output",$sizeBlock);
-    print("</job>\n");          
-}
-
-print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
-print "<!-- generated: ".(localtime())." -->\n";
-print "<adag xmlns=\"http://pegasus.isi.edu/schema/DAX\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://pegasus.isi.edu/schema/DAX http://pegasus.isi.edu/schema/dax-2.1.xsd\" version=\"2.1\" count=\"1\" index=\"0\" name=\"test\" jobCount=\"25\" fileCount=\"0\" childCount=\"20\">\n";
-
-strassen(2000);
-
-print "</adag>\n";
-
index 8617ae4..67216c9 100644 (file)
@@ -2,7 +2,7 @@
 p Test the DAX loader with a DAX comprising a cycle.
 
 ! expect return 255
-$ $SG_TEST_EXENV ./dax_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/simple_dax_with_cycle.xml
+$ $SG_TEST_EXENV ./dax_test --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/simple_dax_with_cycle.xml
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [sd_daxparse/WARNING] the task root is not marked
 > [0.000000] [sd_daxparse/WARNING] the task 1@task1 is in a cycle
index 48d4ed4..95f8fca 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 p Test the DAX loader on a small DAX instance
 
-$ $SG_TEST_EXENV ${bindir:=.}/dax_test --log=no_loc ../2clusters.xml ./smalldax.xml
+$ $SG_TEST_EXENV ${bindir:=.}/dax_test --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ./smalldax.xml
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [sd_daxparse/WARNING] Ignore file o1 size redefinition from 1000000 to 304
 > [0.000000] [sd_daxparse/WARNING] Ignore file o2 size redefinition from 1000000 to 304
index ae0fc39..c45b57c 100644 (file)
@@ -1,55 +1,28 @@
 if(HAVE_GRAPHVIZ)
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
-  #add_executable(<name_of_target> <src list>)
   add_executable(dot_test dot_test.c)
   add_executable(ptg_test ptg_test.c)
   add_executable(simulate_dot simulate_dot.c)
   add_executable(dot_test2 dot_test2.c)
 
-  if(NOT WIN32)
-    target_link_libraries(dot_test simgrid pthread m)  #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(ptg_test simgrid pthread m)   #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(simulate_dot simgrid pthread m)      #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(dot_test2 simgrid pthread m)         #target_link_libraries(<name_of_targe> <dependencies>)
-
-    get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES)
-    set_directory_properties(
-      PROPERTIES
-      ADDITIONAL_MAKE_CLEAN_FILES "${extra_clean_files};${CMAKE_CURRENT_BINARY_DIR}/dot_test; ${CMAKE_CURRENT_BINARY_DIR}/simulate_dot;")
-
-  else()
-    target_link_libraries(dot_test simgrid)    #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(ptg_test simgrid)   #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(simulate_dot simgrid)        #target_link_libraries(<name_of_targe> <dependencies>)
-    target_link_libraries(dot_test2 simgrid)   #target_link_libraries(<name_of_targe> <dependencies>)
-    set_directory_properties(
-      PROPERTIES
-      ADDITIONAL_MAKE_CLEAN_FILES "${extra_clean_files};${CMAKE_CURRENT_BINARY_DIR}/dot_test; ${CMAKE_CURRENT_BINARY_DIR}/simulate_dot;")
-  endif()
+  target_link_libraries(dot_test simgrid)
+  target_link_libraries(ptg_test simgrid)
+  target_link_libraries(simulate_dot simgrid)
+  target_link_libraries(dot_test2 simgrid)
 endif()
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_simdag_dotload.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dot_test.c
   ${CMAKE_CURRENT_SOURCE_DIR}/ptg_test.c
   ${CMAKE_CURRENT_SOURCE_DIR}/dot_test2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/simulate_dot.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/dag_with_bad_schedule.dot
@@ -57,5 +30,4 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/dag_with_good_schedule.dot
   ${CMAKE_CURRENT_SOURCE_DIR}/dag.dot
   ${CMAKE_CURRENT_SOURCE_DIR}/ptg.dot
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d06e646..37f825c 100644 (file)
@@ -6,16 +6,13 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdlib.h>
 #include <stdio.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
-#include "xbt/ex.h"
 #include <string.h>
 #include <libgen.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
@@ -27,11 +24,8 @@ int main(int argc, char **argv)
   SD_init(&argc, argv);
 
   /* Check our arguments */
-  if (argc < 3) {
-    XBT_INFO("Usage: %s platform_file dot_file [trace_file]", argv[0]);
-    XBT_INFO("example: %s ../2clusters.xml dag.dot dag.mytrace", argv[0]);
-    exit(1);
-  }
+  xbt_assert(argc > 2, "Usage: %s platform_file dot_file [trace_file]"
+             "example: %s ../2clusters.xml dag.dot dag.mytrace", argv[0], argv[0]);
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
@@ -45,20 +39,13 @@ int main(int argc, char **argv)
   }
 
   char *tracefilename;
-  if (argc == 3) {
-    char *last = strrchr(argv[2], '.');
-
-    tracefilename =
-        bprintf("%.*s.trace",
-                (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),
-                argv[2]);
-  } else {
+  char *last = strrchr(argv[2], '.');
+  tracefilename = bprintf("%.*s.trace", (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),argv[2]);
+  if (argc == 4) 
     tracefilename = xbt_strdup(argv[3]);
-  }
 
   /* Display all the tasks */
-  XBT_INFO
-      ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dot, cursor, task) {
     SD_task_dump(task);
   }
@@ -85,12 +72,10 @@ int main(int argc, char **argv)
     }
   }
 
-  XBT_INFO
-      ("------------------- Run the schedule ---------------------------");
+  XBT_INFO("------------------- Run the schedule ---------------------------");
   SD_simulate(-1);
 
-  XBT_INFO
-      ("------------------- Produce the trace file---------------------------");
+  XBT_INFO("------------------- Produce the trace file---------------------------");
   XBT_INFO("Producing the trace of the run into %s", basename(tracefilename));
   FILE *out = fopen(tracefilename, "w");
   xbt_assert(out, "Cannot write to %s", tracefilename);
@@ -102,22 +87,16 @@ int main(int argc, char **argv)
     switch (kind) {
     case SD_TASK_COMP_SEQ:
       fprintf(out, "[%f->%f] %s compute %f flops # %s\n",
-          SD_task_get_start_time(task),
-          SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]), SD_task_get_amount(task),
-          SD_task_get_name(task));
+          SD_task_get_start_time(task), SD_task_get_finish_time(task),
+          sg_host_get_name(wsl[0]), SD_task_get_amount(task), SD_task_get_name(task));
       break;
     case SD_TASK_COMM_E2E:
       fprintf(out, "[%f -> %f] %s -> %s transfer of %.0f bytes # %s\n",
-          SD_task_get_start_time(task),
-          SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]),
-          sg_host_get_name(wsl[1]), SD_task_get_amount(task),
-          SD_task_get_name(task));
+          SD_task_get_start_time(task), SD_task_get_finish_time(task),
+          sg_host_get_name(wsl[0]), sg_host_get_name(wsl[1]), SD_task_get_amount(task), SD_task_get_name(task));
       break;
     default:
-      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task),
-              SD_task_get_kind(task));
+      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task), SD_task_get_kind(task));
     }
     SD_task_destroy(task);
   }
index 47f327a..dbbc218 100644 (file)
@@ -1,20 +1,15 @@
 /* simple test trying to load a DOT file.                                   */
 
-/* Copyright (c) 2010-2015. The SimGrid Team.
+/* Copyright (c) 2010-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdlib.h>
-#include <stdio.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
-#include "xbt/ex.h"
-#include <string.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
@@ -26,27 +21,21 @@ int main(int argc, char **argv)
   SD_init(&argc, argv);
 
   /* Check our arguments */
-  if (argc < 2) {
-    XBT_INFO("Usage: %s dot_file", argv[0]);
-    exit(1);
-  }
+  xbt_assert(argc > 1, "Usage: %s dot_file", argv[0]);
 
   /* load the DOT file */
   dot = SD_dotload(argv[1]);
 
   /* Display all the tasks */
-  XBT_INFO
-      ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dot, cursor, task) {
       SD_task_dump(task);
     }
 
-  XBT_INFO
-      ("--------------------- Transform the dynar into an array ---------------------------");
+  XBT_INFO("--------------------- Transform the dynar into an array ---------------------------");
   cursor=0;
   dot_as_array = (SD_task_t*) xbt_dynar_to_array(dot);
-  XBT_INFO
-      ("----------------------------- dump tasks again ------------------------------------");
+  XBT_INFO("----------------------------- dump tasks again ------------------------------------");
   while ((task=dot_as_array[cursor++])){
     SD_task_dump(task);
   }
index 19c6de9..aa0c2c4 100644 (file)
@@ -1,19 +1,14 @@
-/* Copyright (c) 2013-2015. The SimGrid Team.
+/* Copyright (c) 2013-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdlib.h>
 #include <stdio.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
-#include "xbt/ex.h"
-#include <string.h>
-#include <libgen.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
 /* simple test trying to load a Parallel Task Graph (PTG) as a DOT file.    */
 int main(int argc, char **argv){
@@ -25,11 +20,7 @@ int main(int argc, char **argv){
   SD_init(&argc, argv);
 
   /* Check our arguments */
-  if (argc < 2) {
-    XBT_INFO("Usage: %s platform_file dot_file ", argv[0]);
-    XBT_INFO("example: %s ../2clusters.xml ptg.dot", argv[0]);
-    exit(1);
-  }
+  xbt_assert (argc > 1,"Usage: %s platform_file dot_file example: %s ../2clusters.xml ptg.dot", argv[0], argv[0]);
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
@@ -42,8 +33,7 @@ int main(int argc, char **argv){
   }
 
   /* Display all the tasks */
-  XBT_INFO
-      ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dot, cursor, task) {
     SD_task_dump(task);
   }
@@ -66,8 +56,7 @@ int main(int argc, char **argv){
     }
   }
 
-  XBT_INFO
-      ("------------------- Run the schedule ---------------------------");
+  XBT_INFO("------------------- Run the schedule ---------------------------");
   SD_simulate(-1);
   XBT_INFO("Makespan: %f", SD_get_clock());
   xbt_dynar_foreach(dot, cursor, task) {
index c0fbe0c..d3827c9 100644 (file)
@@ -1,21 +1,18 @@
 /* simple test trying to load a DOT file.                                   */
 
-/* Copyright (c) 2010-2015. The SimGrid Team.
+/* Copyright (c) 2010-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdlib.h>
 #include <stdio.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
-#include "xbt/ex.h"
 #include <string.h>
 #include <libgen.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-    "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
@@ -27,11 +24,8 @@ int main(int argc, char **argv)
   SD_init(&argc, argv);
 
   /* Check our arguments */
-  if (argc < 3) {
-    XBT_INFO("Usage: %s platform_file dot_file [trace_file]", argv[0]);
-    XBT_INFO("example: %s ../2clusters.xml dag.dot dag.mytrace", argv[0]);
-    exit(1);
-  }
+  xbt_assert(argc > 2, "Usage: %s platform_file dot_file [trace_file]"
+             "example: %s ../2clusters.xml dag.dot dag.mytrace", argv[0], argv[0]);
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
@@ -45,20 +39,14 @@ int main(int argc, char **argv)
   }
 
   char *tracefilename;
-  if (argc == 3) {
-    char *last = strrchr(argv[2], '.');
-
-    tracefilename =
-        bprintf("%.*s.trace",
-            (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),
-            argv[2]);
-  } else {
+  char *last = strrchr(argv[2], '.');
+  tracefilename = bprintf("%.*s.trace", (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),argv[2]);
+  if (argc == 4) 
     tracefilename = xbt_strdup(argv[3]);
-  }
+  
 
   /* Display all the tasks */
-  XBT_INFO
-  ("------------------- Display all tasks of the loaded DAG ---------------------------");
+  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
   xbt_dynar_foreach(dot, cursor, task) {
     SD_task_dump(task);
   }
@@ -71,12 +59,10 @@ int main(int argc, char **argv)
   fprintf(dotout, "}\n");
   fclose(dotout);
 
-  XBT_INFO
-  ("------------------- Run the schedule ---------------------------");
+  XBT_INFO("------------------- Run the schedule ---------------------------");
   SD_simulate(-1);
 
-  XBT_INFO
-  ("------------------- Produce the trace file---------------------------");
+  XBT_INFO("------------------- Produce the trace file---------------------------");
   XBT_INFO("Producing the trace of the run into %s", basename(tracefilename));
   FILE *out = fopen(tracefilename, "w");
   xbt_assert(out, "Cannot write to %s", tracefilename);
@@ -88,22 +74,16 @@ int main(int argc, char **argv)
     switch (kind) {
     case SD_TASK_COMP_SEQ:
       fprintf(out, "[%f->%f] %s compute %f flops # %s\n",
-          SD_task_get_start_time(task),
-          SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]), SD_task_get_amount(task),
-          SD_task_get_name(task));
+          SD_task_get_start_time(task), SD_task_get_finish_time(task),
+          sg_host_get_name(wsl[0]), SD_task_get_amount(task), SD_task_get_name(task));
       break;
     case SD_TASK_COMM_E2E:
       fprintf(out, "[%f -> %f] %s -> %s transfer of %.0f bytes # %s\n",
-          SD_task_get_start_time(task),
-          SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]),
-          sg_host_get_name(wsl[1]), SD_task_get_amount(task),
-          SD_task_get_name(task));
+          SD_task_get_start_time(task), SD_task_get_finish_time(task),
+          sg_host_get_name(wsl[0]), sg_host_get_name(wsl[1]), SD_task_get_amount(task), SD_task_get_name(task));
       break;
     default:
-      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task),
-          SD_task_get_kind(task));
+      xbt_die("Task %s is of unknown kind %d", SD_task_get_name(task), SD_task_get_kind(task));
     }
     SD_task_destroy(task);
   }
index b26135f..e454ff8 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 p Test the loader of DAG written in the DOT format
 
-$ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag.dot
+$ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/dag.dot
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
 > [0.000000] [sd_task/INFO] Displaying task root
@@ -214,17 +214,17 @@ $ cat ${srcdir:=.}/dag.trace
 $ rm -f dag.trace
 
 ! expect return 2
-$ $SG_TEST_EXENV ./simulate_dot --log=no_loc  "--log=sd_dotparse.thres:verbose" ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_bad_schedule.dot
+$ $SG_TEST_EXENV ./simulate_dot --log=no_loc  "--log=sd_dotparse.thres:verbose" ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/dag_with_bad_schedule.dot
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
-> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task end is not correctly scheduled
-> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task 1 is not correctly scheduled
-> [0.000000] [sd_dotparse/VERBOSE] The task 0 starts on the computer 1 at the position : 1 like the task 2
-> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task 3 is not correctly scheduled
-> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, the task root is not correctly scheduled
+> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, task 'end' can not be scheduled on -1 hosts
+> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, task '1' can not be scheduled on 0 hosts
+> [0.000000] [sd_dotparse/VERBOSE] Task '0' wants to start on performer '1' at the same position '1' as task '2'
+> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, task '3' can not be scheduled on -1 hosts
+> [0.000000] [sd_dotparse/VERBOSE] The schedule is ignored, task 'root' can not be scheduled on -1 hosts
 > [0.000000] [sd_dotparse/WARNING] The scheduling is ignored
 > [0.000000] [test/CRITICAL] The dot file with the provided scheduling is wrong, more information with the option : --log=sd_dotparse.thres:verbose
 
-$ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_good_schedule.dot
+$ $SG_TEST_EXENV ./simulate_dot --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/dag_with_good_schedule.dot
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
 > [0.000000] [sd_task/INFO] Displaying task root
@@ -452,7 +452,7 @@ $ cat ${srcdir:=.}/dag_with_good_schedule.trace
 $ rm -f ${srcdir:=.}/dag_with_good_schedule.trace
 
 ! expect return 2
-$ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:=.}/dag_with_cycle.dot
+$ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/dag_with_cycle.dot
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [sd_daxparse/WARNING] the task root is not marked
 > [0.000000] [sd_daxparse/WARNING] the task 0 is in a cycle
@@ -463,4 +463,95 @@ $ $SG_TEST_EXENV ./dot_test --log=no_loc ${srcdir:=.}/../2clusters.xml ${srcdir:
 > [0.000000] [sd_daxparse/WARNING] the task 5 is in a cycle
 > [0.000000] [sd_daxparse/WARNING] the task 6 is in a cycle
 > [0.000000] [sd_dotparse/ERROR] The DOT described in dag_with_cycle.dot is not a DAG. It contains a cycle.
-> [0.000000] [test/CRITICAL] No dot loaded. Do you have a cycle in your graph?
\ No newline at end of file
+> [0.000000] [test/CRITICAL] No dot loaded. Do you have a cycle in your graph?
+
+$ $SG_TEST_EXENV ./ptg_test --log=no_loc ${srcdir:=.}/../../platforms/2clusters.xml ${srcdir:=.}/ptg.dot
+> [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
+> [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
+> [0.000000] [sd_task/INFO] Displaying task root
+> [0.000000] [sd_task/INFO]   - state: schedulable not runnable
+> [0.000000] [sd_task/INFO]   - kind: parallel computation following Amdahl's law
+> [0.000000] [sd_task/INFO]   - amount: 0
+> [0.000000] [sd_task/INFO]   - alpha: 0.00
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 0
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     root->c1
+> [0.000000] [sd_task/INFO]     root->c2
+> [0.000000] [sd_task/INFO] Displaying task c1
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: parallel computation following Amdahl's law
+> [0.000000] [sd_task/INFO]   - amount: 1000000000
+> [0.000000] [sd_task/INFO]   - alpha: 0.20
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     root->c1
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c1->c3
+> [0.000000] [sd_task/INFO] Displaying task c2
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: parallel computation following Amdahl's law
+> [0.000000] [sd_task/INFO]   - amount: 5000000000
+> [0.000000] [sd_task/INFO]   - alpha: 0.50
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     root->c2
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c3
+> [0.000000] [sd_task/INFO] Displaying task c3
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: parallel computation following Amdahl's law
+> [0.000000] [sd_task/INFO]   - amount: 2000000000
+> [0.000000] [sd_task/INFO]   - alpha: 0.00
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 2
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     c1->c3
+> [0.000000] [sd_task/INFO]     c2
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c3->end
+> [0.000000] [sd_task/INFO] Displaying task c1->c3
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: MxN data redistribution assuming 1D block distribution
+> [0.000000] [sd_task/INFO]   - amount: 500000000
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     c1
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c3
+> [0.000000] [sd_task/INFO] Displaying task c3->end
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: MxN data redistribution assuming 1D block distribution
+> [0.000000] [sd_task/INFO]   - amount: 200000000
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     c3
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     end
+> [0.000000] [sd_task/INFO] Displaying task root->c1
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: MxN data redistribution assuming 1D block distribution
+> [0.000000] [sd_task/INFO]   - amount: 200000000
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     root
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c1
+> [0.000000] [sd_task/INFO] Displaying task root->c2
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: MxN data redistribution assuming 1D block distribution
+> [0.000000] [sd_task/INFO]   - amount: 100000000
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     root
+> [0.000000] [sd_task/INFO]   - post-dependencies:
+> [0.000000] [sd_task/INFO]     c2
+> [0.000000] [sd_task/INFO] Displaying task end
+> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
+> [0.000000] [sd_task/INFO]   - kind: parallel computation following Amdahl's law
+> [0.000000] [sd_task/INFO]   - amount: 0
+> [0.000000] [sd_task/INFO]   - alpha: 0.00
+> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
+> [0.000000] [sd_task/INFO]   - pre-dependencies:
+> [0.000000] [sd_task/INFO]     c3->end
+> [0.000000] [test/INFO] ------------------- Schedule tasks ---------------------------
+> [0.000000] [test/INFO] ------------------- Run the schedule ---------------------------
+> [3.290271] [test/INFO] Makespan: 3.290271
diff --git a/examples/simdag/faulty_host.xml b/examples/simdag/faulty_host.xml
deleted file mode 100644 (file)
index 519ec44..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="Faulty Host" power="1Gf"
-         state_file="faulty_host.trace"/>
-   <host id="Safe Host" power="500Mf"/>
- </AS>
- </platform>
index 2747c19..d0f13f5 100644 (file)
@@ -1,32 +1,9 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(goal_test goal_test.c)
+target_link_libraries(goal_test simgrid)
 
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(goal_test simgrid pthread )
-else()
-  target_link_libraries(goal_test simgrid)
-endif()
-
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/goal_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0a72b1f..3f4db61 100644 (file)
@@ -1,29 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(sd_io sd_io.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(sd_io simgrid pthread m)
-else()
-  target_link_libraries(sd_io simgrid)
-endif()
+target_link_libraries(sd_io simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/io.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_io.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 4d8c3a4..ed6897b 100644 (file)
@@ -4,14 +4,11 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_io,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_io, "Logging specific to this SimDag example");
+
 int main(int argc, char **argv)
 {
   unsigned int ctr;
@@ -23,9 +20,7 @@ int main(int argc, char **argv)
   xbt_dict_cursor_t cursor = NULL;
 
   SD_init(&argc, argv);
-  /* Set the workstation model to default, as storage is not supported by the
-   * ptask_L07 model yet.
-   */
+  /* Set the workstation model to default, as storage is not supported by the ptask_L07 model yet. */
   SD_config("host/model", "default");
   SD_create_environment(argv[1]);
   workstations = sg_host_list();
@@ -34,10 +29,10 @@ int main(int argc, char **argv)
   for (ctr=0; ctr<total_nworkstations;ctr++){
     current_storage_list = sg_host_get_mounted_storage_list(workstations[ctr]);
     xbt_dict_foreach(current_storage_list,cursor,mount_name,storage_name)
-      XBT_INFO("Workstation '%s' mounts '%s'",
-         sg_host_get_name(workstations[ctr]), mount_name);
+      XBT_INFO("Workstation '%s' mounts '%s'", sg_host_get_name(workstations[ctr]), mount_name);
     xbt_dict_free(&current_storage_list);
   }
+
   SD_exit();
   return 0;
 }
diff --git a/examples/simdag/metaxml/CMakeLists.txt b/examples/simdag/metaxml/CMakeLists.txt
deleted file mode 100644 (file)
index 05fd01e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-add_executable(sd_meta sd_meta.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(sd_meta simgrid pthread )
-else()
-  target_link_libraries(sd_meta simgrid)
-endif()
-
-set(tesh_files
-  ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/metaxml_test.tesh
-  ${CMAKE_CURRENT_SOURCE_DIR}/metaxml_test2.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  ${CMAKE_CURRENT_SOURCE_DIR}/sd_meta.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
diff --git a/examples/simdag/metaxml/metaxml_test.tesh b/examples/simdag/metaxml/metaxml_test.tesh
deleted file mode 100644 (file)
index 84b58d9..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#! ./tesh
-
-p Simple test of simdag with metaxml tags
-
-$ $SG_TEST_EXENV metaxml/sd_meta ${srcdir:=.}/../platforms/metaxml.xml
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_2_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_0_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Lille_bb: latency = 0.000050, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and nancy_2_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and nancy_0_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link INTER-bb: latency = 0.000100, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO] Route between nancy_1_host and nancy_1_host:
-> [0.000000] [sd_test/INFO]    Link nancy_1_host: latency = 0.000050, bandwidth = 125000000.000000
-> [0.000000] [sd_test/INFO]    Link Nancy_bb: latency = 0.001000, bandwidth = 50000000.000000
diff --git a/examples/simdag/metaxml/metaxml_test2.tesh b/examples/simdag/metaxml/metaxml_test2.tesh
deleted file mode 100644 (file)
index eef6be4..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#! ./tesh
-
-p Simple test of simdag with metaxml tags
-
-$ $SG_TEST_EXENV metaxml/sd_meta ${srcdir:=.}/../platforms/metaxml-random.xml
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_2_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_1_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_4_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_1_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_0_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_3_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lille_0_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lille_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lyon_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lille_4_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_4_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lille_1_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_1_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lyon_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lille_3_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_3_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lille_0_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO]    Link lille_0_host: latency = 0.000007, bandwidth = 3297750.000000
-> [0.000000] [sd_test/INFO] Route between lyon_2_host and lyon_2_host:
-> [0.000000] [sd_test/INFO]    Link lyon_2_host: latency = 0.000007, bandwidth = 3297750.000000
diff --git a/examples/simdag/metaxml/sd_meta.c b/examples/simdag/metaxml/sd_meta.c
deleted file mode 100644 (file)
index 2b3da2a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (c) 2007-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-/* See examples/platforms/metaxml.xml and examples/platforms/metaxml_platform.xml 
-   for examples on how to use the cluster, foreach, set, route:multi, trace and trace:connect tags
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "simgrid/simdag.h"
-#include "xbt/ex.h"
-#include "xbt/log.h"
-#include "xbt/dynar.h"
-#include "xbt/dict.h"
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_test,
-                             "Logging specific to this SimDag example");
-
-int main(int argc, char **argv)
-{
-
-  const char *platform_file;
-  const sg_host_t *workstations;
-  int ws_nr;
-  sg_host_t w1 = NULL;
-  sg_host_t w2 = NULL;
-  const char *name1, *name2;
-  int i, j, k;
-
-  /* SD initialization */
-  SD_init(&argc, argv);
-
-  /*  xbt_log_control_set("sd.thres=debug"); */
-
-  if (argc < 2) {
-    XBT_INFO("Usage: %s platform_file", argv[0]);
-    XBT_INFO("example: %s sd_platform.xml", argv[0]);
-    exit(1);
-  }
-
-  /* creation of the environment */
-  platform_file = argv[1];
-  SD_create_environment(platform_file);
-
-  /* test the estimation functions */
-  workstations = sg_host_list();
-  ws_nr = sg_host_count();
-
-
-  /* Show routes between all workstation */
-
-  for (i = 0; i < ws_nr; i++) {
-    for (j = 0; j < ws_nr; j++) {
-      const SD_link_t *route;
-      int route_size;
-      w1 = workstations[i];
-      w2 = workstations[j];
-      name1 = sg_host_get_name(w1);
-      name2 = sg_host_get_name(w2);
-      XBT_INFO("Route between %s and %s:", name1, name2);
-      route = SD_route_get_list(w1, w2);
-      route_size = SD_route_get_size(w1, w2);
-      for (k = 0; k < route_size; k++) {
-        XBT_INFO("\tLink %s: latency = %f, bandwidth = %f",
-              sg_link_name(route[k]),
-              sg_link_latency(route[k]),
-              sg_link_bandwidth(route[k]));
-      }
-    }
-  }
-
-  SD_exit();
-  return 0;
-}
index d88149f..e0fc82d 100644 (file)
@@ -1,33 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(sd_prop sd_prop.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(sd_prop simgrid pthread )
-else()
-  target_link_libraries(sd_prop simgrid)
-endif()
+target_link_libraries(sd_prop simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_prop.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sd_prop.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index ad340f4..cc82514 100644 (file)
@@ -1,25 +1,19 @@
-/* Copyright (c) 2007-2015. The SimGrid Team.
+/* Copyright (c) 2007-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
-#include "xbt/dynar.h"
 #include "xbt/dict.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Property test");
 
 int main(int argc, char **argv)
 {
-  sg_host_t w1;
-  sg_host_t w2;
-  const char *name1;
-  const char *name2;
+  sg_host_t h1, h2;
+  const char *name1, *name2;
   xbt_dict_t props;
   xbt_dict_cursor_t cursor = NULL;
   char *key, *data;
@@ -29,46 +23,37 @@ int main(int argc, char **argv)
 
   /* SD initialization */
   SD_init(&argc, argv);
-  xbt_assert(argc > 1,
-            "Usage: %s platform_file\n\tExample: %s ../two_hosts.xml", 
-            argv[0], argv[0]);
+  xbt_assert(argc > 1, "Usage: %s platform_file\n\tExample: %s ../../platforms/prop.xml", argv[0], argv[0]);
 
   SD_create_environment(argv[1]);
 
   /* init of platform elements */
-  w1 = sg_host_by_name("host1");
-  w2 = sg_host_by_name("host2");
-  name1 = sg_host_get_name(w1);
-  name2 = sg_host_get_name(w2);
-
-
-  /* The host properties can be retrieved from all interfaces */
+  h1 = sg_host_by_name("host1");
+  h2 = sg_host_by_name("host2");
+  name1 = sg_host_get_name(h1);
+  name2 = sg_host_get_name(h2);
 
+  /* Get the property list of 'host1' */
   XBT_INFO("Property list for host %s", name1);
-  /* Get the property list of the workstation 1 */
-  props = sg_host_get_properties(w1);
-
+  props = sg_host_get_properties(h1);
 
   /* Trying to set a new property */
   xbt_dict_set(props, "NewProp", strdup("newValue"), xbt_free_f);
 
-  /* Print the properties of the workstation 1 */
+  /* Print the properties of 'host1' */
   xbt_dict_foreach(props, cursor, key, data) {
     XBT_INFO("\tProperty: %s has value: %s", key, data);
   }
 
   /* Try to get a property that does not exist */
-
-  value = sg_host_get_property_value(w1, noexist);
+  value = sg_host_get_property_value(h1, noexist);
   XBT_INFO("\tProperty: %s has value: %s", noexist, value?value:"Undefined (NULL)");
 
-
+  /* Get the property list of 'host2' */
   XBT_INFO("Property list for host %s", name2);
-  /* Get the property list of the workstation 2 */
-  props = sg_host_get_properties(w2);
-  cursor = NULL;
+  props = sg_host_get_properties(h2);
 
-  /* Print the properties of the workstation 2 */
+  /* Print the properties of 'host2' */
   xbt_dict_foreach(props, cursor, key, data) {
     XBT_INFO("\tProperty: %s on host: %s", key, data);
   }
@@ -76,7 +61,7 @@ int main(int argc, char **argv)
   /* Modify an existing property test. First check it exists */
   XBT_INFO("Modify an existing property");
 
-  value = sg_host_get_property_value(w2, exist);
+  value = sg_host_get_property_value(h2, exist);
   if (value == NULL)
     XBT_INFO("\tProperty: %s is undefined", exist);
   else {
@@ -85,11 +70,11 @@ int main(int argc, char **argv)
   }
 
   /* Test if we have changed the value */
-  value = sg_host_get_property_value(w2, exist);
+  value = sg_host_get_property_value(h2, exist);
   XBT_INFO("\tProperty: %s new value: %s", exist, value?value:"Undefined (NULL)");
 
   /* Test if properties are displayed by sg_host_dump */
-  sg_host_dump(w2);
+  sg_host_dump(h2);
 
   SD_exit();
   return 0;
index 5aea70e..219282d 100644 (file)
@@ -1,34 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(minmin_test minmin_test.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(minmin_test simgrid pthread m)
-else()
-  target_link_libraries(minmin_test simgrid)
-endif()
+target_link_libraries(minmin_test simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_minmin.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/Montage_25.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/minmin_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8ecf2d5..6ac0f78 100644 (file)
@@ -1,73 +1,65 @@
-/* simple test to schedule a DAX file with the Min-Min algorithm.           */
-
-/* Copyright (c) 2009-2015. The SimGrid Team.
+/* Copyright (c) 2009-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+/* simple test to schedule a DAX file with the Min-Min algorithm.           */
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 #include "xbt/ex.h"
-#include <string.h>
 
 #ifdef HAVE_JEDULE
 #include "simgrid/jedule/jedule_sd_binding.h"
 #endif
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 
-typedef struct _WorkstationAttribute *WorkstationAttribute;
-struct _WorkstationAttribute {
-  /* Earliest time at which a workstation is ready to execute a task */
+typedef struct _HostAttribute *HostAttribute;
+struct _HostAttribute {
+  /* Earliest time at which a host is ready to execute a task */
   double available_at;
   SD_task_t last_scheduled_task;
 };
 
-static void sg_host_allocate_attribute(sg_host_t workstation)
+static void sg_host_allocate_attribute(sg_host_t host)
 {
   void *data;
-  data = calloc(1, sizeof(struct _WorkstationAttribute));
-  sg_host_user_set(workstation, data);
+  data = calloc(1, sizeof(struct _HostAttribute));
+  sg_host_user_set(host, data);
 }
 
-static void sg_host_free_attribute(sg_host_t workstation)
+static void sg_host_free_attribute(sg_host_t host)
 {
-  free(sg_host_user(workstation));
-  sg_host_user_set(workstation, NULL);
+  free(sg_host_user(host));
+  sg_host_user_set(host, NULL);
 }
 
-static double sg_host_get_available_at(sg_host_t workstation)
+static double sg_host_get_available_at(sg_host_t host)
 {
-  WorkstationAttribute attr =
-      (WorkstationAttribute) sg_host_user(workstation);
+  HostAttribute attr = (HostAttribute) sg_host_user(host);
   return attr->available_at;
 }
 
-static void sg_host_set_available_at(sg_host_t workstation,
-                                            double time)
+static void sg_host_set_available_at(sg_host_t host, double time)
 {
-  WorkstationAttribute attr =
-      (WorkstationAttribute) sg_host_user(workstation);
+  HostAttribute attr = (HostAttribute) sg_host_user(host);
   attr->available_at = time;
-  sg_host_user_set(workstation, attr);
+  sg_host_user_set(host, attr);
 }
 
-static SD_task_t sg_host_get_last_scheduled_task( sg_host_t workstation){
-  WorkstationAttribute attr =
-      (WorkstationAttribute) sg_host_user(workstation);
+static SD_task_t sg_host_get_last_scheduled_task( sg_host_t host){
+  HostAttribute attr = (HostAttribute) sg_host_user(host);
   return attr->last_scheduled_task;
 }
 
-static void sg_host_set_last_scheduled_task(sg_host_t workstation,
-    SD_task_t task){
-  WorkstationAttribute attr =
-      (WorkstationAttribute) sg_host_user(workstation);
+static void sg_host_set_last_scheduled_task(sg_host_t host, SD_task_t task){
+  HostAttribute attr = (HostAttribute) sg_host_user(host);
   attr->last_scheduled_task=task;
-  sg_host_user_set(workstation, attr);
+  sg_host_user_set(host, attr);
 }
 
 static xbt_dynar_t get_ready_tasks(xbt_dynar_t dax)
@@ -78,8 +70,7 @@ static xbt_dynar_t get_ready_tasks(xbt_dynar_t dax)
 
   ready_tasks = xbt_dynar_new(sizeof(SD_task_t), NULL);
   xbt_dynar_foreach(dax, i, task) {
-    if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ &&
-        SD_task_get_state(task) == SD_SCHEDULABLE) {
+    if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ && SD_task_get_state(task) == SD_SCHEDULABLE) {
       xbt_dynar_push(ready_tasks, &task);
     }
   }
@@ -88,7 +79,7 @@ static xbt_dynar_t get_ready_tasks(xbt_dynar_t dax)
   return ready_tasks;
 }
 
-static double finish_on_at(SD_task_t task, sg_host_t workstation)
+static double finish_on_at(SD_task_t task, sg_host_t host)
 {
   volatile double result;
   unsigned int i;
@@ -98,7 +89,7 @@ static double finish_on_at(SD_task_t task, sg_host_t workstation)
   SD_task_t parent, grand_parent;
   xbt_dynar_t parents, grand_parents;
 
-  sg_host_t *grand_parent_workstation_list;
+  sg_host_t *grand_parent_host_list;
 
   parents = SD_task_get_parents(task);
 
@@ -106,32 +97,23 @@ static double finish_on_at(SD_task_t task, sg_host_t workstation)
     /* compute last_data_available */
     last_data_available = -1.0;
     xbt_dynar_foreach(parents, i, parent) {
-
       /* normal case */
       if (SD_task_get_kind(parent) == SD_TASK_COMM_E2E) {
         grand_parents = SD_task_get_parents(parent);
 
-        xbt_assert(xbt_dynar_length(grand_parents) <2, 
-                  "Error: transfer %s has 2 parents", 
-                  SD_task_get_name(parent));
+        xbt_assert(xbt_dynar_length(grand_parents) <2, "Error: transfer %s has 2 parents", SD_task_get_name(parent));
         
         xbt_dynar_get_cpy(grand_parents, 0, &grand_parent);
 
-        grand_parent_workstation_list =
-            SD_task_get_workstation_list(grand_parent);
+        grand_parent_host_list = SD_task_get_workstation_list(grand_parent);
         /* Estimate the redistribution time from this parent */
         if (SD_task_get_amount(parent) == 0){
           redist_time= 0;
         } else {
-          redist_time =
-            SD_route_get_latency(grand_parent_workstation_list[0],
-                                 workstation) +
-            SD_task_get_amount(parent) /
-            SD_route_get_bandwidth(grand_parent_workstation_list[0],
-                                 workstation);
+          redist_time = SD_route_get_latency(grand_parent_host_list[0], host) +
+                        SD_task_get_amount(parent) / SD_route_get_bandwidth(grand_parent_host_list[0], host);
         }
-        data_available =
-            SD_task_get_finish_time(grand_parent) + redist_time;
+        data_available = SD_task_get_finish_time(grand_parent) + redist_time;
 
         xbt_dynar_free_container(&grand_parents);
       }
@@ -143,47 +125,40 @@ static double finish_on_at(SD_task_t task, sg_host_t workstation)
 
       if (last_data_available < data_available)
         last_data_available = data_available;
-
     }
 
     xbt_dynar_free_container(&parents);
 
-    result = MAX(sg_host_get_available_at(workstation),
-               last_data_available) +
-             SD_task_get_amount(task)/sg_host_speed(workstation);
+    result = MAX(sg_host_get_available_at(host), last_data_available) + SD_task_get_amount(task)/sg_host_speed(host);
   } else {
     xbt_dynar_free_container(&parents);
 
-    result = sg_host_get_available_at(workstation) +
-              SD_task_get_amount(task)/sg_host_speed(workstation);
+    result = sg_host_get_available_at(host) + SD_task_get_amount(task)/sg_host_speed(host);
   }
   return result;
 }
 
-static sg_host_t SD_task_get_best_workstation(SD_task_t task)
+static sg_host_t SD_task_get_best_host(SD_task_t task)
 {
   int i;
   double EFT, min_EFT = -1.0;
-  const sg_host_t *workstations = sg_host_list();
-  int nworkstations = sg_host_count();
-  sg_host_t best_workstation;
+  const sg_host_t *hosts = sg_host_list();
+  int nhosts = sg_host_count();
+  sg_host_t best_host;
 
-  best_workstation = workstations[0];
-  min_EFT = finish_on_at(task, workstations[0]);
+  best_host = hosts[0];
+  min_EFT = finish_on_at(task, hosts[0]);
 
-  for (i = 1; i < nworkstations; i++) {
-    EFT = finish_on_at(task, workstations[i]);
-    XBT_DEBUG("%s finishes on %s at %f",
-           SD_task_get_name(task),
-           sg_host_get_name(workstations[i]), EFT);
+  for (i = 1; i < nhosts; i++) {
+    EFT = finish_on_at(task, hosts[i]);
+    XBT_DEBUG("%s finishes on %s at %f", SD_task_get_name(task), sg_host_get_name(hosts[i]), EFT);
 
     if (EFT < min_EFT) {
       min_EFT = EFT;
-      best_workstation = workstations[i];
+      best_host = hosts[i];
     }
   }
-
-  return best_workstation;
+  return best_host;
 }
 
 int main(int argc, char **argv)
@@ -192,9 +167,9 @@ int main(int argc, char **argv)
   double finish_time, min_finish_time = -1.0;
   SD_task_t task, selected_task = NULL, last_scheduled_task;
   xbt_dynar_t ready_tasks;
-  sg_host_t workstation, selected_workstation = NULL;
-  int total_nworkstations = 0;
-  const sg_host_t *workstations = NULL;
+  sg_host_t host, selected_host = NULL;
+  int total_nhosts = 0;
+  const sg_host_t *hosts = NULL;
   char * tracefilename = NULL;
   xbt_dynar_t dax;
 
@@ -211,13 +186,12 @@ int main(int argc, char **argv)
   /* creation of the environment */
   SD_create_environment(argv[1]);
 
-  /*  Allocating the workstation attribute */
-  total_nworkstations = sg_host_count();
-  workstations = sg_host_list();
-
-  for (cursor = 0; cursor < total_nworkstations; cursor++)
-    sg_host_allocate_attribute(workstations[cursor]);
+  /*  Allocating the host attribute */
+  total_nhosts = sg_host_count();
+  hosts = sg_host_list();
 
+  for (cursor = 0; cursor < total_nhosts; cursor++)
+    sg_host_allocate_attribute(hosts[cursor]);
 
   /* load the DAX file */
   dax = SD_daxload(argv[2]);
@@ -228,8 +202,8 @@ int main(int argc, char **argv)
 
   /* Schedule the root first */
   xbt_dynar_get_cpy(dax, 0, &task);
-  workstation = SD_task_get_best_workstation(task);
-  SD_task_schedulel(task, 1, workstation);
+  host = SD_task_get_best_host(task);
+  SD_task_schedulel(task, 1, host);
 
   while (!xbt_dynar_is_empty(SD_simulate(-1.0))) {
     /* Get the set of ready tasks */
@@ -240,51 +214,40 @@ int main(int argc, char **argv)
       continue;
     }
     /* For each ready task:
-     * get the workstation that minimizes the completion time.
-     * select the task that has the minimum completion time on
-     * its best workstation.
+     * get the host that minimizes the completion time.
+     * select the task that has the minimum completion time on its best host.
      */
     xbt_dynar_foreach(ready_tasks, cursor, task) {
       XBT_DEBUG("%s is ready", SD_task_get_name(task));
-      workstation = SD_task_get_best_workstation(task);
-      finish_time = finish_on_at(task, workstation);
+      host = SD_task_get_best_host(task);
+      finish_time = finish_on_at(task, host);
       if (min_finish_time == -1. || finish_time < min_finish_time) {
         min_finish_time = finish_time;
         selected_task = task;
-        selected_workstation = workstation;
+        selected_host = host;
       }
     }
 
-    XBT_INFO("Schedule %s on %s", SD_task_get_name(selected_task),
-          sg_host_get_name(selected_workstation));
-
-    SD_task_schedulel(selected_task, 1, selected_workstation);
+    XBT_INFO("Schedule %s on %s", SD_task_get_name(selected_task), sg_host_get_name(selected_host));
+    SD_task_schedulel(selected_task, 1, selected_host);
 
     /*
      * SimDag allows tasks to be executed concurrently when they can by default.
-     * Yet schedulers take decisions assuming that tasks wait for resource
-     * availability to start.
-     * The solution (well crude hack is to keep track of the last task scheduled
-     * on a workstation and add a special type of dependency if needed to
-     * force the sequential execution meant by the scheduler.
-     * If the last scheduled task is already done, has failed or is a 
-     * predecessor of the current task, no need for a new dependency
+     * Yet schedulers take decisions assuming that tasks wait for resource availability to start.
+     * The solution (well crude hack is to keep track of the last task scheduled on a host and add a special type of
+     * dependency if needed to force the sequential execution meant by the scheduler.
+     * If the last scheduled task is already done, has failed or is a predecessor of the current task, no need for a
+     * new dependency
     */
 
-    last_scheduled_task = 
-      sg_host_get_last_scheduled_task(selected_workstation);
-    if (last_scheduled_task && 
-  (SD_task_get_state(last_scheduled_task) != SD_DONE) &&
-  (SD_task_get_state(last_scheduled_task) != SD_FAILED) &&
-  !SD_task_dependency_exists(
-     sg_host_get_last_scheduled_task(selected_workstation),
-     selected_task))
-      SD_task_dependency_add("resource", NULL,
-           last_scheduled_task, selected_task);
-    
-    sg_host_set_last_scheduled_task(selected_workstation, selected_task);
-    
-    sg_host_set_available_at(selected_workstation, min_finish_time);
+    last_scheduled_task = sg_host_get_last_scheduled_task(selected_host);
+    if (last_scheduled_task && (SD_task_get_state(last_scheduled_task) != SD_DONE) &&
+        (SD_task_get_state(last_scheduled_task) != SD_FAILED) &&
+        !SD_task_dependency_exists(sg_host_get_last_scheduled_task(selected_host), selected_task))
+      SD_task_dependency_add("resource", NULL, last_scheduled_task, selected_task);
+
+    sg_host_set_last_scheduled_task(selected_host, selected_task);
+    sg_host_set_available_at(selected_host, min_finish_time);
 
     xbt_dynar_free_container(&ready_tasks);
     /* reset the min_finish_time for the next set of ready tasks */
@@ -292,7 +255,6 @@ int main(int argc, char **argv)
   }
 
   XBT_INFO("Simulation Time: %f", SD_get_clock());
-
   XBT_INFO("------------------- Produce the trace file---------------------------");
   XBT_INFO("Producing a jedule output (if active) of the run into %s", tracefilename?tracefilename:"minmin_test.jed");
 #ifdef HAVE_JEDULE
@@ -307,8 +269,8 @@ int main(int argc, char **argv)
   }
   xbt_dynar_free_container(&dax);
 
-  for (cursor = 0; cursor < total_nworkstations; cursor++)
-    sg_host_free_attribute(workstations[cursor]);
+  for (cursor = 0; cursor < total_nhosts; cursor++)
+    sg_host_free_attribute(hosts[cursor]);
 
   /* exit */
   SD_exit();
index d0ff078..653562e 100644 (file)
@@ -1,17 +1,13 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
+/* Copyright (c) 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_avail,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_avail, "Logging specific to this SimDag example");
 
 /* Test of dynamic availability traces
  * Scenario:
@@ -45,13 +41,13 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(sd_avail,
 int main(int argc, char **argv)
 {
   unsigned int ctr;
-  const sg_host_t *workstations;
+  const sg_host_t *hosts;
   SD_task_t t1, c1, t2, c2, t3, c3, t4, task;
   xbt_dynar_t changed_tasks;
 
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
-  workstations = sg_host_list();
+  hosts = sg_host_list();
 
   t1 = SD_task_create_comp_seq("t1", NULL, 25000000);
   c1 = SD_task_create_comm_e2e("c1", NULL, 125000000);
@@ -71,10 +67,10 @@ int main(int argc, char **argv)
 
   /* Schedule tasks t1 and w3 on first host, t2 on second host */
   /* Transfers are auto-scheduled */
-  SD_task_schedulel(t1, 1, workstations[0]);
-  SD_task_schedulel(t2, 1, workstations[1]);
-  SD_task_schedulel(t3, 1, workstations[0]);
-  SD_task_schedulel(t4, 1, workstations[1]);
+  SD_task_schedulel(t1, 1, hosts[0]);
+  SD_task_schedulel(t2, 1, hosts[1]);
+  SD_task_schedulel(t3, 1, hosts[0]);
+  SD_task_schedulel(t4, 1, hosts[1]);
 
   /* Add some watchpoint upon task completion */
   SD_task_watch(t1, SD_DONE);
@@ -85,19 +81,13 @@ int main(int argc, char **argv)
   SD_task_watch(c3, SD_DONE);
   SD_task_watch(t4, SD_DONE);
 
-  while (!xbt_dynar_is_empty((changed_tasks = SD_simulate(-1.0)))) {    
-    XBT_INFO("link1: bw=%.0f, lat=%f",
-             SD_route_get_bandwidth(workstations[0], workstations[1]),
-             SD_route_get_latency(workstations[0], workstations[1]));
-    XBT_INFO("Jupiter: speed=%.0f",
-             sg_host_speed(workstations[0])*
-             sg_host_get_available_speed(workstations[0]));
-    XBT_INFO("Tremblay: speed=%.0f",
-             sg_host_speed(workstations[1])*
-             sg_host_get_available_speed(workstations[1]));
+  while (!xbt_dynar_is_empty((changed_tasks = SD_simulate(-1.0)))) {
+    XBT_INFO("link1: bw=%.0f, lat=%f", SD_route_get_bandwidth(hosts[0], hosts[1]),
+             SD_route_get_latency(hosts[0], hosts[1]));
+    XBT_INFO("Jupiter: speed=%.0f", sg_host_speed(hosts[0])* sg_host_get_available_speed(hosts[0]));
+    XBT_INFO("Tremblay: speed=%.0f", sg_host_speed(hosts[1])* sg_host_get_available_speed(hosts[1]));
     xbt_dynar_foreach(changed_tasks, ctr, task) {
-      XBT_INFO("Task '%s' start time: %f, finish time: %f",
-           SD_task_get_name(task),
+      XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task),
            SD_task_get_start_time(task), SD_task_get_finish_time(task));
       if (SD_task_get_state(task)==SD_DONE)
         SD_task_destroy(task);
index 1265710..99a6605 100644 (file)
@@ -5,39 +5,28 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_comm_throttling,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_comm_throttling, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
   unsigned int ctr;
-  const char *platform_file;
-  const sg_host_t *workstations;
+  const sg_host_t *hosts;
   SD_task_t task, taskA, taskB, taskC, taskD, taskE;
   xbt_dynar_t changed_tasks;
 
-  /* initialization of SD */
   SD_init(&argc, argv);
-
-  /*  xbt_log_control_set("sd.thres=debug"); */
-
-  xbt_assert(argc > 1, "Usage: %s platform_file\n"
-            "\nExample: %s two_clusters.xml", argv[0], argv[0]);
+  xbt_assert(argc > 1, "Usage: %s platform_file\n\nExample: %s two_clusters.xml", argv[0], argv[0]);
 
   /* creation of the environment */
-  platform_file = argv[1];
-  SD_create_environment(platform_file);
-  workstations = sg_host_list();
+  SD_create_environment(argv[1]);
+
+  hosts = sg_host_list();
 
   /* creation of some typed tasks and their dependencies */
-  /* chain of five tasks, three compute tasks with two data transfers */
-  /* in between */
+  /* chain of five tasks, three compute tasks with two data transfers in between */
   taskA = SD_task_create_comp_seq("Task A", NULL, 5e9);
   taskB = SD_task_create_comm_e2e("Task B", NULL, 1e7);
   taskC = SD_task_create_comp_seq("Task C", NULL, 5e9);
@@ -56,30 +45,26 @@ int main(int argc, char **argv)
 
   /* Auto-schedule the compute tasks on three different workstations */
   /* Data transfer tasks taskB and taskD are automagically scheduled */
-  SD_task_schedulel(taskA, 1, workstations[0]);
-  SD_task_schedulel(taskC, 1, workstations[1]);
-  SD_task_schedulel(taskE, 1, workstations[0]);
+  SD_task_schedulel(taskA, 1, hosts[0]);
+  SD_task_schedulel(taskC, 1, hosts[1]);
+  SD_task_schedulel(taskE, 1, hosts[0]);
   while (!xbt_dynar_is_empty((changed_tasks = SD_simulate(-1.0)))) {
     XBT_INFO("Simulation stopped after %.4f seconds", SD_get_clock());
     xbt_dynar_foreach(changed_tasks, ctr, task) {
-      XBT_INFO("Task '%s' start time: %f, finish time: %f",
-         SD_task_get_name(task),
-         SD_task_get_start_time(task), 
-         SD_task_get_finish_time(task));
+      XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task), SD_task_get_start_time(task),
+               SD_task_get_finish_time(task));
     }
+
     /* let throttle the communication for taskD if its parent is SD_DONE */
-    /* the bandwidth is 1.25e8, the data size is 1e7, and we want to throttle
-     * the bandwidth by a factor 2. the rate is then 1.25e8/(2*1e7)=6.25
-     * Changing the rate is possible before the task execution starts (in SD_RUNNING
-     * state).
+    /* the bandwidth is 1.25e8, the data size is 1e7, and we want to throttle the bandwidth by a factor 2.
+     * The rate is then 1.25e8/(2*1e7)=6.25
+     * Changing the rate is possible before the task execution starts (in SD_RUNNING state).
      */
     if (SD_task_get_state(taskC) == SD_DONE && SD_task_get_state(taskD) < SD_RUNNING)
       SD_task_set_rate(taskD, 6.25);
   }
 
   XBT_DEBUG("Destroying tasks...");
-
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
   SD_task_destroy(taskC);
@@ -87,7 +72,6 @@ int main(int argc, char **argv)
   SD_task_destroy(taskE);
 
   XBT_DEBUG("Tasks destroyed. Exiting SimDag...");
-
   SD_exit();
   return 0;
 }
index fc1647c..7620ea3 100644 (file)
@@ -1,30 +1,26 @@
-/* Copyright (c) 2006-2010, 2012-2015. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_fail,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_fail, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
   SD_task_t task;
   double computation_amount[1];
   double communication_amount[2] = { 0 };
-  sg_host_t workstation_list[1];
+  sg_host_t hosts[1];
 
   /* initialization of SD */
   SD_init(&argc, argv);
 
   /* creation of the environment */
-  SD_create_environment("./faulty_host.xml");
+  SD_create_environment(argv[1]);
  
   /* creation of a single task that will poorly fail when the workstation
    * will stop */
@@ -33,8 +29,7 @@ int main(int argc, char **argv)
   SD_task_watch(task, SD_FAILED);
   SD_task_watch(task, SD_DONE);
 
-  XBT_INFO("Schedule task '%s' on workstation 'Faulty Host'",
-           SD_task_get_name(task));
+  XBT_INFO("Schedule task '%s' on 'Faulty Host'", SD_task_get_name(task));
 
   SD_task_schedulel(task, 1, sg_host_by_name("Faulty Host"));
 
@@ -42,12 +37,10 @@ int main(int argc, char **argv)
 
   SD_task_dump(task);
 
-  XBT_INFO("Task '%s' has failed. %.f flops remain to be done",
-           SD_task_get_name(task),
+  XBT_INFO("Task '%s' has failed. %.f flops remain to be done", SD_task_get_name(task),
            SD_task_get_remaining_amount(task));
 
-  XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'",
-           SD_task_get_name(task));
+  XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'", SD_task_get_name(task));
   SD_task_unschedule(task);
   SD_task_schedulel(task, 1, sg_host_by_name("Safe Host"));
 
@@ -55,10 +48,8 @@ int main(int argc, char **argv)
   SD_simulate(-1.0);
 
   SD_task_dump(task);
-  XBT_INFO("Task '%s' start time: %f, finish time: %f",
-      SD_task_get_name(task),
-      SD_task_get_start_time(task),
-      SD_task_get_finish_time(task));
+  XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task), SD_task_get_start_time(task),
+           SD_task_get_finish_time(task));
 
   SD_task_destroy(task);
   task=NULL;
@@ -71,37 +62,30 @@ int main(int argc, char **argv)
 
   computation_amount[0] = 2e10;
 
-  XBT_INFO("Schedule task '%s' on workstation 'Faulty Host'",
-             SD_task_get_name(task));
+  XBT_INFO("Schedule task '%s' on 'Faulty Host'", SD_task_get_name(task));
 
-  workstation_list[0] = sg_host_by_name("Faulty Host");
-  SD_task_schedule(task, 1, workstation_list,
-          computation_amount, communication_amount,-1);
+  hosts[0] = sg_host_by_name("Faulty Host");
+  SD_task_schedule(task, 1, hosts, computation_amount, communication_amount,-1);
 
   SD_simulate(-1.0);
 
   SD_task_dump(task);
 
-  XBT_INFO("Task '%s' has failed. %.f flops remain to be done",
-            SD_task_get_name(task),
+  XBT_INFO("Task '%s' has failed. %.f flops remain to be done", SD_task_get_name(task),
             SD_task_get_remaining_amount(task));
 
-  XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'",
-           SD_task_get_name(task));
+  XBT_INFO("let's unschedule task '%s' and reschedule it on the 'Safe Host'", SD_task_get_name(task));
   SD_task_unschedule(task);
 
-  workstation_list[0] = sg_host_by_name("Safe Host");
+  hosts[0] = sg_host_by_name("Safe Host");
 
-  SD_task_schedule(task, 1, workstation_list,
-                   computation_amount, communication_amount,-1);
+  SD_task_schedule(task, 1, hosts, computation_amount, communication_amount,-1);
 
   XBT_INFO("Run the simulation again");
   SD_simulate(-1.0);
 
   SD_task_dump(task);
-  XBT_INFO("Task '%s' start time: %f, finish time: %f",
-           SD_task_get_name(task),
-           SD_task_get_start_time(task),
+  XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task), SD_task_get_start_time(task),
            SD_task_get_finish_time(task));
 
   SD_task_destroy(task);
index 2f236a6..0c9d065 100644 (file)
@@ -4,86 +4,63 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_test, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
   int i;
   unsigned int ctr;
-  const char *platform_file;
-  const sg_host_t *workstations;
-  const char *name1;
-  const char *name2;
-  double computation_amount1;
-  double computation_amount2;
-  double communication_amount12;
-  double communication_amount21;
+  const sg_host_t *hosts;
+  const char *name1, *name2;
+  double comp_amount1, comp_amount2;
+  double comm_amount12, comm_amount21;
   const SD_link_t *route;
   int route_size;
   SD_task_t task, taskA, taskB, taskC, taskD, checkB, checkD;
   xbt_dynar_t changed_tasks;
   xbt_ex_t ex;
-  const int workstation_number = 2;
-  sg_host_t workstation_list[2];
+  const int host_count = 2;
+  sg_host_t host_list[2];
   double computation_amount[2];
   double communication_amount[4] = { 0 };
   double rate = -1.0;
-  sg_host_t w1, w2;
+  sg_host_t h1, h2;
 
   /* initialization of SD */
   SD_init(&argc, argv);
 
-  /*  xbt_log_control_set("sd.thres=debug"); */
-
-  xbt_assert(argc > 1, "Usage: %s platform_file\n"
-            "\nExample: %s two_clusters.xml", argv[0], argv[0]);
-
-  /* creation of the environment */
-  platform_file = argv[1];
-  SD_create_environment(platform_file);
+  xbt_assert(argc > 1, "Usage: %s platform_file\n\nExample: %s two_clusters.xml", argv[0], argv[0]);
+  SD_create_environment(argv[1]);
 
   /* test the estimation functions */
-  workstations = sg_host_list();
-  w1 = workstations[0];
-  w2 = workstations[1];
-  name1 = sg_host_get_name(w1);
-  name2 = sg_host_get_name(w2);
-  computation_amount1 = 2000000;
-  computation_amount2 = 1000000;
-  communication_amount12 = 2000000;
-  communication_amount21 = 3000000;
-  XBT_INFO("Computation time for %f flops on %s: %f", computation_amount1,
-        name1, computation_amount1/sg_host_speed(w1));
-  XBT_INFO("Computation time for %f flops on %s: %f", computation_amount2,
-        name2, computation_amount2/sg_host_speed(w2));
+  hosts = sg_host_list();
+  h1 = hosts[0];
+  h2 = hosts[1];
+  name1 = sg_host_get_name(h1);
+  name2 = sg_host_get_name(h2);
+  comp_amount1 = 2000000;
+  comp_amount2 = 1000000;
+  comm_amount12 = 2000000;
+  comm_amount21 = 3000000;
+  XBT_INFO("Computation time for %f flops on %s: %f", comp_amount1, name1, comp_amount1/sg_host_speed(h1));
+  XBT_INFO("Computation time for %f flops on %s: %f", comp_amount2, name2, comp_amount2/sg_host_speed(h2));
 
   XBT_INFO("Route between %s and %s:", name1, name2);
-  route = SD_route_get_list(w1, w2);
-  route_size = SD_route_get_size(w1, w2);
+  route = SD_route_get_list(h1, h2);
+  route_size = SD_route_get_size(h1, h2);
   for (i = 0; i < route_size; i++) {
-    XBT_INFO("   Link %s: latency = %f, bandwidth = %f",
-          sg_link_name(route[i]),
-          sg_link_latency(route[i]),
-          sg_link_bandwidth(route[i]));
+    XBT_INFO("   Link %s: latency = %f, bandwidth = %f", sg_link_name(route[i]), sg_link_latency(route[i]),
+             sg_link_bandwidth(route[i]));
   }
-  XBT_INFO("Route latency = %f, route bandwidth = %f",
-        SD_route_get_latency(w1, w2),
-        SD_route_get_bandwidth(w1, w2));
-  XBT_INFO("Communication time for %f bytes between %s and %s: %f",
-        communication_amount12, name1, name2,
-        SD_route_get_latency(w1, w2) +
-        communication_amount12 / SD_route_get_bandwidth(w1, w2));
-  XBT_INFO("Communication time for %f bytes between %s and %s: %f",
-        communication_amount21, name2, name1,
-        SD_route_get_latency(w2, w1) +
-        communication_amount21 / SD_route_get_bandwidth(w2, w1));
+  XBT_INFO("Route latency = %f, route bandwidth = %f", SD_route_get_latency(h1, h2), SD_route_get_bandwidth(h1, h2));
+  XBT_INFO("Communication time for %f bytes between %s and %s: %f", comm_amount12, name1, name2,
+        SD_route_get_latency(h1, h2) + comm_amount12 / SD_route_get_bandwidth(h1, h2));
+  XBT_INFO("Communication time for %f bytes between %s and %s: %f", comm_amount21, name2, name1,
+        SD_route_get_latency(h2, h1) + comm_amount21 / SD_route_get_bandwidth(h2, h1));
 
   /* creation of the tasks and their dependencies */
   taskA = SD_task_create("Task A", NULL, 10.0);
@@ -92,8 +69,8 @@ int main(int argc, char **argv)
   taskD = SD_task_create("Task D", NULL, 60.0);
 
   /* try to attach and retrieve user data to a task */
-  SD_task_set_data(taskA, (void*) &computation_amount1);
-  if (computation_amount1 != (*((double*) SD_task_get_data(taskA))))
+  SD_task_set_data(taskA, (void*) &comp_amount1);
+  if (comp_amount1 != (*((double*) SD_task_get_data(taskA))))
       XBT_ERROR("User data was corrupted by a simple set/get");
 
   SD_task_dependency_add(NULL, NULL, taskB, taskA);
@@ -102,8 +79,6 @@ int main(int argc, char **argv)
   SD_task_dependency_add(NULL, NULL, taskD, taskC);
   SD_task_dependency_add(NULL, NULL, taskB, taskC);
 
-
-
   TRY {
     SD_task_dependency_add(NULL, NULL, taskA, taskA);   /* shouldn't work and must raise an exception */
     xbt_die("Hey, I can add a dependency between Task A and Task A!");
@@ -144,7 +119,6 @@ int main(int argc, char **argv)
     xbt_ex_free(ex);
   }
 
-
   /* if everything is ok, no exception is forwarded or rethrown by main() */
 
   /* watch points */
@@ -152,56 +126,43 @@ int main(int argc, char **argv)
   SD_task_watch(taskB, SD_DONE);
   SD_task_unwatch(taskD, SD_DONE);
 
-
   /* scheduling parameters */
-  workstation_list[0] = w1;
-  workstation_list[1] = w2;
-  computation_amount[0] = computation_amount1;
-  computation_amount[1] = computation_amount2;
+  host_list[0] = h1;
+  host_list[1] = h2;
+  computation_amount[0] = comp_amount1;
+  computation_amount[1] = comp_amount2;
 
-  communication_amount[1] = communication_amount12;
-  communication_amount[2] = communication_amount21;
+  communication_amount[1] = comm_amount12;
+  communication_amount[2] = comm_amount21;
 
   /* estimated time */
   task = taskD;
-  XBT_INFO("Estimated time for '%s': %f", SD_task_get_name(task),
-        SD_task_get_execution_time(task, workstation_number,
-                                   workstation_list, computation_amount,
-                                   communication_amount));
-
-  /* let's launch the simulation! */
-
-  SD_task_schedule(taskA, workstation_number, workstation_list,
-                   computation_amount, communication_amount, rate);
-  SD_task_schedule(taskB, workstation_number, workstation_list,
-                   computation_amount, communication_amount, rate);
-  SD_task_schedule(taskC, workstation_number, workstation_list,
-                   computation_amount, communication_amount, rate);
-  SD_task_schedule(taskD, workstation_number, workstation_list,
-                   computation_amount, communication_amount, rate);
+  XBT_INFO("Estimated time for '%s': %f", SD_task_get_name(task), SD_task_get_execution_time(task, host_count,
+           host_list, computation_amount, communication_amount));
+
+  SD_task_schedule(taskA, host_count, host_list, computation_amount, communication_amount, rate);
+  SD_task_schedule(taskB, host_count, host_list, computation_amount, communication_amount, rate);
+  SD_task_schedule(taskC, host_count, host_list, computation_amount, communication_amount, rate);
+  SD_task_schedule(taskD, host_count, host_list, computation_amount, communication_amount, rate);
 
   changed_tasks = SD_simulate(-1.0);
   xbt_dynar_foreach(changed_tasks, ctr, task) {
-    XBT_INFO("Task '%s' start time: %f, finish time: %f",
-          SD_task_get_name(task),
+    XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task),
           SD_task_get_start_time(task), SD_task_get_finish_time(task));
   }
 
   xbt_dynar_get_cpy(changed_tasks, 0, &checkD);
   xbt_dynar_get_cpy(changed_tasks, 1, &checkB);
 
-  xbt_assert(checkD == taskD &&
-              checkB == taskB, "Unexpected simulation results");
+  xbt_assert(checkD == taskD && checkB == taskB, "Unexpected simulation results");
 
   XBT_DEBUG("Destroying tasks...");
-
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
   SD_task_destroy(taskC);
   SD_task_destroy(taskD);
 
   XBT_DEBUG("Tasks destroyed. Exiting SimDag...");
-
   SD_exit();
   return 0;
 }
index d589e33..9904631 100644 (file)
@@ -4,22 +4,16 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
 
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
-#include "xbt/sysdep.h"         /* calloc, printf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_test, "Logging specific to this SimDag example");
 
 static int nameCompareHosts(const void *n1, const void *n2)
 {
-  return strcmp(sg_host_get_name(*((sg_host_t *) n1)),
-                sg_host_get_name(*((sg_host_t *) n2)));
+  return strcmp(sg_host_get_name(*((sg_host_t *) n1)), sg_host_get_name(*((sg_host_t *) n2)));
 }
 
 int main(int argc, char **argv)
@@ -56,13 +50,9 @@ int main(int argc, char **argv)
   double final_cost = 5e+9;
   double *ParComp_wcomm2_table;
 
-  /* SD initialization */
   SD_init(&argc, argv);
 
-  /* creation of the environment */
-  xbt_assert(strstr(argv[1],".xml"), 
-            "Unsupported platform description style (not XML): %s",
-            argv[1]);
+  xbt_assert(strstr(argv[1],".xml"), "Unsupported platform description style (not XML): %s", argv[1]);
   SD_create_environment(argv[1]);
 
   /* getting platform infos */
@@ -70,8 +60,7 @@ int main(int argc, char **argv)
   hosts = sg_host_list();
 
   /* sorting hosts by hostname */
-  qsort((void *) hosts, n_hosts, sizeof(sg_host_t),
-        nameCompareHosts);
+  qsort((void *) hosts, n_hosts, sizeof(sg_host_t), nameCompareHosts);
 
   /* creation of the tasks */
   taskInit = SD_task_create("Initial", NULL, 1.0);
@@ -84,7 +73,6 @@ int main(int argc, char **argv)
   taskFinal = SD_task_create("Final", NULL, 1.0);
   ParComp_wcomm2 = SD_task_create("Par Comp with comm 2", NULL, 1.0);
 
-
   /* creation of the dependencies */
   SD_task_dependency_add(NULL, NULL, taskInit, PtoPComm1);
   SD_task_dependency_add(NULL, NULL, taskInit, PtoPComm2);
@@ -96,9 +84,6 @@ int main(int argc, char **argv)
   SD_task_dependency_add(NULL, NULL, ParComp_wcomm2, taskFinal);
   SD_task_dependency_add(NULL, NULL, PtoPComm2, taskFinal);
 
-
-  /* scheduling parameters */
-
   /* large point-to-point communication (0.1 sec duration) */
   PtoPcomm1_hosts[0] = hosts[0];
   PtoPcomm1_hosts[1] = hosts[1];
@@ -159,7 +144,6 @@ int main(int argc, char **argv)
 
   /* parallel task with intra communications */
   /* Communication domination (0.1 sec duration) */
-
   ParComp_wcomm2_table = xbt_new0(double, 25);
 
   for (i = 0; i < 5; i++) {
@@ -175,35 +159,22 @@ int main(int argc, char **argv)
     }
   }
 
-  /* Sequential task */
-
-
   /* scheduling the tasks */
-  SD_task_schedule(taskInit, 1, hosts, SD_SCHED_NO_COST, SD_SCHED_NO_COST,
-                   -1.0);
-  SD_task_schedule(PtoPComm1, 2, PtoPcomm1_hosts, SD_SCHED_NO_COST,
-                   PtoPcomm1_table, -1.0);
-  SD_task_schedule(PtoPComm2, 2, PtoPcomm2_hosts, SD_SCHED_NO_COST,
-                   PtoPcomm2_table, -1.0);
-  SD_task_schedule(ParComp_wocomm, 5, ParComp_wocomm_hosts,
-                   ParComp_wocomm_cost, ParComp_wocomm_table, -1.0);
-  SD_task_schedule(IntraRedist, 5, IntraRedist_hosts, IntraRedist_cost,
-                   IntraRedist_table, -1.0);
-  SD_task_schedule(ParComp_wcomm1, 5, ParComp_wcomm1_hosts,
-                   ParComp_wcomm1_cost, ParComp_wcomm1_table, -1.0);
-  SD_task_schedule(InterRedist, 10, hosts, InterRedist_cost,
-                   InterRedist_table, -1.0);
-  SD_task_schedule(ParComp_wcomm2, 5, ParComp_wcomm2_hosts,
-                   ParComp_wcomm2_cost, ParComp_wcomm2_table, -1.0);
-  SD_task_schedule(taskFinal, 1, &(hosts[9]), &final_cost,
-                   SD_SCHED_NO_COST, -1.0);
+  SD_task_schedule(taskInit, 1, hosts, SD_SCHED_NO_COST, SD_SCHED_NO_COST, -1.0);
+  SD_task_schedule(PtoPComm1, 2, PtoPcomm1_hosts, SD_SCHED_NO_COST, PtoPcomm1_table, -1.0);
+  SD_task_schedule(PtoPComm2, 2, PtoPcomm2_hosts, SD_SCHED_NO_COST, PtoPcomm2_table, -1.0);
+  SD_task_schedule(ParComp_wocomm, 5, ParComp_wocomm_hosts, ParComp_wocomm_cost, ParComp_wocomm_table, -1.0);
+  SD_task_schedule(IntraRedist, 5, IntraRedist_hosts, IntraRedist_cost, IntraRedist_table, -1.0);
+  SD_task_schedule(ParComp_wcomm1, 5, ParComp_wcomm1_hosts, ParComp_wcomm1_cost, ParComp_wcomm1_table, -1.0);
+  SD_task_schedule(InterRedist, 10, hosts, InterRedist_cost, InterRedist_table, -1.0);
+  SD_task_schedule(ParComp_wcomm2, 5, ParComp_wcomm2_hosts, ParComp_wcomm2_cost, ParComp_wcomm2_table, -1.0);
+  SD_task_schedule(taskFinal, 1, &(hosts[9]), &final_cost, SD_SCHED_NO_COST, -1.0);
 
   /* let's launch the simulation! */
   SD_simulate(-1.0);
 
   XBT_INFO("Simulation time: %f", SD_get_clock());
 
-
   free(ParComp_wocomm_table);
   free(IntraRedist_cost);
   free(IntraRedist_table);
index 4e29f2c..cd24809 100644 (file)
@@ -1,45 +1,33 @@
-/* Copyright (c) 2006-2010, 2012-2015. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2016. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "xbt/ex.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(sd_typed_tasks_test,
-                             "Logging specific to this SimDag example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(sd_typed_tasks_test, "Logging specific to this SimDag example");
 
 int main(int argc, char **argv)
 {
   int i;
   unsigned int ctr;
-  const char *platform_file;
-  const sg_host_t *workstations;
+  const sg_host_t *hosts;
   SD_task_t task, seq_comp1, e2e_comm, seq_comp2;
   SD_task_t par_comp1, redist, par_comp2, par_comp3;
   xbt_dynar_t changed_tasks;
 
   double computation_amount[4];
   double communication_amount[16] = { 0 };
-  sg_host_t workstation_list[4];
-  
-  /* initialization of SD */
-  SD_init(&argc, argv);
+  sg_host_t host_list[4];
 
-  /*  xbt_log_control_set("sd.thres=debug"); */
+  SD_init(&argc, argv);
 
-  xbt_assert(argc > 1, "Usage: %s platform_file\n"
-            "\nExample: %s two_clusters.xml", argv[0], argv[0]);
+  xbt_assert(argc > 1, "Usage: %s platform_file\n\nExample: %s two_clusters.xml", argv[0], argv[0]);
+  SD_create_environment(argv[1]);
 
-  /* creation of the environment */
-  platform_file = argv[1];
-  SD_create_environment(platform_file);
-  workstations = sg_host_list();
+  hosts = sg_host_list();
 
   /* creation of some typed tasks and their dependencies */
   seq_comp1 = SD_task_create_comp_seq("Seq. comp. 1", NULL, 1e9);
@@ -57,36 +45,32 @@ int main(int argc, char **argv)
   SD_task_dependency_add(NULL, NULL, par_comp1, redist);
   SD_task_dependency_add(NULL, NULL, redist, par_comp2);
 
-  SD_task_schedulel(seq_comp1, 1, workstations[8]);
-  SD_task_schedulel(seq_comp2, 1, workstations[9]);
+  SD_task_schedulel(seq_comp1, 1, hosts[8]);
+  SD_task_schedulel(seq_comp2, 1, hosts[9]);
 
-  SD_task_schedulev(par_comp1, 4, workstations);
-  SD_task_schedulev(par_comp2, 3, workstations);
+  SD_task_schedulev(par_comp1, 4, hosts);
+  SD_task_schedulev(par_comp2, 3, hosts);
 
-  /* Let's unschedule these tasks and test the auto-scheduling in the
-   * opposite way.
-   */
+  /* Let's unschedule these tasks and test the auto-scheduling in the opposite way. */
   SD_task_unschedule(par_comp1);
   SD_task_unschedule(par_comp2);
   SD_task_unschedule(redist); /* yes, it was scheduled too */
 
-  SD_task_schedulev(par_comp2, 3, workstations);
-  SD_task_schedulev(par_comp1, 4, workstations);
+  SD_task_schedulev(par_comp2, 3, hosts);
+  SD_task_schedulev(par_comp1, 4, hosts);
 
   for (i=0;i<4;i++){
-    workstation_list[i]=workstations[i+4];
+    host_list[i]=hosts[i+4];
     /* Apply Amdahl's law manually assuming a 20% serial part */
     computation_amount[i]=(0.2 + (1 - 0.2)/4) * SD_task_get_amount(par_comp3);
   }
 
-  SD_task_schedule(par_comp3, 4, workstation_list,
-                   computation_amount, communication_amount, -1);
+  SD_task_schedule(par_comp3, 4, host_list, computation_amount, communication_amount, -1);
 
   changed_tasks = SD_simulate(-1.0);
   xbt_dynar_foreach(changed_tasks, ctr, task) {
-    XBT_INFO("Task '%s' start time: %f, finish time: %f",
-          SD_task_get_name(task),
-          SD_task_get_start_time(task), SD_task_get_finish_time(task));
+    XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task), SD_task_get_start_time(task),
+             SD_task_get_finish_time(task));
   }
 
   xbt_dynar_foreach(changed_tasks, ctr, task) {
diff --git a/examples/simdag/test_simdag.in b/examples/simdag/test_simdag.in
deleted file mode 100644 (file)
index d6e3291..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#! @BASH@ -e
-
-# Copyright (c) 2006, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-if [ x@EXEEXT@ = x ] ; then 
-  exenv=$SG_TEST_EXENV
-else
-  exenv=wine
-fi
-    
-$exenv ./sd_test@EXEEXT@ @top_srcdir@/examples/msg/small_platform.xml $@
index fd8d8cb..64d0267 100644 (file)
@@ -2,6 +2,6 @@
 
 p Simple test of simdag
 
-$ $SG_TEST_EXENV ./sd_test2 ${srcdir:=.}/2clusters.xml
+$ $SG_TEST_EXENV ./sd_test2 ${srcdir:=.}/../platforms/2clusters.xml
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [3.251960] [sd_test/INFO] Simulation time: 3.251960
index 42e8ffd..ef1a13b 100644 (file)
@@ -2,7 +2,7 @@
 
 p Test of the management of availability traces with simdag
 
-$ $SG_TEST_EXENV ${bindir:=.}/sd_avail two_hosts.xml
+$ $SG_TEST_EXENV ${bindir:=.}/sd_avail ${srcdir:=.}/../platforms/two_hosts.xml
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [1.000000] [sd_avail/INFO] link1: bw=125000000, lat=0.000100
 > [1.000000] [sd_avail/INFO] Jupiter: speed=12500000
index fe2dd56..e754362 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 p Modify the rate of communication tasks even when they are auto-scheduled
 
-$ $SG_TEST_EXENV ./sd_comm_throttling --cfg=network/TCP_gamma:4194304 ${srcdir:=.}/2clusters.xml
+$ $SG_TEST_EXENV ./sd_comm_throttling --cfg=network/TCP_gamma:4194304 ${srcdir:=.}/../platforms/2clusters.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [1.000000] [sd_comm_throttling/INFO] Simulation stopped after 1.0000 seconds
index d4ec528..3fa3c09 100644 (file)
@@ -2,10 +2,10 @@
 
 p Test of the management of failed tasks simdag
 
-$ $SG_TEST_EXENV ${bindir:=.}/sd_fail
+$ $SG_TEST_EXENV ${bindir:=.}/sd_fail ${srcdir:=.}/../platforms/faulty_host.xml
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [0.000000] [sd_fail/INFO] First test: COMP_SEQ task
-> [0.000000] [sd_fail/INFO] Schedule task 'Poor task' on workstation 'Faulty Host'
+> [0.000000] [sd_fail/INFO] Schedule task 'Poor task' on 'Faulty Host'
 > [10.000000] [sd_task/INFO] Displaying task Poor task
 > [10.000000] [sd_task/INFO]   - state: not runnable failed
 > [10.000000] [sd_task/INFO]   - kind: sequential computation
@@ -21,7 +21,7 @@ $ $SG_TEST_EXENV ${bindir:=.}/sd_fail
 > [50.000000] [sd_task/INFO]   - Dependencies to satisfy: 0
 > [50.000000] [sd_fail/INFO] Task 'Poor task' start time: 10.000000, finish time: 50.000000
 > [50.000000] [sd_fail/INFO] Second test: NON TYPED task
-> [50.000000] [sd_fail/INFO] Schedule task 'Poor parallel task' on workstation 'Faulty Host'
+> [50.000000] [sd_fail/INFO] Schedule task 'Poor parallel task' on 'Faulty Host'
 > [60.000000] [sd_task/INFO] Displaying task Poor parallel task
 > [60.000000] [sd_task/INFO]   - state: not runnable failed
 > [60.000000] [sd_task/INFO]   - amount: 20000000000
index e9bc8fb..1435468 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 p Usage test of simdag's typed tasks
 
-$ $SG_TEST_EXENV ./sd_typed_tasks_test --cfg=network/TCP_gamma:4194304 ${srcdir:=.}/2clusters.xml
+$ $SG_TEST_EXENV ./sd_typed_tasks_test --cfg=network/TCP_gamma:4194304 ${srcdir:=.}/../platforms/2clusters.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
 > [2.080300] [sd_typed_tasks_test/INFO] Task 'Seq. comp. 1' start time: 0.000000, finish time: 1.000000
diff --git a/examples/simdag/two_hosts.xml b/examples/simdag/two_hosts.xml
deleted file mode 100644 (file)
index 0065192..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-   <AS  id="AS0"  routing="Full">
-     <host id="Tremblay" power="25Mf"/>
-     <host id="Jupiter" power="25Mf" 
-           availability_file="jupiter_power.trace"/>
-
-     <link id="1" bandwidth="125MBps" latency="100us" 
-           bandwidth_file="link1_avail.trace"/>
-     
-     <route src="Tremblay" dst="Jupiter">
-       <link_ctn id="1"/>
-     </route>
-   </AS>
-
-   <trace id="Tremblay_power" periodicity="6.0">
-     1.0 0.5
-     4.0 1.0
-   </trace>
-
-   <trace_connect trace="Tremblay_power" element="Tremblay" kind="POWER"/>
-</platform>  
index ddd72c8..6476a6b 100644 (file)
@@ -10,7 +10,6 @@ if(enable_smpi)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mc/")
 
-
   add_executable(bcbench bcbench.c)
   add_executable(mvmul mvmul.c)
   add_executable(smpi_traced tracing/smpi_traced.c)
@@ -43,7 +42,7 @@ if(enable_smpi)
     target_link_libraries(smpi_non_termination2 simgrid)
     target_link_libraries(smpi_non_termination3 simgrid)
     target_link_libraries(smpi_non_termination4 simgrid)
-    
+
     set_target_properties(smpi_bugged1 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
     set_target_properties(smpi_bugged2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
     set_target_properties(smpi_bugged1_liveness PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
@@ -53,21 +52,14 @@ if(enable_smpi)
     set_target_properties(smpi_non_termination2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
     set_target_properties(smpi_non_termination3 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
     set_target_properties(smpi_non_termination4 PROPERTIES RUNTIME_OUTPUT_DIRECTORY "./mc")
-    
   endif()
-  
 endif()
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/tracing/smpi_traced.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/smpi_replay.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/mvmul.c
@@ -84,8 +76,7 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/non_termination2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/non_termination3.c
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/non_termination4.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
@@ -96,8 +87,7 @@ set(bin_files
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/hostfile_only_send_deterministic
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/hostfile_mutual_exclusion
   ${CMAKE_CURRENT_SOURCE_DIR}/mc/hostfile_non_termination
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions0.txt
@@ -114,5 +104,4 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_waitall.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions_with_isend.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/replay/split_traces
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index ea5eac3..ec352cc 100644 (file)
@@ -5,19 +5,13 @@ if(enable_smpi)
 
   if(NOT WIN32)
     add_executable(MM_mpi MM_mpi.c 2.5D_MM.c Summa.c Matrix_init.c)
-    ### Add definitions for compile
     target_link_libraries(MM_mpi simgrid pthread)
   endif()
 endif()
 
 set(tesh_files
   ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/MM_mpi.c
@@ -27,13 +21,4 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/2.5D_MM.h
   ${CMAKE_CURRENT_SOURCE_DIR}/Summa.h
   ${CMAKE_CURRENT_SOURCE_DIR}/Matrix_init.h
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 871f83e..d59b122 100644 (file)
@@ -81,44 +81,44 @@ int main(int argc, char ** argv)
       case 'h':
         XBT_INFO(
                     "Usage: mxm_cblas_test [options]\n"
-                    "  -M I    M size (default: %zu)\n"
-                    "  -N I    N size (default: %zu)\n"
-                    "  -K I    K size (default: %zu)\n"
-                    "  -B I    Block size on the k dimension(default: %zu)\n"
-                    "  -G I    Number of processor groups(default: %zu)\n"
-                    "  -g I    group index(default: %zu)\n"
-                    "  -k I    group rank(default: %zu)\n"
-                    "  -r I    processor row size (default: %zu)\n"
-                    "  -c I    processor col size (default: %zu)\n"
-                    "  -h      help\n",
+                    "  -M I  M size (default: %zu)\n"
+                    "  -N I  N size (default: %zu)\n"
+                    "  -K I  K size (default: %zu)\n"
+                    "  -B I  Block size on the k dimension (default: %zu)\n"
+                    "  -G I  Number of processor groups (default: %zu)\n"
+                    "  -g I  group index (default: %zu)\n"
+                    "  -k I  group rank (default: %zu)\n"
+                    "  -r I  processor row size (default: %zu)\n"
+                    "  -c I  processor col size (default: %zu)\n"
+                    "  -h  help\n",
                     m, n, k, Block_size, NB_groups, group, key, row, col);
         return 0;
       case 'M':
-        m = atoi(optarg);
+        m = xbt_str_parse_int(optarg, "Invalid M size: %s");
         break;
       case 'N':
-        n   = atoi(optarg);
+        n = xbt_str_parse_int(optarg, "Invalid N size: %s");
         break;
       case 'K':
-        k  = atoi(optarg);
+        k = xbt_str_parse_int(optarg, "Invalid K size: %s");
         break;
       case 'B':
-        Block_size = atoi(optarg);
+        Block_size = xbt_str_parse_int(optarg, "Invalid block size: %s");
         break;
       case 'G':
-        NB_groups = atoi(optarg);
+        NB_groups = xbt_str_parse_int(optarg, "Invalid number of processor groups: %s");
         break;
       case 'g':
-        group = atoi(optarg);
+        group = xbt_str_parse_int(optarg, "Invalid group index: %s");
         break;
       case 'k':
-        key = atoi(optarg);
+        key = xbt_str_parse_int(optarg, "Invalid group rank: %s");
         break;
       case 'r':
-        size_row = atoi(optarg);
+        size_row = xbt_str_parse_int(optarg, "Invalid processor row size: %s");
         break;
       case 'c':
-        size_col = atoi(optarg);
+        size_col = xbt_str_parse_int(optarg, "Invalid processor col size: %s");
         break;
         /*case 'P':
           str_mask = strdup(optarg);
index f21a8a6..cfcfea5 100644 (file)
@@ -1,30 +1,19 @@
-SHELL=/bin/sh
 BENCHMARK=dt
-
 include ../config/make.def
-
 include ../sys/make.common
-#Override PROGRAM
-DTPROGRAM  = $(BINDIR)/$(BENCHMARK).$(CLASS)
-
-OBJS = dt.o  DGraph.o \
-       ${COMMON}/c_print_results.o ${COMMON}/c_timers.o ${COMMON}/c_randdp.o
-
-OBJS-F = dt-folding.o DGraph.o \
-       ${COMMON}/c_print_results.o ${COMMON}/c_timers.o ${COMMON}/c_randdp.o
 
+OBJS = DGraph.o ${COMMON}/c_print_results.o ${COMMON}/c_timers.o ${COMMON}/randdp.o
 
-${PROGRAM}: config ${OBJS} ${OBJS-F}
-       ${CLINK} ${CLINKFLAGS} -o ${DTPROGRAM} ${OBJS} ${CMPI_LIB}
-       ${CLINK} ${CLINKFLAGS} -o ${DTPROGRAM}-folding ${OBJS-F} ${CMPI_LIB}
+${PROGRAM}: config dt.o dt-folding.o ${OBJS}
+       ${CLINK} ${CLINKFLAGS} -o $(BINDIR)/dt.${CLASS} dt.o ${OBJS} ${CMPI_LIB}
+       ${CLINK} ${CLINKFLAGS} -o ${BINDIR}/dt-folding.${CLASS} dt-folding.o ${OBJS} ${CMPI_LIB}
 
 .c.o:
        ${CCOMPILE} $<
 
-dt.o:             dt.c  npbparams.h
-dt-folding.o:     dt-folding.c  npbparams.h
-DGraph.o:      DGraph.c DGraph.h
+dt.o:             dt.c npbparams.h
+dt-folding.o:     dt-folding.c npbparams.h
+DGraph.o:         DGraph.c DGraph.h
 
 clean:
-       - rm -f *.o *~ mputil*
-       - rm -f dt dt-folding npbparams.h
+       - rm -f *.o *~ npbparams.h
index 3387d73..3d38c27 100644 (file)
@@ -1,26 +1,15 @@
-SHELL=/bin/sh
 BENCHMARK=ep
-BENCHMARKU=EP
-
 include ../config/make.def
-
-OBJS = ep.o randlc.o
-OBJS-S = ep-sampling.o randlc.o
-
 include ../sys/make.common
 
-${PROGRAM}: config ${OBJS} ${OBJS-S}
-       ${CLINK} ${CLINKFLAGS} -o ${PROGRAM} ${OBJS} ${CMPI_LIB} -lm
-       ${CLINK} ${CLINKFLAGS} -o ${PROGRAM}-sampling ${OBJS-S} ${CMPI_LIB} -lm
+${PROGRAM}: config ep.o ep-sampling.o ../common/randdp.o
+       ${CLINK} ${CLINKFLAGS} -o ${BINDIR}/ep.${CLASS}.${NPROCS} ep.o ../common/randdp.o ${CMPI_LIB} -lm
+       ${CLINK} ${CLINKFLAGS} -o ${BINDIR}/ep-sampling.${CLASS}.${NPROCS} ep-sampling.o ../common/randdp.o ${CMPI_LIB} -lm
 
-ep.o:  ep.c randlc.c mpinpb.h npbparams.h
+ep.o:  ep.c npbparams.h
        ${CCOMPILE} ep.c
-ep-sampling.o: ep-sampling.c randlc.c mpinpb.h npbparams.h
+ep-sampling.o: ep-sampling.c npbparams.h
        ${CCOMPILE} ep-sampling.c
 
 clean:
-       - rm -f *.o *~ 
-       - rm -f npbparams.h
-
-
-
+       - rm -f *.o *~ npbparams.h
diff --git a/examples/smpi/NAS/EP/README b/examples/smpi/NAS/EP/README
deleted file mode 100644 (file)
index 6eb3657..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-This code implements the random-number generator described in the
-NAS Parallel Benchmark document RNR Technical Report RNR-94-007.
-The code is "embarrassingly" parallel in that no communication is
-required for the generation of the random numbers itself. There is
-no special requirement on the number of processors used for running
-the benchmark.
index 01bd4c7..c5956b6 100644 (file)
@@ -6,8 +6,6 @@
 #include "mpi.h"
 #include "npbparams.h"
 
-#include "randlc.h"
-
 #ifndef CLASS
 #define CLASS 'S'
 #define NUM_PROCS            1                 
index 685fdca..569c2f2 100644 (file)
@@ -8,8 +8,6 @@
 
 #include "simgrid/instr.h" //TRACE_
 
-#include "randlc.h"
-
 #ifndef CLASS
 #define CLASS 'S'
 #define NUM_PROCS            1                 
diff --git a/examples/smpi/NAS/EP/mpinpb.h b/examples/smpi/NAS/EP/mpinpb.h
deleted file mode 100644 (file)
index 1f13637..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-c---------------------------------------------------------------------
-c---------------------------------------------------------------------
-
-      include 'mpif.h'
-
-      integer           me, nprocs, root, dp_type
-      common /mpistuff/ me, nprocs, root, dp_type
-
diff --git a/examples/smpi/NAS/EP/randlc.c b/examples/smpi/NAS/EP/randlc.c
deleted file mode 100644 (file)
index 4de6c93..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-
-/*
- *    FUNCTION RANDLC (X, A)
- *
- *  This routine returns a uniform pseudorandom double precision number in the
- *  range (0, 1) by using the linear congruential generator
- *
- *  x_{k+1} = a x_k  (mod 2^46)
- *
- *  where 0 < x_k < 2^46 and 0 < a < 2^46.  This scheme generates 2^44 numbers
- *  before repeating.  The argument A is the same as 'a' in the above formula,
- *  and X is the same as x_0.  A and X must be odd double precision integers
- *  in the range (1, 2^46).  The returned value RANDLC is normalized to be
- *  between 0 and 1, i.e. RANDLC = 2^(-46) * x_1.  X is updated to contain
- *  the new seed x_1, so that subsequent calls to RANDLC using the same
- *  arguments will generate a continuous sequence.
- *
- *  This routine should produce the same results on any computer with at least
- *  48 mantissa bits in double precision floating point data.  On Cray systems,
- *  double precision should be disabled.
- *
- *  David H. Bailey     October 26, 1990
- *
- *     IMPLICIT DOUBLE PRECISION (A-H, O-Z)
- *     SAVE KS, R23, R46, T23, T46
- *     DATA KS/0/
- *
- *  If this is the first call to RANDLC, compute R23 = 2 ^ -23, R46 = 2 ^ -46,
- *  T23 = 2 ^ 23, and T46 = 2 ^ 46.  These are computed in loops, rather than
- *  by merely using the ** operator, in order to insure that the results are
- *  exact on all systems.  This code assumes that 0.5D0 is represented exactly.
- */
-
-
-/*****************************************************************/
-/*************           R  A  N  D  L  C             ************/
-/*************                                        ************/
-/*************    portable random number generator    ************/
-/*****************************************************************/
-
-double  randlc( double *X, double *A )
-{
-      static int        KS=0;
-      static double  R23, R46, T23, T46;
-      double    T1, T2, T3, T4;
-      double    A1;
-      double    A2;
-      double    X1;
-      double    X2;
-      double    Z;
-      int         i, j;
-
-      if (KS == 0) 
-      {
-        R23 = 1.0;
-        R46 = 1.0;
-        T23 = 1.0;
-        T46 = 1.0;
-    
-        for (i=1; i<=23; i++)
-        {
-          R23 = 0.50 * R23;
-          T23 = 2.0 * T23;
-        }
-        for (i=1; i<=46; i++)
-        {
-          R46 = 0.50 * R46;
-          T46 = 2.0 * T46;
-        }
-        KS = 1;
-      }
-
-/*  Break A into two parts such that A = 2^23 * A1 + A2 and set X = N.  */
-
-      T1 = R23 * *A;
-      j  = T1;
-      A1 = j;
-      A2 = *A - T23 * A1;
-
-/*  Break X into two parts such that X = 2^23 * X1 + X2, compute
-    Z = A1 * X2 + A2 * X1  (mod 2^23), and then
-    X = 2^23 * Z + A2 * X2  (mod 2^46).                            */
-
-      T1 = R23 * *X;
-      j  = T1;
-      X1 = j;
-      X2 = *X - T23 * X1;
-      T1 = A1 * X2 + A2 * X1;
-      
-      j  = R23 * T1;
-      T2 = j;
-      Z = T1 - T23 * T2;
-      T3 = T23 * Z + A2 * X2;
-      j  = R46 * T3;
-      T4 = j;
-      *X = T3 - T46 * T4;
-      return(R46 * *X);
-} 
-
-
-
-/*****************************************************************/
-/************   F  I  N  D  _  M  Y  _  S  E  E  D    ************/
-/************                                         ************/
-/************ returns parallel random number seq seed ************/
-/*****************************************************************/
-
diff --git a/examples/smpi/NAS/EP/randlc.h b/examples/smpi/NAS/EP/randlc.h
deleted file mode 100644 (file)
index aff84d3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-double      randlc( double *X, double *A );
-
index 26d35e8..bfdc3ed 100644 (file)
@@ -1,23 +1,17 @@
-SHELL=/bin/sh
 BENCHMARK=is
-BENCHMARKU=IS
 
 include ../config/make.def
-
 include ../sys/make.common
 
 OBJS = is.o ${COMMON}/c_print_results.o
 
-
-${PROGRAM}: config ${OBJS}
+${PROGRAM}: config ${OBJS} 
        ${CLINK} ${CLINKFLAGS} -o ${PROGRAM} ${OBJS} ${CMPI_LIB}
 
-.c.o:
+.c.o: 
        ${CCOMPILE} $<
 
-is.o:             is.c  npbparams.h
-
+is.o: is.c npbparams.h
 
 clean:
-       - rm -f *.o *~ mputil*
-       - rm -f is npbparams.h core
+       - rm -f *.o *~ is npbparams.h
index ae04d5e..a157254 100644 (file)
@@ -1,42 +1,24 @@
 SHELL=/bin/sh
 CLASS=S
 NPROCS=1
-SUBTYPE=
-VERSION=
-SFILE=config/suite.def
-
-default: header
+default:
        @ sys/print_instructions
 
 IS: is
-is: header
+is: 
        cd IS; $(MAKE) NPROCS=$(NPROCS) CLASS=$(CLASS)
 
-
 EP: ep
-ep: header
+ep:
        cd EP; $(MAKE) NPROCS=$(NPROCS) CLASS=$(CLASS)
 
 DT: dt
-dt: header
+dt: 
        cd DT; $(MAKE) CLASS=$(CLASS)
 
-# Awk script courtesy cmg@cray.com, modified by Haoqiang Jin
-suite:
-       @ awk -f sys/suite.awk SMAKE=$(MAKE) $(SFILE) | $(SHELL)
-
-
-# It would be nice to make clean in each subdirectory (the targets
-# are defined) but on a really clean system this will won't work
-# because those makefiles need config/make.def
 clean:
        - rm -f *~  */*~ */*.o */npbparams.h 
-       - rm -f sys/setparams sys/makesuite sys/setparams.h
+       - rm -f sys/setparams sys/setparams.h
 
 veryclean: clean
-       - rm -f config/make.def config/suite.def 
-       - rm -f bin/is.* bin/ep.* bin/dt.*
-
-header:
-       @ sys/print_header
-
+       - rm -f bin/*
\ No newline at end of file
diff --git a/examples/smpi/NAS/README b/examples/smpi/NAS/README
deleted file mode 100644 (file)
index a80f5d6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-*** Warning ***
-
-This version of benchmarks IS, DT and EP contain special
-tweaks to work with SMPI.
-
-
-
-The MPI implementation of NPB 3.3 (NPB3.3-MPI)
---------------------------------------------------
-
-For problem reports and suggestions on the implementation, 
-please contact:
-
-   NAS Parallel Benchmark Team
-   npb@nas.nasa.gov
-
-   http://www.nas.nasa.gov/Software/NPB
-
-
-This directory contains the MPI implementation of the NAS
-Parallel Benchmarks, Version 3.3 (NPB3.3-MPI).  A brief
-summary of the new features introduced in this version is
-given below.
-
-For changes from different versions, see the Changes.log file
-included in the upper directory of this distribution.
-
-For explanation of compilation and running of the benchmarks,
-please refer to README.install.  For a special note on DT, please
-see the README file in the DT subdirectory.
-
-
-New features in NPB3.3-MPI:
-  * NPB3.3-MPI introduces a new problem size (class E) to seven of  
-    the benchmarks (BT, SP, LU, CG, MG, FT, and EP).  The version 
-    also includes a new problem size (class D) for the IS benchmark, 
-    which was not present in the previous releases.
-
-  * The release is merged with the vector codes for the BT and LU
-    benchmarks, which can be selected with the VERSION=VEC option
-    during compilation.  However, it should be noted that successful
-    vectorization highly depends on the compiler used.  Some changes
-    to compiler directives for vectorization in the current codes
-    (see *_vec.f files) may be required.
-
-  * New improvements to BTIO (BT with IO subtypes):
-    - added I/O stats (I/O timing, data size written, I/O data rate)
-    - added an option for interleaving reads between writes through
-      the inputbt.data file.  Although the data file size would be
-      smaller as a result, the total amount of data written is still
-      the same.
-
index 47a3139..e999d29 100644 (file)
-Some explanations on the MPI implementation of NPB 3.3 (NPB3.3-MPI)
+Some explanations on the MPI implementation of a subset of NPB 3.3 (NPB3.3-MPI)
 ----------------------------------------------------------------------
 
 NPB-MPI is a sample MPI implementation based on NPB2.4 and NPB3.0-SER.
-This implementation contains all eight original benchmarks:
-Seven in Fortran: BT, SP, LU, FT, CG, MG, and EP; one in C: IS,
-as well as the DT benchmark, written in C, introduced in NPB3.2-MPI.
-
-For changes from different versions, see the Changes.log file
-included in the upper directory of this distribution.
-
-This version has been tested, among others, on an SGI Origin3000 and
-an SGI Altix.  For problem reports and suggestions on the implementation, 
-please contact
-
-   NAS Parallel Benchmark Team
-   npb@nas.nasa.gov
-
-
-CAUTION *********************************
-When running the I/O benchmark, one or more data files will be written
-in the directory from which the executable is invoked. They are not
-deleted at the end of the program. A new run will overwrite the old
-file(s). If not enough space is available in the user partition, the
-program will fail. For classes C and D the disk space required is
-3 GB and 135 GB, respectively.
-*****************************************
-
+This subset contains three of the original benchmarks: one in Fortran: EP; 
+one in C: IS, as well as the DT benchmark, written in C, introduced in NPB3.2-MPI.
 
 1. Compilation
 
-   NPB3-MPI uses the same directory tree as NPB3-SER (and NPB2.x) does.
    Before compilation, one needs to check the configuration file
    'make.def' in the config directory and modify the file if necessary.  
-   If it does not (yet) exist, copy 'make.def.template' or one of the
-   sample files in the NAS.samples subdirectory to 'make.def' and
-   edit the content for site- and machine-specific data.  Then
 
        make <benchmark-name> NPROCS=<number> CLASS=<class> \
          [SUBTYPE=<type>] [VERSION=VEC]
 
-   where <benchmark-name>  is "bt", "cg", "dt", "ep", "ft", "is", 
-                              "lu", "mg", or "sp"
+   where <benchmark-name>  is  "dt", "ep", or "is",
          <number>          is the number of processes
          <class>           is "S", "W", "A", "B", "C", "D", or "E"
 
-   Classes C, D and E are not available for DT.
-   Class E is not available for IS.
-
-   The "VERSION=VEC" option is used for selecting the vectorized 
-   versions of BT and LU.
-
-   Only when making the I/O benchmark:
-         <benchmark-name>  is "bt"
-         <number>, <class> as above
-         <type>            is "full", "simple", "fortran", or "epio"
-
-   Three parameters not used in the original BT benchmark are present in
-   the I/O benchmark. Two are set by default in the file BT/bt.f. 
-   Changing them is optional.
-   One is set in make.def. It must be specified.
-
-   bt.f: collbuf_nodes: number of processes used to buffer data before
-                        writing to file in the collective buffering mode
-                        (<type> is "full").
-         collbuf_size:  size of buffer (in bytes) per process used in
-                        collective buffering
-
-   make.def: -DFORTRAN_REC_SIZE: Fortran I/O record length in bytes. This
-                        is a system-specific value. It is part of the
-                        definition string of variable CONVERTFLAG. Syntax:
-                        "CONVERTFLAG = -DFORTRAN_REC_SIZE=n", where n is
-                        the record length.
-
-   When <type> is "full" or "simple", the code must be linked with an
-   MPI library that contains the subset of IO routines defined in MPI 2.
-
+   Class E is not available for IS and DT.
 
    Class D for IS (Integer Sort) requires a compiler/system that 
-   supports the "long" type in C to be 64-bit.  As examples, the SGI 
-   MIPS compiler for the SGI Origin using the "-64" compilation flag and
-   the Intel compiler for IA64 are known to work.
-
-
-   The above procedure allows you to build one benchmark
-   at a time. To build a whole suite, you can type "make suite"
-   Make will look in file "config/suite.def" for a list of 
-   executables to build. The file contains one line per specification, 
-   with comments preceded by "#". Each line contains the name
-   of a benchmark, the class, and the number of processors, separated
-   by spaces or tabs. config/suite.def.template contains an example
-   of such a file.
-
-
-   The benchmarks have been designed so that they can be run
-   on a single processor without an MPI library. A few "dummy" 
-   MPI routines are still required for linking. For convenience
-   such a library is supplied in the "MPI_dummy" subdirectory of
-   the distribution. It contains an mpif.h and mpi.f include files
-   which must be used as well. The dummy library is built and
-   linked automatically and paths to the include files are defined
-   by inserting the line "include ../config/make.dummy" into the
-   make.def file (see example in make.def.template). Make sure to 
-   read the warnings in the README file in "MPI_dummy".The use of
-   the library is fragile and can produce unexpected errors.
-
-
-   ================================
-   
-   The "RAND" variable in make.def
-   --------------------------------
-   
-   Most of the NPBs use a random number generator. In two of the NPBs (FT
-   and EP) the computation of random numbers is included in the timed
-   part of the calculation, and it is important that the random number
-   generator be efficient.  The default random number generator package
-   provided is called "randi8" and should be used where possible. It has 
-   the following requirements:
-   
-   randi8:
-     1. Uses integer*8 arithmetic. Compiler must support integer*8
-     2. Uses the Fortran 90 IAND intrinsic. Compiler must support IAND.
-     3. Assumes overflow bits are discarded by the hardware. In particular, 
-        that the lowest 46 bits of a*b are always correct, even if the 
-        result a*b is larger than 2^64. 
-   
-   Since randi8 may not work on all machines, we supply the following
-   alternatives:
-   
-   randi8_safe
-     1. Uses integer*8 arithmetic
-     2. Uses the Fortran 90 IBITS intrinsic. 
-     3. Does not make any assumptions about overflow. Should always
-        work correctly if compiler supports integer*8 and IBITS. 
-   
-   randdp
-     1. Uses double precision arithmetic (to simulate integer*8 operations). 
-        Should work with any system with support for 64-bit floating
-        point arithmetic.      
-   
-   randdpvec
-     1. Similar to randdp but written to be easier to vectorize. 
-   
-   
+   supports the "long" type in C to be 64-bit.  
 2. Execution
 
-   The executable is named <benchmark-name>.<class>.<nprocs>[.<suffix>],
-   where <suffix> is "fortran_io", "mpi_io_simple",  "ep_io", or 
-                     "mpi_io_full"
+   The executable is named <benchmark-name>.<class>.<nprocs>
    The executable is placed in the bin subdirectory (or in the directory 
    BINDIR specified in make.def, if you've defined it). The method for 
    running the MPI program depends on your local system.
-   When any of the I/O benchmarks is run (non-empty subtype), one or 
-   more output files are created, and placed in the directory from which
-   the program was started. These are not removed automatically, and 
-   will be overwritten the next time an IO benchmark is run.
index 14a9d88..942c370 100644 (file)
@@ -1,34 +1,11 @@
-/*****************************************************************/
-/******     C  _  P  R  I  N  T  _  R  E  S  U  L  T  S     ******/
-/*****************************************************************/
 #include <stdlib.h>
 #include <stdio.h>
 
-void c_print_results( char   *name,
-                      char   class,
-                      int    n1, 
-                      int    n2,
-                      int    n3,
-                      int    niter,
-                      int    nprocs_compiled,
-                      int    nprocs_total,
-                      double t,
-                      double mops,
-          char   *optype,
-                      int    passed_verification,
-                      char   *npbversion,
-                      char   *compiletime,
-                      char   *mpicc,
-                      char   *clink,
-                      char   *cmpi_lib,
-                      char   *cmpi_inc,
-                      char   *cflags,
-                      char   *clinkflags )
+void c_print_results(char *name, char class, int n1, int n2, int n3, int niter, int nprocs_compiled, int nprocs_total,
+                     double t, double mops, char *optype, int passed_verification, char *npbversion, char *compiletime,
+                     char *mpicc, char *clink, char *cmpi_lib, char *cmpi_inc, char *cflags, char *clinkflags)
 {
-    char *evalue="1000";
-
     printf( "\n\n %s Benchmark Completed\n", name ); 
-
     printf( " Class           =                        %c\n", class );
 
     if( n3 == 0 ) {
@@ -40,18 +17,14 @@ void c_print_results( char   *name,
         printf( " Size            =              %3dx %3dx %3d\n", n1,n2,n3 );
 
     printf( " Iterations      =             %12d\n", niter );
     printf( " Time in seconds =             %12.2f\n", t );
-
     printf( " Total processes =             %12d\n", nprocs_total );
 
     if ( nprocs_compiled != 0 )
         printf( " Compiled procs  =             %12d\n", nprocs_compiled );
 
     printf( " Mop/s total     =             %12.2f\n", mops );
-
     printf( " Mop/s/process   =             %12.2f\n", mops/((float) nprocs_total) );
-
     printf( " Operation type  = %24s\n", optype);
 
     if( passed_verification )
@@ -60,27 +33,14 @@ void c_print_results( char   *name,
         printf( " Verification    =             UNSUCCESSFUL\n" );
 
     printf( " Version         =             %12s\n", npbversion );
-
     printf( " Compile date    =             %12s\n", compiletime );
-
     printf( "\n Compile options:\n" );
-
     printf( "    MPICC        = %s\n", mpicc );
-
     printf( "    CLINK        = %s\n", clink );
-
     printf( "    CMPI_LIB     = %s\n", cmpi_lib );
-
     printf( "    CMPI_INC     = %s\n", cmpi_inc );
-
     printf( "    CFLAGS       = %s\n", cflags );
-
     printf( "    CLINKFLAGS   = %s\n", clinkflags );
-#ifdef SMP
-    evalue = getenv("MP_SET_NUMTHREADS");
-    printf( "   MULTICPUS = %s\n", evalue );
-#endif
-
     printf( "\n\n" );
     printf( " Please send the results of this run to:\n\n" );
     printf( " NPB Development Team\n" );
@@ -91,4 +51,3 @@ void c_print_results( char   *name,
     printf( " Moffett Field, CA  94035-1000\n\n" );
     printf( " Fax: 650-604-3957\n\n" );
 }
index c8c81e7..a3af153 100644 (file)
@@ -1,43 +1,25 @@
-
 #include "mpi.h"
 
 double start[64], elapsed[64];
 
-/*****************************************************************/
-/******            T  I  M  E  R  _  C  L  E  A  R          ******/
-/*****************************************************************/
 void timer_clear( int n )
 {
     elapsed[n] = 0.0;
 }
 
-
-/*****************************************************************/
-/******            T  I  M  E  R  _  S  T  A  R  T          ******/
-/*****************************************************************/
 void timer_start( int n )
 {
     start[n] = MPI_Wtime();
 }
 
-
-/*****************************************************************/
-/******            T  I  M  E  R  _  S  T  O  P             ******/
-/*****************************************************************/
 void timer_stop( int n )
 {
     double t, now;
-
     now = MPI_Wtime();
     t = now - start[n];
     elapsed[n] += t;
-
 }
 
-
-/*****************************************************************/
-/******            T  I  M  E  R  _  R  E  A  D             ******/
-/*****************************************************************/
 double timer_read( int n )
 {
     return( elapsed[n] );
index 0390135..554d6b6 100644 (file)
@@ -1,64 +1,81 @@
-//---------------------------------------------------------------------
-//   This function is C verson of random number generator randdp.f 
-//---------------------------------------------------------------------
-
-double  randlc(X, A)
-double *X;
-double *A;
+/*
+ *    FUNCTION RANDLC (X, A)
+ *
+ *  This routine returns a uniform pseudorandom double precision number in the
+ *  range (0, 1) by using the linear congruential generator
+ *
+ *  x_{k+1} = a x_k  (mod 2^46)
+ *
+ *  where 0 < x_k < 2^46 and 0 < a < 2^46.  This scheme generates 2^44 numbers
+ *  before repeating.  The argument A is the same as 'a' in the above formula,
+ *  and X is the same as x_0.  A and X must be odd double precision integers
+ *  in the range (1, 2^46).  The returned value RANDLC is normalized to be
+ *  between 0 and 1, i.e. RANDLC = 2^(-46) * x_1.  X is updated to contain
+ *  the new seed x_1, so that subsequent calls to RANDLC using the same
+ *  arguments will generate a continuous sequence.
+ *
+ *  This routine should produce the same results on any computer with at least
+ *  48 mantissa bits in double precision floating point data.  On Cray systems,
+ *  double precision should be disabled.
+ *
+ *  David H. Bailey     October 26, 1990
+ *
+ *     IMPLICIT DOUBLE PRECISION (A-H, O-Z)
+ *     SAVE KS, R23, R46, T23, T46
+ *     DATA KS/0/
+ *
+ *  If this is the first call to RANDLC, compute R23 = 2 ^ -23, R46 = 2 ^ -46,
+ *  T23 = 2 ^ 23, and T46 = 2 ^ 46.  These are computed in loops, rather than
+ *  by merely using the ** operator, in order to insure that the results are
+ *  exact on all systems.  This code assumes that 0.5D0 is represented exactly.
+ */
+double  randlc(double *X, double*A)
 {
-      static int        KS=0;
-      static double  R23, R46, T23, T46;
-      double    T1, T2, T3, T4;
-      double    A1;
-      double    A2;
-      double    X1;
-      double    X2;
-      double    Z;
-      int         i, j;
+  static int        KS=0;
+  static double  R23, R46, T23, T46;
+  double    T1, T2, T3, T4;
+  double    A1, A2;
+  double    X1, X2;
+  double    Z;
+  int       i, j;
 
-      if (KS == 0) 
-      {
-        R23 = 1.0;
-        R46 = 1.0;
-        T23 = 1.0;
-        T46 = 1.0;
-    
-        for (i=1; i<=23; i++)
-        {
-          R23 = 0.50 * R23;
-          T23 = 2.0 * T23;
-        }
-        for (i=1; i<=46; i++)
-        {
-          R46 = 0.50 * R46;
-          T46 = 2.0 * T46;
-        }
-        KS = 1;
-      }
+  if (KS == 0) {
+    R23 = 1.0;
+    R46 = 1.0;
+    T23 = 1.0;
+    T46 = 1.0;
 
-/*  Break A into two parts such that A = 2^23 * A1 + A2 and set X = N.  */
+    for (i=1; i<=23; i++) {
+      R23 = 0.50 * R23;
+      T23 = 2.0 * T23;
+    }
+    for (i=1; i<=46; i++) {
+      R46 = 0.50 * R46;
+      T46 = 2.0 * T46;
+    }
+    KS = 1;
+  }
 
-      T1 = R23 * *A;
-      j  = T1;
-      A1 = j;
-      A2 = *A - T23 * A1;
+/*  Break A into two parts such that A = 2^23 * A1 + A2 and set X = N.  */
+  T1 = R23 * *A;
+  j  = T1;
+  A1 = j;
+  A2 = *A - T23 * A1;
 
 /*  Break X into two parts such that X = 2^23 * X1 + X2, compute
-    Z = A1 * X2 + A2 * X1  (mod 2^23), and then
-    X = 2^23 * Z + A2 * X2  (mod 2^46).                            */
+    Z = A1 * X2 + A2 * X1  (mod 2^23), and then X = 2^23 * Z + A2 * X2  (mod 2^46). */
+  T1 = R23 * *X;
+  j  = T1;
+  X1 = j;
+  X2 = *X - T23 * X1;
+  T1 = A1 * X2 + A2 * X1;
 
-      T1 = R23 * *X;
-      j  = T1;
-      X1 = j;
-      X2 = *X - T23 * X1;
-      T1 = A1 * X2 + A2 * X1;
-      
-      j  = R23 * T1;
-      T2 = j;
-      Z = T1 - T23 * T2;
-      T3 = T23 * Z + A2 * X2;
-      j  = R46 * T3;
-      T4 = j;
-      *X = T3 - T46 * T4;
-      return(R46 * *X);
-} 
+  j  = R23 * T1;
+  T2 = j;
+  Z = T1 - T23 * T2;
+  T3 = T23 * Z + A2 * X2;
+  j  = R46 * T3;
+  T4 = j;
+  *X = T3 - T46 * T4;
+  return(R46 * *X);
+}
diff --git a/examples/smpi/NAS/config/NAS.samples/suite.def.ep b/examples/smpi/NAS/config/NAS.samples/suite.def.ep
deleted file mode 100644 (file)
index e2ca3cd..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-ep     S       1
-ep     S       2
-ep     S       4
-ep     S       8
-ep     S       16
-ep     A       1
-ep     A       2
-ep     A       4
-ep     A       8
-ep     A       16
-ep     A       32
-ep     A       64
-ep     A       128
-ep     B       1
-ep     B       2
-ep     B       4
-ep     B       8
-ep     B       16
-ep     B       32
-ep     B       64
-ep     B       128
-ep     C       1
-ep     C       2
-ep     C       4
-ep     C       8
-ep     C       16
-ep     C       32
-ep     C       64
-ep     C       128
diff --git a/examples/smpi/NAS/config/NAS.samples/suite.def.is b/examples/smpi/NAS/config/NAS.samples/suite.def.is
deleted file mode 100644 (file)
index 97e898d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-is     S       1
-is     S       2
-is     S       4
-is     S       8
-is     S       16
-is     A       1
-is     A       2
-is     A       4
-is     A       8
-is     A       16
-is     A       32
-is     A       64
-is     A       128
-is     B       1
-is     B       2
-is     B       4
-is     B       8
-is     B       16
-is     B       32
-is     B       64
-is     B       128
-is     C       1
-is     C       2
-is     C       4
-is     C       8
-is     C       16
-is     C       32
-is     C       64
-is     C       128
index f56b0f1..ad8f454 100644 (file)
@@ -8,58 +8,9 @@
 # Items in this file will need to be changed for each platform.
 #---------------------------------------------------------------------------
 
-#---------------------------------------------------------------------------
-# Parallel Fortran:
-#
-# For CG, EP, FT, MG, LU, SP and BT, which are in Fortran, the following must 
-# be defined:
-#
-# MPIF77     - Fortran compiler
-# FFLAGS     - Fortran compilation arguments
-# FMPI_INC   - any -I arguments required for compiling MPI/Fortran 
-# FLINK      - Fortran linker
-# FLINKFLAGS - Fortran linker arguments
-# FMPI_LIB   - any -L and -l arguments required for linking MPI/Fortran 
-# 
-# compilations are done with $(MPIF77) $(FMPI_INC) $(FFLAGS) or
-#                            $(MPIF77) $(FFLAGS)
-# linking is done with       $(FLINK) $(FMPI_LIB) $(FLINKFLAGS)
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
-# This is the fortran compiler used for MPI programs
-#---------------------------------------------------------------------------
-MPIF77 = smpiff
-# This links MPI fortran programs; usually the same as ${MPIF77}
-FLINK  = $(MPIF77)
-
-#---------------------------------------------------------------------------
-# These macros are passed to the linker to help link with MPI correctly
-#---------------------------------------------------------------------------
-FMPI_LIB  =
-
-#---------------------------------------------------------------------------
-# These macros are passed to the compiler to help find 'mpif.h'
-#---------------------------------------------------------------------------
-FMPI_INC =
-
-#---------------------------------------------------------------------------
-# Global *compile time* flags for Fortran programs
-#---------------------------------------------------------------------------
-FFLAGS = -O2
-
-#---------------------------------------------------------------------------
-# Global *link time* flags. Flags for increasing maximum executable 
-# size usually go here. 
-#---------------------------------------------------------------------------
-FLINKFLAGS = -O2
-
-
 #---------------------------------------------------------------------------
 # Parallel C:
 #
-# For IS, which is in C, the following must be defined:
-#
 # MPICC      - C compiler 
 # CFLAGS     - C compilation arguments
 # CMPI_INC   - any -I arguments required for compiling MPI/C 
@@ -77,7 +28,7 @@ FLINKFLAGS = -O2
 #---------------------------------------------------------------------------
 MPICC = smpicc
 # This links MPI C programs; usually the same as ${MPICC}
-CLINK  = $(MPICC)
+CLINK = $(MPICC)
 
 #---------------------------------------------------------------------------
 # These macros are passed to the linker to help link with MPI correctly
@@ -92,7 +43,7 @@ CMPI_INC =
 #---------------------------------------------------------------------------
 # Global *compile time* flags for C programs
 #---------------------------------------------------------------------------
-CFLAGS = -O2
+CFLAGS = -O2
 
 #---------------------------------------------------------------------------
 # Global *link time* flags. Flags for increasing maximum executable 
@@ -100,18 +51,6 @@ CFLAGS      = -O2
 #---------------------------------------------------------------------------
 CLINKFLAGS = -O2
 
-
-#---------------------------------------------------------------------------
-# MPI dummy library:
-#
-# Uncomment if you want to use the MPI dummy library supplied by NAS instead 
-# of the true message-passing library. The include file redefines several of
-# the above macros. It also invokes make in subdirectory MPI_dummy. Make 
-# sure that no spaces or tabs precede include.
-#---------------------------------------------------------------------------
-# include ../config/make.dummy
-
-
 #---------------------------------------------------------------------------
 # Utilities C:
 #
@@ -121,42 +60,14 @@ CLINKFLAGS = -O2
 #---------------------------------------------------------------------------
 CC     = gcc -g
 
-
 #---------------------------------------------------------------------------
 # Destination of executables, relative to subdirs of the main directory. . 
 #---------------------------------------------------------------------------
 BINDIR = ../bin
 
-
-#---------------------------------------------------------------------------
-# Some machines (e.g. Crays) have 128-bit DOUBLE PRECISION numbers, which
-# is twice the precision required for the NPB suite. A compiler flag 
-# (e.g. -dp) can usually be used to change DOUBLE PRECISION variables to
-# 64 bits, but the MPI library may continue to send 128 bits. Short of
-# recompiling MPI, the solution is to use MPI_REAL to send these 64-bit
-# numbers, and MPI_COMPLEX to send their complex counterparts. Uncomment
-# the following line to enable this substitution. 
-# 
-# NOTE: IF THE I/O BENCHMARK IS BEING BUILT, WE USE CONVERTFLAG TO
-#       SPECIFIY THE FORTRAN RECORD LENGTH UNIT. IT IS A SYSTEM-SPECIFIC
-#       VALUE (USUALLY 1 OR 4). UNCOMMENT THE SECOND LINE AND SUBSTITUTE
-#       THE CORRECT VALUE FOR "length".
-#       IF BOTH 128-BIT DOUBLE PRECISION NUMBERS AND I/O ARE TO BE ENABLED,
-#       UNCOMMENT THE THIRD LINE AND SUBSTITUTE THE CORRECT VALUE FOR
-#       "length"
-#---------------------------------------------------------------------------
-# CONVERTFLAG  = -DCONVERTDOUBLE
-# CONVERTFLAG  = -DFORTRAN_REC_SIZE=length
-# CONVERTFLAG  = -DCONVERTDOUBLE -DFORTRAN_REC_SIZE=length
-
-
 #---------------------------------------------------------------------------
 # The variable RAND controls which random number generator 
 # is used. It is described in detail in README.install. 
 # Use "randi8" unless there is a reason to use another one. 
-# Other allowed values are "randi8_safe", "randdp" and "randdpvec"
 #---------------------------------------------------------------------------
 RAND   = randi8
-# The following is highly reliable but may be slow:
-# RAND   = randdp
-
diff --git a/examples/smpi/NAS/config/make.def.template b/examples/smpi/NAS/config/make.def.template
deleted file mode 100644 (file)
index 8cccc29..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#---------------------------------------------------------------------------
-#
-#                SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. 
-#
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
-# Items in this file will need to be changed for each platform.
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
-# Parallel Fortran:
-#
-# For CG, EP, FT, MG, LU, SP and BT, which are in Fortran, the following must 
-# be defined:
-#
-# MPIF77     - Fortran compiler
-# FFLAGS     - Fortran compilation arguments
-# FMPI_INC   - any -I arguments required for compiling MPI/Fortran 
-# FLINK      - Fortran linker
-# FLINKFLAGS - Fortran linker arguments
-# FMPI_LIB   - any -L and -l arguments required for linking MPI/Fortran 
-# 
-# compilations are done with $(MPIF77) $(FMPI_INC) $(FFLAGS) or
-#                            $(MPIF77) $(FFLAGS)
-# linking is done with       $(FLINK) $(FMPI_LIB) $(FLINKFLAGS)
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
-# This is the fortran compiler used for MPI programs
-#---------------------------------------------------------------------------
-MPIF77 = f77
-# This links MPI fortran programs; usually the same as ${MPIF77}
-FLINK  = $(MPIF77)
-
-#---------------------------------------------------------------------------
-# These macros are passed to the linker to help link with MPI correctly
-#---------------------------------------------------------------------------
-FMPI_LIB  = -L/usr/local/lib -lmpi
-
-#---------------------------------------------------------------------------
-# These macros are passed to the compiler to help find 'mpif.h'
-#---------------------------------------------------------------------------
-FMPI_INC = -I/usr/local/include
-
-#---------------------------------------------------------------------------
-# Global *compile time* flags for Fortran programs
-#---------------------------------------------------------------------------
-FFLAGS = -O
-
-#---------------------------------------------------------------------------
-# Global *link time* flags. Flags for increasing maximum executable 
-# size usually go here. 
-#---------------------------------------------------------------------------
-FLINKFLAGS = -O
-
-
-#---------------------------------------------------------------------------
-# Parallel C:
-#
-# For IS, which is in C, the following must be defined:
-#
-# MPICC      - C compiler 
-# CFLAGS     - C compilation arguments
-# CMPI_INC   - any -I arguments required for compiling MPI/C 
-# CLINK      - C linker
-# CLINKFLAGS - C linker flags
-# CMPI_LIB   - any -L and -l arguments required for linking MPI/C 
-#
-# compilations are done with $(MPICC) $(CMPI_INC) $(CFLAGS) or
-#                            $(MPICC) $(CFLAGS)
-# linking is done with       $(CLINK) $(CMPI_LIB) $(CLINKFLAGS)
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
-# This is the C compiler used for MPI programs
-#---------------------------------------------------------------------------
-MPICC = cc
-# This links MPI C programs; usually the same as ${MPICC}
-CLINK  = $(MPICC)
-
-#---------------------------------------------------------------------------
-# These macros are passed to the linker to help link with MPI correctly
-#---------------------------------------------------------------------------
-CMPI_LIB  = -L/usr/local/lib -lmpi
-
-#---------------------------------------------------------------------------
-# These macros are passed to the compiler to help find 'mpi.h'
-#---------------------------------------------------------------------------
-CMPI_INC = -I/usr/local/include
-
-#---------------------------------------------------------------------------
-# Global *compile time* flags for C programs
-#---------------------------------------------------------------------------
-CFLAGS = -O
-
-#---------------------------------------------------------------------------
-# Global *link time* flags. Flags for increasing maximum executable 
-# size usually go here. 
-#---------------------------------------------------------------------------
-CLINKFLAGS = -O
-
-
-#---------------------------------------------------------------------------
-# MPI dummy library:
-#
-# Uncomment if you want to use the MPI dummy library supplied by NAS instead 
-# of the true message-passing library. The include file redefines several of
-# the above macros. It also invokes make in subdirectory MPI_dummy. Make 
-# sure that no spaces or tabs precede include.
-#---------------------------------------------------------------------------
-# include ../config/make.dummy
-
-
-#---------------------------------------------------------------------------
-# Utilities C:
-#
-# This is the C compiler used to compile C utilities.  Flags required by 
-# this compiler go here also; typically there are few flags required; hence 
-# there are no separate macros provided for such flags.
-#---------------------------------------------------------------------------
-CC     = cc -g
-
-
-#---------------------------------------------------------------------------
-# Destination of executables, relative to subdirs of the main directory. . 
-#---------------------------------------------------------------------------
-BINDIR = ../bin
-
-
-#---------------------------------------------------------------------------
-# Some machines (e.g. Crays) have 128-bit DOUBLE PRECISION numbers, which
-# is twice the precision required for the NPB suite. A compiler flag 
-# (e.g. -dp) can usually be used to change DOUBLE PRECISION variables to
-# 64 bits, but the MPI library may continue to send 128 bits. Short of
-# recompiling MPI, the solution is to use MPI_REAL to send these 64-bit
-# numbers, and MPI_COMPLEX to send their complex counterparts. Uncomment
-# the following line to enable this substitution. 
-# 
-# NOTE: IF THE I/O BENCHMARK IS BEING BUILT, WE USE CONVERTFLAG TO
-#       SPECIFIY THE FORTRAN RECORD LENGTH UNIT. IT IS A SYSTEM-SPECIFIC
-#       VALUE (USUALLY 1 OR 4). UNCOMMENT THE SECOND LINE AND SUBSTITUTE
-#       THE CORRECT VALUE FOR "length".
-#       IF BOTH 128-BIT DOUBLE PRECISION NUMBERS AND I/O ARE TO BE ENABLED,
-#       UNCOMMENT THE THIRD LINE AND SUBSTITUTE THE CORRECT VALUE FOR
-#       "length"
-#---------------------------------------------------------------------------
-# CONVERTFLAG  = -DCONVERTDOUBLE
-# CONVERTFLAG  = -DFORTRAN_REC_SIZE=length
-# CONVERTFLAG  = -DCONVERTDOUBLE -DFORTRAN_REC_SIZE=length
-
-
-#---------------------------------------------------------------------------
-# The variable RAND controls which random number generator 
-# is used. It is described in detail in README.install. 
-# Use "randi8" unless there is a reason to use another one. 
-# Other allowed values are "randi8_safe", "randdp" and "randdpvec"
-#---------------------------------------------------------------------------
-RAND   = randi8
-# The following is highly reliable but may be slow:
-# RAND   = randdp
-
diff --git a/examples/smpi/NAS/config/suite.def.template b/examples/smpi/NAS/config/suite.def.template
deleted file mode 100644 (file)
index 5e02f30..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# config/suite.def
-# This file is used to build several benchmarks with a single command. 
-# Typing "make suite" in the main directory will build all the benchmarks
-# specified in this file. 
-# Each line of this file contains a benchmark name, class, and number
-# of nodes. The name is one of "is", "ep", and "dt"
-# The class is one of "S", "W", "A", "B", "C", "D", and "E"
-# (except that no classes C, D and E for DT, and no class E for IS).
-# The number of nodes must be a legal number for a particular
-# benchmark. The utility which parses this file is primitive, so
-# formatting is inflexible. Separate name/class/number by tabs. 
-# Comments start with "#" as the first character on a line. 
-# No blank lines. 
-# The following example builds 1 processor sample sizes of all benchmarks. 
-is     S       1
-ep     S       1
-dt     S       1
index 56d1c44..35b4166 100644 (file)
@@ -1,22 +1,12 @@
 include ../config/make.def
-
-# Note that COMPILE is also defined in make.common and should
-# be the same. We can't include make.common because it has a lot
-# of other garbage. LINK is not defined in make.common because
-# ${MPI_LIB} needs to go at the end of the line. 
-FCOMPILE = $(MPIF77) -c $(FMPI_INC) $(FFLAGS)
-
 all: setparams 
 
-# setparams creates an npbparam.h file for each benchmark 
-# configuration. npbparams.h also contains info about how a benchmark
-# was compiled and linked
+# setparams creates an npbparam.h file for each benchmark configuration. 
+# npbparams.h also contains info about how a benchmark was compiled and linked
 
 setparams: setparams.c ../config/make.def
        $(CC) ${CONVERTFLAG} -o setparams setparams.c
 
-
 clean: 
-       -rm -f setparams setparams.h npbparams.h
-       -rm -f *~ *.o
+       -rm -f setparams setparams.h npbparams.h *~ *.o
 
index 3c97c52..0a62dd1 100644 (file)
@@ -30,7 +30,6 @@ Makefile
 README
         This file. 
 
-
 Created files
 -------------
 
index 4469596..2280367 100644 (file)
@@ -1,5 +1,4 @@
 PROGRAM  = $(BINDIR)/$(BENCHMARK).$(CLASS).$(NPROCS)
-FCOMPILE = $(MPIF77) -c $(FMPI_INC) $(FFLAGS)
 CCOMPILE = $(MPICC)  -c $(CMPI_INC) $(CFLAGS)
 
 # Class "U" is used internally by the setparams program to mean
@@ -22,20 +21,12 @@ config:
        ../sys/setparams ${BENCHMARK} ${NPROCS} ${CLASS} ${SUBTYPE}
 
 COMMON=../common
-${COMMON}/${RAND}.o: ${COMMON}/${RAND}.f
-       cd ${COMMON}; ${FCOMPILE} ${RAND}.f
-${COMMON}/c_randdp.o: ${COMMON}/randdp.c
+$${COMMON}/c_randdp.o: ${COMMON}/randdp.c
        cd ${COMMON}; ${CCOMPILE} -o c_randdp.o randdp.c
 
-${COMMON}/print_results.o: ${COMMON}/print_results.f
-       cd ${COMMON}; ${FCOMPILE} print_results.f
-
 ${COMMON}/c_print_results.o: ${COMMON}/c_print_results.c
        cd ${COMMON}; ${CCOMPILE} c_print_results.c
 
-${COMMON}/timers.o: ${COMMON}/timers.f
-       cd ${COMMON}; ${FCOMPILE} timers.f
-
 ${COMMON}/c_timers.o: ${COMMON}/c_timers.c
        cd ${COMMON}; ${CCOMPILE} c_timers.c
 
diff --git a/examples/smpi/NAS/sys/print_header b/examples/smpi/NAS/sys/print_header
deleted file mode 100755 (executable)
index 4fdb578..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-echo '   ========================================='
-echo '   =      NAS Parallel Benchmarks 3.3      ='
-echo '   =      MPI/F77/C                        ='
-echo '   ========================================='
-echo ''
index d2f1999..6a09f2a 100755 (executable)
@@ -1,26 +1,10 @@
 echo ''
 echo '   To make a NAS benchmark type '
 echo ''
-echo '         make <benchmark-name> NPROCS=<number> CLASS=<class> [SUBTYPE=<type>]'
+echo '         make <benchmark-name> NPROCS=<number> CLASS=<class>'
 echo ''
-echo '   where <benchmark-name>  is "bt", "cg", "ep", "ft", "is", "lu",'
-echo '                              "mg", or "sp"'
+echo '   where <benchmark-name>  is "ep", "dt", or "is"
 echo '         <number>          is the number of processors'
 echo '         <class>           is "S", "W", "A", "B", "C", or "D"'
 echo ''
-echo '   Only when making the I/O benchmark:'
-echo ''
-echo '         <benchmark-name>  is "bt"'
-echo '         <number>, <class> as above'
-echo '         <type>            is "full", "simple", "fortran", or "epio"'
-echo ''
-echo '   To make a set of benchmarks, create the file config/suite.def'
-echo '   according to the instructions in config/suite.def.template and type'
-echo ''
-echo '         make suite'
-echo ''
-echo ' ***************************************************************'
-echo ' * Remember to edit the file config/make.def for site specific *'
-echo ' * information as described in the README file                 *'
-echo ' ***************************************************************'
 
index 70fca1c..a01dab5 100644 (file)
@@ -7,10 +7,10 @@
  * the number of nodes and class for which a benchmark is being built. 
 
  * The utility takes 3 arguments: 
- *       setparams benchmark-name nprocs class
- *    benchmark-name is "sp", "bt", etc
- *    nprocs is the number of processors to run on
- *    class is the size of the benchmark
+ *    setparams benchmark-name nprocs class
+ *      benchmark-name is "ep", "dt", or "is"
+ *      nprocs is the number of processors to run on
+ *      class is the size of the benchmark
  * These parameters are checked for the current benchmark. If they
  * are invalid, this program prints a message and aborts. 
  * If the parameters are ok, the current npbsize.h (actually just
@@ -41,8 +41,7 @@
 #include <time.h>
 
 /*
- * This is the master version number for this set of 
- * NPB benchmarks. It is in an obscure place so people
+ * This is the master version number for this set of NPB benchmarks. It is in an obscure place so people
  * won't accidentally change it. 
  */
 
 
 #define FILENAME "npbparams.h"
 #define DESC_LINE "c NPROCS = %d CLASS = %c\n"
-#define BT_DESC_LINE "c NPROCS = %d CLASS = %c SUBTYPE = %s\n"
 #define DEF_CLASS_LINE     "#define CLASS '%c'\n"
 #define DEF_NUM_PROCS_LINE "#define NUM_PROCS %d\n"
 #define FINDENT  "        "
 #define CONTINUE "     > "
 
-#ifdef FORTRAN_REC_SIZE
-int fortran_rec_size = FORTRAN_REC_SIZE;
-#else
-int fortran_rec_size = 4;
-#endif
-
-void get_info(int argc, char *argv[], int *typep, int *nprocsp, char *classp,
-        int* subtypep);
+void get_info(int argc, char *argv[], int *typep, int *nprocsp, char *classp, int* subtypep);
 void check_info(int type, int nprocs, char class);
 void read_info(int type, int *nprocsp, char *classp, int *subtypep);
 void write_info(int type, int nprocs, char class, int subtype);
-void write_sp_info(FILE *fp, int nprocs, char class);
-void write_bt_info(FILE *fp, int nprocs, char class, int io);
-void write_lu_info(FILE *fp, int nprocs, char class);
-void write_mg_info(FILE *fp, int nprocs, char class);
-void write_cg_info(FILE *fp, int nprocs, char class);
-void write_ft_info(FILE *fp, int nprocs, char class);
-void write_ep_info(FILE *fp, int nprocs, char class);
 void write_ep_info_C(FILE *fp, int nprocs, char class);  /* after C translation */
 void write_is_info(FILE *fp, int nprocs, char class);
 void write_dt_info(FILE *fp, int nprocs, char class);
 void write_compiler_info(int type, FILE *fp);
-void write_convertdouble_info(int type, FILE *fp);
 void check_line(char *line, char *label, char *val);
 int  check_include_line(char *line, char *filename);
 void put_string(FILE *fp, char *name, char *val);
@@ -91,15 +74,14 @@ int isqrt(int i);
 int ilog2(int i);
 int ipow2(int i);
 
-enum benchmark_types {SP, BT, LU, MG, FT, IS, DT, EP, CG};
-enum iotypes { NONE = 0, FULL, SIMPLE, EPIO, FORTRAN};
+enum benchmark_types {IS, DT, EP};
 
 int main(int argc, char *argv[])
 {
   int nprocs, nprocs_old, type;
   char class, class_old;
   int subtype = -1, old_subtype = -1;
-  
+
   /* Get command line arguments. Make sure they're ok. */
   get_info(argc, argv, &type, &nprocs, &class, &subtype);
   if (class != 'U') {
@@ -151,55 +133,21 @@ int main(int argc, char *argv[])
   return 0;
 }
 
-
-/*
- *  get_info(): Get parameters from command line 
- */
-
-void get_info(int argc, char *argv[], int *typep, int *nprocsp, char *classp,
-        int *subtypep) 
+/*  get_info(): Get parameters from command line */
+void get_info(int argc, char *argv[], int *typep, int *nprocsp, char *classp, int *subtypep)
 {
-
   if (argc < 4) {
     printf("Usage: %s (%d) benchmark-name nprocs class\n", argv[0], argc);
     exit(1);
   }
 
   *nprocsp = atoi(argv[2]);
-
   *classp = *argv[3];
 
-  if      (!strcmp(argv[1], "sp") || !strcmp(argv[1], "SP")) *typep = SP;
-  else if (!strcmp(argv[1], "ft") || !strcmp(argv[1], "FT")) *typep = FT;
-  else if (!strcmp(argv[1], "lu") || !strcmp(argv[1], "LU")) *typep = LU;
-  else if (!strcmp(argv[1], "mg") || !strcmp(argv[1], "MG")) *typep = MG;
-  else if (!strcmp(argv[1], "is") || !strcmp(argv[1], "IS")) *typep = IS;
+  if      (!strcmp(argv[1], "is") || !strcmp(argv[1], "IS")) *typep = IS;
   else if (!strcmp(argv[1], "dt") || !strcmp(argv[1], "DT")) *typep = DT;
   else if (!strcmp(argv[1], "ep") || !strcmp(argv[1], "EP")) *typep = EP;
-  else if (!strcmp(argv[1], "cg") || !strcmp(argv[1], "CG")) *typep = CG;
-  else if (!strcmp(argv[1], "bt") || !strcmp(argv[1], "BT")) {
-    *typep = BT;
-    if (argc != 5) {
-      /* printf("Usage: %s (%d) benchmark-name nprocs class\n", argv[0], argc); */
-      /* exit(1); */
-      *subtypep = NONE;
-    } else {
-      if (!strcmp(argv[4], "full") || !strcmp(argv[4], "FULL")) {
-        *subtypep = FULL;
-      } else if (!strcmp(argv[4], "simple") || !strcmp(argv[4], "SIMPLE")) {
-        *subtypep = SIMPLE;
-      } else if (!strcmp(argv[4], "epio") || !strcmp(argv[4], "EPIO")) {
-        *subtypep = EPIO;
-      } else if (!strcmp(argv[4], "fortran") || !strcmp(argv[4], "FORTRAN")) {
-        *subtypep = FORTRAN;
-      } else if (!strcmp(argv[4], "none") || !strcmp(argv[4], "NONE")) {
-        *subtypep = NONE;
-      } else {
-        printf("setparams: Error: unknown btio type %s\n", argv[4]);
-        exit(1);
-      }
-    }
-  } else {
+  else {
     printf("setparams: Error: unknown benchmark type %s\n", argv[1]);
     exit(1);
   }
@@ -219,33 +167,12 @@ void check_info(int type, int nprocs, char class)
     exit(1);
   }
   switch(type) {
-
-  case SP:
-  case BT:
-    rootprocs = isqrt(nprocs);
-    if (rootprocs < 0) {
-      printf("setparams: Number of processors %d must be a square (1,4,9,...) for this benchmark", 
-              nprocs);
-      exit(1);
-    }
-    if (class == 'S' && nprocs > 16) {
-      printf("setparams: BT and SP sample sizes cannot be run on more\n");
-      printf("           than 16 processors because the cell size would be too small.\n");
-      exit(1);
-    }
-    break;
-
-  case CG:
-  case FT:
-  case MG:
   case IS:
-  case LU:
     logprocs = ilog2(nprocs);
     if (logprocs < 0) {
       printf("setparams: Number of processors must be a power of two (1,2,4,...) for this benchmark\n");
       exit(1);
     }
-
     break;
 
   case EP:
@@ -282,13 +209,10 @@ void check_info(int type, int nprocs, char class)
   }
 }
 
-
 /* 
  * read_info(): Read previous information from file. 
- *              Not an error if file doesn't exist, because this
- *              may be the first time we're running. 
- *              Assumes the first line of the file is in a special
- *              format that we understand (since we wrote it). 
+ *              Not an error if file doesn't exist, because this may be the first time we're running.
+ *              Assumes the first two lines of the file is in a special format that we understand (since we wrote it).
  */
 
 void read_info(int type, int *nprocsp, char *classp, int *subtypep)
@@ -302,68 +226,16 @@ void read_info(int type, int *nprocsp, char *classp, int *subtypep)
 #endif
     goto abort;
   }
-  
-  /* first line of file contains info (fortran), first two lines (C) */
-
-  switch(type) {
-      case BT: {
-    char subtype_str[100];
-          nread = fscanf(fp, BT_DESC_LINE, nprocsp, classp, subtype_str);
-          if (nread != 3) {
-            if (nread != 2) {
-              printf("setparams: Error parsing config file %s. Ignoring previous settings\n", FILENAME);
-              goto abort;
-      }
-      *subtypep = 0;
-      break;
-          }
-          if (!strcmp(subtype_str, "full") || !strcmp(subtype_str, "FULL")) {
-    *subtypep = FULL;
-          } else if (!strcmp(subtype_str, "simple") ||
-         !strcmp(subtype_str, "SIMPLE")) {
-    *subtypep = SIMPLE;
-          } else if (!strcmp(subtype_str, "epio") || !strcmp(subtype_str, "EPIO")) {
-    *subtypep = EPIO;
-          } else if (!strcmp(subtype_str, "fortran") ||
-         !strcmp(subtype_str, "FORTRAN")) {
-    *subtypep = FORTRAN;
-          } else {
-    *subtypep = -1;
-    }
-          break;
-      }
 
-      case SP:
-      case FT:
-      case MG:
-      case LU:
-      //case EP:
-      case CG:
-          nread = fscanf(fp, DESC_LINE, nprocsp, classp);
-          if (nread != 2) {
-            printf("setparams: Error line %d parsing config file %s. Ignoring previous settings\n", __LINE__,FILENAME);
-            goto abort;
-          }
-          break;
-      case IS:
-      case EP:
-      case DT:
-          nread = fscanf(fp, DEF_CLASS_LINE, classp);
-          nread += fscanf(fp, DEF_NUM_PROCS_LINE, nprocsp);
-          if (nread != 2) {
-            printf("setparams: Error line %d parsing config file %s. Ignoring previous settings\n", __LINE__,FILENAME);
-            goto abort;
-          }
-          break;
-      default:
-        /* never should have gotten this far with a bad name */
-        printf("setparams: (Internal Error) Benchmark type %d unknown to this program\n", type); 
-        exit(1);
+  /* first two lines of file contains info */
+  nread = fscanf(fp, DEF_CLASS_LINE, classp);
+  nread += fscanf(fp, DEF_NUM_PROCS_LINE, nprocsp);
+  if (nread != 2) {
+    printf("setparams: Error line %d parsing config file %s. Ignoring previous settings\n", __LINE__,FILENAME);
+    goto abort;
   }
 
   fclose(fp);
-
-
   return;
 
  abort:
@@ -373,7 +245,6 @@ void read_info(int type, int *nprocsp, char *classp, int *subtypep)
   return;
 }
 
-
 /* 
  * write_info(): Write new information to config file. 
  *               First line is in a special format so we can read
@@ -392,286 +263,36 @@ void write_info(int type, int nprocs, char class, int subtype)
     exit(1);
   }
 
-  switch(type) {
-      case BT:
-          /* Write out the header */
-    if (subtype == -1 || subtype == 0) {
-            fprintf(fp, DESC_LINE, nprocs, class);
-    } else {
-            fprintf(fp, BT_DESC_LINE, nprocs, class, BT_TYPES[subtype]);
-    }
-          /* Print out a warning so bozos don't mess with the file */
-          fprintf(fp, "\
-c  \n\
-c  \n\
-c  This file is generated automatically by the setparams utility.\n\
-c  It sets the number of processors and the class of the NPB\n\
-c  in this directory. Do not modify it by hand.\n\
-c  \n");
-
-          break;
-  
-      case SP:
-      case FT:
-      case MG:
-      case LU:
-      //case EP:
-      case CG:
-          /* Write out the header */
-          fprintf(fp, DESC_LINE, nprocs, class);
-          /* Print out a warning so bozos don't mess with the file */
-          fprintf(fp, "\
-c  \n\
-c  \n\
-c  This file is generated automatically by the setparams utility.\n\
-c  It sets the number of processors and the class of the NPB\n\
-c  in this directory. Do not modify it by hand.\n\
-c  \n");
-
-          break;
-  case EP:
-      case IS:
-      case DT:
-          fprintf(fp, DEF_CLASS_LINE, class);
-          fprintf(fp, DEF_NUM_PROCS_LINE, nprocs);
-          fprintf(fp, "\
+  fprintf(fp, DEF_CLASS_LINE, class);
+  fprintf(fp, DEF_NUM_PROCS_LINE, nprocs);
+  fprintf(fp, "\
 /*\n\
    This file is generated automatically by the setparams utility.\n\
    It sets the number of processors and the class of the NPB\n\
    in this directory. Do not modify it by hand.   */\n\
    \n");
-          break;
-      default:
-          printf("setparams: (Internal error): Unknown benchmark type %d\n", 
-                                                                         type);
-          exit(1);
-  }
 
   /* Now do benchmark-specific stuff */
   switch(type) {
-  case SP:
-    write_sp_info(fp, nprocs, class);
-    break;
-  case LU:
-    write_lu_info(fp, nprocs, class);
-    break;
-  case MG:
-    write_mg_info(fp, nprocs, class);
-    break;
   case IS:
     write_is_info(fp, nprocs, class);  
     break;
   case DT:
     write_dt_info(fp, nprocs, class);  
     break;
-  case FT:
-    write_ft_info(fp, nprocs, class);
-    break;
   case EP:
-    //write_ep_info(fp, nprocs, class);
     write_ep_info_C(fp, nprocs, class);
     break;
-  case CG:
-    write_cg_info(fp, nprocs, class);
-    break;
-  case BT:
-    write_bt_info(fp, nprocs, class, subtype);
-    break;
   default:
     printf("setparams: (Internal error): Unknown benchmark type %d\n", type);
     exit(1);
   }
-  write_convertdouble_info(type, fp);
   write_compiler_info(type, fp);
   fclose(fp);
   return;
 }
 
-
-/* 
- * write_sp_info(): Write SP specific info to config file
- */
-
-void write_sp_info(FILE *fp, int nprocs, char class) 
-{
-  int maxcells, problem_size, niter;
-  char *dt;
-  maxcells = isqrt(nprocs);
-  if      (class == 'S') { problem_size = 12;  dt = "0.015d0";   niter = 100; }
-  else if (class == 'W') { problem_size = 36;  dt = "0.0015d0";  niter = 400; }
-  else if (class == 'A') { problem_size = 64;  dt = "0.0015d0";  niter = 400; }
-  else if (class == 'B') { problem_size = 102; dt = "0.001d0";   niter = 400; }
-  else if (class == 'C') { problem_size = 162; dt = "0.00067d0"; niter = 400; }
-  else if (class == 'D') { problem_size = 408; dt = "0.00030d0"; niter = 500; }
-  else if (class == 'E') { problem_size = 1020; dt = "0.0001d0"; niter = 500; }
-  else {
-    printf("setparams: Internal error: invalid class %c\n", class);
-    exit(1);
-  }
-  fprintf(fp, "%sinteger maxcells, problem_size, niter_default\n", FINDENT);
-  fprintf(fp, "%sparameter (maxcells=%d, problem_size=%d, niter_default=%d)\n", 
-         FINDENT, maxcells, problem_size, niter);
-  fprintf(fp, "%sdouble precision dt_default\n", FINDENT);
-  fprintf(fp, "%sparameter (dt_default = %s)\n", FINDENT, dt);
-}
-  
-/* 
- * write_bt_info(): Write BT specific info to config file
- */
-
-void write_bt_info(FILE *fp, int nprocs, char class, int io) 
-{
-  int maxcells, problem_size, niter, wr_interval;
-  char *dt;
-  maxcells = isqrt(nprocs);
-  if      (class == 'S') { problem_size = 12;  dt = "0.010d0";    niter = 60;  }
-  else if (class == 'W') { problem_size = 24;  dt = "0.0008d0";   niter = 200; }
-  else if (class == 'A') { problem_size = 64;  dt = "0.0008d0";   niter = 200; }
-  else if (class == 'B') { problem_size = 102; dt = "0.0003d0";   niter = 200; }
-  else if (class == 'C') { problem_size = 162; dt = "0.0001d0";   niter = 200; }
-  else if (class == 'D') { problem_size = 408; dt = "0.00002d0";  niter = 250; }
-  else if (class == 'E') { problem_size = 1020; dt = "0.4d-5";    niter = 250; }
-  else {
-    printf("setparams: Internal error: invalid class %c\n", class);
-    exit(1);
-  }
-  wr_interval = 5;
-  fprintf(fp, "%sinteger maxcells, problem_size, niter_default\n", FINDENT);
-  fprintf(fp, "%sparameter (maxcells=%d, problem_size=%d, niter_default=%d)\n", 
-         FINDENT, maxcells, problem_size, niter);
-  fprintf(fp, "%sdouble precision dt_default\n", FINDENT);
-  fprintf(fp, "%sparameter (dt_default = %s)\n", FINDENT, dt);
-  fprintf(fp, "%sinteger wr_default\n", FINDENT);
-  fprintf(fp, "%sparameter (wr_default = %d)\n", FINDENT, wr_interval);
-  fprintf(fp, "%sinteger iotype\n", FINDENT);
-  fprintf(fp, "%sparameter (iotype = %d)\n", FINDENT, io);
-  if (io) {
-    fprintf(fp, "%scharacter*(*) filenm\n", FINDENT);
-    switch (io) {
-  case FULL:
-      fprintf(fp, "%sparameter (filenm = 'btio.full.out')\n", FINDENT);
-      break;
-  case SIMPLE:
-      fprintf(fp, "%sparameter (filenm = 'btio.simple.out')\n", FINDENT);
-      break;
-  case EPIO:
-      fprintf(fp, "%sparameter (filenm = 'btio.epio.out')\n", FINDENT);
-      break;
-  case FORTRAN:
-      fprintf(fp, "%sparameter (filenm = 'btio.fortran.out')\n", FINDENT);
-      fprintf(fp, "%sinteger fortran_rec_sz\n", FINDENT);
-      fprintf(fp, "%sparameter (fortran_rec_sz = %d)\n",
-        FINDENT, fortran_rec_size);
-      break;
-  default:
-      break;
-    }
-  }
-}
-  
-
-
-/* 
- * write_lu_info(): Write SP specific info to config file
- */
-
-void write_lu_info(FILE *fp, int nprocs, char class) 
-{
-  int isiz1, isiz2, itmax, inorm, problem_size;
-  int xdiv, ydiv; /* number of cells in x and y direction */
-  char *dt_default;
-
-  if      (class == 'S') { problem_size = 12;  dt_default = "0.5d0";  itmax = 50; }
-  else if (class == 'W') { problem_size = 33;  dt_default = "1.5d-3"; itmax = 300; }
-  else if (class == 'A') { problem_size = 64;  dt_default = "2.0d0";  itmax = 250; }
-  else if (class == 'B') { problem_size = 102; dt_default = "2.0d0";  itmax = 250; }
-  else if (class == 'C') { problem_size = 162; dt_default = "2.0d0";  itmax = 250; }
-  else if (class == 'D') { problem_size = 408; dt_default = "1.0d0";  itmax = 300; }
-  else if (class == 'E') { problem_size = 1020; dt_default = "0.5d0"; itmax = 300; }
-  else {
-    printf("setparams: Internal error: invalid class %c\n", class);
-    exit(1);
-  }
-  inorm = itmax;
-  xdiv = ydiv = ilog2(nprocs)/2;
-  if (xdiv+ydiv != ilog2(nprocs)) xdiv += 1;
-  xdiv = ipow2(xdiv); ydiv = ipow2(ydiv);
-  isiz1 = problem_size/xdiv; if (isiz1*xdiv < problem_size) isiz1++;
-  isiz2 = problem_size/ydiv; if (isiz2*ydiv < problem_size) isiz2++;
-  
-
-  fprintf(fp, "\nc number of nodes for which this version is compiled\n");
-  fprintf(fp, "%sinteger nnodes_compiled\n", FINDENT);
-  fprintf(fp, "%sparameter (nnodes_compiled = %d)\n", FINDENT, nprocs);
-
-  fprintf(fp, "\nc full problem size\n");
-  fprintf(fp, "%sinteger isiz01, isiz02, isiz03\n", FINDENT);
-  fprintf(fp, "%sparameter (isiz01=%d, isiz02=%d, isiz03=%d)\n", 
-    FINDENT, problem_size, problem_size, problem_size);
-
-  fprintf(fp, "\nc sub-domain array size\n");
-  fprintf(fp, "%sinteger isiz1, isiz2, isiz3\n", FINDENT);
-  fprintf(fp, "%sparameter (isiz1=%d, isiz2=%d, isiz3=isiz03)\n", 
-         FINDENT, isiz1, isiz2);
-
-  fprintf(fp, "\nc number of iterations and how often to print the norm\n");
-  fprintf(fp, "%sinteger itmax_default, inorm_default\n", FINDENT);
-  fprintf(fp, "%sparameter (itmax_default=%d, inorm_default=%d)\n", 
-    FINDENT, itmax, inorm);
-
-  fprintf(fp, "%sdouble precision dt_default\n", FINDENT);
-  fprintf(fp, "%sparameter (dt_default = %s)\n", FINDENT, dt_default);
-  
-}
-
-/* 
- * write_mg_info(): Write MG specific info to config file
- */
-
-void write_mg_info(FILE *fp, int nprocs, char class) 
-{
-  int problem_size, nit, log2_size, log2_nprocs, lt_default, lm;
-  int ndim1, ndim2, ndim3;
-  if      (class == 'S') { problem_size = 32;   nit = 4; }
-  else if (class == 'W') { problem_size = 128;  nit = 4; }
-  else if (class == 'A') { problem_size = 256;  nit = 4; }
-  else if (class == 'B') { problem_size = 256;  nit = 20; }
-  else if (class == 'C') { problem_size = 512;  nit = 20; }
-  else if (class == 'D') { problem_size = 1024; nit = 50; }
-  else if (class == 'E') { problem_size = 2048; nit = 50; }
-  else {
-    printf("setparams: Internal error: invalid class type %c\n", class);
-    exit(1);
-  }
-  log2_size = ilog2(problem_size);
-  log2_nprocs = ilog2(nprocs);
-  /* lt is log of largest total dimension */
-  lt_default = log2_size;
-  /* log of log of maximum dimension on a node */
-  lm = log2_size - log2_nprocs/3;
-  ndim1 = lm;
-  ndim3 = log2_size - (log2_nprocs+2)/3;
-  ndim2 = log2_size - (log2_nprocs+1)/3;
-
-  fprintf(fp, "%sinteger nprocs_compiled\n", FINDENT);
-  fprintf(fp, "%sparameter (nprocs_compiled = %d)\n", FINDENT, nprocs);
-  fprintf(fp, "%sinteger nx_default, ny_default, nz_default\n", FINDENT);
-  fprintf(fp, "%sparameter (nx_default=%d, ny_default=%d, nz_default=%d)\n", 
-    FINDENT, problem_size, problem_size, problem_size);
-  fprintf(fp, "%sinteger nit_default, lm, lt_default\n", FINDENT);
-  fprintf(fp, "%sparameter (nit_default=%d, lm = %d, lt_default=%d)\n", 
-    FINDENT, nit, lm, lt_default);
-  fprintf(fp, "%sinteger debug_default\n", FINDENT);
-  fprintf(fp, "%sparameter (debug_default=%d)\n", FINDENT, 0);
-  fprintf(fp, "%sinteger ndim1, ndim2, ndim3\n", FINDENT);
-  fprintf(fp, "%sparameter (ndim1 = %d, ndim2 = %d, ndim3 = %d)\n", 
-    FINDENT, ndim1, ndim2, ndim3);
-}
-
-
-/* 
- * write_dt_info(): Write DT specific info to config file
- */
+/* write_dt_info(): Write DT specific info to config file */
 
 void write_dt_info(FILE *fp, int nprocs, char class) 
 {
@@ -691,162 +312,20 @@ void write_dt_info(FILE *fp, int nprocs, char class)
   fprintf(fp, "#define NUM_SOURCES %d\n", num_sources);
 }
 
-/* 
- * write_is_info(): Write IS specific info to config file
- */
-
-void write_is_info(FILE *fp, int nprocs, char class) 
-{
-  if( class != 'S' &&
-      class != 'W' &&
-      class != 'A' &&
-      class != 'B' &&
-      class != 'C' &&
-      class != 'D' )
-  {
-    printf("setparams: Internal error: invalid class type %c\n", class);
-    exit(1);
-  }
-}
-
-/* 
- * write_cg_info(): Write CG specific info to config file
- */
-
-void write_cg_info(FILE *fp, int nprocs, char class) 
+/* write_is_info(): Write IS specific info to config file */
+void write_is_info(FILE *fp, int nprocs, char class)
 {
-  int na,nonzer,niter;
-  char *shift,*rcond="1.0d-1";
-  char *shiftS="10.",
-       *shiftW="12.",
-       *shiftA="20.",
-       *shiftB="60.",
-       *shiftC="110.",
-       *shiftD="500.",
-       *shiftE="1.5d3";
-
-  int num_proc_cols, num_proc_rows;
-
-
-  if( class == 'S' )
-  { na=1400;    nonzer=7;  niter=15;  shift=shiftS; }
-  else if( class == 'W' )
-  { na=7000;    nonzer=8;  niter=15;  shift=shiftW; }
-  else if( class == 'A' )
-  { na=14000;   nonzer=11; niter=15;  shift=shiftA; }
-  else if( class == 'B' )
-  { na=75000;   nonzer=13; niter=75;  shift=shiftB; }
-  else if( class == 'C' )
-  { na=150000;  nonzer=15; niter=75;  shift=shiftC; }
-  else if( class == 'D' )
-  { na=1500000; nonzer=21; niter=100; shift=shiftD; }
-  else if( class == 'E' )
-  { na=9000000; nonzer=26; niter=100; shift=shiftE; }
-  else
+  if( class != 'S' && class != 'W' && class != 'A' && class != 'B' && class != 'C' && class != 'D' )
   {
     printf("setparams: Internal error: invalid class type %c\n", class);
     exit(1);
   }
-  fprintf( fp, "%sinteger            na, nonzer, niter\n", FINDENT );
-  fprintf( fp, "%sdouble precision   shift, rcond\n", FINDENT );
-  fprintf( fp, "%sparameter(  na=%d,\n", FINDENT, na );
-  fprintf( fp, "%s             nonzer=%d,\n", CONTINUE, nonzer );
-  fprintf( fp, "%s             niter=%d,\n", CONTINUE, niter );
-  fprintf( fp, "%s             shift=%s,\n", CONTINUE, shift );
-  fprintf( fp, "%s             rcond=%s )\n", CONTINUE, rcond );
-
-
-  num_proc_cols = num_proc_rows = ilog2(nprocs)/2;
-  if (num_proc_cols+num_proc_rows != ilog2(nprocs)) num_proc_cols += 1;
-  num_proc_cols = ipow2(num_proc_cols); num_proc_rows = ipow2(num_proc_rows);
-  
-  fprintf( fp, "\nc number of nodes for which this version is compiled\n" );
-  fprintf( fp, "%sinteger    nnodes_compiled\n", FINDENT );
-  fprintf( fp, "%sparameter( nnodes_compiled = %d)\n", FINDENT, nprocs );
-  fprintf( fp, "%sinteger    num_proc_cols, num_proc_rows\n", FINDENT );
-  fprintf( fp, "%sparameter( num_proc_cols=%d, num_proc_rows=%d )\n", 
-                                                          FINDENT,
-                                                          num_proc_cols,
-                                                          num_proc_rows );
-}
-
-
-/* 
- * write_ft_info(): Write FT specific info to config file
- */
-
-void write_ft_info(FILE *fp, int nprocs, char class) 
-{
-  /* easiest way (given the way the benchmark is written)
-   * is to specify log of number of grid points in each
-   * direction m1, m2, m3. nt is the number of iterations
-   */
-  int nx, ny, nz, maxdim, niter;
-  if      (class == 'S') { nx = 64;   ny = 64;   nz = 64;   niter = 6;}
-  else if (class == 'W') { nx = 128;  ny = 128;  nz = 32;   niter = 6;}
-  else if (class == 'A') { nx = 256;  ny = 256;  nz = 128;  niter = 6;}
-  else if (class == 'B') { nx = 512;  ny = 256;  nz = 256;  niter =20;}
-  else if (class == 'C') { nx = 512;  ny = 512;  nz = 512;  niter =20;}
-  else if (class == 'D') { nx = 2048; ny = 1024; nz = 1024; niter =25;}
-  else if (class == 'E') { nx = 4096; ny = 2048; nz = 2048; niter =25;}
-  else {
-    printf("setparams: Internal error: invalid class type %c\n", class);
-    exit(1);
-  }
-  maxdim = nx;
-  if (ny > maxdim) maxdim = ny;
-  if (nz > maxdim) maxdim = nz;
-  fprintf(fp, "%sinteger nx, ny, nz, maxdim, niter_default, ntdivnp, np_min\n", FINDENT);
-  fprintf(fp, "%sparameter (nx=%d, ny=%d, nz=%d, maxdim=%d)\n", 
-          FINDENT, nx, ny, nz, maxdim);
-  fprintf(fp, "%sparameter (niter_default=%d)\n", FINDENT, niter);
-  fprintf(fp, "%sparameter (np_min = %d)\n", FINDENT, nprocs);
-  fprintf(fp, "%sparameter (ntdivnp=((nx*ny)/np_min)*nz)\n", FINDENT);
-  fprintf(fp, "%sdouble precision ntotal_f\n", FINDENT);
-  fprintf(fp, "%sparameter (ntotal_f=1.d0*nx*ny*nz)\n", FINDENT);
-}
-
-/*
- * write_ep_info(): Write EP specific info to config file
- */
-
-void write_ep_info(FILE *fp, int nprocs, char class)
-{
-  /* easiest way (given the way the benchmark is written)
-   * is to specify log of number of grid points in each
-   * direction m1, m2, m3. nt is the number of iterations
-   */
-  int m;
-  if      (class == 'S') { m = 24; }
-  else if (class == 'W') { m = 25; }
-  else if (class == 'A') { m = 28; }
-  else if (class == 'B') { m = 30; }
-  else if (class == 'C') { m = 32; }
-  else if (class == 'D') { m = 36; }
-  else if (class == 'E') { m = 40; }
-  else {
-    printf("setparams: Internal error: invalid class type %c\n", class);
-    exit(1);
-  }
-  /* number of processors given by "npm" */
-
-
-  fprintf(fp, "%scharacter class\n",FINDENT);
-  fprintf(fp, "%sparameter (class =\'%c\')\n",
-                  FINDENT, class);
-  fprintf(fp, "%sinteger m, npm\n", FINDENT);
-  fprintf(fp, "%sparameter (m=%d, npm=%d)\n",
-          FINDENT, m, nprocs);
 }
-/*
- * write_ep_info_C(): Write EP specific info to config file
- */
-
 
+/* write_ep_info_C(): Write EP specific info to config file */
 void write_ep_info_C(FILE *fp, int nprocs, char class)
 {
-  /* easiest way (given the way the benchmark is written)
-   * is to specify log of number of grid points in each
+  /* easiest way (given the way the benchmark is written) is to specify log of number of grid points in each
    * direction m1, m2, m3. nt is the number of iterations
    */
   int m;
@@ -861,23 +340,19 @@ void write_ep_info_C(FILE *fp, int nprocs, char class)
     printf("setparams: Internal error: invalid class type %c\n", class);
     exit(1);
   }
-  /* number of processors given by "npm" */
-
 
+  /* number of processors given by "npm" */
   fprintf(fp, "%schar *_class=\"%c\";\n",FINDENT,class);
   fprintf(fp, "%sint m=%d;\n", FINDENT,m);
   fprintf(fp, "%sint npm=%d;\n", FINDENT,nprocs);
 }
+
 /* 
- * This is a gross hack to allow the benchmarks to 
- * print out how they were compiled. Various other ways
- * of doing this have been tried and they all fail on
- * some machine - due to a broken "make" program, or
- * F77 limitations, of whatever. Hopefully this will
- * always work because it uses very portable C. Unfortunately
+ * This is a gross hack to allow the benchmarks to  print out how they were compiled. Various other ways
+ * of doing this have been tried and they all fail on some machine - due to a broken "make" program, or
+ * F77 limitations, of whatever. Hopefully this will always work because it uses very portable C. Unfortunately
  * it relies on parsing the make.def file - YUK. 
  * If your machine doesn't have <string.h> or <ctype.h>, happy hacking!
- * 
  */
 
 #define VERBOSE
@@ -889,7 +364,6 @@ FILE *deffile;
 void write_compiler_info(int type, FILE *fp)
 {
   char line[LL];
-  char mpif77[LL], flink[LL], fmpi_lib[LL], fmpi_inc[LL], fflags[LL], flinkflags[LL];
   char compiletime[LL], randfile[LL];
   char mpicc[LL], cflags[LL], clink[LL], clinkflags[LL],
        cmpi_lib[LL], cmpi_inc[LL];
@@ -904,12 +378,6 @@ setparams: File %s doesn't exist. To build the NAS benchmarks\n\
            the file config/make.def.template\n", DEFFILE);
     exit(1);
   }
-  strcpy(mpif77, DEFAULT_MESSAGE);
-  strcpy(flink, DEFAULT_MESSAGE);
-  strcpy(fmpi_lib, DEFAULT_MESSAGE);
-  strcpy(fmpi_inc, DEFAULT_MESSAGE);
-  strcpy(fflags, DEFAULT_MESSAGE);
-  strcpy(flinkflags, DEFAULT_MESSAGE);
   strcpy(randfile, DEFAULT_MESSAGE);
   strcpy(mpicc, DEFAULT_MESSAGE);
   strcpy(cflags, DEFAULT_MESSAGE);
@@ -921,12 +389,6 @@ setparams: File %s doesn't exist. To build the NAS benchmarks\n\
   while (fgets(line, LL, deffile) != NULL) {
     if (*line == '#') continue;
     /* yes, this is inefficient. but it's simple! */
-    check_line(line, "MPIF77", mpif77);
-    check_line(line, "FLINK", flink);
-    check_line(line, "FMPI_LIB", fmpi_lib);
-    check_line(line, "FMPI_INC", fmpi_inc);
-    check_line(line, "FFLAGS", fflags);
-    check_line(line, "FLINKFLAGS", flinkflags);
     check_line(line, "RAND", randfile);
     check_line(line, "MPICC", mpicc);
     check_line(line, "CFLAGS", cflags);
@@ -934,58 +396,20 @@ setparams: File %s doesn't exist. To build the NAS benchmarks\n\
     check_line(line, "CLINKFLAGS", clinkflags);
     check_line(line, "CMPI_LIB", cmpi_lib);
     check_line(line, "CMPI_INC", cmpi_inc);
-    /* if the dummy library is used by including make.dummy, we set the
-       Fortran and C paths to libraries and headers accordingly     */
-    if(check_include_line(line, "../config/make.dummy")) {
-       strcpy(fmpi_lib, "-L../MPI_dummy -lmpi");
-       strcpy(fmpi_inc, "-I../MPI_dummy");
-       strcpy(cmpi_lib, "-L../MPI_dummy -lmpi");
-       strcpy(cmpi_inc, "-I../MPI_dummy");
-    }
   }
 
-  
   (void) time(&t);
   tmp = localtime(&t);
   (void) strftime(compiletime, (size_t)LL, "%d %b %Y", tmp);
 
-
-  switch(type) {
-      case FT:
-      case SP:
-      case BT:
-      case MG:
-      case LU:
-      //case EP:
-      case CG:
-          put_string(fp, "compiletime", compiletime);
-          put_string(fp, "npbversion", VERSION);
-          put_string(fp, "cs1", mpif77);
-          put_string(fp, "cs2", flink);
-          put_string(fp, "cs3", fmpi_lib);
-          put_string(fp, "cs4", fmpi_inc);
-          put_string(fp, "cs5", fflags);
-          put_string(fp, "cs6", flinkflags);
-    put_string(fp, "cs7", randfile);
-          break;
-      case IS:
-      case EP:
-      case DT:
-          put_def_string(fp, "COMPILETIME", compiletime);
-          put_def_string(fp, "NPBVERSION", VERSION);
-          put_def_string(fp, "MPICC", mpicc);
-          put_def_string(fp, "CFLAGS", cflags);
-          put_def_string(fp, "CLINK", clink);
-          put_def_string(fp, "CLINKFLAGS", clinkflags);
-          put_def_string(fp, "CMPI_LIB", cmpi_lib);
-          put_def_string(fp, "CMPI_INC", cmpi_inc);
-          break;
-      default:
-          printf("setparams: (Internal error): Unknown benchmark type %d\n", 
-                                                                         type);
-          exit(1);
-  }
-
+  put_def_string(fp, "COMPILETIME", compiletime);
+  put_def_string(fp, "NPBVERSION", VERSION);
+  put_def_string(fp, "MPICC", mpicc);
+  put_def_string(fp, "CFLAGS", cflags);
+  put_def_string(fp, "CLINK", clink);
+  put_def_string(fp, "CLINKFLAGS", clinkflags);
+  put_def_string(fp, "CMPI_LIB", cmpi_lib);
+  put_def_string(fp, "CMPI_INC", cmpi_inc);
 }
 
 void check_line(char *line, char *label, char *val)
@@ -1065,7 +489,6 @@ int check_include_line(char *line, char *filename)
   else return(1);
 }
 
-
 #define MAXL 46
 void put_string(FILE *fp, char *name, char *val)
 {
@@ -1111,14 +534,8 @@ void put_def_variable(FILE *fp, char *name, char *val)
   fprintf(fp, "#define %s %s\n", name, val);
 }
 
-
-
 #if 0
-
-/* this version allows arbitrarily long lines but 
- * some compilers don't like that and they're rarely
- * useful 
- */
+/* this version allows arbitrarily long lines but some compilers don't like that and they're rarely useful */
 
 #define LINELEN 65
 void put_string(FILE *fp, char *name, char *val)
@@ -1140,14 +557,10 @@ void put_string(FILE *fp, char *name, char *val)
     else             fprintf(fp, "\n");
   }
 }
-
 #endif
 
 
-/* integer square root. Return error if argument isn't
- * a perfect square or is less than or equal to zero 
- */
-
+/* integer square root. Return error if argument isn't a perfect square or is less than or equal to zero */
 int isqrt(int i)
 {
   int root, square;
@@ -1159,12 +572,8 @@ int isqrt(int i)
   }
   return(-1);
 }
-  
-
-/* integer log base two. Return error is argument isn't
- * a power of two or is less than or equal to zero 
- */
 
+/* integer log base two. Return error is argument isn't a power of two or is less than or equal to zero */
 int ilog2(int i)
 {
   int log2;
@@ -1186,25 +595,3 @@ int ipow2(int i)
   while(i--) pow2 *= 2;
   return(pow2);
 }
-
-
-void write_convertdouble_info(int type, FILE *fp)
-{
-  switch(type) {
-  case SP:
-  case BT:
-  case LU:
-  case FT:
-  case MG:
-  //case EP:
-  case CG:
-    fprintf(fp, "%slogical  convertdouble\n", FINDENT);
-#ifdef CONVERTDOUBLE
-    fprintf(fp, "%sparameter (convertdouble = .true.)\n", FINDENT);
-#else
-    fprintf(fp, "%sparameter (convertdouble = .false.)\n", FINDENT);
-#endif
-    break;
-  }
-}
diff --git a/examples/smpi/NAS/sys/suite.awk b/examples/smpi/NAS/sys/suite.awk
deleted file mode 100644 (file)
index 2e5fc31..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-BEGIN { SMAKE = "make" } {
-  if ($1 !~ /^#/ &&  NF > 2) {
-    printf "cd `echo %s|tr '[a-z]' '[A-Z]'`; %s clean;", $1, SMAKE;
-    printf "%s CLASS=%s NPROCS=%s", SMAKE, $2, $3;
-    if ( NF > 3 ) {
-      if ( $4 ~ /^vec/ ||  $4 ~ /^VEC/ ) {
-        printf " VERSION=%s", $4;
-        if ( NF > 4 ) {
-          printf " SUBTYPE=%s", $5;
-        }
-      } else {
-        printf " SUBTYPE=%s", $4;
-        if ( NF > 4 ) {
-          printf " VERSION=%s", $5;
-        }
-      }
-    }
-    printf "; cd ..\n";
-  }
-}
index c66c597..c77983e 100644 (file)
@@ -15,23 +15,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/se.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5a3970d..976640d 100644 (file)
@@ -1,6 +1,5 @@
 if(enable_smpi AND SMPI_FORTRAN)
   set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
-
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
   add_executable(sef sef.f)
@@ -10,22 +9,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sef.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5d139c1..b96c097 100644 (file)
@@ -1,6 +1,5 @@
 if(enable_smpi AND SMPI_FORTRAN)
   set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90")
-
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
   add_executable(sef90 sef90.f90)
@@ -10,22 +9,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/sef90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b0f36ce..fb41816 100644 (file)
@@ -11,7 +11,7 @@
 /******************************************************************************/
 
 /* Run :
-  /usr/bin/time -f "clock:%e user:%U sys:%S swapped:%W exitval:%x max:%Mk" "$@" ../../../smpi_script/bin/smpirun -hostfile hostfile_bugged1_liveness -platform ../../platforms/cluster.xml --cfg=contexts/factory:ucontext --cfg=model-check/reduction:none --cfg=model-check/property:promela_bugged1_liveness --cfg=smpi/send_is_detached_thres:0 --cfg=contexts/stack_size:128 --cfg=model-check/visited:100000 --cfg=model-check/max_depth:100000 ./bugged1_liveness */
+  /usr/bin/time -f "clock:%e user:%U sys:%S swapped:%W exitval:%x max:%Mk" "$@" ../../../smpi_script/bin/smpirun -hostfile hostfile_bugged1_liveness -platform ../../platforms/cluster.xml --cfg=contexts/factory:ucontext --cfg=model-check/reduction:none --cfg=model-check/property:promela_bugged1_liveness --cfg=smpi/send_is_detached_thresh:0 --cfg=contexts/stack_size:128 --cfg=model-check/visited:100000 --cfg=model-check/max_depth:100000 ./bugged1_liveness */
 
 #include <stdio.h>
 #include <mpi.h>
index a5d8e62..04f1b35 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
 ! timeout 60
-$ ../../../smpi_script/bin/smpirun -wrapper ${bindir:=.}/../../../bin/simgrid-mc -hostfile ${srcdir:=.}/hostfile_non_deterministic  -platform ${srcdir:=.}/../../platforms/cluster.xml --log=xbt_cfg.thresh:warning --cfg=model-check/communications_determinism:1 --cfg=smpi/send_is_detached_thres:0 --cfg=smpi/running_power:1e9 ./smpi_non_deterministic
+$ ../../../smpi_script/bin/smpirun -wrapper ${bindir:=.}/../../../bin/simgrid-mc -hostfile ${srcdir:=.}/hostfile_non_deterministic  -platform ${srcdir:=.}/../../platforms/cluster.xml --log=xbt_cfg.thresh:warning --cfg=model-check/communications_determinism:1 --cfg=smpi/send_is_detached_thresh:0 --cfg=smpi/running_power:1e9 ./smpi_non_deterministic
 > [0.000000] [mc_global/INFO] Check communication determinism
 > [0.000000] [mc_comm_determinism/INFO] The communications pattern of the process 1 is different! (Different communication : 1)
 > [0.000000] [mc_comm_determinism/INFO] ****************************************************
index c992b24..5d6a829 100644 (file)
@@ -6,7 +6,7 @@ int x = 20;
 
 int main(int argc, char **argv) {
   
-       int recv_x = 1, size, rank;
+  int recv_x = 1, size, rank;
   MPI_Status status;
 
   MPI_Init(&argc, &argv);
@@ -35,5 +35,5 @@ int main(int argc, char **argv) {
 
   MPI_Finalize();
   
-       return 0;
+  return 0;
 }
index fa4215f..a554e56 100644 (file)
@@ -1,4 +1,4 @@
-/* ../../../smpi_script/bin/smpirun -hostfile hostfile_send_deterministic -platform ../../platforms/cluster.xml -np 3 --cfg=smpi/send_is_detached_thres:0 gdb\ --args\ ./send_deterministic */
+/* ../../../smpi_script/bin/smpirun -hostfile hostfile_send_deterministic -platform ../../platforms/cluster.xml -np 3 --cfg=smpi/send_is_detached_thresh:0 gdb\ --args\ ./send_deterministic */
 
 /* Copyright (c) 2009-2015. The SimGrid Team.
  * All rights reserved.                                                     */
index daab716..c7993f4 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
 ! timeout 60
-$ ../../../smpi_script/bin/smpirun -wrapper "${bindir:=.}/../../../bin/simgrid-mc" --log=xbt_cfg.thresh:warning -hostfile ${srcdir:=.}/hostfile_only_send_deterministic  -platform ${srcdir:=.}/../../platforms/cluster.xml --cfg=model-check/communications_determinism:1 --cfg=smpi/send_is_detached_thres:0 --cfg=smpi/running_power:1e9 ./smpi_only_send_deterministic
+$ ../../../smpi_script/bin/smpirun -wrapper "${bindir:=.}/../../../bin/simgrid-mc" --log=xbt_cfg.thresh:warning -hostfile ${srcdir:=.}/hostfile_only_send_deterministic  -platform ${srcdir:=.}/../../platforms/cluster.xml --cfg=model-check/communications_determinism:1 --cfg=smpi/send_is_detached_thresh:0 --cfg=smpi/running_power:1e9 ./smpi_only_send_deterministic
 > [0.000000] [mc_comm_determinism/INFO] Check communication determinism
 > [0.000000] [mc_global/INFO] ******************************************************
 > [0.000000] [mc_global/INFO] **** Only-send-deterministic communication pattern ****
index 15a9e7e..c7e8353 100644 (file)
@@ -40,7 +40,7 @@ int main(int argc, char *argv[])
       exit(USAGE_ERROR);
     }
 
-    N = atoi(argv[1]);
+    N = xbt_str_parse_int(argv[1], "Invalid size: %s");
 
     start_time = (struct timeval *) malloc(sizeof(struct timeval));
     stop_time = (struct timeval *) malloc(sizeof(struct timeval));
index 513e1c5..601ce27 100644 (file)
@@ -9,21 +9,11 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/replay_multiple.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/replay_multiple.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate_multiple_deployment.sh
@@ -62,6 +52,5 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/ti_traces_32_1/ti_trace29.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/ti_traces_32_1/ti_trace30.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/ti_traces_32_1/ti_trace31.txt
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 
index 2818e9b..de3cd9c 100755 (executable)
@@ -120,8 +120,8 @@ APPLICATIONTMP=$(echo ${PROC_ARGS}|cut -d' ' -f2 -s)
 
 cat > ${APPLICATIONTMP} <<APPLICATIONHEAD
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 APPLICATIONHEAD
 
 ##---- cache hostnames of hostfile---------------
index bb06949..969fe9a 100644 (file)
 #include "xbt/asserts.h"
 #include "smpi/smpi.h"
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-               "Messages specific for this msg example");
+    "Messages specific for this msg example");
 
 static int smpi_replay(int argc, char *argv[]) {
-       smpi_replay_run(&argc, &argv);
-       return 0;
+  smpi_replay_run(&argc, &argv);
+  return 0;
 }
 
 int main(int argc, char *argv[]){
-       msg_error_t res;
-       const char *platform_file;
-       const char *application_file;
-       const char *description_file;
-
-       MSG_init(&argc, argv);
-
-       if (argc < 4) {
-               printf("Usage: %s description_file platform_file deployment_file\n", argv[0]);
-               printf("example: %s smpi_multiple_apps msg_platform.xml msg_deployment.xml\n", argv[0]);
-               exit(1);
-       }
-       description_file = argv[1];
-       platform_file = argv[2];
-       application_file = argv[3];
-
-
-       /*  Simulation setting */
-       MSG_create_environment(platform_file);
-
-       /*   Application deployment: read the description file in order to identify instances to launch */
-       FILE* fp = fopen(description_file, "r");
-       if (fp == NULL)
-               xbt_die("Cannot open %s", description_file);
-       ssize_t read;
-       char     *line = NULL;
-       size_t n         = 0;
-       int instance_size = 0;
-       const char* instance_id = NULL;
-       while ((read = xbt_getline(&line, &n, fp)) != -1 ){
-               xbt_dynar_t elems = xbt_str_split_quoted_in_place(line);
-               if(xbt_dynar_length(elems)<3){
-                       xbt_die ("Not enough elements in the line");
-               }
-
-               const char** line_char= xbt_dynar_to_array(elems);
-               instance_id = line_char[0];
-               instance_size = atoi(line_char[2]);
-
-               XBT_INFO("Initializing instance %s of size %d", instance_id, instance_size);
-               SMPI_app_instance_register(instance_id, smpi_replay,instance_size);
-
-               xbt_free(line_char);
-       }
-
-       MSG_launch_application(application_file);
-       SMPI_init();
-
-       res = MSG_main();
-
-       XBT_INFO("Simulation time %g", MSG_get_clock());
-
-       SMPI_finalize();
-       if (res == MSG_OK)
-               return 0;
-       else
-               return 1;
+  msg_error_t res;
+  const char *platform_file;
+  const char *application_file;
+  const char *description_file;
+
+  MSG_init(&argc, argv);
+
+  if (argc < 4) {
+    printf("Usage: %s description_file platform_file deployment_file\n", argv[0]);
+    printf("example: %s smpi_multiple_apps msg_platform.xml msg_deployment.xml\n", argv[0]);
+    exit(1);
+  }
+  description_file = argv[1];
+  platform_file = argv[2];
+  application_file = argv[3];
+
+
+  /*  Simulation setting */
+  MSG_create_environment(platform_file);
+
+  /*   Application deployment: read the description file in order to identify instances to launch */
+  FILE* fp = fopen(description_file, "r");
+  if (fp == NULL)
+    xbt_die("Cannot open %s", description_file);
+  ssize_t read;
+  char   *line = NULL;
+  size_t n   = 0;
+  int instance_size = 0;
+  const char* instance_id = NULL;
+  while ((read = xbt_getline(&line, &n, fp)) != -1 ){
+    xbt_dynar_t elems = xbt_str_split_quoted_in_place(line);
+    if(xbt_dynar_length(elems)<3){
+      xbt_die ("Not enough elements in the line");
+    }
+
+    const char** line_char= xbt_dynar_to_array(elems);
+    instance_id = line_char[0];
+    instance_size = xbt_str_parse_int(line_char[2], "Invalid size: %s");
+
+    XBT_INFO("Initializing instance %s of size %d", instance_id, instance_size);
+    SMPI_app_instance_register(instance_id, smpi_replay,instance_size);
+
+    xbt_free(line_char);
+  }
+
+  MSG_launch_application(application_file);
+  SMPI_init();
+
+  res = MSG_main();
+
+  XBT_INFO("Simulation time %g", MSG_get_clock());
+
+  SMPI_finalize();
+  if (res == MSG_OK)
+    return 0;
+  else
+    return 1;
 
 }
index 3a16222..787fd28 100644 (file)
@@ -9,23 +9,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/msg_smpi.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment_masterslave_mailbox_smpi.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/masterslave_mailbox_smpi.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0dc4672..c7dbb18 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <!-- The master process (with some arguments) -->
   <process host="Tremblay" function="master">
      <argument value="20"/>       <!-- Number of tasks -->
index f0b2daa..119c30f 100644 (file)
@@ -19,18 +19,17 @@ int slave(int argc, char *argv[]);
 int master_mpi(int argc, char *argv[]);
 int alltoall_mpi(int argc, char *argv[]);
 
-/** Emitter function  */
+/** sender function  */
 int master(int argc, char *argv[])
 {
-  long number_of_tasks = atol(argv[1]);
-  double task_comp_size = atof(argv[2]);
-  double task_comm_size = atof(argv[3]);
-  long slaves_count = atol(argv[4]);
+  long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
+  double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
+  double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
+  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
 
   int i;
 
-  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count,
-        number_of_tasks);
+  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count, number_of_tasks);
 
   for (i = 0; i < number_of_tasks; i++) {
     char mailbox[256];
diff --git a/examples/xbt/CMakeLists.txt b/examples/xbt/CMakeLists.txt
deleted file mode 100644 (file)
index 4538f56..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  ${CMAKE_CURRENT_SOURCE_DIR}/sem_basic.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/sem_sched.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
diff --git a/examples/xbt/sem_basic.c b/examples/xbt/sem_basic.c
deleted file mode 100644 (file)
index 532a972..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (c) 2007, 2010-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-#include "xbt/xbt_os_thread.h"
-#include "xbt.h"
-#include "xbt/log.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(sem_basic,
-                             "Messages specific for this sem example");
-
-
-
-#define THREAD_THREADS_MAX      ((unsigned int)10)
-
-/*
- * the thread function.
- */
-void *thread_routine(void *param);
-
-/* an entry of the table of threads */
-typedef struct s_thread_entry {
-  xbt_os_thread_t thread;
-  unsigned int thread_index;    /* the index of the thread      */
-} s_thread_entry_t, *thread_entry_t;
-
-
-static xbt_os_sem_t sem = NULL;
-
-static
-int value = 0;
-int main(int argc, char *argv[])
-{
-  s_thread_entry_t threads_table[THREAD_THREADS_MAX] = { 0 };
-  unsigned int i, j;
-  int exit_code = 0;
-
-  xbt_init(&argc, argv);
-
-  sem = xbt_os_sem_init(1);
-
-  i = 0;
-
-  while (i < THREAD_THREADS_MAX) {
-    threads_table[i].thread_index = i;
-
-    if (NULL ==
-        (threads_table[i].thread =
-         xbt_os_thread_create("thread", thread_routine,
-                              &(threads_table[i].thread_index))))
-      break;
-
-    i++;
-  }
-
-  /* close the thread handles */
-  for (j = 0; j < THREAD_THREADS_MAX; j++)
-    xbt_os_thread_join(threads_table[j].thread, NULL);
-
-  xbt_os_sem_destroy(sem);
-
-  XBT_INFO("sem_basic terminated with exit code %d (success)", EXIT_SUCCESS);
-
-  return EXIT_SUCCESS;
-
-}
-
-void *thread_routine(void *param)
-{
-  int thread_index = *((int *) param);
-  int exit_code = 0;
-
-  xbt_os_sem_acquire(sem);
-  XBT_INFO("Hello i'm the thread %d", thread_index);
-  value++;
-  XBT_INFO("The new value of the global variable is %d, bye", value);
-  xbt_os_sem_release(sem);
-
-  xbt_os_thread_exit(&exit_code);
-
-  return (void *) (NULL);
-}
diff --git a/examples/xbt/sem_sched.c b/examples/xbt/sem_sched.c
deleted file mode 100644 (file)
index c6af2d9..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
-/* Copyright (c) 2007-2008, 2010-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-
-#include "xbt/xbt_os_thread.h"
-#include "xbt.h"
-#include "xbt/log.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(sem_sched,
-                             "Messages specific for this sem example");
-
-#ifndef ENOBUFS
-#define ENOBUFS    1024
-#endif
-
-#define CTX_MAX      ((unsigned int)1000)
-
-
-#define MAX_ARG            30
-#define MAX_ARGS          10
-
-typedef int (*pfn_func_t) (int, char **);
-
-static int
- __next_ctx_ID = 0;
-
-typedef struct s_job {
-  pfn_func_t func;
-  int argc;
-  char **argv;
-} s_job_t, *job_t;
-
-
-job_t job_new(pfn_func_t func, int argc, char **argv);
-
-int job_execute(job_t job);
-
-int job_free(job_t * ref);
-
-/* an entry of the table of threads */
-typedef struct s_ctx {
-  xbt_os_sem_t begin;
-  xbt_os_sem_t end;
-  int failure;
-  job_t job;
-  xbt_os_thread_t imp;
-  int index;
-} s_ctx_t, *ctx_t;
-
-typedef struct s_shed {
-  ctx_t *ctxs;
-  int size;
-  int capacity;
-} s_sched_t, *sched_t;
-
-
-void schedule(ctx_t c);
-void unschedule(ctx_t c);
-
-void *ctx_function(void *param);
-
-ctx_t ctx_new(job_t job);
-
-int ctx_free(ctx_t * ref);
-
-sched_t sched_new(int size);
-
-int sched_add_job(sched_t sched, job_t job);
-
-int sched_init(sched_t sched);
-
-int sched_schedule(sched_t sched);
-
-int sched_clean(sched_t sched);
-
-int sched_free(sched_t * ref);
-
-int job(int argc, char *argv[]);
-
-int main(int argc, char *argv[])
-{
-  sched_t sched;
-  int i, size;
-  char **__argv;
-  char arg[MAX_ARG] = { 0 };
-
-
-  xbt_init(&argc, argv);
-
-  if (argc != 2) {
-    XBT_INFO("Usage: %s job count", argv[0]);
-    exit(EXIT_FAILURE);
-  }
-
-
-  size = atoi(argv[1]);
-
-  /* create a new scheduler */
-  sched = sched_new(size);
-
-  if (!sched) {
-    XBT_INFO("sched_new() failed : errno %d", errno);
-    exit(EXIT_FAILURE);
-  }
-
-  __argv = xbt_new0(char *, MAX_ARGS);
-
-  for (i = 0; i < MAX_ARGS; i++) {
-    sprintf(arg, "arg_%d", i);
-    __argv[i] = strdup(arg);
-    memset(arg, 0, MAX_ARG);
-
-  }
-
-  for (i = 0; i < size; i++)
-    sched_add_job(sched,
-                  job_new(job, (i < MAX_ARGS) ? i : MAX_ARGS, __argv));
-
-  /* initialize the scheduler */
-  if (sched_init(sched) < 0) {
-    sched_free(&sched);
-    XBT_INFO("sched_init() failed : errno %d\n", errno);
-    exit(EXIT_FAILURE);
-  }
-
-  /* schedule the jobs */
-  if (sched_schedule(sched) < 0) {
-    sched_free(&sched);
-    XBT_INFO("sched_init() failed : errno %d", errno);
-    exit(EXIT_FAILURE);
-  }
-
-  /* cleanup */
-  if (sched_clean(sched) < 0) {
-    sched_free(&sched);
-    XBT_INFO("sched_init() failed : errno %d", errno);
-    exit(EXIT_FAILURE);
-  }
-
-  /* destroy the scheduler */
-  sched_free(&sched);
-
-  XBT_INFO("sem_sched terminated with exit code %d (success)", EXIT_SUCCESS);
-
-  return EXIT_SUCCESS;
-
-}
-
-void *ctx_function(void *param)
-{
-  int i = 0;
-  int exit_code = 1;
-  ctx_t ctx = (ctx_t) param;
-
-  XBT_INFO("Hello i'm the owner of the context %d, i'm waiting for starting",
-        ctx->index);
-
-  unschedule(ctx);
-
-  if (ctx->failure) {
-    XBT_INFO("0ups the scheduler initialization failed bye {%d}.",
-          ctx->index);
-    xbt_os_thread_exit(&exit_code);
-  }
-
-  XBT_INFO("I'm the owner of the context %d : I'm started", ctx->index);
-  XBT_INFO("Wait a minute, I do my job");
-
-  /* do its job */
-  exit_code = job_execute(ctx->job);
-
-  XBT_INFO("Have finished my job, bye {%d}\n", ctx->index);
-
-  xbt_os_sem_release(ctx->end);
-
-  xbt_os_thread_exit(&exit_code);
-}
-
-void schedule(ctx_t c)
-{
-  xbt_os_sem_release(c->begin); /* allow C to go                */
-  xbt_os_sem_acquire(c->end);   /* wait C's end                 */
-}
-
-void unschedule(ctx_t c)
-{
-  xbt_os_sem_release(c->end);   /* I'm done, dude               */
-  xbt_os_sem_acquire(c->begin); /* can I start again?   */
-}
-
-ctx_t ctx_new(job_t job)
-{
-  ctx_t ctx = xbt_new0(s_ctx_t, 1);
-  ctx->index = ++__next_ctx_ID;
-  ctx->begin = xbt_os_sem_init(0);
-  ctx->end = xbt_os_sem_init(0);
-  ctx->failure = 0;
-  ctx->job = job;
-
-  return ctx;
-}
-
-int ctx_free(ctx_t * ref)
-{
-  ctx_t ctx;
-  if (!(*ref))
-    return EINVAL;
-
-  ctx = *ref;
-
-  xbt_os_sem_destroy(ctx->begin);
-  xbt_os_sem_destroy(ctx->end);
-  job_free(&(ctx->job));
-  free(ctx);
-  *ref = NULL;
-
-  return 0;
-}
-
-sched_t sched_new(int size)
-{
-  sched_t sched;
-
-  if (size <= 0) {
-    errno = EINVAL;
-    return NULL;
-  }
-
-  sched = xbt_new0(s_sched_t, 1);
-
-  if (!sched) {
-    errno = ENOMEM;
-    return NULL;
-  }
-
-  sched->ctxs = xbt_new0(ctx_t, size);
-
-  if (!(sched->ctxs)) {
-    errno = ENOMEM;
-    free(sched);
-    return NULL;
-  }
-
-  sched->size = 0;
-  sched->capacity = size;
-
-  return sched;
-}
-
-int sched_add_job(sched_t sched, job_t job)
-{
-  if (!sched || !job)
-    return EINVAL;
-
-  if (sched->capacity < sched->size)
-    return ENOBUFS;
-
-  sched->ctxs[(sched->size)++] = ctx_new(job);
-
-  return 0;
-}
-
-int sched_init(sched_t sched)
-{
-  int i, j;
-  int success = 1;
-
-  if (!sched)
-    return EINVAL;
-
-  for (i = 0; i < sched->size; i++) {
-    sched->ctxs[i]->imp =
-        xbt_os_thread_create("thread", ctx_function,
-                             (void *) sched->ctxs[i]);
-
-    xbt_os_sem_acquire(sched->ctxs[i]->end);
-  }
-
-  if (!success) {
-    for (j = 0; j < i; j++) {
-      sched->ctxs[j]->failure = 1;
-      xbt_os_sem_release(sched->ctxs[j]->begin);
-    }
-
-    for (j = 0; j < i; j++) {
-      xbt_os_thread_join(sched->ctxs[j]->imp, 0);
-
-      ctx_free(&(sched->ctxs[j]));
-    }
-
-    return -1;
-
-  }
-
-  return 0;
-}
-
-int sched_schedule(sched_t sched)
-{
-  int i;
-
-  if (!sched)
-    return EINVAL;
-
-  for (i = 0; i < sched->size; i++)
-    schedule(sched->ctxs[i]);
-
-  return 0;
-}
-
-int sched_clean(sched_t sched)
-{
-  int i;
-
-  if (!sched)
-    return EINVAL;
-
-  for (i = 0; i < sched->size; i++) {
-    xbt_os_thread_join(sched->ctxs[i]->imp, NULL);
-
-    ctx_free(&(sched->ctxs[i]));
-  }
-
-  return 0;
-}
-
-int sched_free(sched_t * ref)
-{
-  if (*ref)
-    return EINVAL;
-
-  free(((sched_t) (*ref))->ctxs);
-
-  *ref = NULL;
-
-  return 0;
-}
-
-
-int job(int argc, char **argv)
-{
-  int i = 0;
-
-  XBT_INFO
-      ("I'm the job : I'm going to print all the args of my commande line");
-
-  XBT_INFO("-- Arguments (%d):", argc);
-
-  for (i = 0; i < argc; i++)
-    XBT_INFO("  ---- [%i] %s", i, argv[i]);
-
-  return 0;
-}
-
-job_t job_new(pfn_func_t func, int argc, char **argv)
-{
-  job_t job;
-  int i;
-
-  /* todo check the parameters */
-  job = xbt_new0(s_job_t, 1);
-
-  if (!job) {
-    errno = ENOMEM;
-    return NULL;
-  }
-
-  job->argv = xbt_new0(char *, argc);
-
-  if (!(job->argv)) {
-    free(job);
-    errno = ENOMEM;
-    return NULL;
-  }
-
-  for (i = 0; i < argc; i++)
-    job->argv[i] = strdup(argv[i]);
-
-  job->func = func;
-  job->argc = argc;
-
-  return job;
-}
-
-int job_execute(job_t job)
-{
-  if (!job)
-    return EINVAL;
-
-  return job->func(job->argc, job->argv);
-}
-
-int job_free(job_t * ref)
-{
-  job_t job;
-  int i;
-
-  if (!(*ref))
-    return EINVAL;
-
-  job = *ref;
-
-  for (i = 0; i < job->argc; i++)
-    free(job->argv[i]);
-
-  free(job->argv);
-  free(*ref);
-  *ref = NULL;
-
-  return 0;
-}
index ecab7aa..316a59a 100644 (file)
@@ -33,7 +33,6 @@ typedef simgrid::surf::Cpu surf_Cpu;
 typedef simgrid::surf::NetCard surf_NetCard;
 typedef simgrid::surf::Link Link;
 typedef simgrid::surf::Resource surf_Resource;
-typedef simgrid::trace_mgr::future_evt_set sg_future_evt_set;
 
 #else
 
@@ -43,7 +42,6 @@ typedef struct surf_Cpu surf_Cpu;
 typedef struct surf_NetCard surf_NetCard;
 typedef struct surf_Resource surf_Resource;
 typedef struct Link Link;
-typedef struct future_evt_set sg_future_evt_set;
 #endif
 
 typedef simgrid_Host* sg_host_t;
@@ -51,15 +49,12 @@ typedef surf_As *AS_t;
 typedef surf_Cpu *surf_cpu_t;
 typedef surf_NetCard *sg_netcard_t;
 typedef surf_Resource *sg_resource_t;
-typedef sg_future_evt_set *sg_future_evt_set_t;
 
 // Types which are in fact dictelmt:
 typedef xbt_dictelm_t sg_storage_t;
 
 typedef struct tmgr_trace *tmgr_trace_t; /**< Opaque structure defining an availability trace */
 
-typedef void *sg_routing_link_t; /* FIXME:The actual type is model-dependent so use void* instead*/
-
 typedef enum {
   SURF_LINK_FULLDUPLEX = 2,
   SURF_LINK_SHARED = 1,
@@ -68,7 +63,7 @@ typedef enum {
 
 typedef enum {
   SURF_TRACE_CONNECT_KIND_HOST_AVAIL = 4,
-  SURF_TRACE_CONNECT_KIND_POWER = 3,
+  SURF_TRACE_CONNECT_KIND_SPEED = 3,
   SURF_TRACE_CONNECT_KIND_LINK_AVAIL = 2,
   SURF_TRACE_CONNECT_KIND_BANDWIDTH = 1,
   SURF_TRACE_CONNECT_KIND_LATENCY = 0
@@ -79,12 +74,6 @@ typedef enum {
   SURF_PROCESS_ON_FAILURE_RESTART = 0
 } e_surf_process_on_failure_t;
 
-typedef enum {
-  SURF_CLUSTER_FAT_TREE=2,
-  SURF_CLUSTER_FLAT = 1,
-  SURF_CLUSTER_TORUS = 0
-} e_surf_cluster_topology_t;
-
 
 /** @ingroup m_datatypes_management_details
  * @brief Type for any simgrid size
@@ -96,223 +85,4 @@ typedef unsigned long long sg_size_t;
  */
 typedef long long sg_offset_t;
 
-/*
- * Platform creation functions. Instead of passing 123 arguments to the creation functions
- * (one for each possible XML attribute), we pass structures containing them all. It removes the
- * chances of switching arguments by error, and reduce the burden when we add a new attribute:
- * old models can just continue to ignore it without having to update their headers.
- *
- * It shouldn't be too costly at runtime, provided that structures living on the stack are
- * used, instead of malloced structures.
- */
-
-typedef struct {
-  const char* id;
-  xbt_dynar_t speed_peak;
-  int pstate;
-  int core_amount;
-  double speed_scale;
-  tmgr_trace_t speed_trace;
-  int initiallyOn;
-  tmgr_trace_t state_trace;
-  const char* coord;
-  xbt_dict_t properties;
-} s_sg_platf_host_cbarg_t, *sg_platf_host_cbarg_t;
-
-#define SG_PLATF_HOST_INITIALIZER { \
-    NULL, 0, 1, 1, 1., NULL, 1/*ON*/, NULL, \
-    NULL, NULL \
-}
-
-typedef struct {
-  const char* id;
-  const char* link_up;
-  const char* link_down;
-} s_sg_platf_host_link_cbarg_t, *sg_platf_host_link_cbarg_t;
-
-#define SG_PLATF_HOST_LINK_INITIALIZER {NULL,NULL,NULL}
-
-typedef struct {
-  const char* id;
-  const char* coord;
-} s_sg_platf_router_cbarg_t, *sg_platf_router_cbarg_t;
-
-#define SG_PLATF_ROUTER_INITIALIZER {NULL,NULL}
-
-typedef struct {
-  const char* id;
-  double bandwidth;
-  tmgr_trace_t bandwidth_trace;
-  double latency;
-  tmgr_trace_t latency_trace;
-  int initiallyOn;
-  tmgr_trace_t state_trace;
-  e_surf_link_sharing_policy_t policy;
-  xbt_dict_t properties;
-} s_sg_platf_link_cbarg_t, *sg_platf_link_cbarg_t;
-
-#define SG_PLATF_LINK_INITIALIZER {\
-  NULL, 0., NULL, 0., NULL, 1/*ON*/, \
-  NULL, SURF_LINK_SHARED, NULL \
-}
-
-typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t;
-typedef struct s_sg_platf_peer_cbarg {
-  const char* id;
-  double speed;
-  double bw_in;
-  double bw_out;
-  double lat;
-  const char* coord;
-  tmgr_trace_t availability_trace;
-  tmgr_trace_t state_trace;
-} s_sg_platf_peer_cbarg_t;
-
-#define SG_PLATF_PEER_INITIALIZER {NULL,0.0,0.0,0.0,0.0,NULL,NULL,NULL}
-
-typedef struct s_sg_platf_route_cbarg *sg_platf_route_cbarg_t;
-typedef struct s_sg_platf_route_cbarg {
-  int symmetrical;
-  const char *src;
-  const char *dst;
-  sg_netcard_t gw_src;
-  sg_netcard_t gw_dst;
-  xbt_dynar_t link_list;
-} s_sg_platf_route_cbarg_t;
-
-#define SG_PLATF_ROUTE_INITIALIZER {1,NULL,NULL,NULL,NULL,NULL}
-
-typedef struct s_sg_platf_cluster_cbarg *sg_platf_cluster_cbarg_t;
-typedef struct s_sg_platf_cluster_cbarg {
-  const char* id;
-  const char* prefix;
-  const char* suffix;
-  const char* radical;
-  double speed;
-  int core_amount;
-  double bw;
-  double lat;
-  double bb_bw;
-  double bb_lat;
-  double loopback_bw;
-  double loopback_lat;
-  double limiter_link;
-  e_surf_cluster_topology_t topology;
-  const char* topo_parameters;
-  xbt_dict_t properties;
-  const char* router_id;
-  e_surf_link_sharing_policy_t sharing_policy;
-  e_surf_link_sharing_policy_t bb_sharing_policy;
-  const char* availability_trace; //don't convert to tmgr_trace_t since there is a trace per host and some rewriting is needed
-  const char* state_trace;
-} s_sg_platf_cluster_cbarg_t;
-
-#define SG_PLATF_CLUSTER_INITIALIZER {NULL,NULL,NULL,NULL,0.0,1 \
-  ,1.,1.,0.,0.,0.,0.,0. \
-  ,SURF_CLUSTER_FLAT,NULL,NULL,NULL, \
-  SURF_LINK_SHARED,SURF_LINK_SHARED,NULL \
-  ,NULL}
-
-typedef struct s_sg_platf_cabinet_cbarg *sg_platf_cabinet_cbarg_t;
-typedef struct s_sg_platf_cabinet_cbarg {
-  const char* id;
-  const char* prefix;
-  const char* suffix;
-  const char* radical;
-  double speed;
-  double bw;
-  double lat;
-} s_sg_platf_cabinet_cbarg_t;
-
-#define SG_PLATF_CABINET_INITIALIZER {NULL,NULL,NULL,NULL,0.0,0.0,0.0}
-
-typedef struct {
-  const char* id;
-  const char* type_id;
-  const char* content;
-  const char* content_type;
-  xbt_dict_t properties;
-  const char* attach;
-} s_sg_platf_storage_cbarg_t, *sg_platf_storage_cbarg_t;
-
-#define SG_PLATF_STORAGE_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL}
-
-typedef struct {
-  const char* id;
-  const char* model;
-  const char* content;
-  const char* content_type;
-  xbt_dict_t properties;
-  xbt_dict_t model_properties;
-  sg_size_t size;
-} s_sg_platf_storage_type_cbarg_t, *sg_platf_storage_type_cbarg_t;
-
-#define SG_PLATF_STORAGE_TYPE_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL}
-
-typedef struct {
-  const char* type_id;
-  const char* name;
-} s_sg_platf_mstorage_cbarg_t, *sg_platf_mstorage_cbarg_t;
-
-#define SG_PLATF_MSTORAGE_INITIALIZER {NULL,NULL}
-
-typedef struct {
-  const char* storageId;
-  const char* name;
-} s_sg_platf_mount_cbarg_t, *sg_platf_mount_cbarg_t;
-
-#define SG_PLATF_MOUNT_INITIALIZER {NULL,NULL}
-
-typedef struct s_sg_platf_prop_cbarg *sg_platf_prop_cbarg_t;
-typedef struct s_sg_platf_prop_cbarg {
-  const char *id;
-  const char *value;
-} s_sg_platf_prop_cbarg_t;
-
-#define SG_PLATF_PROP_INITIALIZER {NULL,NULL}
-
-typedef struct s_sg_platf_trace_cbarg *sg_platf_trace_cbarg_t;
-typedef struct s_sg_platf_trace_cbarg {
-  const char *id;
-  const char *file;
-  double periodicity;
-  const char *pc_data;
-} s_sg_platf_trace_cbarg_t;
-
-#define SG_PLATF_TRACE_INITIALIZER {NULL,NULL,0.0,NULL}
-
-typedef struct s_sg_platf_trace_connect_cbarg *sg_platf_trace_connect_cbarg_t;
-typedef struct s_sg_platf_trace_connect_cbarg {
-  e_surf_trace_connect_kind_t kind;
-  const char *trace;
-  const char *element;
-} s_sg_platf_trace_connect_cbarg_t;
-
-#define SG_PLATF_TRACE_CONNECT_INITIALIZER {SURF_TRACE_CONNECT_KIND_LATENCY,NULL,NULL}
-
-typedef struct s_sg_platf_process_cbarg *sg_platf_process_cbarg_t;
-typedef struct s_sg_platf_process_cbarg {
-  const char **argv;
-  int argc;
-  xbt_dict_t properties;
-  const char *host;
-  const char *function;
-  double start_time;
-  double kill_time;
-  e_surf_process_on_failure_t on_failure;
-} s_sg_platf_process_cbarg_t;
-
-#define SG_PLATF_PROCESS_INITIALIZER {NULL,0,NULL,NULL,NULL,-1.0,-1.0,SURF_PROCESS_ON_FAILURE_DIE}
-
-typedef struct s_sg_platf_AS_cbarg *sg_platf_AS_cbarg_t;
-typedef struct s_sg_platf_AS_cbarg {
-  const char *id;
-  int routing;
-} s_sg_platf_AS_cbarg_t;
-
-#define SG_PLATF_AS_INITIALIZER {NULL,0}
-
-/** opaque structure defining a event generator for availability based on a probability distribution */
-typedef struct probabilist_event_generator *probabilist_event_generator_t;
-
 #endif
index 410091f..b73a25d 100644 (file)
@@ -21,7 +21,7 @@
 SG_BEGIN_DECL()
 
 XBT_PUBLIC(size_t) sg_host_count();
-XBT_PUBLIC(const sg_host_t *) sg_host_list(void);
+XBT_PUBLIC(sg_host_t *) sg_host_list(void);
 
 XBT_PUBLIC(size_t) sg_host_extension_create(void(*deleter)(void*));
 XBT_PUBLIC(void*) sg_host_extension_get(sg_host_t host, size_t rank);
index d3132c5..1e6a87b 100644 (file)
@@ -17,6 +17,8 @@
 
 #ifdef HAVE_JEDULE
 
+SG_BEGIN_DECL()
+
 struct jed_event {
   int event_id;
   char *name;
@@ -42,6 +44,8 @@ void jed_event_add_characteristic(jed_event_t event, char *characteristic);
 
 void jed_event_add_info(jed_event_t event, char *key, char *value);
 
+SG_END_DECL()
+
 #endif
 
 #endif /* JEDULE_EVENTS_H_ */
index 60ae564..6a4a148 100644 (file)
@@ -16,6 +16,8 @@
 
 #ifdef HAVE_JEDULE
 
+SG_BEGIN_DECL()
+
 extern xbt_dynar_t jedule_event_list;
 
 void jedule_init_output(void);
@@ -27,6 +29,8 @@ void jedule_store_event(jed_event_t event);
 void write_jedule_output(FILE *file, jedule_t jedule,
     xbt_dynar_t event_list, xbt_dict_t meta_info_dict);
 
+SG_END_DECL()
+
 #endif
 
 #endif /* JEDULE_OUTPUT_H_ */
index aac8597..f74ddf6 100644 (file)
@@ -14,6 +14,8 @@
 
 #ifdef HAVE_JEDULE
 
+SG_BEGIN_DECL()
+
 typedef struct jed_simgrid_container s_jed_simgrid_container_t,
     *jed_simgrid_container_t;
 
@@ -90,6 +92,8 @@ void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list,
 
 */
 
+SG_END_DECL()
+
 #endif
 
 
index 0e03906..bd7f982 100644 (file)
@@ -11,7 +11,6 @@
 #include "xbt/lib.h"
 #include "simgrid/forward.h"
 #include "simgrid/simix.h"
-#include "simgrid/platf.h"
 
 SG_BEGIN_DECL()
 
@@ -208,7 +207,7 @@ XBT_PUBLIC(void) MSG_config(const char *key, const char *value);
  *  We allow to link against compiled versions that differ in the patch level.
  */
 #define MSG_init(argc,argv)  do {                                                          \
-       sg_version_check(SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH);\
+  sg_version_check(SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH);\
     MSG_init_nocheck(argc,argv);                                                        \
   } while (0)
 
@@ -233,7 +232,6 @@ XBT_PUBLIC(const char *) MSG_environment_as_get_name(msg_as_t as);
 XBT_PUBLIC(msg_as_t) MSG_environment_as_get_by_name(const char * name);
 XBT_PUBLIC(xbt_dict_t) MSG_environment_as_get_routing_sons(msg_as_t as);
 XBT_PUBLIC(const char *) MSG_environment_as_get_property_value(msg_as_t as, const char *name);
-XBT_PUBLIC(const char *) MSG_environment_as_get_model(msg_as_t as);
 XBT_PUBLIC(xbt_dynar_t) MSG_environment_as_get_hosts(msg_as_t as);
 
 /************************** File handling ***********************************/
@@ -336,6 +334,11 @@ XBT_PUBLIC(msg_process_t) MSG_process_create_with_environment(const char
                                                             char **argv,
                                                             xbt_dict_t
                                                             properties);
+XBT_PUBLIC(msg_process_t) MSG_process_attach(
+  const char *name, void *data,
+  msg_host_t host, xbt_dict_t properties);
+XBT_PUBLIC(void) MSG_process_detach(void);
+
 XBT_PUBLIC(void) MSG_process_kill(msg_process_t process);
 XBT_PUBLIC(int) MSG_process_killall(int reset_PIDs);
 XBT_PUBLIC(msg_error_t) MSG_process_migrate(msg_process_t process, msg_host_t host);
diff --git a/include/simgrid/platf.h b/include/simgrid/platf.h
deleted file mode 100644 (file)
index 5b57f6b..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* platf.h - Public interface to the SimGrid platforms                      */
-
-/* Copyright (c) 2004-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SG_PLATF_H
-#define SG_PLATF_H
-
-#include <xbt.h>
-#include <simgrid/host.h>
-#include "forward.h"
-
-SG_BEGIN_DECL()
-
-static inline char* sg_storage_name(sg_storage_t storage) {
-  return storage->key;
-}
-
-XBT_PUBLIC(sg_netcard_t) sg_netcard_by_name_or_null(const char *name);
-
-XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_file(const char *filename);
-XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_string(const char *id,
-                                                    const char *input,
-                                                    double periodicity);
-
-XBT_PUBLIC(tmgr_trace_t) tmgr_trace_generator_value(const char *id,
-                                              probabilist_event_generator_t date_generator,
-                                              probabilist_event_generator_t value_generator);
-XBT_PUBLIC(tmgr_trace_t) tmgr_trace_generator_state(const char *id,
-                                              probabilist_event_generator_t date_generator,
-                                              int first_event_hostIsOn);
-XBT_PUBLIC(tmgr_trace_t) tmgr_trace_generator_avail_unavail(const char *id,
-                                              probabilist_event_generator_t avail_duration_generator,
-                                              probabilist_event_generator_t unavail_duration_generator,
-                                              int first_event_hostIsOn);
-
-XBT_PUBLIC(probabilist_event_generator_t) tmgr_event_generator_new_uniform(const char* id,
-                                                                           double min,
-                                                                           double max);
-XBT_PUBLIC(probabilist_event_generator_t) tmgr_event_generator_new_exponential(const char* id,
-                                                                           double rate);
-XBT_PUBLIC(probabilist_event_generator_t) tmgr_event_generator_new_weibull(const char* id,
-                                                                           double scale,
-                                                                           double shape);
-
-/* ***************************************** */
-
-XBT_PUBLIC(void) sg_platf_begin(void);  // Start a new platform
-XBT_PUBLIC(void) sg_platf_end(void); // Finish the creation of the platform
-
-XBT_PUBLIC(void) sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS); // Begin description of new AS
-XBT_PUBLIC(void) sg_platf_new_AS_end(void);                            // That AS is fully described
-
-XBT_PUBLIC(void) sg_platf_new_host   (sg_platf_host_cbarg_t   host);   // Add an host   to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_netcard(sg_platf_host_link_cbarg_t h); // Add an host_link to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_router (sg_platf_router_cbarg_t router); // Add a router  to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_link   (sg_platf_link_cbarg_t link);     // Add a link    to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_peer   (sg_platf_peer_cbarg_t peer);     // Add a peer    to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_cluster(sg_platf_cluster_cbarg_t clust); // Add a cluster to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet); // Add a cabinet to the currently described AS
-
-XBT_PUBLIC(void) sg_platf_new_route (sg_platf_route_cbarg_t route); // Add a route
-XBT_PUBLIC(void) sg_platf_new_ASroute (sg_platf_route_cbarg_t ASroute); // Add an ASroute
-XBT_PUBLIC(void) sg_platf_new_bypassRoute (sg_platf_route_cbarg_t bypassroute); // Add a bypassRoute
-XBT_PUBLIC(void) sg_platf_new_bypassASroute (sg_platf_route_cbarg_t bypassASroute); // Add an bypassASroute
-
-XBT_PUBLIC(void) sg_platf_new_trace(sg_platf_trace_cbarg_t trace);
-XBT_PUBLIC(void) sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect);
-
-XBT_PUBLIC(void) sg_platf_new_storage(sg_platf_storage_cbarg_t storage); // Add a storage to the currently described AS
-XBT_PUBLIC(void) sg_platf_new_mstorage(sg_platf_mstorage_cbarg_t mstorage);
-XBT_PUBLIC(void) sg_platf_new_storage_type(sg_platf_storage_type_cbarg_t storage_type);
-XBT_PUBLIC(void) sg_platf_new_mount(sg_platf_mount_cbarg_t mount);
-
-XBT_PUBLIC(void) sg_platf_new_process(sg_platf_process_cbarg_t process);
-
-// Add route and Asroute without xml file with those functions
-XBT_PUBLIC(void) sg_platf_route_begin (sg_platf_route_cbarg_t route); // Initialize route
-XBT_PUBLIC(void) sg_platf_route_end (sg_platf_route_cbarg_t route); // Finalize and add a route
-
-XBT_PUBLIC(void) sg_platf_ASroute_begin (sg_platf_route_cbarg_t ASroute); // Initialize ASroute
-XBT_PUBLIC(void) sg_platf_ASroute_end (sg_platf_route_cbarg_t ASroute); // Finalize and add a ASroute
-
-XBT_PUBLIC(void) sg_platf_route_add_link (const char* link_id, sg_platf_route_cbarg_t route); // Add a link to link list
-XBT_PUBLIC(void) sg_platf_ASroute_add_link (const char* link_id, sg_platf_route_cbarg_t ASroute); // Add a link to link list
-
-SG_END_DECL()
-
-#endif                          /* SG_PLATF_H */
diff --git a/include/simgrid/platf_generator.h b/include/simgrid/platf_generator.h
deleted file mode 100644 (file)
index fbe912c..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-
-/* platf_generator.h - Public interface to the SimGrid platforms generator  */
-
-/* Copyright (c) 2004-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SG_PLATF_GEN_H
-#define SG_PLATF_GEN_H
-
-#include "xbt.h"
-#include "xbt/graph.h" //Only for platf_graph_get()
-#include "platf.h"
-
-typedef enum {
-  ROUTER,
-  HOST,
-  CLUSTER
-} e_platf_node_kind;
-
-typedef struct s_context_node_t {
-  unsigned long id;
-  double x, y;
-  int degree;
-  e_platf_node_kind kind;
-  int connect_checked;
-  union {
-    s_sg_platf_host_cbarg_t host_parameters;
-    s_sg_platf_cluster_cbarg_t cluster_parameters;
-    char* router_id;
-  };
-} s_context_node_t, *context_node_t;
-
-typedef struct s_context_edge_t {
-  unsigned long id;
-  double length;
-  int labeled;
-  s_sg_platf_link_cbarg_t link_parameters;
-} s_context_edge_t, *context_edge_t;
-
-typedef void (*platf_promoter_cb_t) (context_node_t);
-typedef void (*platf_labeler_cb_t) (context_edge_t);
-
-XBT_PUBLIC(void) platf_random_seed(unsigned long seed[6]);
-
-XBT_PUBLIC(void) platf_graph_uniform(unsigned long node_count);
-XBT_PUBLIC(void) platf_graph_heavytailed(unsigned long node_count);
-
-XBT_PUBLIC(void) platf_graph_interconnect_star(void);
-XBT_PUBLIC(void) platf_graph_interconnect_line(void);
-XBT_PUBLIC(void) platf_graph_interconnect_ring(void);
-XBT_PUBLIC(void) platf_graph_interconnect_clique(void);
-XBT_PUBLIC(void) platf_graph_interconnect_uniform(double alpha);
-XBT_PUBLIC(void) platf_graph_interconnect_exponential(double alpha);
-XBT_PUBLIC(void) platf_graph_interconnect_zegura(double alpha, double beta, double r);
-XBT_PUBLIC(void) platf_graph_interconnect_waxman(double alpha, double beta);
-XBT_PUBLIC(void) platf_graph_interconnect_barabasi(void);
-
-XBT_PUBLIC(int) platf_graph_is_connected(void);
-
-XBT_PUBLIC(void) platf_graph_clear_links(void);
-
-XBT_PUBLIC(void) platf_graph_promote_to_host(context_node_t node, sg_platf_host_cbarg_t parameters);
-XBT_PUBLIC(void) platf_graph_promote_to_cluster(context_node_t node, sg_platf_cluster_cbarg_t parameters);
-
-XBT_PUBLIC(void) platf_graph_link_label(context_edge_t edge, sg_platf_link_cbarg_t parameters);
-
-XBT_PUBLIC(void) platf_graph_promoter(platf_promoter_cb_t promoter_callback);
-XBT_PUBLIC(void) platf_graph_labeler(platf_labeler_cb_t labeler_callback);
-
-XBT_PUBLIC(void) platf_do_promote(void);
-XBT_PUBLIC(void) platf_do_label(void);
-
-XBT_PUBLIC(void) platf_generate(void);
-
-// WARNING : Only for debbugging ; should be removed when platform
-// generation works correctly
-XBT_PUBLIC(xbt_graph_t) platf_graph_get(void);
-
-#endif              /* SG_PLATF_GEN_H */
-
index f807407..696da86 100644 (file)
@@ -30,74 +30,74 @@ namespace s4u {
  *
  * class Worker : simgrid::s4u::Actor {
  *
- *       int main(int argc, char **argv) {
- *             printf("Hello s4u");
- *       }
+ *     int main(int argc, char **argv) {
+ *    printf("Hello s4u");
+ *    }
  * };
  * \endverbatim
  *
  */
 XBT_PUBLIC_CLASS Actor {
-       friend Comm;
-       Actor(smx_process_t smx_proc);
+  friend Comm;
+  Actor(smx_process_t smx_proc);
 public:
-       Actor(const char*name, s4u::Host *host, int argc, char **argv);
-       Actor(const char*name, s4u::Host *host, int argc, char **argv, double killTime);
-       virtual ~Actor() {}
-
-       /** The main method of your agent */
-       virtual int main(int argc, char **argv);
-
-       /** The Actor that is currently running */
-       static Actor *current();
-       /** Retrieves the actor that have the given PID (or NULL if not existing) */
-       static Actor *byPid(int pid);
-
-       /** Retrieves the name of that actor */
-       const char*getName();
-       /** Retrieves the host on which that actor is running */
-       s4u::Host *getHost();
-       /** Retrieves the PID of that actor */
-       int getPid();
-
-       /** If set to true, the actor will automatically restart when its host reboots */
-       void setAutoRestart(bool autorestart);
-       /** Sets the time at which that actor should be killed */
-       void setKillTime(double time);
-       /** Retrieves the time at which that actor will be killed (or -1 if not set) */
-       double getKillTime();
-
-       /** Ask kindly to all actors to die. Only the issuer will survive. */
-       static void killAll();
-       /** Ask the actor to die.
-        *
-        * It will only notice your request when doing a simcall next time (a communication or similar).
-        * SimGrid sometimes have issues when you kill actors that are currently communicating and such. We are working on it to fix the issues.
-        */
-       void kill();
-
-       /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */
-       void sleep(double duration);
-
-       /** Block the actor, computing the given amount of flops */
-       e_smx_state_t execute(double flop);
-
-       /** Block the actor until it gets a message from the given mailbox.
-        *
-        * See \ref Comm for the full communication API (including non blocking communications).
-        */
-       void *recv(Mailbox &chan);
-
-       /** Block the actor until it delivers a message of the given simulated size to the given mailbox
-        *
-        * See \ref Comm for the full communication API (including non blocking communications).
-       */
-       void send(Mailbox &chan, void*payload, size_t simulatedSize);
+  Actor(const char*name, s4u::Host *host, int argc, char **argv);
+  Actor(const char*name, s4u::Host *host, int argc, char **argv, double killTime);
+  virtual ~Actor() {}
+
+  /** The main method of your agent */
+  virtual int main(int argc, char **argv);
+
+  /** The Actor that is currently running */
+  static Actor *current();
+  /** Retrieves the actor that have the given PID (or NULL if not existing) */
+  static Actor *byPid(int pid);
+
+  /** Retrieves the name of that actor */
+  const char*getName();
+  /** Retrieves the host on which that actor is running */
+  s4u::Host *getHost();
+  /** Retrieves the PID of that actor */
+  int getPid();
+
+  /** If set to true, the actor will automatically restart when its host reboots */
+  void setAutoRestart(bool autorestart);
+  /** Sets the time at which that actor should be killed */
+  void setKillTime(double time);
+  /** Retrieves the time at which that actor will be killed (or -1 if not set) */
+  double getKillTime();
+
+  /** Ask kindly to all actors to die. Only the issuer will survive. */
+  static void killAll();
+  /** Ask the actor to die.
+   *
+   * It will only notice your request when doing a simcall next time (a communication or similar).
+   * SimGrid sometimes have issues when you kill actors that are currently communicating and such. We are working on it to fix the issues.
+   */
+  void kill();
+
+  /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */
+  void sleep(double duration);
+
+  /** Block the actor, computing the given amount of flops */
+  e_smx_state_t execute(double flop);
+
+  /** Block the actor until it gets a message from the given mailbox.
+   *
+   * See \ref Comm for the full communication API (including non blocking communications).
+   */
+  void *recv(Mailbox &chan);
+
+  /** Block the actor until it delivers a message of the given simulated size to the given mailbox
+   *
+   * See \ref Comm for the full communication API (including non blocking communications).
+  */
+  void send(Mailbox &chan, void*payload, size_t simulatedSize);
 
 protected:
-       smx_process_t getInferior() {return p_smx_process;}
+  smx_process_t getInferior() {return p_smx_process;}
 private:
-       smx_process_t p_smx_process;
+  smx_process_t p_smx_process;
 };
 }} // namespace simgrid::s4u
 
@@ -106,34 +106,34 @@ private:
 #if 0
 
 public abstract class Actor implements Runnable {
-       /** Suspends the process. See {@link #resume()} to resume it afterward */
-       public native void suspend();
-       /** Resume a process that was suspended by {@link #suspend()}. */
-       public native void resume();    
-       /** Tests if a process is suspended. */
-       public native boolean isSuspended();
-       
-       /**
-        * Returns the value of a given process property. 
-        */
-       public native String getProperty(String name);
-
-
-       /**
-        * Migrates a process to another host.
-        *
-        * @param host                  The host where to migrate the process.
-        *
-        */
-       public native void migrate(Host host);  
-
-       public native void exit();    
-       /**
-        * This static method returns the current amount of processes running
-        *
-        * @return                      The count of the running processes
-        */ 
-       public native static int getCount();
+  /** Suspends the process. See {@link #resume()} to resume it afterward */
+  public native void suspend();
+  /** Resume a process that was suspended by {@link #suspend()}. */
+  public native void resume();  
+  /** Tests if a process is suspended. */
+  public native boolean isSuspended();
+  
+  /**
+   * Returns the value of a given process property. 
+   */
+  public native String getProperty(String name);
+
+
+  /**
+   * Migrates a process to another host.
+   *
+   * @param host      The host where to migrate the process.
+   *
+   */
+  public native void migrate(Host host);  
+
+  public native void exit();    
+  /**
+   * This static method returns the current amount of processes running
+   *
+   * @return      The count of the running processes
+   */ 
+  public native static int getCount();
 
 }
 #endif
index 37bd4e1..6500b79 100644 (file)
@@ -15,7 +15,7 @@
 
 SG_BEGIN_DECL();
 typedef enum {
-       inited, started, finished
+  inited, started, finished
 } e_s4u_async_state_t;
 SG_END_DECL();
 
@@ -27,51 +27,51 @@ namespace s4u {
  * This class is the ancestor of every asynchronous actions, that is, of actions that do take time in the simulated world.
  */
 XBT_PUBLIC_CLASS Async {
-       friend Comm;
+  friend Comm;
 protected:
-       Async();
-       virtual ~Async();
-       
+  Async();
+  virtual ~Async();
+  
 private:
-       struct s_smx_synchro *p_inferior = NULL;
+  struct s_smx_synchro *p_inferior = NULL;
 
 private:
-       e_s4u_async_state_t p_state = inited;
+  e_s4u_async_state_t p_state = inited;
 public:
-       /** Starts a previously created async.
-        *
-        * This function is optional: you can call wait() even if you didn't call start()
-        */
-       virtual void start()=0;
-       /** Tests whether the given async is terminated yet */
-       //virtual bool test()=0;
-       /** Blocks until the async is terminated */
-       virtual void wait()=0;
-       /** Blocks until the async is terminated, or until the timeout is elapsed
-        *  Raises: timeout exception.*/
-       virtual void wait(double timeout)=0;
-       /** Cancel that async */
-       //virtual void cancel();
-       /** Retrieve the current state of the async */
-       e_s4u_async_state_t getState() {return p_state;}
+  /** Starts a previously created async.
+   *
+   * This function is optional: you can call wait() even if you didn't call start()
+   */
+  virtual void start()=0;
+  /** Tests whether the given async is terminated yet */
+  //virtual bool test()=0;
+  /** Blocks until the async is terminated */
+  virtual void wait()=0;
+  /** Blocks until the async is terminated, or until the timeout is elapsed
+   *  Raises: timeout exception.*/
+  virtual void wait(double timeout)=0;
+  /** Cancel that async */
+  //virtual void cancel();
+  /** Retrieve the current state of the async */
+  e_s4u_async_state_t getState() {return p_state;}
 
 private:
-       double p_remains = 0;
+  double p_remains = 0;
 public:
-       /** Get the remaining amount of work that this Async entails. When it's 0, it's done. */
-       double getRemains();
-       /** Set the [remaining] amount of work that this Async will entail
-        *
-        * It is forbidden to change the amount of work once the Async is started */
-       void setRemains(double remains);
+  /** Get the remaining amount of work that this Async entails. When it's 0, it's done. */
+  double getRemains();
+  /** Set the [remaining] amount of work that this Async will entail
+   *
+   * It is forbidden to change the amount of work once the Async is started */
+  void setRemains(double remains);
 
 private:
-       void *p_userData = NULL;
+  void *p_userData = NULL;
 public:
-       /** Put some user data onto the Async */
-       void setUserData(void *data) {p_userData=data;}
-       /** Retrieve the user data of the Async */
-       void *getUserData() { return p_userData; }
+  /** Put some user data onto the Async */
+  void setUserData(void *data) {p_userData=data;}
+  /** Retrieve the user data of the Async */
+  void *getUserData() { return p_userData; }
 }; // class
 
 }}; // Namespace simgrid::s4u
index fa6b064..ded1496 100644 (file)
@@ -20,61 +20,61 @@ namespace s4u {
  * Represents all asynchronous communications, that you can test or wait onto.
  */
 XBT_PUBLIC_CLASS Comm : public Async {
-       Comm() : Async() {}
+  Comm() : Async() {}
 public:
-       virtual ~Comm();
+  virtual ~Comm();
 
 public:
-       /** Creates (but don't start) an async send to the mailbox #dest */
-       static Comm &send_init(Actor *sender, Mailbox &dest);
-       /** Creates and start an async send to the mailbox #dest */
-       static Comm &send_async(s4u::Actor *sender, Mailbox &dest, void *data, int simulatedByteAmount);
+  /** Creates (but don't start) an async send to the mailbox #dest */
+  static Comm &send_init(Actor *sender, Mailbox &dest);
+  /** Creates and start an async send to the mailbox #dest */
+  static Comm &send_async(s4u::Actor *sender, Mailbox &dest, void *data, int simulatedByteAmount);
     /** Creates (but don't start) an async recv onto the mailbox #from */
-       static Comm &recv_init(s4u::Actor *receiver, Mailbox &from);
-       /** Creates and start an async recv to the mailbox #from */
-       static Comm &recv_async(s4u::Actor *receiver, Mailbox &from, void **data);
+  static Comm &recv_init(s4u::Actor *receiver, Mailbox &from);
+  /** Creates and start an async recv to the mailbox #from */
+  static Comm &recv_async(s4u::Actor *receiver, Mailbox &from, void **data);
 
-       void start() override;
-       void wait() override;
-       void wait(double timeout) override;
+  void start() override;
+  void wait() override;
+  void wait(double timeout) override;
 
 private:
-       double p_rate=-1;
+  double p_rate=-1;
 public:
-       /** Sets the maximal communication rate (in byte/sec). Must be done before start */
-       void setRate(double rate);
+  /** Sets the maximal communication rate (in byte/sec). Must be done before start */
+  void setRate(double rate);
 
 private:
-       void *p_dstBuff = NULL;
-       size_t p_dstBuffSize = 0;
-       void *p_srcBuff = NULL;
-       size_t p_srcBuffSize = sizeof(void*);
+  void *p_dstBuff = NULL;
+  size_t p_dstBuffSize = 0;
+  void *p_srcBuff = NULL;
+  size_t p_srcBuffSize = sizeof(void*);
 public:
-       /** Specify the data to send */
-       void setSrcData(void * buff);
-       /** Specify the size of the data to send */
-       void setSrcDataSize(size_t size);
-       /** Specify the data to send and its size */
-       void setSrcData(void * buff, size_t size);
+  /** Specify the data to send */
+  void setSrcData(void * buff);
+  /** Specify the size of the data to send */
+  void setSrcDataSize(size_t size);
+  /** Specify the data to send and its size */
+  void setSrcData(void * buff, size_t size);
 
-       /** Specify where to receive the data */
-       void setDstData(void ** buff);
-       /** Specify the buffer in which the data should be received */
-       void setDstData(void ** buff, size_t size);
-       /** Retrieve the size of the received data */
-       size_t getDstDataSize();
+  /** Specify where to receive the data */
+  void setDstData(void ** buff);
+  /** Specify the buffer in which the data should be received */
+  void setDstData(void ** buff, size_t size);
+  /** Retrieve the size of the received data */
+  size_t getDstDataSize();
 
 
 private: /* FIXME: expose these elements in the API */
-       int p_detached = 0;
+  int p_detached = 0;
     int (*p_matchFunction)(void *, void *, smx_synchro_t) = NULL;
     void (*p_cleanFunction)(void *) = NULL;
     void (*p_copyDataFunction)(smx_synchro_t, void*, size_t) = NULL;
 
 private:
-       Actor *p_sender = NULL;
-       Actor *p_receiver = NULL;
-       Mailbox *p_mailbox = NULL;
+  Actor *p_sender = NULL;
+  Actor *p_receiver = NULL;
+  Mailbox *p_mailbox = NULL;
 };
 
 }} // namespace simgrid::s4u
index da1d33a..e5bc4d2 100644 (file)
@@ -18,35 +18,35 @@ namespace s4u {
  */
 XBT_PUBLIC_CLASS Engine {
 public:
-       /** Constructor, taking the command line parameters of your main function */
-       Engine(int *argc, char **argv);
-
-       /** @brief Load a platform file describing the environment
-        *
-        * The environment is either a XML file following the simgrid.dtd formalism, or a lua file.
-        * Some examples can be found in the directory examples/platforms.
-        */
-       void loadPlatform(const char *platf);
-
-       /** Registers the main function of an actor that will be launched from the deployment file */
-       void register_function(const char*name, int (*code)(int,char**));
-
-       /** Registers a function as the default main function of actors
-        *
-        * It will be used as fallback when the function requested from the deployment file was not registered.
-        * It is used for trace-based simulations (see examples/msg/actions).
-        */
-       void register_default(int (*code)(int,char**));
-
-       /** @brief Load a deployment file and launch the actors that it contains */
-       void loadDeployment(const char *deploy);
-
-       /** @brief Run the simulation */
-       void run();
-
-       /** @brief Retrieve the simulation time */
-       static double getClock();
-       
+  /** Constructor, taking the command line parameters of your main function */
+  Engine(int *argc, char **argv);
+
+  /** @brief Load a platform file describing the environment
+   *
+   * The environment is either a XML file following the simgrid.dtd formalism, or a lua file.
+   * Some examples can be found in the directory examples/platforms.
+   */
+  void loadPlatform(const char *platf);
+
+  /** Registers the main function of an actor that will be launched from the deployment file */
+  void register_function(const char*name, int (*code)(int,char**));
+
+  /** Registers a function as the default main function of actors
+   *
+   * It will be used as fallback when the function requested from the deployment file was not registered.
+   * It is used for trace-based simulations (see examples/msg/actions).
+   */
+  void register_default(int (*code)(int,char**));
+
+  /** @brief Load a deployment file and launch the actors that it contains */
+  void loadDeployment(const char *deploy);
+
+  /** @brief Run the simulation */
+  void run();
+
+  /** @brief Retrieve the simulation time */
+  static double getClock();
+  
 };
 }} // namespace simgrid::sgo
 
index 6c4ccd0..f2182a3 100644 (file)
@@ -27,56 +27,56 @@ class Storage;
  */
 XBT_PUBLIC_CLASS File {
 public:
-       File(const char *fullpath, void* userdata);
-       ~File();
+  File(const char *fullpath, void* userdata);
+  ~File();
 private:
-       smx_file_t p_inferior;
-       const char *p_path;
+  smx_file_t p_inferior;
+  const char *p_path;
 
 public:
-       /** Retrieves the path to the file */
-       const char *path() { return p_path;}
+  /** Retrieves the path to the file */
+  const char *path() { return p_path;}
 public:
-       /** Simulates a read action. Returns the size of data actually read
-        *
-        *  FIXME: reading from a remotely mounted disk is not implemented yet. Any storage is considered as local, and no network communication ever occur.
-        */
-       sg_size_t read(sg_size_t size);
-       /** Simulates a write action. Returns the size of data actually written.
-        *
-        *  FIXME: reading from a remotely mounted disk is not implemented yet. Any storage is considered as local, and no network communication ever occur.
-        */
-       sg_size_t write(sg_size_t size);
-
-       /** Allows to store user data on that host */
-       void set_userdata(void *data) {p_userdata = data;}
-       /** Retrieves the previously stored data */
-       void* userdata() {return p_userdata;}
+  /** Simulates a read action. Returns the size of data actually read
+   *
+   *  FIXME: reading from a remotely mounted disk is not implemented yet. Any storage is considered as local, and no network communication ever occur.
+   */
+  sg_size_t read(sg_size_t size);
+  /** Simulates a write action. Returns the size of data actually written.
+   *
+   *  FIXME: reading from a remotely mounted disk is not implemented yet. Any storage is considered as local, and no network communication ever occur.
+   */
+  sg_size_t write(sg_size_t size);
+
+  /** Allows to store user data on that host */
+  void set_userdata(void *data) {p_userdata = data;}
+  /** Retrieves the previously stored data */
+  void* userdata() {return p_userdata;}
 private:
-       void *p_userdata=NULL;
+  void *p_userdata=NULL;
 
 public:
-       /** Retrieve the datasize */
-       sg_size_t size();
-
-       /** Sets the file head to the given position. */
-       void seek(sg_size_t pos);
-       /** Retrieves the current file position */
-       sg_size_t tell();
-
-       /** Rename a file
-        *
-        * WARNING: It is forbidden to move the file to another mount point */
-       void move(const char*fullpath);
-
-       /** Remove a file from disk */
-       void unlink();
-
-       /* FIXME: add these to the S4U API:
-       XBT_PUBLIC(const char *) MSG_file_get_name(msg_file_t file);
-       XBT_PUBLIC(msg_error_t) MSG_file_rcopy(msg_file_t fd, msg_host_t host, const char* fullpath);
-       XBT_PUBLIC(msg_error_t) MSG_file_rmove(msg_file_t fd, msg_host_t host, const char* fullpath);
-       */
+  /** Retrieve the datasize */
+  sg_size_t size();
+
+  /** Sets the file head to the given position. */
+  void seek(sg_size_t pos);
+  /** Retrieves the current file position */
+  sg_size_t tell();
+
+  /** Rename a file
+   *
+   * WARNING: It is forbidden to move the file to another mount point */
+  void move(const char*fullpath);
+
+  /** Remove a file from disk */
+  void unlink();
+
+  /* FIXME: add these to the S4U API:
+  XBT_PUBLIC(const char *) MSG_file_get_name(msg_file_t file);
+  XBT_PUBLIC(msg_error_t) MSG_file_rcopy(msg_file_t fd, msg_host_t host, const char* fullpath);
+  XBT_PUBLIC(msg_error_t) MSG_file_rmove(msg_file_t fd, msg_host_t host, const char* fullpath);
+  */
 
 };
 
index 65960a8..20e5e7d 100644 (file)
@@ -41,70 +41,70 @@ XBT_PUBLIC_CLASS Host :
   public simgrid::xbt::Extendable<Host> {
 
 private:
-       Host(const char *name);
+  Host(const char *name);
 public: // TODO, make me private
-       ~Host();
+  ~Host();
 public:
 
   static Host* by_name_or_null(const char* name);
   static Host* by_name_or_create(const char* name);
-       /** Retrieves an host from its name. */
-       static s4u::Host *by_name(std::string name);
-       /** Retrieves the host on which the current actor is running */
-       static s4u::Host *current();
-
-       simgrid::xbt::string const& name() const { return name_; }
-
-       /** Turns that host on if it was previously off
-        *
-        * All actors on that host which were marked autorestart will be restarted automatically.
-        * This call does nothing if the host is already on.
-        */
-       void turn_on();
-       /** Turns that host off. All actors are forcefully stopped. */
-       void turn_off();
-       /** Returns if that host is currently up and running */
-       bool is_on();
-       bool is_off() { return !is_on(); }
-
-       double speed();
-       int core_count();
-       xbt_dict_t properties();
-       xbt_swag_t processes();
-       double current_power_peak();
-       double power_peak_at(int pstate_index);
-       void set_pstate(int pstate_index);
-       int pstates_count() const;
-       int pstate();
-       void get_parameters(vm_params_t params);
-       void set_parameters(vm_params_t params);
-       xbt_dict_t mounted_storages_as_dict(); // HACK
-       xbt_dynar_t attached_storages();
-
-       /** Get an associative list [mount point]->[Storage] off all local mount points.
-        *
-        *      This is defined in the platform file, and cannot be modified programatically (yet).
-        */
-       boost::unordered_map<std::string, Storage*> const &mounted_storages();
+  /** Retrieves an host from its name. */
+  static s4u::Host *by_name(std::string name);
+  /** Retrieves the host on which the current actor is running */
+  static s4u::Host *current();
+
+  simgrid::xbt::string const& name() const { return name_; }
+
+  /** Turns that host on if it was previously off
+   *
+   * All actors on that host which were marked autorestart will be restarted automatically.
+   * This call does nothing if the host is already on.
+   */
+  void turn_on();
+  /** Turns that host off. All actors are forcefully stopped. */
+  void turn_off();
+  /** Returns if that host is currently up and running */
+  bool is_on();
+  bool is_off() { return !is_on(); }
+
+  double speed();
+  int core_count();
+  xbt_dict_t properties();
+  xbt_swag_t processes();
+  double current_power_peak();
+  double power_peak_at(int pstate_index);
+  void set_pstate(int pstate_index);
+  int pstates_count() const;
+  int pstate();
+  void get_parameters(vm_params_t params);
+  void set_parameters(vm_params_t params);
+  xbt_dict_t mounted_storages_as_dict(); // HACK
+  xbt_dynar_t attached_storages();
+
+  /** Get an associative list [mount point]->[Storage] off all local mount points.
+   *
+   *  This is defined in the platform file, and cannot be modified programatically (yet).
+   */
+  boost::unordered_map<std::string, Storage*> const &mounted_storages();
 
 private:
-       simgrid::xbt::string name_ = "noname";
-       boost::unordered_map<std::string, Storage*> *mounts = NULL; // caching
+  simgrid::xbt::string name_ = "noname";
+  boost::unordered_map<std::string, Storage*> *mounts = NULL; // caching
 
 public:
-       // FIXME: these should be protected, but it leads to many errors
-       // Use the extensions stuff for this? Go through simgrid::surf::Host?
+  // FIXME: these should be protected, but it leads to many errors
+  // Use the extensions stuff for this? Go through simgrid::surf::Host?
   // TODO, this could be a unique_ptr
-       surf::Cpu     *pimpl_cpu = nullptr;
-       surf::NetCard *pimpl_netcard = nullptr;
+  surf::Cpu     *pimpl_cpu = nullptr;
+  surf::NetCard *pimpl_netcard = nullptr;
 
 public:
-       /*** Called on each newly created object */
-       static simgrid::xbt::signal<void(Host&)> onCreation;
-       /*** Called just before destructing an object */
-       static simgrid::xbt::signal<void(Host&)> onDestruction;
-       /*** Called when the machine is turned on or off */
-       static simgrid::xbt::signal<void(Host&)> onStateChange;
+  /*** Called on each newly created object */
+  static simgrid::xbt::signal<void(Host&)> onCreation;
+  /*** Called just before destructing an object */
+  static simgrid::xbt::signal<void(Host&)> onDestruction;
+  /*** Called when the machine is turned on or off */
+  static simgrid::xbt::signal<void(Host&)> onStateChange;
 };
 
 }} // namespace simgrid::s4u
@@ -134,75 +134,75 @@ import org.simgrid.msg.Storage;
 Host jacquelin;
 
 try { 
-       jacquelin = Host.getByName("Jacquelin");
+  jacquelin = Host.getByName("Jacquelin");
 } catch(HostNotFoundException e) {
-       System.err.println(e.toString());
+  System.err.println(e.toString());
 }
 ...
 \endverbatim
  *
  */ 
 public class Host {
-       /**
-        * This static method returns all of the hosts of the installed platform.
-        *
-        * @return                      An array containing all the hosts installed.
-        *
-        */ 
-       public native static Host[] all();
-
-       /** 
-        * This static method sets a mailbox to receive in asynchronous mode.
-        
-        * All messages sent to this mailbox will be transferred to 
-        * the receiver without waiting for the receive call. 
-        * The receive call will still be necessary to use the received data.
-        * If there is a need to receive some messages asynchronously, and some not, 
-        * two different mailboxes should be used.
-        *
-        * @param mailboxName The name of the mailbox
-        */
-       public static native void setAsyncMailbox(String mailboxName);
-
-       /**
-        * This method returns the number of tasks currently running on a host.
-        * The external load (comming from an availability trace) is not taken in account.
-        *
-        * @return                      The number of tasks currently running on a host.
-        */ 
-       public native int getLoad();
-
-       /**
-        * This method returns the speed of the processor of a host,
-        * regardless of the current load of the machine.
-        *
-        * @return                      The speed of the processor of the host in flops.
-        *
-        */ 
-       public native double getSpeed();
-
-       /**
-        * This method returns the number of core of a host.
-        *
-        * @return                      The speed of the processor of the host in flops.
-        *
-        */ 
-       public native double getCoreNumber();
-
-       /**
-        * Returns the value of a given host property (set from the platform file).
-        */
-       public native String getProperty(String name);
-
-       /**
-        * Change the value of a given host property. 
-        */
-       public native void setProperty(String name, String value);
-
-       /** This methods returns the list of storages attached to an host
-        * @return An array containing all storages (name) attached to the host
-        */
-       public native String[] getAttachedStorage();
+  /**
+   * This static method returns all of the hosts of the installed platform.
+   *
+   * @return      An array containing all the hosts installed.
+   *
+   */ 
+  public native static Host[] all();
+
+  /** 
+   * This static method sets a mailbox to receive in asynchronous mode.
+   * 
+   * All messages sent to this mailbox will be transferred to 
+   * the receiver without waiting for the receive call. 
+   * The receive call will still be necessary to use the received data.
+   * If there is a need to receive some messages asynchronously, and some not, 
+   * two different mailboxes should be used.
+   *
+   * @param mailboxName The name of the mailbox
+   */
+  public static native void setAsyncMailbox(String mailboxName);
+
+  /**
+   * This method returns the number of tasks currently running on a host.
+   * The external load (comming from an availability trace) is not taken in account.
+   *
+   * @return      The number of tasks currently running on a host.
+   */ 
+  public native int getLoad();
+
+  /**
+   * This method returns the speed of the processor of a host,
+   * regardless of the current load of the machine.
+   *
+   * @return      The speed of the processor of the host in flops.
+   *
+   */ 
+  public native double getSpeed();
+
+  /**
+   * This method returns the number of core of a host.
+   *
+   * @return      The speed of the processor of the host in flops.
+   *
+   */ 
+  public native double getCoreNumber();
+
+  /**
+   * Returns the value of a given host property (set from the platform file).
+   */
+  public native String getProperty(String name);
+
+  /**
+   * Change the value of a given host property. 
+   */
+  public native void setProperty(String name, String value);
+
+  /** This methods returns the list of storages attached to an host
+   * @return An array containing all storages (name) attached to the host
+   */
+  public native String[] getAttachedStorage();
 
 
 } 
index 1962201..a2311c7 100644 (file)
@@ -23,26 +23,26 @@ namespace s4u {
  * sender and receiver.
  */
 XBT_PUBLIC_CLASS Mailbox {
-       friend Comm;
+  friend Comm;
 
 private:
-       Mailbox(const char*name, smx_rdv_t inferior);
+  Mailbox(const char*name, smx_rdv_t inferior);
 public:
-       ~Mailbox();
-       
+  ~Mailbox();
+  
 protected:
-       smx_rdv_t getInferior() { return p_inferior; }
+  smx_rdv_t getInferior() { return p_inferior; }
 
 public:
-       /** Get the name of that mailbox */
-       const char *getName();
-       /** Retrieve the mailbox associated to the given string */
-       static Mailbox *byName(const char *name);
+  /** Get the name of that mailbox */
+  const char *getName();
+  /** Retrieve the mailbox associated to the given string */
+  static Mailbox *byName(const char *name);
 
 private:
-       std::string p_name;
-       smx_rdv_t p_inferior;
-       static boost::unordered_map<std::string, Mailbox *> *mailboxes;
+  std::string p_name;
+  smx_rdv_t p_inferior;
+  static boost::unordered_map<std::string, Mailbox *> *mailboxes;
 };
 }} // namespace simgrid::s4u
 
index 66547b8..193a6d2 100644 (file)
@@ -17,18 +17,18 @@ namespace s4u {
 
 XBT_PUBLIC_CLASS Storage {
 private:
-       Storage(std::string name, smx_storage_t inferior);
-       virtual ~Storage();
+  Storage(std::string name, smx_storage_t inferior);
+  virtual ~Storage();
 public:
-       /** Retrieve a Storage by its name. It must exist in the platform file */
-       static Storage &byName(const char* name);
-       const char *name();
-       sg_size_t size_free();
-       sg_size_t size_used();
-       /** Retrieve the total amount of space of this storage element */
-       sg_size_t size();
-
-       /* TODO: missing API:
+  /** Retrieve a Storage by its name. It must exist in the platform file */
+  static Storage &byName(const char* name);
+  const char *name();
+  sg_size_t size_free();
+  sg_size_t size_used();
+  /** Retrieve the total amount of space of this storage element */
+  sg_size_t size();
+
+  /* TODO: missing API:
 XBT_PUBLIC(xbt_dict_t) MSG_storage_get_properties(msg_storage_t storage);
 XBT_PUBLIC(void) MSG_storage_set_property_value(msg_storage_t storage, const char *name, char *value,void_f_pvoid_t free_ctn);
 XBT_PUBLIC(const char *)MSG_storage_get_property_value(msg_storage_t storage, const char *name);
@@ -36,20 +36,20 @@ XBT_PUBLIC(xbt_dynar_t) MSG_storages_as_dynar(void);
 XBT_PUBLIC(xbt_dict_t) MSG_storage_get_content(msg_storage_t storage);
 XBT_PUBLIC(msg_error_t) MSG_storage_file_move(msg_file_t fd, msg_host_t dest, char* mount, char* fullname);
 XBT_PUBLIC(const char *) MSG_storage_get_host(msg_storage_t storage);
-        */
+   */
 protected:
-       smx_storage_t inferior();
+  smx_storage_t inferior();
 private:
-       static boost::unordered_map<std::string, Storage *> *storages;
-       std::string p_name;
-       smx_storage_t p_inferior;
+  static boost::unordered_map<std::string, Storage *> *storages;
+  std::string p_name;
+  smx_storage_t p_inferior;
 
 
 public:
-       void set_userdata(void *data) {p_userdata = data;}
-       void *userdata() {return p_userdata;}
+  void set_userdata(void *data) {p_userdata = data;}
+  void *userdata() {return p_userdata;}
 private:
-       void *p_userdata = NULL;
+  void *p_userdata = NULL;
 
 };
 
index 0fcdfbd..15480fd 100644 (file)
@@ -18,9 +18,8 @@ SG_BEGIN_DECL()
 /** @brief Link datatype
     @ingroup SD_datatypes_management
 
-    A link is a network node represented as a <em>name</em>, a <em>current
-    bandwidth</em> and a <em>current latency</em>. A route is a list of
-    links between two workstations.
+    A link is a network node represented as a <em>name</em>, a <em>bandwidth</em> and a <em>latency</em>.
+    A route is a list of links between two workstations.
 
     @see SD_link_management */
 typedef Link *SD_link_t;
@@ -28,11 +27,9 @@ typedef Link *SD_link_t;
 /** @brief Task datatype
     @ingroup SD_datatypes_management
 
-    A task is some <em>computing amount</em> that can be executed
-    in parallel on several workstations. A task may depend on other
-    tasks, this means that the task cannot start until the other tasks are done.
-    Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether
-    the task is scheduled, running, done, etc.
+    A task is some <em>computing amount</em> that can be executed in parallel on several hosts.
+    A task may depend on other tasks, which means that the task cannot start until the other tasks are done.
+    Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether the task is scheduled, running, done, ...
 
     @see SD_task_management */
 typedef struct SD_task *SD_task_t;
@@ -68,8 +65,6 @@ typedef enum {
 /** @brief Storage datatype
     @ingroup SD_datatypes_management
 
- TODO PV: comment it !
-
     @see SD_storage_management */
 typedef xbt_dictelm_t SD_storage_t;
 
@@ -81,16 +76,14 @@ typedef xbt_dictelm_t SD_storage_t;
  *  This section describes the functions for managing the hosts.
  *
  *  A host is a place where a task can be executed.
- *  A host is represented as a <em>physical resource with computing
- *  capabilities</em> and has a <em>name</em>.
+ *  A host is represented as a <em>physical resource with computing capabilities</em> and has a <em>name</em>.
  *
  *  The hosts are created when you call the function SD_create_environment.
  *
  *  @see sg_host_t
  *  @{
  */
-XBT_PUBLIC(const SD_link_t *) SD_route_get_list(sg_host_t src,
-                                                sg_host_t dst);
+XBT_PUBLIC(SD_link_t *) SD_route_get_list(sg_host_t src, sg_host_t dst);
 XBT_PUBLIC(int) SD_route_get_size(sg_host_t src, sg_host_t dst);
 
 XBT_PUBLIC(double) SD_route_get_latency(sg_host_t src, sg_host_t dst);
@@ -106,17 +99,14 @@ XBT_PUBLIC(const char*) SD_storage_get_host(SD_storage_t storage);
  *
  *  This section describes the functions for managing the tasks.
  *
- *  A task is some <em>working amount</em> that can be executed
- *  in parallel on several workstations. A task may depend on other
- *  tasks, this means that the task cannot start until the other tasks are done.
- *  Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether
- *  the task is scheduled, running, done, etc.
+ *  A task is some <em>working amount</em> that can be executed in parallel on several hosts.
+ *  A task may depend on other tasks, which means that the task cannot start until the other tasks are done.
+ *  Each task has a <em>\ref e_SD_task_state_t "state"</em> indicating whether the task is scheduled, running, done, ...
  *
  *  @see SD_task_t, SD_task_dependency_management
  *  @{
  */
-XBT_PUBLIC(SD_task_t) SD_task_create(const char *name, void *data,
-                                     double amount);
+XBT_PUBLIC(SD_task_t) SD_task_create(const char *name, void *data, double amount);
 XBT_PUBLIC(void *) SD_task_get_data(SD_task_t task);
 XBT_PUBLIC(void) SD_task_set_data(SD_task_t task, void *data);
 XBT_PUBLIC(e_SD_task_state_t) SD_task_get_state(SD_task_t task);
@@ -130,46 +120,29 @@ XBT_PUBLIC(double) SD_task_get_amount(SD_task_t task);
 XBT_PUBLIC(void) SD_task_set_amount(SD_task_t task, double amount);
 XBT_PUBLIC(double) SD_task_get_alpha(SD_task_t task);
 XBT_PUBLIC(double) SD_task_get_remaining_amount(SD_task_t task);
-XBT_PUBLIC(double) SD_task_get_execution_time(SD_task_t task,
-                                              int workstation_nb,
-                                              const sg_host_t *
-                                              workstation_list,
-                                              const double *flops_amount,
-                                              const double *bytes_amount);
+XBT_PUBLIC(double) SD_task_get_execution_time(SD_task_t task, int workstation_nb, const sg_host_t *workstation_list,
+                                              const double *flops_amount, const double *bytes_amount);
 XBT_PUBLIC(e_SD_task_kind_t) SD_task_get_kind(SD_task_t task);
-XBT_PUBLIC(void) SD_task_schedule(SD_task_t task, int workstation_nb,
-                                  const sg_host_t *
-                                  workstation_list,
-                                  const double *flops_amount,
-                                  const double *bytes_amount,
-                                  double rate);
+XBT_PUBLIC(void) SD_task_schedule(SD_task_t task, int workstation_nb, const sg_host_t *workstation_list,
+                                  const double *flops_amount, const double *bytes_amount, double rate);
 XBT_PUBLIC(void) SD_task_unschedule(SD_task_t task);
 XBT_PUBLIC(double) SD_task_get_start_time(SD_task_t task);
 XBT_PUBLIC(double) SD_task_get_finish_time(SD_task_t task);
 XBT_PUBLIC(xbt_dynar_t) SD_task_get_parents(SD_task_t task);
 XBT_PUBLIC(xbt_dynar_t) SD_task_get_children(SD_task_t task);
 XBT_PUBLIC(int) SD_task_get_workstation_count(SD_task_t task);
-XBT_PUBLIC(sg_host_t *) SD_task_get_workstation_list(SD_task_t
-                                                            task);
+XBT_PUBLIC(sg_host_t *) SD_task_get_workstation_list(SD_task_t task);
 XBT_PUBLIC(void) SD_task_destroy(SD_task_t task);
 XBT_PUBLIC(void) SD_task_dump(SD_task_t task);
 XBT_PUBLIC(void) SD_task_dotty(SD_task_t task, void *out_FILE);
 
-XBT_PUBLIC(SD_task_t) SD_task_create_comp_seq(const char *name, void *data,
-                                              double amount);
-XBT_PUBLIC(SD_task_t) SD_task_create_comp_par_amdahl(const char *name,
-                                                     void *data,
-                                                     double amount,
-                                                     double alpha);
-XBT_PUBLIC(SD_task_t) SD_task_create_comm_e2e(const char *name, void *data,
-                                              double amount);
-XBT_PUBLIC(SD_task_t) SD_task_create_comm_par_mxn_1d_block(const char *name,
-                                                           void *data,
-                                                           double amount);
+XBT_PUBLIC(SD_task_t) SD_task_create_comp_seq(const char *name, void *data, double amount);
+XBT_PUBLIC(SD_task_t) SD_task_create_comp_par_amdahl(const char *name, void *data, double amount, double alpha);
+XBT_PUBLIC(SD_task_t) SD_task_create_comm_e2e(const char *name, void *data, double amount);
+XBT_PUBLIC(SD_task_t) SD_task_create_comm_par_mxn_1d_block(const char *name, void *data, double amount);
 
 XBT_PUBLIC(void) SD_task_distribute_comp_amdahl(SD_task_t task, int ws_count);
-XBT_PUBLIC(void) SD_task_schedulev(SD_task_t task, int count,
-                                   const sg_host_t * list);
+XBT_PUBLIC(void) SD_task_schedulev(SD_task_t task, int count, const sg_host_t * list);
 XBT_PUBLIC(void) SD_task_schedulel(SD_task_t task, int count, ...);
 
 
@@ -177,11 +150,7 @@ XBT_PUBLIC(void) SD_task_schedulel(SD_task_t task, int count, ...);
  *
  *  For example, create a pure computation task (no comm) like this:
  *
- *  SD_task_schedule(task, my_workstation_nb,
- *                   my_workstation_list,
- *                   my_flops_amount,
- *                   SD_TASK_SCHED_NO_COST,
- *                   my_rate);
+ *  SD_task_schedule(task, my_host_count, my_host_list, my_flops_amount, SD_TASK_SCHED_NO_COST, my_rate);
  */
 #define SD_SCHED_NO_COST NULL
 
@@ -196,13 +165,10 @@ XBT_PUBLIC(void) SD_task_schedulel(SD_task_t task, int count, ...);
  *  @see SD_task_management
  *  @{
  */
-XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data,
-                                        SD_task_t src, SD_task_t dst);
+XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(void) SD_task_dependency_remove(SD_task_t src, SD_task_t dst);
-XBT_PUBLIC(const char *) SD_task_dependency_get_name(SD_task_t src,
-                                                     SD_task_t dst);
-XBT_PUBLIC(void *) SD_task_dependency_get_data(SD_task_t src,
-                                               SD_task_t dst);
+XBT_PUBLIC(const char *) SD_task_dependency_get_name(SD_task_t src, SD_task_t dst);
+XBT_PUBLIC(void *) SD_task_dependency_get_data(SD_task_t src, SD_task_t dst);
 XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
 /** @} */
 
@@ -211,25 +177,55 @@ XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
 /** @defgroup SD_simulation Simulation
  *  @brief Functions for creating the environment and launching the simulation
  *
- *  This section describes the functions for initializing SimDag, launching
- *  the simulation and exiting SimDag.
+ *  This section describes the functions for initializing SimDag, launching the simulation and exiting SimDag.
  *
  *  @{
  */
 XBT_PUBLIC(void) SD_init(int *argc, char **argv);
 XBT_PUBLIC(void) SD_config(const char *key, const char *value);
-XBT_PUBLIC(void) SD_application_reinit(void);
 XBT_PUBLIC(void) SD_create_environment(const char *platform_file);
 XBT_PUBLIC(xbt_dynar_t) SD_simulate(double how_long);
 XBT_PUBLIC(double) SD_get_clock(void);
 XBT_PUBLIC(void) SD_exit(void);
 XBT_PUBLIC(xbt_dynar_t) SD_daxload(const char *filename);
 XBT_PUBLIC(xbt_dynar_t) SD_dotload(const char *filename);
-XBT_PUBLIC(xbt_dynar_t) SD_PTG_dotload(const char *filename);
 XBT_PUBLIC(xbt_dynar_t) SD_dotload_with_sched(const char *filename);
+XBT_PUBLIC(xbt_dynar_t) SD_PTG_dotload(const char *filename);
 
 /** @} */
 
+/* Support some backward compatibility */
+#define SD_workstation_t sg_host_t
+
+#define SD_link_get_name sg_link_name
+#define SD_link_get_current_latency sg_link_latency
+#define SD_link_get_current_bandwidth sg_link_bandwidth
+
+#define SD_route_get_current_latency SD_route_get_latency
+#define SD_route_get_current_bandwidth SD_route_get_bandwidth
+
+#define SD_workstation_get_list sg_host_list
+#define SD_workstation_get_number sg_host_count
+
+#define SD_workstation_get_name sg_host_get_name
+#define SD_workstation_get_by_name sg_host_by_name
+#define SD_workstation_dump sg_host_dump
+#define SD_workstation_get_data sg_host_user
+#define SD_workstation_set_data sg_host_user_set
+#define SD_workstation_get_properties sg_host_get_properties
+#define SD_workstation_get_property_value sg_host_get_property_value
+#define SD_workstation_get_power sg_host_speed
+#define SD_workstation_get_available_power sg_host_get_available_speed
+
+#define SD_workstation_get_mounted_storage_list sg_host_get_mounted_storage_list
+// Lost functions
+//SD_workstation_get_access_mode
+//SD_workstation_set_access_mode
+//SD_workstation_get_current_task
+//SD_route_get_communication_time => SG_route_get_latency() + amount / SD_route_get_bandwidth()
+//SD_workstation_get_computation_time => amount / sg_host_speed()
+//TRACE_sd_set_task_category
+
 SG_END_DECL()
 
 #include "simgrid/instr.h"
index d931d13..c1b403c 100644 (file)
@@ -13,7 +13,6 @@
 #include "xbt/function_types.h"
 #include "xbt/parmap.h"
 #include "xbt/swag.h"
-#include "simgrid/platf.h"
 #include "simgrid/datatypes.h"
 #include "simgrid/host.h"
 
@@ -174,6 +173,11 @@ XBT_PUBLIC(int) SIMIX_is_maestro();
 /* Initialization and exit */
 XBT_PUBLIC(void) SIMIX_global_init(int *argc, char **argv);
 
+/* Set to execute in the maestro
+ *
+ * If no maestro code is registered (the default), the main thread
+ * is assumed to be the maestro. */
+XBT_PUBLIC(void) SIMIX_set_maestro(void (*code)(void*), void* data);
 
 XBT_PUBLIC(void) SIMIX_function_register_process_cleanup(void_pfn_smxprocess_t function);
 XBT_PUBLIC(void) SIMIX_function_register_process_create(smx_creation_func_t function);
@@ -210,6 +214,24 @@ XBT_PUBLIC(void) SIMIX_process_set_function(const char* process_host,
                                             double process_start_time,
                                             double process_kill_time);
 
+/*********************************** Host *************************************/
+/* Functions for running a process in main()
+ *
+ *  1. create the maestro process
+ *  2. attach (create a context and wait for maestro to give control back to you)
+ *  3. do you process job
+ *  4. detach (this waits for the simulation to terminate)
+ */
+
+XBT_PUBLIC(void) SIMIX_maestro_create(void (*code)(void*), void* data);
+XBT_PUBLIC(smx_process_t) SIMIX_process_attach(
+  const char* name,
+  void *data,
+  const char* hostname,
+  xbt_dict_t properties,
+  smx_process_t parent_process);
+XBT_PUBLIC(void) SIMIX_process_detach(void);
+
 /*********************************** Host *************************************/
 XBT_PUBLIC(sg_host_t) SIMIX_host_self(void);
 XBT_PUBLIC(const char*) SIMIX_host_self_get_name(void);
@@ -410,13 +432,13 @@ XBT_PUBLIC(void) simcall_set_category(smx_synchro_t synchro, const char *categor
 
 /************************** Synchro simcalls **********************************/
 XBT_PUBLIC(smx_mutex_t) simcall_mutex_init(void);
-XBT_PUBLIC(void) simcall_mutex_destroy(smx_mutex_t mutex);
+XBT_PUBLIC(void) SIMIX_mutex_destroy(smx_mutex_t mutex);
 XBT_PUBLIC(void) simcall_mutex_lock(smx_mutex_t mutex);
 XBT_PUBLIC(int) simcall_mutex_trylock(smx_mutex_t mutex);
 XBT_PUBLIC(void) simcall_mutex_unlock(smx_mutex_t mutex);
 
 XBT_PUBLIC(smx_cond_t) simcall_cond_init(void);
-XBT_PUBLIC(void) simcall_cond_destroy(smx_cond_t cond);
+XBT_PUBLIC(void) SIMIX_cond_destroy(smx_cond_t cond);
 XBT_PUBLIC(void) simcall_cond_signal(smx_cond_t cond);
 XBT_PUBLIC(void) simcall_cond_wait(smx_cond_t cond, smx_mutex_t mutex);
 XBT_PUBLIC(void) simcall_cond_wait_timeout(smx_cond_t cond,
@@ -425,7 +447,7 @@ XBT_PUBLIC(void) simcall_cond_wait_timeout(smx_cond_t cond,
 XBT_PUBLIC(void) simcall_cond_broadcast(smx_cond_t cond);
 
 XBT_PUBLIC(smx_sem_t) simcall_sem_init(int capacity);
-XBT_PUBLIC(void) simcall_sem_destroy(smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_sem_destroy(smx_sem_t sem);
 XBT_PUBLIC(void) simcall_sem_release(smx_sem_t sem);
 XBT_PUBLIC(int) simcall_sem_would_block(smx_sem_t sem);
 XBT_PUBLIC(void) simcall_sem_acquire(smx_sem_t sem);
index 2f19728..fb3fd5a 100644 (file)
@@ -79,6 +79,65 @@ typename std::result_of<F()>::type kernel(F&& code)
   return promise.get_future().get();
 }
 
+class args {
+private:
+  int argc_;
+  char** argv_;
+public:
+
+  // Main constructors
+  args() : argc_(0), argv_(nullptr) {}
+  args(int argc, char** argv) : argc_(argc), argv_(argv) {}
+
+  // Free
+  void clear()
+  {
+    for (int i = 0; i < this->argc_; i++)
+      free(this->argv_[i]);
+    free(this->argv_);
+    this->argc_ = 0;
+    this->argv_ = nullptr;
+  }
+  ~args() { clear(); }
+
+  // Copy
+  args(args const& that) = delete;
+  args& operator=(args const& that) = delete;
+
+  // Move:
+  args(args&& that) : argc_(that.argc_), argv_(that.argv_)
+  {
+    that.argc_ = 0;
+    that.argv_ = nullptr;
+  }
+  args& operator=(args&& that)
+  {
+    this->argc_ = that.argc_;
+    this->argv_ = that.argv_;
+    that.argc_ = 0;
+    that.argv_ = nullptr;
+    return *this;
+  }
+
+  int    argc()            const { return argc_; }
+  char** argv()                  { return argv_; }
+  const char*const* argv() const { return argv_; }
+  char* operator[](std::size_t i) { return argv_[i]; }
+};
+
+inline
+std::function<void()> wrap_main(xbt_main_func_t code, int argc, char **argv)
+{
+  if (code) {
+    auto arg = std::make_shared<simgrid::simix::args>(argc, argv);
+    return [=]() {
+      code(arg->argc(), arg->argv());
+    };
+  }
+  // TODO, we should free argv
+  else return std::function<void()>();
+}
+
 class Context;
 class ContextFactory;
 
@@ -91,6 +150,16 @@ public:
   virtual ~ContextFactory();
   virtual Context* create_context(std::function<void()> code,
     void_pfn_smxprocess_t cleanup, smx_process_t process) = 0;
+
+  // Optional methods for attaching main() as a context:
+
+  /** Creates a context from the current context of execution
+   *
+   *  This will not work on all implementation of `ContextFactory`.
+   */
+  virtual Context* attach(void_pfn_smxprocess_t cleanup_func, smx_process_t process);
+  virtual Context* create_maestro(std::function<void()> code, smx_process_t process);
+
   virtual void run_all() = 0;
   virtual Context* self();
   std::string const& name() const
@@ -143,6 +212,29 @@ public:
   virtual void suspend() = 0;
 };
 
+XBT_PUBLIC_CLASS AttachContext : public Context {
+public:
+
+  AttachContext(std::function<void()> code,
+          void_pfn_smxprocess_t cleanup_func,
+          smx_process_t process)
+    : Context(std::move(code), cleanup_func, process)
+  {}
+
+  ~AttachContext();
+
+  /** Called by the context when it is ready to give control
+   *  to the maestro.
+   */
+  virtual void attach_start() = 0;
+
+  /** Called by the context when it has finished its job */
+  virtual void attach_stop() = 0;
+};
+
+XBT_PUBLIC(void) set_maestro(std::function<void()> code);
+XBT_PUBLIC(void) create_maestro(std::function<void()> code);
+
 }
 }
 
index 1ee0a15..279ba46 100644 (file)
@@ -76,7 +76,7 @@
 #define MALLOCATOR_COMPILED_IN @MALLOCATOR_IS_WANTED@
 
 /* Define if xbt contexts are based on our threads implementation or not */
-#cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@
+#cmakedefine HAVE_THREAD_CONTEXTS @HAVE_THREAD_CONTEXTS@
 
 /* Jedule output  */
 #cmakedefine HAVE_JEDULE @HAVE_JEDULE@
index 4e9160e..60dfc54 100644 (file)
@@ -214,7 +214,8 @@ typedef enum MPIR_Combiner_enum{
 typedef enum MPIR_Topo_type {
   MPI_GRAPH=1,
   MPI_CART=2,
-  MPI_DIST_GRAPH=3
+  MPI_DIST_GRAPH=3,
+  MPI_INVALID_TOPO=-1
 } MPIR_Topo_type;
 
 typedef ptrdiff_t MPI_Aint;
@@ -832,9 +833,6 @@ XBT_PUBLIC(int) smpi_global_size(void);
 XBT_PUBLIC(MPI_Comm) smpi_process_comm_self(void);
 XBT_PUBLIC(void*) smpi_process_get_user_data(void);
 XBT_PUBLIC(void) smpi_process_set_user_data(void *);
-/*
-XBT_PUBLIC(void) smpi_exit(int);
-*/
 
 XBT_PUBLIC(void) smpi_execute_flops(double flops);
 XBT_PUBLIC(void) smpi_execute(double duration);
@@ -898,8 +896,62 @@ XBT_PUBLIC(void) SMPI_app_instance_register(const char *name, xbt_main_func_t co
 XBT_PUBLIC(void) SMPI_init(void);
 XBT_PUBLIC(void) SMPI_finalize(void);
 
-
-
+/* Manual global privatization fallback */
+XBT_PUBLIC(void) smpi_register_static(void* arg, void_f_pvoid_t free_fn);
+XBT_PUBLIC(void) smpi_free_static(void);
+
+#define SMPI_VARINIT_GLOBAL(name,type)                          \
+type *name = NULL;                                              \
+static void __attribute__((constructor)) __preinit_##name(void) { \
+   if(!name)                                                    \
+      name = (type*)calloc(smpi_global_size(), sizeof(type));   \
+}                                                               \
+static void __attribute__((destructor)) __postfini_##name(void) { \
+   free(name);                                                  \
+   name = NULL;                                                 \
+}
+
+#define SMPI_VARINIT_GLOBAL_AND_SET(name,type,expr)             \
+type *name = NULL;                                              \
+static void __attribute__((constructor)) __preinit_##name(void) { \
+   size_t size = smpi_global_size();                            \
+   size_t i;                                                    \
+   type value = expr;                                           \
+   if(!name) {                                                  \
+      name = (type*)malloc(size * sizeof(type));                \
+      for(i = 0; i < size; i++) {                               \
+         name[i] = value;                                       \
+      }                                                         \
+   }                                                            \
+}                                                               \
+static void __attribute__((destructor)) __postfini_##name(void) { \
+   free(name);                                                  \
+   name = NULL;                                                 \
+}
+
+#define SMPI_VARGET_GLOBAL(name) name[smpi_process_index()]
+
+#define SMPI_VARINIT_STATIC(name,type)                      \
+static type *name = NULL;                                   \
+if(!name) {                                                 \
+   name = (type*)calloc(smpi_global_size(), sizeof(type));  \
+   smpi_register_static(name, xbt_free_f);                  \
+}
+
+#define SMPI_VARINIT_STATIC_AND_SET(name,type,expr) \
+static type *name = NULL;                           \
+if(!name) {                                         \
+   size_t size = smpi_global_size();                \
+   size_t i;                                        \
+   type value = expr;                               \
+   name = (type*)malloc(size * sizeof(type));       \
+   for(i = 0; i < size; i++) {                      \
+      name[i] = value;                              \
+   }                                                \
+   smpi_register_static(name, xbt_free_f);          \
+}
+
+#define SMPI_VARGET_STATIC(name) name[smpi_process_index()]
 
 SG_END_DECL()
 #endif
diff --git a/include/smpi/smpi_cocci.h b/include/smpi/smpi_cocci.h
deleted file mode 100644 (file)
index f938a9b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (c) 2011-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SMPI_COCCI_H
-#define SMPI_COCCI_H
-
-#include <xbt/misc.h>
-
-/* Macros used by coccinelle-generated code */
-
-#define SMPI_VARINIT_GLOBAL(name,type)                          \
-type *name = NULL;                                              \
-static void __attribute__((constructor)) __preinit_##name(void) { \
-   if(!name)                                                    \
-      name = (type*)calloc(smpi_global_size(), sizeof(type));   \
-}                                                               \
-static void __attribute__((destructor)) __postfini_##name(void) { \
-   free(name);                                                  \
-   name = NULL;                                                 \
-}
-
-#define SMPI_VARINIT_GLOBAL_AND_SET(name,type,expr)             \
-type *name = NULL;                                              \
-static void __attribute__((constructor)) __preinit_##name(void) { \
-   size_t size = smpi_global_size();                            \
-   size_t i;                                                    \
-   type value = expr;                                           \
-   if(!name) {                                                  \
-      name = (type*)malloc(size * sizeof(type));                \
-      for(i = 0; i < size; i++) {                               \
-         name[i] = value;                                       \
-      }                                                         \
-   }                                                            \
-}                                                               \
-static void __attribute__((destructor)) __postfini_##name(void) { \
-   free(name);                                                  \
-   name = NULL;                                                 \
-}
-
-#define SMPI_VARGET_GLOBAL(name) name[smpi_process_index()]
-
-/* The following handle local static variables */
-/** @brief Make sure that the passed pointer is freed on process exit.
- *
- * This function is rather internal, mainly used for the
- * privatization of global variables through coccinelle.
- */
-XBT_PUBLIC(void) smpi_register_static(void* arg, void_f_pvoid_t free_fn);
-
-XBT_PUBLIC(void) smpi_free_static(void);
-
-#define SMPI_VARINIT_STATIC(name,type)                      \
-static type *name = NULL;                                   \
-if(!name) {                                                 \
-   name = (type*)calloc(smpi_global_size(), sizeof(type));  \
-   smpi_register_static(name, xbt_free_f);                  \
-}
-
-#define SMPI_VARINIT_STATIC_AND_SET(name,type,expr) \
-static type *name = NULL;                           \
-if(!name) {                                         \
-   size_t size = smpi_global_size();                \
-   size_t i;                                        \
-   type value = expr;                               \
-   name = (type*)malloc(size * sizeof(type));       \
-   for(i = 0; i < size; i++) {                      \
-      name[i] = value;                              \
-   }                                                \
-   smpi_register_static(name, xbt_free_f);          \
-}
-
-#define SMPI_VARGET_STATIC(name) name[smpi_process_index()]
-
-#endif
index 67434ae..c846b77 100644 (file)
@@ -8,7 +8,6 @@
 #define _SURF_SURF_ROUTING_H
 
 #include "xbt/lib.h"
-#include "simgrid/platf.h"
 
 SG_BEGIN_DECL()
 
diff --git a/include/surf/surfxml_parse.h b/include/surf/surfxml_parse.h
deleted file mode 100644 (file)
index 4479db1..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (c) 2006-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef _SURF_SURFXML_PARSE_H
-#define _SURF_SURFXML_PARSE_H
-
-#include <stdio.h>              /* to have FILE */
-#include "xbt/misc.h"
-#include "xbt/function_types.h"
-#include "xbt/dict.h"
-#include "surf/simgrid_dtd.h"
-
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-SG_BEGIN_DECL()
-
-XBT_PUBLIC(void) surf_parse_open(const char *file);
-XBT_PUBLIC(void) surf_parse_close(void);
-XBT_PUBLIC(void) surf_parse_init_callbacks(void);
-XBT_PUBLIC(void) surf_parse_reset_callbacks(void);
-XBT_PUBLIC(void) surf_parse_free_callbacks(void);
-XBT_PUBLIC(void) XBT_ATTRIB_NORETURN surf_parse_error(const char *msg,...) XBT_ATTRIB_PRINTF(1,2);
-XBT_PUBLIC(void) surf_parse_warn(const char *msg,...) XBT_ATTRIB_PRINTF(1,2);
-XBT_PUBLIC(double) surf_parse_get_double(const char *string);
-XBT_PUBLIC(int) surf_parse_get_int(const char *string);
-XBT_PUBLIC(double) surf_parse_get_time(const char *string);
-XBT_PUBLIC(double) surf_parse_get_size(const char *string);
-XBT_PUBLIC(double) surf_parse_get_bandwidth(const char *string);
-XBT_PUBLIC(double) surf_parse_get_speed(const char *string);
-
-/* Prototypes of the functions offered by flex */
-XBT_PUBLIC(int) surf_parse_lex(void);
-XBT_PUBLIC(int) surf_parse_get_lineno(void);
-XBT_PUBLIC(FILE *) surf_parse_get_in(void);
-XBT_PUBLIC(FILE *) surf_parse_get_out(void);
-XBT_PUBLIC(yy_size_t) surf_parse_get_leng(void);
-XBT_PUBLIC(char *) surf_parse_get_text(void);
-XBT_PUBLIC(void) surf_parse_set_lineno(int line_number);
-XBT_PUBLIC(void) surf_parse_set_in(FILE * in_str);
-XBT_PUBLIC(void) surf_parse_set_out(FILE * out_str);
-XBT_PUBLIC(int) surf_parse_get_debug(void);
-XBT_PUBLIC(void) surf_parse_set_debug(int bdebug);
-XBT_PUBLIC(int) surf_parse_lex_destroy(void);
-
-/* What is needed to bypass the parser. */
-XBT_PUBLIC_DATA(int_f_void_t) surf_parse;       /* Entry-point to the parser. Set this to your function. */
-
-/* Set of macros to make the bypassing work easier.
- * See examples/msg/masterslave_bypass.c for an example of use */
-
-extern unsigned int surfxml_buffer_stack_stack_ptr;
-extern unsigned int surfxml_buffer_stack_stack[1024];
-
-#define SURFXML_BUFFER_SET(key,val) do { \
-  AX_surfxml_##key=AX_ptr; \
-  strcpy(A_surfxml_##key,val); \
-  AX_ptr+=(int)strlen(val)+1; } while(0)
-
-#define SURFXML_BUFFER_RESET() do { \
-  AX_ptr = 0; \
-  memset(surfxml_bufferstack,0,surfxml_bufferstack_size); } while(0)
-
-#define SURFXML_START_TAG(tag) \
-  do{                                                                   \
-    surfxml_buffer_stack_stack[surfxml_buffer_stack_stack_ptr++] = AX_ptr; \
-    STag_surfxml_##tag();                                               \
-  }while(0)
-
-#define SURFXML_END_TAG(tag)                                            \
-  do{                                                                   \
-    AX_ptr = surfxml_buffer_stack_stack[--surfxml_buffer_stack_stack_ptr]; \
-    ETag_surfxml_##tag();                                               \
-  } while(0)
-
-SG_END_DECL()
-#endif
index a1fa369..1180007 100644 (file)
@@ -13,7 +13,7 @@
 
 /* Define _GNU_SOURCE for getline, isfinite, etc. */
 #ifndef _GNU_SOURCE
-       #define _GNU_SOURCE
+  #define _GNU_SOURCE
 #endif
 
 /* Attributes are only in recent versions of GCC */
 #endif
 
 #ifdef _MSC_VER /* MSVC has no ssize_t, and I fail to use the SSIZE_T declared in BaseTsd.h */
-       #if defined(_WIN64)
-               typedef __int64 ssize_t;
-       #else
-               typedef long ssize_t;
-       #endif
+  #if defined(_WIN64)
+    typedef __int64 ssize_t;
+  #else
+    typedef long ssize_t;
+  #endif
 
 /* Microsoft wants to improve the code quality blah blah blah */
 /* See: https://msdn.microsoft.com/en-us/library/8ef0s5kh.aspx */
-       /* warning C4996: '_strdup': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strdup. */
-       #define _CRT_NONSTDC_NO_WARNINGS
-       /* warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. */
-       #define _CRT_SECURE_NO_WARNINGS
+  /* warning C4996: '_strdup': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strdup. */
+  #define _CRT_NONSTDC_NO_WARNINGS
+  /* warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. */
+  #define _CRT_SECURE_NO_WARNINGS
 #endif
 
 #if !defined (max) && !defined(__cplusplus)
index 58b3a41..296aa3f 100644 (file)
@@ -90,8 +90,7 @@ SG_BEGIN_DECL()
 typedef void* xbt_cfg_t;
 
 XBT_PUBLIC(void) xbt_cfg_set(xbt_cfg_t cfg, const char *name, ...);
-XBT_PUBLIC(void) xbt_cfg_set_vargs(xbt_cfg_t cfg, const char *name,
-                                   va_list pa);
+XBT_PUBLIC(void) xbt_cfg_set_vargs(xbt_cfg_t cfg, const char *name, va_list pa);
 XBT_PUBLIC(void) xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options);
 
 
@@ -99,10 +98,8 @@ XBT_PUBLIC(void) xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options);
   Set the value of the cell \a name in \a cfg with the provided value.
  */
 XBT_PUBLIC(void) xbt_cfg_set_int(xbt_cfg_t cfg, const char *name, int val);
-XBT_PUBLIC(void) xbt_cfg_set_double(xbt_cfg_t cfg, const char *name,
-                                    double val);
-XBT_PUBLIC(void) xbt_cfg_set_string(xbt_cfg_t cfg, const char *name,
-                                    const char *val);
+XBT_PUBLIC(void) xbt_cfg_set_double(xbt_cfg_t cfg, const char *name, double val);
+XBT_PUBLIC(void) xbt_cfg_set_string(xbt_cfg_t cfg, const char *name, const char *val);
 XBT_PUBLIC(void) xbt_cfg_set_boolean(xbt_cfg_t cfg, const char *name, const char *val);
 XBT_PUBLIC(void*) xbt_cfg_set_as_string(xbt_cfg_t cfg, const char *name, const char *val);
 
@@ -110,34 +107,24 @@ XBT_PUBLIC(void*) xbt_cfg_set_as_string(xbt_cfg_t cfg, const char *name, const c
   Set the default value of the cell \a name in \a cfg with the provided value.
   If it was already set to something (possibly from the command line), do nothing.
  */
-XBT_PUBLIC(void) xbt_cfg_setdefault_int(xbt_cfg_t cfg, const char *name,
-                                        int val);
-XBT_PUBLIC(void) xbt_cfg_setdefault_double(xbt_cfg_t cfg, const char *name,
-                                           double val);
-XBT_PUBLIC(void) xbt_cfg_setdefault_string(xbt_cfg_t cfg, const char *name,
-                                           const char *val);
-XBT_PUBLIC(void) xbt_cfg_setdefault_boolean(xbt_cfg_t cfg, const char *name,
-                                        const char *val);
+XBT_PUBLIC(void) xbt_cfg_setdefault_int(xbt_cfg_t cfg, const char *name, int val);
+XBT_PUBLIC(void) xbt_cfg_setdefault_double(xbt_cfg_t cfg, const char *name, double val);
+XBT_PUBLIC(void) xbt_cfg_setdefault_string(xbt_cfg_t cfg, const char *name, const char *val);
+XBT_PUBLIC(void) xbt_cfg_setdefault_boolean(xbt_cfg_t cfg, const char *name, const char *val);
 
-/*
- Remove the provided value from the cell @name in @cfg.
- */
+/** @brief Remove the provided value from the cell #name in #cfg. */
 XBT_PUBLIC(void) xbt_cfg_rm_int(xbt_cfg_t cfg, const char *name, int val);
-XBT_PUBLIC(void) xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name,
-                                   double val);
-XBT_PUBLIC(void) xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name,
-                                   const char *val);
+XBT_PUBLIC(void) xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name, double val);
+XBT_PUBLIC(void) xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name, const char *val);
 XBT_PUBLIC(void) xbt_cfg_rm_boolean(xbt_cfg_t cfg, const char *name, int val);
 
-/*
- Remove the value at position \e pos from the config \e cfg
- */
+/** @brief Remove the value at position \e pos from the config \e cfg */
 XBT_PUBLIC(void) xbt_cfg_rm_at(xbt_cfg_t cfg, const char *name, int pos);
 
-/* rm every values */
+/** @brief rm every values */
 XBT_PUBLIC(void) xbt_cfg_empty(xbt_cfg_t cfg, const char *name);
 
-/* Return if configuration is set by default*/
+/** @brief Return if configuration is set by default*/
 XBT_PUBLIC(int) xbt_cfg_is_default_value(xbt_cfg_t cfg, const char *name);
 
 /* @} */
@@ -157,7 +144,7 @@ typedef enum {
   xbt_cfgelm_string,
                        /**< char* */
   xbt_cfgelm_boolean,  /**< int */
-
+  xbt_cfgelm_alias,    /**< redirection from a deprecated name to a better one */
   //! @cond
   xbt_cfgelm_any,               /* not shown to users to prevent errors */
   xbt_cfgelm_type_count
@@ -171,9 +158,6 @@ struct xbt_boolean_couple {
   const char *false_val;
 };
 
-
-
-
 /** \brief Callback types. They get the name of the modified entry, and the position of the changed value */
 typedef void (*xbt_cfg_cb_t) (const char *, int);
 
@@ -181,8 +165,7 @@ XBT_PUBLIC(xbt_cfg_t) xbt_cfg_new(void);
 XBT_PUBLIC(void) xbt_cfg_cpy(xbt_cfg_t tocopy,  /* OUT */
                              xbt_cfg_t * whereto);
 XBT_PUBLIC(void) xbt_cfg_free(xbt_cfg_t * cfg);
-XBT_PUBLIC(void) xbt_cfg_dump(const char *name, const char *indent,
-                              xbt_cfg_t cfg);
+XBT_PUBLIC(void) xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg);
 
  /** @} */
 
@@ -194,18 +177,15 @@ XBT_PUBLIC(void) xbt_cfg_dump(const char *name, const char *indent,
  *
  *  @{
  */
-XBT_PUBLIC(void) xbt_cfg_register(xbt_cfg_t * cfg,
-                                  const char *name,
-                                  const char *description,
-                                  e_xbt_cfgelm_type_t type,
-                                  int min, int max,
-                                  xbt_cfg_cb_t cb_set, xbt_cfg_cb_t cb_rm);
+XBT_PUBLIC(void) xbt_cfg_register(xbt_cfg_t * cfg, const char *name, const char *description,
+    e_xbt_cfgelm_type_t type, int min, int max, xbt_cfg_cb_t cb_set);
+XBT_PUBLIC(void) xbt_cfg_register_alias(xbt_cfg_t * cfg, const char *newname, const char *oldname);
 XBT_PUBLIC(void) xbt_cfg_unregister(xbt_cfg_t cfg, const char *name);
 XBT_PUBLIC(void) xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry);
+XBT_PUBLIC(void) xbt_cfg_aliases(xbt_cfg_t cfg);
 XBT_PUBLIC(void) xbt_cfg_help(xbt_cfg_t cfg);
 XBT_PUBLIC(void) xbt_cfg_check(xbt_cfg_t cfg);
-XBT_PUBLIC(e_xbt_cfgelm_type_t) xbt_cfg_get_type(xbt_cfg_t cfg,
-                                                 const char *name);
+XBT_PUBLIC(e_xbt_cfgelm_type_t) xbt_cfg_get_type(xbt_cfg_t cfg, const char *name);
 /*  @} */
 /** @defgroup XBT_cfg_get Getting the stored values
  *  @ingroup XBT_config
@@ -227,14 +207,10 @@ XBT_PUBLIC(char *) xbt_cfg_get_string(xbt_cfg_t cfg, const char *name);
 XBT_PUBLIC(int) xbt_cfg_get_boolean(xbt_cfg_t cfg, const char *name);
 XBT_PUBLIC(xbt_dynar_t) xbt_cfg_get_dynar(xbt_cfg_t cfg, const char *name);
 
-XBT_PUBLIC(int) xbt_cfg_get_int_at(xbt_cfg_t cfg, const char *name,
-                                   int pos);
-XBT_PUBLIC(double) xbt_cfg_get_double_at(xbt_cfg_t cfg, const char *name,
-                                         int pos);
-XBT_PUBLIC(char *) xbt_cfg_get_string_at(xbt_cfg_t cfg, const char *name,
-                                         int pos);
-XBT_PUBLIC(int) xbt_cfg_get_boolean_at(xbt_cfg_t cfg, const char *name,
-                                   int pos);
+XBT_PUBLIC(int) xbt_cfg_get_int_at(xbt_cfg_t cfg, const char *name, int pos);
+XBT_PUBLIC(double) xbt_cfg_get_double_at(xbt_cfg_t cfg, const char *name, int pos);
+XBT_PUBLIC(char *) xbt_cfg_get_string_at(xbt_cfg_t cfg, const char *name, int pos);
+XBT_PUBLIC(int) xbt_cfg_get_boolean_at(xbt_cfg_t cfg, const char *name, int pos);
 
 /** @} */
 
index 007926e..0a9e47f 100644 (file)
@@ -105,6 +105,7 @@ XBT_PUBLIC(signed int) xbt_dynar_search_or_negative(xbt_dynar_t const dynar, voi
 XBT_PUBLIC(int) xbt_dynar_member(xbt_dynar_t const dynar, void *elem);
 XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar,
                                 int_f_cpvoid_cpvoid_t compar_fn);
+XBT_PUBLIC(xbt_dynar_t) xbt_dynar_sort_strings(xbt_dynar_t dynar);
 XBT_PUBLIC(void) xbt_dynar_three_way_partition(xbt_dynar_t const dynar,
     int_f_pvoid_t color);
 XBT_PUBLIC(int) xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
@@ -213,12 +214,14 @@ XBT_PUBLIC(void *) xbt_dynar_pop_ptr(xbt_dynar_t const dynar);
 XBT_PUBLIC(void) xbt_dynar_cursor_rm(xbt_dynar_t dynar,
                                      unsigned int *const cursor);
 
-/* do not use this structure internals directly, but use the public interface
- * This was made public to allow:
- *  - the inlining of the foreach elements
- *  - sending such beasts over the network
+/* 
+ * \warning DO NOT USE THIS STRUCTURE DIRECTLY! Instead, use the public interface:
+ *          This was made public to allow:
+ *           - the inlining of the foreach elements
+ *           - sending such beasts over the network
+ *
+ * \see xbt_dynar_length()
  */
-
 typedef struct xbt_dynar_s {
   unsigned long size;
   unsigned long used;
@@ -227,16 +230,6 @@ typedef struct xbt_dynar_s {
   void_f_pvoid_t free_f;
 } s_xbt_dynar_t;
 
-static XBT_INLINE void
-_xbt_dynar_cursor_first(const xbt_dynar_t dynar XBT_ATTRIB_UNUSED,
-                        unsigned int *const cursor)
-{
-  /* iterating over a NULL dynar is a no-op (but we don't want to have uninitialized counters) */
-
-  //XBT_DEBUG("Set cursor on %p to the first position", (void *) dynar);
-  *cursor = 0;
-}
-
 static XBT_INLINE int
 _xbt_dynar_cursor_get(const xbt_dynar_t dynar,
                       unsigned int idx, void *const dst)
@@ -280,19 +273,19 @@ xbt_dynar_foreach (dyn,cpt,str) {
  * break or a return statement. 
  */
 #define xbt_dynar_foreach(_dynar,_cursor,_data) \
-       for (_xbt_dynar_cursor_first(_dynar,&(_cursor))      ; \
-      _xbt_dynar_cursor_get(_dynar,_cursor,&_data) ; \
-            (_cursor)++         )
+       for ( (_cursor) = 0      ; \
+             _xbt_dynar_cursor_get(_dynar,_cursor,&_data) ; \
+             (_cursor)++         )
 
 #ifndef __cplusplus
 #define xbt_dynar_foreach_ptr(_dynar,_cursor,_ptr) \
-       for (_xbt_dynar_cursor_first(_dynar,&(_cursor))       ; \
-      (_ptr = _cursor < _dynar->used ? xbt_dynar_get_ptr(_dynar,_cursor) : NULL) ; \
+       for ((_cursor) = 0       ; \
+            (_ptr = _cursor < _dynar->used ? xbt_dynar_get_ptr(_dynar,_cursor) : NULL) ; \
             (_cursor)++         )
 #else
 #define xbt_dynar_foreach_ptr(_dynar,_cursor,_ptr) \
-       for (_xbt_dynar_cursor_first(_dynar,&(_cursor))       ; \
-      (_ptr = _cursor < _dynar->used ? (decltype(_ptr)) xbt_dynar_get_ptr(_dynar,_cursor) : NULL) ; \
+       for ((_cursor) = 0       ; \
+            (_ptr = _cursor < _dynar->used ? (decltype(_ptr)) xbt_dynar_get_ptr(_dynar,_cursor) : NULL) ; \
             (_cursor)++         )
 #endif
 /** @} */
index 1f1382a..7ca6d5a 100644 (file)
 #define _FLEXML_graphxml_H
 
 /* XML application entry points. */
+XBT_PUBLIC(void) STag_graphxml_edge(void);
+XBT_PUBLIC(void) ETag_graphxml_edge(void);
 XBT_PUBLIC(void) STag_graphxml_graph(void);
 XBT_PUBLIC(void) ETag_graphxml_graph(void);
 XBT_PUBLIC(void) STag_graphxml_node(void);
 XBT_PUBLIC(void) ETag_graphxml_node(void);
-XBT_PUBLIC(void) STag_graphxml_edge(void);
-XBT_PUBLIC(void) ETag_graphxml_edge(void);
 
 /* XML application data. */
+typedef int AT_graphxml_edge_data;
+#define AU_graphxml_edge_data NULL
+typedef int AT_graphxml_edge_label;
+#define AU_graphxml_edge_label NULL
+typedef int AT_graphxml_edge_length;
+#define AU_graphxml_edge_length NULL
 typedef int AT_graphxml_edge_name;
 #define AU_graphxml_edge_name NULL
-typedef int AT_graphxml_node_name;
-#define AU_graphxml_node_name NULL
+typedef int AT_graphxml_edge_source;
+#define AU_graphxml_edge_source NULL
 typedef int AT_graphxml_edge_target;
 #define AU_graphxml_edge_target NULL
-typedef int AT_graphxml_edge_data;
-#define AU_graphxml_edge_data NULL
+typedef enum { AU_graphxml_graph_isDirected, A_graphxml_graph_isDirected_true,A_graphxml_graph_isDirected_false } AT_graphxml_graph_isDirected;
 typedef int AT_graphxml_node_data;
 #define AU_graphxml_node_data NULL
-typedef int AT_graphxml_edge_source;
-#define AU_graphxml_edge_source NULL
-typedef enum { AU_graphxml_graph_isDirected, A_graphxml_graph_isDirected_true,A_graphxml_graph_isDirected_false } AT_graphxml_graph_isDirected;
 typedef int AT_graphxml_node_label;
 #define AU_graphxml_node_label NULL
+typedef int AT_graphxml_node_name;
+#define AU_graphxml_node_name NULL
 typedef int AT_graphxml_node_position___x;
 #define AU_graphxml_node_position___x NULL
-typedef int AT_graphxml_edge_label;
-#define AU_graphxml_edge_label NULL
-typedef int AT_graphxml_edge_length;
-#define AU_graphxml_edge_length NULL
 typedef int AT_graphxml_node_position___y;
 #define AU_graphxml_node_position___y NULL
 
@@ -84,39 +84,39 @@ typedef int AT_graphxml_node_position___y;
 XBT_PUBLIC_DATA(int) graphxml_pcdata_ix;
 XBT_PUBLIC_DATA(char *) graphxml_bufferstack;
 #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
-XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name;
-#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
-XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name;
-#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
-XBT_PUBLIC_DATA(short int) graphxml_node_name_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_target) AX_graphxml_edge_target;
-#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
-XBT_PUBLIC_DATA(short int) graphxml_edge_target_isset;
 XBT_PUBLIC_DATA(AT_graphxml_edge_data) AX_graphxml_edge_data;
 #define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
 XBT_PUBLIC_DATA(short int) graphxml_edge_data_isset;
-XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data;
-#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
-XBT_PUBLIC_DATA(short int) graphxml_node_data_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label;
+#define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
+XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length;
+#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
+XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name;
+#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
+XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset;
 XBT_PUBLIC_DATA(AT_graphxml_edge_source) AX_graphxml_edge_source;
 #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
 XBT_PUBLIC_DATA(short int) graphxml_edge_source_isset;
+XBT_PUBLIC_DATA(AT_graphxml_edge_target) AX_graphxml_edge_target;
+#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
+XBT_PUBLIC_DATA(short int) graphxml_edge_target_isset;
 XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected) AX_graphxml_graph_isDirected;
 #define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
 XBT_PUBLIC_DATA(short int) graphxml_graph_isDirected_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data;
+#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
+XBT_PUBLIC_DATA(short int) graphxml_node_data_isset;
 XBT_PUBLIC_DATA(AT_graphxml_node_label) AX_graphxml_node_label;
 #define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
 XBT_PUBLIC_DATA(short int) graphxml_node_label_isset;
+XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name;
+#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
+XBT_PUBLIC_DATA(short int) graphxml_node_name_isset;
 XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x;
 #define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
 XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label;
-#define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
-XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset;
-XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length;
-#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
-XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset;
 XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y;
 #define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
 XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset;
index a5014dd..d66ec43 100644 (file)
@@ -10,7 +10,9 @@
 #define XBT_HASH_H
 #include "xbt/str.h"
 
-/* Chord needs a SHA1 algorithm. Let's drop it in there */
+SG_BEGIN_DECL()
+
+/* The classical SHA1 algorithm */
 typedef struct s_xbt_sha_ s_xbt_sha_t, *xbt_sha_t;
 
 XBT_PUBLIC(xbt_sha_t) xbt_sha_new(void);
@@ -25,5 +27,6 @@ XBT_PUBLIC(char *) xbt_sha_read(xbt_sha_t sha);
 
 XBT_PUBLIC(void) xbt_sha(const char *data, char *hash);
 
+SG_END_DECL()
 
 #endif                          /* XBT_HASH_H */
index 78a4815..fbde8e2 100644 (file)
@@ -460,51 +460,51 @@ extern xbt_log_layout_t xbt_log_default_layout;
  *  @brief Log an event at the DEBUG priority on the specified category with these args.
  */
 #define XBT_CDEBUG(categ, ...) \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_debug)) {            \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_debug;                        \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_debug)) {            \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_debug;                        \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the VERB priority on the specified category with these args.
  */
 #define XBT_CVERB(categ, ...)  \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_verbose)) {          \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_verbose;                      \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_verbose)) {          \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_verbose;                      \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the INFO priority on the specified category with these args.
  */
 #define XBT_CINFO(categ, ...) \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_info)) {             \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_info;                         \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_info)) {             \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_info;                         \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 
 /** @ingroup XBT_log
@@ -512,17 +512,17 @@ extern xbt_log_layout_t xbt_log_default_layout;
  *  @brief Log an event at the WARN priority on the specified category with these args.
  */
 #define XBT_CWARN(categ, ...) \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_warning)) {          \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_warning;                      \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_warning)) {          \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_warning;                      \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 
 /** @ingroup XBT_log
@@ -530,34 +530,34 @@ extern xbt_log_layout_t xbt_log_default_layout;
  *  @brief Log an event at the ERROR priority on the specified category with these args.
  */
 #define XBT_CERROR(categ, ...) \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_error)) {            \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_error;                        \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_error)) {            \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_error;                        \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the CRITICAL priority on the specified category with these args (CCRITICALn exists for any n<10).
  */
 #define XBT_CCRITICAL(categ, ...) \
-                 do {                                                                  \
-                   if (XBT_LOG_ISENABLED (categ, xbt_log_priority_critical)) {         \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = &(_XBT_LOGV(categ));                                \
-                     _log_ev.priority = xbt_log_priority_critical;                     \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (XBT_LOG_ISENABLED (categ, xbt_log_priority_critical)) {         \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = &(_XBT_LOGV(categ));                                \
+          _log_ev.priority = xbt_log_priority_critical;                     \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
@@ -565,108 +565,108 @@ extern xbt_log_layout_t xbt_log_default_layout;
  *  @brief Log an event at the DEBUG priority on the default category with these args.
  */
 #define XBT_DEBUG(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_debug)) {                  \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_debug;                        \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_debug)) {                  \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_debug;                        \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the VERB priority on the default category with these args.
  */
 #define XBT_VERB(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_verbose)) {                \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_verbose;                      \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_verbose)) {                \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_verbose;                      \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the INFO priority on the default category with these args.
  */
 #define XBT_INFO(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_info)) {                   \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_info;                         \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_info)) {                   \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_info;                         \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the WARN priority on the default category with these args.
  */
 #define XBT_WARN(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_warning)) {                \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_warning;                      \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_warning)) {                \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_warning;                      \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the ERROR priority on the default category with these args.
  */
 #define XBT_ERROR(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_error)) {                  \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_error;                        \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_error)) {                  \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_error;                        \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 /** @ingroup XBT_log
  *  @hideinitializer
  *  @brief Log an event at the CRITICAL priority on the default category with these args.
  */
 #define XBT_CRITICAL(...) \
-                 do {                                                                  \
-                   if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
-                                               xbt_log_priority_critical)) {               \
-                     s_xbt_log_event_t _log_ev;                                        \
-                     _log_ev.cat = _simgrid_log_category__default;                     \
-                     _log_ev.priority = xbt_log_priority_critical;                     \
-                     _log_ev.fileName = __FILE__;                                      \
-                     _log_ev.functionName = _XBT_FUNCTION;                             \
-                     _log_ev.lineNum = __LINE__;                                       \
-                     _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
-                   }                                                                   \
-                 }  while (0)
+      do {                                                                  \
+        if (_XBT_LOG_ISENABLEDV(*_simgrid_log_category__default,            \
+                            xbt_log_priority_critical)) {               \
+          s_xbt_log_event_t _log_ev;                                        \
+          _log_ev.cat = _simgrid_log_category__default;                     \
+          _log_ev.priority = xbt_log_priority_critical;                     \
+          _log_ev.fileName = __FILE__;                                      \
+          _log_ev.functionName = _XBT_FUNCTION;                             \
+          _log_ev.lineNum = __LINE__;                                       \
+          _xbt_log_event_log(&_log_ev, __VA_ARGS__);                        \
+        }                                                                   \
+      }  while (0)
 
 #define _XBT_IN_OUT(...) \
   _XBT_IF_ONE_ARG(_XBT_IN_OUT_ARG1, _XBT_IN_OUT_ARGN, __VA_ARGS__)(__VA_ARGS__)
diff --git a/include/xbt/range.hpp b/include/xbt/range.hpp
new file mode 100644 (file)
index 0000000..7e13722
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (c) 2016. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#ifndef SIMGRID_XBT_RANGE_HPP
+#define SIMGRID_XBT_RANGE_HPP
+
+namespace simgrid {
+namespace xbt {
+
+/** Describes a contiguous inclusive-exclusive [a,b) range of values */
+template<class T> class range {
+  T begin_;
+  T end_;
+public:
+  range()               : begin_(), end_() {}
+  range(T begin, T end) : begin_(std::move(begin)), end_(std::move(end)) {}
+  range(T value) : begin_(value), end_(value + 1) {}
+  T& begin()             { return begin_; }
+  T& end()               { return end_; }
+  const T& begin() const { return begin_; }
+  const T& end() const   { return end_; }
+  bool empty() const     { return begin_ >= end_; }
+  bool contain(T const& x) const { return begin_ <= x && end_ > x; }
+};
+
+}
+}
+
+#endif
index 3fb53d2..b90f86b 100644 (file)
@@ -57,6 +57,9 @@ XBT_PUBLIC(char *) xbt_str_from_file(FILE * file);
 
 XBT_PUBLIC(int) xbt_str_start_with(const char* str, const char* start);
 
+XBT_PUBLIC(long int) xbt_str_parse_int(const char* str, const char* error_msg);
+XBT_PUBLIC(double) xbt_str_parse_double(const char* str, const char* error_msg);
+
 #define DJB2_HASH_FUNCTION
 //#define FNV_HASH_FUNCTION
 
index 79b2658..d76decc 100644 (file)
@@ -15,6 +15,8 @@
 #include "xbt/str.h"
 #include "xbt/dict.h"
 
+SG_BEGIN_DECL()
+
 /**
  ** Buffer code
  **/
@@ -35,4 +37,5 @@ XBT_PUBLIC(void) xbt_strbuff_trim(xbt_strbuff_t b);
 XBT_PUBLIC(void) xbt_strbuff_varsubst(xbt_strbuff_t b,
                                       xbt_dict_t patterns);
 
+SG_END_DECL()
 #endif
index b8300a4..868c517 100644 (file)
@@ -8,7 +8,6 @@
 
 #include <simgrid/msg.h>
 #include <simgrid/simix.h>
-#include <surf/surfxml_parse.h>
 #include <locale.h>
 #include <src/simix/smx_private.h>
 
index 75ad3db..06c8f2b 100644 (file)
@@ -25,14 +25,14 @@ JNIEnv *get_current_thread_env(void);
 void jmsg_throw_status(JNIEnv *env, msg_error_t status);
 
 /*
- * Class               org_simgrid_msg_Msg
- * Method              getClock
- * Signature   ()D
+ * Class    org_simgrid_msg_Msg
+ * Method    getClock
+ * Signature  ()D
  */
 JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Msg_getClock(JNIEnv *, jclass);
 /**
- * Class               org_simgrid_msg_Msg
- * Method              run
+ * Class    org_simgrid_msg_Msg
+ * Method    run
  */
 JNIEXPORT void JNICALL
     JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass cls);
index 474bccd..e1d50eb 100644 (file)
@@ -125,12 +125,6 @@ Java_org_simgrid_msg_As_getProperty(JNIEnv *env, jobject jas, jobject jname) {
   return jproperty;
 }
 
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_As_getModel(JNIEnv * env, jobject jas) {
-  msg_as_t as = jas_get_native(env, jas);
-  return env->NewStringUTF(MSG_environment_as_get_model(as));
-}
-
 JNIEXPORT jobjectArray JNICALL
 Java_org_simgrid_msg_As_getHosts(JNIEnv * env, jobject jas)
 {
index d8f14e5..0c1d346 100644 (file)
@@ -31,9 +31,6 @@ Java_org_simgrid_msg_As_getSons(JNIEnv * env, jobject jas);
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_As_getProperty(JNIEnv *env, jobject jhost, jobject jname);
 
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_As_getModel(JNIEnv * env, jobject jas);
-
 JNIEXPORT jobjectArray JNICALL
 Java_org_simgrid_msg_As_getHosts(JNIEnv * env, jobject jas);
 
index ea88343..2d92f7a 100644 (file)
@@ -18,34 +18,34 @@ jfieldID jfile_field_bind;
 void jfile_bind(JNIEnv *env, jobject jfile, msg_file_t fd);
 msg_file_t jfile_get_native(JNIEnv *env, jobject jfile);
 /**
- * Class                       org_simgrid_msg_File
- * Method                      nativeInit
- * Signature   ()V
+ * Class      org_simgrid_msg_File
+ * Method      nativeInit
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_File_nativeInit(JNIEnv*, jclass);
 /**
- * Class                       org_simgrid_msg_File
- * Method                      open
- * Signature   (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ * Class      org_simgrid_msg_File
+ * Method      open
+ * Signature  (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_File_open(JNIEnv*, jobject, jobject);
 /**
- * Class                       org_simgrid_msg_File
- * Method                      read
+ * Class       org_simgrid_msg_File
+ * Method      read
  */
 JNIEXPORT jlong JNICALL
 Java_org_simgrid_msg_File_read(JNIEnv*, jobject, jlong);
 /**
- * Class                       org_simgrid_msg_File
- * Method                      write
+ * Class      org_simgrid_msg_File
+ * Method      write
  */
 JNIEXPORT jlong JNICALL
 Java_org_simgrid_msg_File_write(JNIEnv*, jobject, jlong);
 /**
- * Class                       org_simgrid_msg_File
- * Method                      close
+ * Class      org_simgrid_msg_File
+ * Method      close
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_File_close(JNIEnv*, jobject);
index 55cc4a1..dba26b2 100644 (file)
@@ -72,8 +72,8 @@ Java_org_simgrid_msg_Host_getByName(JNIEnv * env, jclass cls,
 
   /* get the C string from the java string */
   if (jname == NULL) {
-       jxbt_throw_null(env,bprintf("No host can have a null name"));
-       return NULL;
+    jxbt_throw_null(env,bprintf("No host can have a null name"));
+    return NULL;
   }
   const char *name = env->GetStringUTFChars(jname, 0);
   /* get the host by name       (the hosts are created during the grid resolution) */
@@ -238,7 +238,7 @@ Java_org_simgrid_msg_Host_setProperty(JNIEnv *env, jobject jhost, jobject jname,
 
   MSG_host_set_property_value(host, name, value, xbt_free_f);
 
-  env->ReleaseStringUTFChars((jstring) jvalue, value);
+  env->ReleaseStringUTFChars((jstring) jvalue, value_java);
   env->ReleaseStringUTFChars((jstring) jname, name);
 
 }
@@ -267,29 +267,29 @@ Java_org_simgrid_msg_Host_getMountedStorage(JNIEnv * env, jobject jhost){
   }
 
   int index = 0;
-       jobjectArray jtable;
-       xbt_dict_t dict =  MSG_host_get_mounted_storage_list(host);
-       int count = xbt_dict_length(dict);
-       jclass cls = env->FindClass("org/simgrid/msg/Storage");
+  jobjectArray jtable;
+  xbt_dict_t dict =  MSG_host_get_mounted_storage_list(host);
+  int count = xbt_dict_length(dict);
+  jclass cls = env->FindClass("org/simgrid/msg/Storage");
 
-       jtable = env->NewObjectArray((jsize) count, cls, NULL);
+  jtable = env->NewObjectArray((jsize) count, cls, NULL);
 
-       if (!jtable) {
-        jxbt_throw_jni(env, "Storages table allocation failed");
-        return NULL;
-       }
+  if (!jtable) {
+   jxbt_throw_jni(env, "Storages table allocation failed");
+   return NULL;
+  }
 
-       xbt_dict_cursor_t cursor=NULL;
-       const char *mount_name, *storage_name;
+  xbt_dict_cursor_t cursor=NULL;
+  const char *mount_name, *storage_name;
 
-       xbt_dict_foreach(dict,cursor,mount_name,storage_name) {
-               jname = env->NewStringUTF(storage_name);
-         jstorage = Java_org_simgrid_msg_Storage_getByName(env,cls,jname);
-         env->SetObjectArrayElement(jtable, index, jstorage);
+  xbt_dict_foreach(dict,cursor,mount_name,storage_name) {
+    jname = env->NewStringUTF(storage_name);
+    jstorage = Java_org_simgrid_msg_Storage_getByName(env,cls,jname);
+    env->SetObjectArrayElement(jtable, index, jstorage);
     index++;
-       }
-       xbt_dict_free(&dict);
-       return jtable;
+  }
+  xbt_dict_free(&dict);
+  return jtable;
 }
 
 JNIEXPORT jobjectArray JNICALL
@@ -363,7 +363,7 @@ Java_org_simgrid_msg_Host_all(JNIEnv * env, jclass cls_arg)
       jname = env->NewStringUTF(MSG_host_get_name(host));
 
       jhost =
-               Java_org_simgrid_msg_Host_getByName(env, cls_arg, jname);
+          Java_org_simgrid_msg_Host_getByName(env, cls_arg, jname);
       /* FIXME: leak of jname ? */
     }
 
index 5a342f2..327940c 100644 (file)
@@ -17,14 +17,14 @@ SG_BEGIN_DECL()
 /**
  * This function returns a new java host instance.
  *
- * @param env                  The environment of the current thread
+ * @param env      The environment of the current thread
  *
- * @return                             A new java host object.
+ * @return        A new java host object.
  *
- * @exception                  If the class Host is not found the function throws 
- *                                             the ClassNotFoundException. If the constructor of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchMethodException.
+ * @exception      If the class Host is not found the function throws 
+ *            the ClassNotFoundException. If the constructor of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchMethodException.
  */
 jobject jhost_new_instance(JNIEnv * env);
 
@@ -32,58 +32,58 @@ jobject jhost_new_instance(JNIEnv * env);
  * This function returns a global reference to the  java host instance 
  * specified by the parameter jhost.
  *
- * @param jhost                        The original java host instance.
- * @param env                  The environment of the current thread
+ * @param jhost      The original java host instance.
+ * @param env      The environment of the current thread
  *
- * @return                             The global reference to the original java host 
- *                                             instance.
+ * @return        The global reference to the original java host 
+ *            instance.
  */
 jobject jhost_ref(JNIEnv * env, jobject jhost);
 /**
  * This function delete a global reference to a java host instance.
  *
- * @param                              The global refernce to delete.
- * @param env                  The environment of the current thread
+ * @param        The global refernce to delete.
+ * @param env      The environment of the current thread
  */
 void jhost_unref(JNIEnv * env, jobject jhost);
 
 /**
  * This function associated a native host to a java host instance.
  *
- * @param jhost                        The java host instance.
- * @param host                 The native host to bind.
- * @param env                  The environment of the current thread
+ * @param jhost      The java host instance.
+ * @param host      The native host to bind.
+ * @param env      The environment of the current thread
  *
- * @exception                  If the class Host is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Host is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 void jhost_bind(jobject jhost, msg_host_t host, JNIEnv * env);
 
 /**
  * This function returns a native host from a java host instance.
  *
- * @param jhost                        The java host object from which get the native host.
- * @param env                  The environment of the current thread
+ * @param jhost      The java host object from which get the native host.
+ * @param env      The environment of the current thread
  *
- * @return                             The function returns the native host associated to the
- *                                             java host object.
+ * @return        The function returns the native host associated to the
+ *            java host object.
  *
- * @exception                  If the class Host is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Host is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 msg_host_t jhost_get_native(JNIEnv * env, jobject jhost);
 
 /**
  * This function returns the name of a MSG host.
  *
- * @param jhost                        A java host object.
- * @param env                  The environment of the current thread
+ * @param jhost      A java host object.
+ * @param env      The environment of the current thread
  *
- * @return                             The name of the host.
+ * @return        The name of the host.
  */
 const char *jhost_get_name(jobject jhost, JNIEnv * env);
 
@@ -91,25 +91,25 @@ const char *jhost_get_name(jobject jhost, JNIEnv * env);
  * This function tests if a java host instance is valid.
  * A java host object is valid if it is bind to a native host.
  *
- * @param jhost                        The host to test the validity.
- * @param env                  The environment of the current thread
+ * @param jhost      The host to test the validity.
+ * @param env      The environment of the current thread
  *
- * @return                             If the java host is valid the function returns true.
- *                                             Otherwise the function returns false.
+ * @return        If the java host is valid the function returns true.
+ *            Otherwise the function returns false.
  */
 jboolean jhost_is_valid(jobject jhost, JNIEnv * env);
 /*
- * Class               org_simgrid_msg_Host
- * Method              nativeInit
- * Signature   ();
+ * Class    org_simgrid_msg_Host
+ * Method    nativeInit
+ * Signature  ();
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Host_nativeInit(JNIEnv *env, jclass cls);
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              getByName
- * Signature   (Ljava/lang/String;)Lsimgrid/msg/Host;
+ * Class    org_simgrid_msg_Host
+ * Method    getByName
+ * Signature  (Ljava/lang/String;)Lsimgrid/msg/Host;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Host_getByName
     (JNIEnv *, jclass, jstring);
@@ -117,8 +117,8 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Host_getByName
 /**
  * This function start the host if it is off
  *
- * @param jhost                        The host to test the validity.
- * @param env                  The environment of the current thread
+ * @param jhost      The host to test the validity.
+ * @param env      The environment of the current thread
  *
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Host_on(JNIEnv *env, jobject jhost);
@@ -126,38 +126,38 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Host_on(JNIEnv *env, jobject jhost);
 /**
  * This function stop the host if it is on
  *
- * @param jhost                        The host to test the validity.
- * @param env                  The environment of the current thread
+ * @param jhost      The host to test the validity.
+ * @param env      The environment of the current thread
  *
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Host_off(JNIEnv *env, jobject jhost);
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              currentHost
- * Signature   ()Lsimgrid/msg/Host;
+ * Class    org_simgrid_msg_Host
+ * Method    currentHost
+ * Signature  ()Lsimgrid/msg/Host;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Host_currentHost
     (JNIEnv *, jclass);
 /*
- * Class               org_simgrid_msg_Host
- * Method              getCount
- * Signature   ()I
+ * Class    org_simgrid_msg_Host
+ * Method    getCount
+ * Signature  ()I
  */
 JNIEXPORT jint JNICALL Java_org_simgrid_msg_Host_getCount
     (JNIEnv *, jclass);
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              getSpeed
- * Signature   ()D
+ * Class    org_simgrid_msg_Host
+ * Method    getSpeed
+ * Signature  ()D
  */
 JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Host_getSpeed
     (JNIEnv *, jobject);
 /*
- * Class               org_simgrid_msg_Host
- * Method              getCoreNumber
- * Signature   ()D
+ * Class    org_simgrid_msg_Host
+ * Method    getCoreNumber
+ * Signature  ()D
  */
 JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Host_getCoreNumber
     (JNIEnv *, jobject);
@@ -176,30 +176,30 @@ Java_org_simgrid_msg_Host_getProperty(JNIEnv *env, jobject jhost, jobject jname)
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Host_setProperty(JNIEnv *env, jobject jhost, jobject jname, jobject jvalue);
 /*
- * Class               org_simgrid_msg_Host
- * Method              isOn
- * Signature   ()Z
+ * Class    org_simgrid_msg_Host
+ * Method    isOn
+ * Signature  ()Z
  */
 JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Host_isOn
     (JNIEnv *, jobject);
 
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              getMountedStorage
+ * Class    org_simgrid_msg_Host
+ * Method    getMountedStorage
  * Signature: ()[Lorg/simgrid/msg/Storage;
  */
 JNIEXPORT jobjectArray JNICALL Java_org_simgrid_msg_Host_getMountedStorage(JNIEnv * env, jobject jhost);
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              getAttachedStorageList
+ * Class    org_simgrid_msg_Host
+ * Method    getAttachedStorageList
  */
 JNIEXPORT jobjectArray JNICALL Java_org_simgrid_msg_Host_getAttachedStorage(JNIEnv * env, jobject jhost);
 
 /*
- * Class               org_simgrid_msg_Host
- * Method              getStorageContent
+ * Class    org_simgrid_msg_Host
+ * Method    getStorageContent
  */
 JNIEXPORT jobjectArray JNICALL Java_org_simgrid_msg_Host_getStorageContent(JNIEnv * env, jobject jhost);
 
index 601733f..05491e3 100644 (file)
@@ -49,10 +49,10 @@ void jprocess_delete_global_ref(jobject jprocess, JNIEnv * env)
 
 void jprocess_join(jobject jprocess, JNIEnv * env)
 {
-       msg_process_t process = jprocess_to_native_process(jprocess,env);
-       simgrid::java::JavaContext* context =
+  msg_process_t process = jprocess_to_native_process(jprocess,env);
+  simgrid::java::JavaContext* context =
     (simgrid::java::JavaContext*) MSG_process_get_smx_ctx(process);
-       xbt_os_thread_join(context->thread,NULL);
+  xbt_os_thread_join(context->thread,NULL);
 }
 
 msg_process_t jprocess_to_native_process(jobject jprocess, JNIEnv * env)
@@ -161,9 +161,9 @@ Java_org_simgrid_msg_Process_create(JNIEnv * env,
               simgrid::java::java_main_jprocess(jprocess);
               return 0;
             }, jprocess,
-                                               host,
-                                               /*argc, argv, properties*/
-                                               0, NULL, NULL);
+            host,
+            /*argc, argv, properties*/
+            0, NULL, NULL);
   MSG_process_set_kill_time(process, (double)jkill);
   /* bind the java process instance to the native process */
   jprocess_bind(jprocess, process, env);
@@ -376,14 +376,14 @@ JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_kill(JNIEnv * env,
                                   jobject jprocess)
 {
-       /* get the native instances from the java ones */
+  /* get the native instances from the java ones */
   msg_process_t process = jprocess_to_native_process(jprocess, env);
   if (!process) {
     jxbt_throw_notbound(env, "process", jprocess);
     return;
   }
 
-       MSG_process_kill(process);
+  MSG_process_kill(process);
 }
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_migrate(JNIEnv * env,
@@ -414,8 +414,8 @@ Java_org_simgrid_msg_Process_migrate(JNIEnv * env,
 }
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_setKillTime (JNIEnv *env , jobject jprocess, jdouble jkilltime) {
-       msg_process_t process = jprocess_to_native_process(jprocess, env);
-       MSG_process_set_kill_time(process, (double)jkilltime);
+  msg_process_t process = jprocess_to_native_process(jprocess, env);
+  MSG_process_set_kill_time(process, (double)jkilltime);
 }
 
 JNIEXPORT jint JNICALL
index 7cd3c65..145f830 100644 (file)
@@ -34,11 +34,11 @@ jobject native_to_java_process(msg_process_t process);
  * This function returns a global reference to the  java process instance 
  * specified by the parameter jprocess.
  *
- * @param jprocess             The original java process instance.
- * @param env                  The env of the current thread
+ * @param jprocess    The original java process instance.
+ * @param env      The env of the current thread
  *
- * @return                             The global reference to the original java process 
- *                                             instance.
+ * @return        The global reference to the original java process 
+ *            instance.
  */
 jobject jprocess_new_global_ref(jobject jprocess, JNIEnv * env);
 
@@ -46,11 +46,11 @@ jobject jprocess_new_global_ref(jobject jprocess, JNIEnv * env);
  * This function delete a global reference to a java process instance.
  * If the java process is alive the function joins it and stops it before.
  *
- * @param                              The global refernce to delete.
- * @param env                  The env of the current thread
+ * @param        The global refernce to delete.
+ * @param env      The env of the current thread
  *
- * @see                                        jprocess_join()
- * @see                                        jprocess_exit()
+ * @see          jprocess_join()
+ * @see          jprocess_exit()
  */
 void jprocess_delete_global_ref(jobject jprocess, JNIEnv * env);
 
@@ -58,58 +58,58 @@ void jprocess_delete_global_ref(jobject jprocess, JNIEnv * env);
 /**
  * This function waits for a java process to terminate.
  *
- * @param jprocess             The java process ot wait for.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process ot wait for.
+ * @param env      The env of the current thread
  *
- * @exception                  If the class Process is not found the function throws 
- *                                             the ClassNotFoundException. If the methos join() of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchMethodException. 
+ * @exception      If the class Process is not found the function throws 
+ *            the ClassNotFoundException. If the methos join() of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchMethodException.  
  *
  */
 void jprocess_join(jobject jprocess, JNIEnv * env);
 /**
  * This function associated a native process to a java process instance.
  *
- * @param jprocess             The java process instance.
- * @param process              The native process to bind.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process instance.
+ * @param process    The native process to bind.
+ * @param env      The env of the current thread
  *
- * @exception                  If the class Process is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Process is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 void jprocess_bind(jobject jprocess, msg_process_t process, JNIEnv * env);
 
 /**
  * This function returns a native process from a java process instance.
  *
- * @param jprocess             The java process object from which get the native process.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process object from which get the native process.
+ * @param env      The env of the current thread
  *
- * @return                             The function returns the native process associated to the
- *                                             java process object.
+ * @return        The function returns the native process associated to the
+ *            java process object.
  *
- * @exception                  If the class Process is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Process is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 msg_process_t jprocess_to_native_process(jobject jprocess, JNIEnv * env);
 
 /**
  * This function gets the id of the specified java process.
  *
- * @param jprocess             The java process to get the id.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process to get the id.
+ * @param env      The env of the current thread
  *
- * @exception                  If the class Process is not found the function throws 
- *                                             the ClassNotFoundException. If the field id of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Process is not found the function throws 
+ *            the ClassNotFoundException. If the field id of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  *
- * @return                             The id of the specified java process.
+ * @return        The id of the specified java process.
  */
 jlong jprocess_get_id(jobject jprocess, JNIEnv * env);
 
@@ -118,41 +118,41 @@ jlong jprocess_get_id(jobject jprocess, JNIEnv * env);
  * A java process object is valid if it is bind to a native 
  * process.
  *
- * @param jprocess             The java process to test the validity.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process to test the validity.
+ * @param env      The env of the current thread
  *
- * @return                             If the java process is valid the function returns true.
- *                                             Otherwise the function returns false.
+ * @return        If the java process is valid the function returns true.
+ *            Otherwise the function returns false.
  */
 jboolean jprocess_is_valid(jobject jprocess, JNIEnv * env);
 
 /**
  * This function gets the name of the specified java process.
  *
- * @param jprocess             The java process to get the name.
- * @param env                  The env of the current thread
+ * @param jprocess    The java process to get the name.
+ * @param env      The env of the current thread
  *
- * @exception                  If the class Process is not found the function throws 
- *                                             the ClassNotFoundException. If the field name of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Process is not found the function throws 
+ *            the ClassNotFoundException. If the field name of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  *
- * @return                             The name of the specified java process.
+ * @return        The name of the specified java process.
  */
 jstring jprocess_get_name(jobject jprocess, JNIEnv * env);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              nativeInit
- * Signature   ();
+ * Class    org_simgrid_msg_Process
+ * Method    nativeInit
+ * Signature  ();
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_nativeInit(JNIEnv *env, jclass cls);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              create
- * Signature   (Lorg/simgrid/msg/Host;)V
+ * Class    org_simgrid_msg_Process
+ * Method    create
+ * Signature  (Lorg/simgrid/msg/Host;)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_create(JNIEnv * env,
@@ -160,17 +160,17 @@ Java_org_simgrid_msg_Process_create(JNIEnv * env,
                                     jobject jhostname);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              killAll
- * Signature   (I)I
+ * Class    org_simgrid_msg_Process
+ * Method    killAll
+ * Signature  (I)I
  */
 JNIEXPORT jint JNICALL Java_org_simgrid_msg_Process_killAll
     (JNIEnv *, jclass, jint);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              fromPID
- * Signature   (I)Lorg/simgrid/msg/Process;
+ * Class    org_simgrid_msg_Process
+ * Method    fromPID
+ * Signature  (I)Lorg/simgrid/msg/Process;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID
     (JNIEnv *, jclass, jint);
@@ -182,24 +182,24 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Process_getProperty(JNIEnv *env, jobject jprocess, jobject jname);
 /*
- * Class               org_simgrid_msg_Process
- * Method              currentProcess
- * Signature   ()Lorg/simgrid/msg/Process;
+ * Class    org_simgrid_msg_Process
+ * Method    currentProcess
+ * Signature  ()Lorg/simgrid/msg/Process;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_getCurrentProcess
     (JNIEnv *, jclass);
 /*
- * Class               org_simgrid_msg_Process
- * Method              suspend
- * Signature   (Lorg/simgrid/msg/Process;)V
+ * Class    org_simgrid_msg_Process
+ * Method    suspend
+ * Signature  (Lorg/simgrid/msg/Process;)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Process_suspend(JNIEnv * env,
                                           jobject jprocess);
 /*
- * Class               org_simgrid_msg_Process
- * Method              resume
- * Signature   (Lorg/simgrid/msg/Process;)V
+ * Class    org_simgrid_msg_Process
+ * Method    resume
+ * Signature  (Lorg/simgrid/msg/Process;)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume
     (JNIEnv *, jobject);
@@ -219,46 +219,46 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart
     (JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              isSuspended
- * Signature   (Lorg/simgrid/msg/Process;)Z
+ * Class    org_simgrid_msg_Process
+ * Method    isSuspended
+ * Signature  (Lorg/simgrid/msg/Process;)Z
  */
 JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended
     (JNIEnv *, jobject);
 /*
- * Class               org_simgrid_msg_Process
- * Method              sleep
- * Signature   (DI)V
+ * Class    org_simgrid_msg_Process
+ * Method    sleep
+ * Signature  (DI)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_sleep
     (JNIEnv *, jclass, jlong, jint);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              waitFor
- * Signature   (D)V
+ * Class    org_simgrid_msg_Process
+ * Method    waitFor
+ * Signature  (D)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_waitFor
     (JNIEnv *, jobject, jdouble);
 /*
- * Class               org_simgrid_msg_Process
- * Method              kill
- * Signature   (Lorg/simgrid/msg/Process;)V
+ * Class    org_simgrid_msg_Process
+ * Method    kill
+ * Signature  (Lorg/simgrid/msg/Process;)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_kill
     (JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Process
- * Method              migrate
- * Signature   (Lorg/simgrid/msg/Host;)V
+ * Class    org_simgrid_msg_Process
+ * Method    migrate
+ * Signature  (Lorg/simgrid/msg/Host;)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_migrate
     (JNIEnv *, jobject, jobject);
 /*
- * Class               org_simgrid_msg_Process
- * Method              setKillTime
- * Signature   (D)V
+ * Class    org_simgrid_msg_Process
+ * Method    setKillTime
+ * Signature  (D)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_setKillTime
     (JNIEnv *, jobject, jdouble);
index 299b34a..1af9c1e 100644 (file)
@@ -65,8 +65,8 @@ Java_org_simgrid_msg_Storage_getByName(JNIEnv * env, jclass cls,
 
   /* get the C string from the java string */
   if (jname == NULL) {
-       jxbt_throw_null(env,bprintf("No host can have a null name"));
-       return NULL;
+    jxbt_throw_null(env,bprintf("No host can have a null name"));
+    return NULL;
   }
   const char *name = env->GetStringUTFChars(jname, 0);
   storage = MSG_storage_get_by_name(name);
@@ -170,7 +170,7 @@ Java_org_simgrid_msg_Storage_getProperty(JNIEnv *env, jobject jstorage, jobject
 
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Storage_setProperty(JNIEnv *env, jobject jstorage, jobject jname, jobject jvalue) {
-       msg_storage_t storage = jstorage_get_native(env, jstorage);
+  msg_storage_t storage = jstorage_get_native(env, jstorage);
 
   if (!storage) {
     jxbt_throw_notbound(env, "storage", jstorage);
@@ -182,7 +182,7 @@ Java_org_simgrid_msg_Storage_setProperty(JNIEnv *env, jobject jstorage, jobject
 
   MSG_storage_set_property_value(storage, name, value, xbt_free_f);
 
-  env->ReleaseStringUTFChars((jstring) jvalue, value);
+  env->ReleaseStringUTFChars((jstring) jvalue, value_java);
   env->ReleaseStringUTFChars((jstring) jname, name);
 
 }
index 739a930..ac617ca 100644 (file)
@@ -16,28 +16,28 @@ SG_BEGIN_DECL()
 /**
  * This function returns a new java storage instance.
  *
- * @param env                  The environment of the current thread
+ * @param env      The environment of the current thread
  *
- * @return                             A new java storage object.
+ * @return        A new java storage object.
  *
- * @exception                  If the class Storage is not found the function throws
- *                                             the ClassNotFoundException. If the constructor of
- *                                             this class is not found the function throws the exception
- *                                             NotSuchMethodException.
+ * @exception      If the class Storage is not found the function throws
+ *            the ClassNotFoundException. If the constructor of
+ *            this class is not found the function throws the exception
+ *            NotSuchMethodException.
  */
 jobject jstorage_new_instance(JNIEnv * env);
 
 /**
  * This function associated a native storage to a java storage instance.
  *
- * @param jstorage                     The java storage instance.
- * @param storage                      The native storage to bind.
- * @param env                  The environment of the current thread
+ * @param jstorage      The java storage instance.
+ * @param storage      The native storage to bind.
+ * @param env      The environment of the current thread
  *
- * @exception                  If the class Storage is not found the function throws
- *                                             the ClassNotFoundException. If the field bind of
- *                                             this class is not found the function throws the exception
- *                                             NotSuchFieldException.
+ * @exception      If the class Storage is not found the function throws
+ *            the ClassNotFoundException. If the field bind of
+ *            this class is not found the function throws the exception
+ *            NotSuchFieldException.
  */
 void jstorage_bind(jobject jstorage, msg_storage_t storage, JNIEnv * env);
 
@@ -45,24 +45,24 @@ void jstorage_bind(jobject jstorage, msg_storage_t storage, JNIEnv * env);
 /**
  * This function returns a native storage from a java storage instance.
  *
- * @param jstorage                     The java storage object from which get the native storage.
- * @param env                  The environment of the current thread
+ * @param jstorage      The java storage object from which get the native storage.
+ * @param env      The environment of the current thread
  *
- * @return                             The function returns the native storage associated to the
- *                                             java storage object.
+ * @return        The function returns the native storage associated to the
+ *            java storage object.
  *
- * @exception                  If the class Storage is not found the function throws
- *                                             the ClassNotFoundException. If the field bind of
- *                                             this class is not found the function throws the exception
- *                                             NotSuchFieldException.
+ * @exception      If the class Storage is not found the function throws
+ *            the ClassNotFoundException. If the field bind of
+ *            this class is not found the function throws the exception
+ *            NotSuchFieldException.
  */
 msg_storage_t jstorage_get_native(JNIEnv * env, jobject jstorage);
 
 
 /**
- * Class                       org_simgrid_msg_Storage
- * Method                      nativeInit
- * Signature   ()V
+ * Class      org_simgrid_msg_Storage
+ * Method      nativeInit
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Storage_nativeInit(JNIEnv*, jclass);
@@ -72,56 +72,56 @@ Java_org_simgrid_msg_Storage_nativeInit(JNIEnv*, jclass);
  * This function returns a global reference to the  java storage instance
  * specified by the parameter jstorage.
  *
- * @param jstorage                     The original java storage instance.
- * @param env                  The environment of the current thread
+ * @param jstorage      The original java storage instance.
+ * @param env      The environment of the current thread
  *
- * @return                             The global reference to the original java storage
- *                                             instance.
+ * @return        The global reference to the original java storage
+ *            instance.
  */
 jobject jstorage_ref(JNIEnv * env, jobject jstorage);
 /**
  * This function delete a global reference to a java storage instance.
  *
- * @param                              The global reference to delete.
- * @param env                  The environment of the current thread
+ * @param        The global reference to delete.
+ * @param env      The environment of the current thread
  */
 void jstorage_unref(JNIEnv * env, jobject jstorage);
 
 /**
  * This function returns the name of a MSG storage.
  *
- * @param jstorage                     A java storage object.
- * @param env                  The environment of the current thread
+ * @param jstorage      A java storage object.
+ * @param env      The environment of the current thread
  *
- * @return                             The name of the storage.
+ * @return        The name of the storage.
  */
 const char *jstorage_get_name(jobject jstorage, JNIEnv * env);
 
 /*
- * Class               org_simgrid_msg_Storage
- * Method              getByName
- * Signature   (Ljava/lang/String;)Lsimgrid/msg/Storage;
+ * Class    org_simgrid_msg_Storage
+ * Method    getByName
+ * Signature  (Ljava/lang/String;)Lsimgrid/msg/Storage;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Storage_getByName(JNIEnv *, jclass, jstring);
 
 /*
- * Class               org_simgrid_msg_Storage
- * Method              getSize
- * Signature   ()D
+ * Class    org_simgrid_msg_Storage
+ * Method    getSize
+ * Signature  ()D
  */
 JNIEXPORT jlong JNICALL Java_org_simgrid_msg_Storage_getSize(JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Storage
- * Method              getFreeSize
- * Signature   ()D
+ * Class    org_simgrid_msg_Storage
+ * Method    getFreeSize
+ * Signature  ()D
  */
 JNIEXPORT jlong JNICALL Java_org_simgrid_msg_Storage_getFreeSize(JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Storage
- * Method              getUsedSize
- * Signature   ()D
+ * Class    org_simgrid_msg_Storage
+ * Method    getUsedSize
+ * Signature  ()D
  */
 JNIEXPORT jlong JNICALL Java_org_simgrid_msg_Storage_getUsedSize(JNIEnv *, jobject);
 
index fb1a948..7c6cb4a 100644 (file)
@@ -261,7 +261,7 @@ Java_org_simgrid_msg_Task_getSender(JNIEnv * env,
 
   process = MSG_task_get_sender(task);
   if (process == NULL) {
-       return NULL;
+    return NULL;
   }
   return (jobject) native_to_java_process(process);
 }
@@ -280,7 +280,7 @@ Java_org_simgrid_msg_Task_getSource(JNIEnv * env,
 
   host = MSG_task_get_source(task);
   if (host == NULL) {
-       return NULL;
+    return NULL;
   }
   if (!host->extension(JAVA_HOST_LEVEL)) {
     jxbt_throw_jni(env, "MSG_task_get_source() failed");
@@ -304,18 +304,18 @@ Java_org_simgrid_msg_Task_getFlopsAmount(JNIEnv * env, jobject jtask)
 
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setName(JNIEnv *env, jobject jtask, jobject jname) {
-       msg_task_t task = jtask_to_native_task(jtask, env);
+  msg_task_t task = jtask_to_native_task(jtask, env);
 
-       if (!task) {
-               jxbt_throw_notbound(env, "task", jtask);
-               return;
-       }
-       const char *name = env->GetStringUTFChars((jstring) jname, 0);
+  if (!task) {
+    jxbt_throw_notbound(env, "task", jtask);
+    return;
+  }
+  const char *name = env->GetStringUTFChars((jstring) jname, 0);
 
-       env->SetObjectField(jtask, jtask_field_Task_name, jname);
-       MSG_task_set_name(task, name);
+  env->SetObjectField(jtask, jtask_field_Task_name, jname);
+  MSG_task_set_name(task, name);
 
-       env->ReleaseStringUTFChars((jstring) jname, name);
+  env->ReleaseStringUTFChars((jstring) jname, name);
 }
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setPriority(JNIEnv * env,
@@ -331,26 +331,26 @@ Java_org_simgrid_msg_Task_setPriority(JNIEnv * env,
 }
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setFlopsAmount
-               (JNIEnv *env, jobject jtask, jdouble computationAmount) {
-       msg_task_t task = jtask_to_native_task(jtask, env);
+    (JNIEnv *env, jobject jtask, jdouble computationAmount) {
+  msg_task_t task = jtask_to_native_task(jtask, env);
 
-       if (!task) {
+  if (!task) {
     jxbt_throw_notbound(env, "task", jtask);
     return;
-       }
-       MSG_task_set_flops_amount(task, (double) computationAmount);
+  }
+  MSG_task_set_flops_amount(task, (double) computationAmount);
 }
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setBytesAmount
-               (JNIEnv *env, jobject jtask, jdouble dataSize) {
-       msg_task_t task = jtask_to_native_task(jtask, env);
+    (JNIEnv *env, jobject jtask, jdouble dataSize) {
+  msg_task_t task = jtask_to_native_task(jtask, env);
 
-       if (!task) {
+  if (!task) {
     jxbt_throw_notbound(env, "task", jtask);
     return;
-       }
+  }
   env->SetDoubleField(jtask, jtask_field_Task_messageSize, dataSize);
-       MSG_task_set_bytes_amount(task, (double) dataSize);
+  MSG_task_set_bytes_amount(task, (double) dataSize);
 }
 
 JNIEXPORT void JNICALL
@@ -455,37 +455,37 @@ Java_org_simgrid_msg_Task_receive(JNIEnv * env, jclass cls,
 
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_irecv(JNIEnv * env, jclass cls, jstring jmailbox) {
-       msg_comm_t comm;
-       const char *mailbox;
-       jclass comm_class;
-       //pointer to store the task object pointer.
-       msg_task_t *task = xbt_new(msg_task_t,1);
-       *task = NULL;
-       /* There should be a cache here */
-       comm_class = env->FindClass("org/simgrid/msg/Comm");
+  msg_comm_t comm;
+  const char *mailbox;
+  jclass comm_class;
+  //pointer to store the task object pointer.
+  msg_task_t *task = xbt_new(msg_task_t,1);
+  *task = NULL;
+  /* There should be a cache here */
+  comm_class = env->FindClass("org/simgrid/msg/Comm");
 
-       if (!comm_class) {
-               jxbt_throw_native(env,bprintf("fieldID or methodID or class not found."));
-               return NULL;
-       }
+  if (!comm_class) {
+    jxbt_throw_native(env,bprintf("fieldID or methodID or class not found."));
+    return NULL;
+  }
 
-       jobject jcomm = env->NewObject(comm_class, jtask_method_Comm_constructor);
-       if (!jcomm) {
-               jxbt_throw_native(env,bprintf("Can't create a Comm object."));
-               return NULL;
-       }
+  jobject jcomm = env->NewObject(comm_class, jtask_method_Comm_constructor);
+  if (!jcomm) {
+    jxbt_throw_native(env,bprintf("Can't create a Comm object."));
+    return NULL;
+  }
 
-       mailbox = env->GetStringUTFChars(jmailbox, 0);
+  mailbox = env->GetStringUTFChars(jmailbox, 0);
 
-       comm = MSG_task_irecv(task,mailbox);
+  comm = MSG_task_irecv(task,mailbox);
 
-       env->SetLongField(jcomm, jtask_field_Comm_bind, (jlong) (uintptr_t)(comm));
-       env->SetLongField(jcomm, jtask_field_Comm_taskBind, (jlong) (uintptr_t)(task));
-       env->SetBooleanField(jcomm, jtask_field_Comm_receiving, JNI_TRUE);
+  env->SetLongField(jcomm, jtask_field_Comm_bind, (jlong) (uintptr_t)(comm));
+  env->SetLongField(jcomm, jtask_field_Comm_taskBind, (jlong) (uintptr_t)(task));
+  env->SetBooleanField(jcomm, jtask_field_Comm_receiving, JNI_TRUE);
 
-       env->ReleaseStringUTFChars(jmailbox, mailbox);
+  env->ReleaseStringUTFChars(jmailbox, mailbox);
 
-       return jcomm;
+  return jcomm;
 }
 
 
@@ -536,38 +536,38 @@ Java_org_simgrid_msg_Task_receiveBounded(JNIEnv * env, jclass cls,
 
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_irecvBounded(JNIEnv * env, jclass cls,
-               jstring jmailbox, jdouble rate) {
-       msg_comm_t comm;
-       const char *mailbox;
-       jclass comm_class;
-       //pointer to store the task object pointer.
-       msg_task_t *task = xbt_new(msg_task_t,1);
-       *task = NULL;
-       /* There should be a cac hee */
-       comm_class = env->FindClass("org/simgrid/msg/Comm");
+    jstring jmailbox, jdouble rate) {
+  msg_comm_t comm;
+  const char *mailbox;
+  jclass comm_class;
+  //pointer to store the task object pointer.
+  msg_task_t *task = xbt_new(msg_task_t,1);
+  *task = NULL;
+  /* There should be a cac hee */
+  comm_class = env->FindClass("org/simgrid/msg/Comm");
 
-       if (!comm_class) {
-               jxbt_throw_native(env,bprintf("fieldID or methodID or class not found."));
-               return NULL;
-       }
+  if (!comm_class) {
+    jxbt_throw_native(env,bprintf("fieldID or methodID or class not found."));
+    return NULL;
+  }
 
-       jobject jcomm = env->NewObject(comm_class, jtask_method_Comm_constructor);
-       if (!jcomm) {
-               jxbt_throw_native(env,bprintf("Can't create a Comm object."));
-               return NULL;
-       }
+  jobject jcomm = env->NewObject(comm_class, jtask_method_Comm_constructor);
+  if (!jcomm) {
+    jxbt_throw_native(env,bprintf("Can't create a Comm object."));
+    return NULL;
+  }
 
-       mailbox = env->GetStringUTFChars(jmailbox, 0);
+  mailbox = env->GetStringUTFChars(jmailbox, 0);
 
-       comm = MSG_task_irecv_bounded(task,mailbox, (double) rate);
+  comm = MSG_task_irecv_bounded(task,mailbox, (double) rate);
 
-       env->SetLongField(jcomm, jtask_field_Comm_bind, (jlong) (uintptr_t)(comm));
-       env->SetLongField(jcomm, jtask_field_Comm_taskBind, (jlong) (uintptr_t)(task));
-       env->SetBooleanField(jcomm, jtask_field_Comm_receiving, JNI_TRUE);
+  env->SetLongField(jcomm, jtask_field_Comm_bind, (jlong) (uintptr_t)(comm));
+  env->SetLongField(jcomm, jtask_field_Comm_taskBind, (jlong) (uintptr_t)(task));
+  env->SetBooleanField(jcomm, jtask_field_Comm_receiving, JNI_TRUE);
 
-       env->ReleaseStringUTFChars(jmailbox, mailbox);
+  env->ReleaseStringUTFChars(jmailbox, mailbox);
 
-       return jcomm;
+  return jcomm;
 }
 
 JNIEXPORT jobject JNICALL
@@ -650,14 +650,14 @@ Java_org_simgrid_msg_Task_isendBounded(JNIEnv *env, jobject jtask, jstring jmail
 
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_nativeFinalize(JNIEnv * env, jobject jtask) {
-         msg_task_t task = jtask_to_native_task(jtask, env);
+    msg_task_t task = jtask_to_native_task(jtask, env);
 
-         if (!task) {
-           jxbt_throw_notbound(env, "task", jtask);
-           return;
-         }
+    if (!task) {
+      jxbt_throw_notbound(env, "task", jtask);
+      return;
+    }
 
-         MSG_task_destroy(task);
+    MSG_task_destroy(task);
 }
 
 static void msg_task_cancel_on_failed_dsend(void*t) {
index 6509dc0..2a89b6e 100644 (file)
@@ -17,30 +17,30 @@ SG_BEGIN_DECL()
 /**
  * This function associated a native task to a java task instance.
  *
- * @param jtask                        The java task instance.
- * @param task                 The native task to bind.
- * @param env                  The environment of the current thread.
+ * @param jtask      The java task instance.
+ * @param task      The native task to bind.
+ * @param env      The environment of the current thread.
  *
- * @exception                  If the class Task is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Task is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 void jtask_bind(jobject jtask, msg_task_t task, JNIEnv * env);
 
 /**
  * This function returns a native task from a java task instance.
  *
- * @param jtask                        The java task object from which get the native task.
- * @param env                  The environment of the current thread.
+ * @param jtask      The java task object from which get the native task.
+ * @param env      The environment of the current thread.
  *
- * @return                             The function returns the native task associated to the
- *                                             java task object.
+ * @return        The function returns the native task associated to the
+ *            java task object.
  *
- * @exception                  If the class Task is not found the function throws 
- *                                             the ClassNotFoundException. If the field bind of 
- *                                             this class is not found the function throws the exception 
- *                                             NotSuchFieldException.  
+ * @exception      If the class Task is not found the function throws 
+ *            the ClassNotFoundException. If the field bind of 
+ *            this class is not found the function throws the exception 
+ *            NotSuchFieldException.  
  */
 msg_task_t jtask_to_native_task(jobject jtask, JNIEnv * env);
 
@@ -49,146 +49,146 @@ msg_task_t jtask_to_native_task(jobject jtask, JNIEnv * env);
  * A java task object is valid if it is bind to a native 
  * task.
  *
- * @param jtask                        The java task to test the validity.
- * @param env                  The environment of the current thread.
+ * @param jtask      The java task to test the validity.
+ * @param env      The environment of the current thread.
  *
- * @return                             If the java task is valid the function returns true.
- *                                             Otherwise the function returns false.
+ * @return        If the java task is valid the function returns true.
+ *            Otherwise the function returns false.
  */
 jboolean jtask_is_valid(jobject jtask, JNIEnv * env);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              nativeInit
- * Signature   ();
+ * Class    org_simgrid_msg_Task
+ * Method    nativeInit
+ * Signature  ();
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_nativeInit(JNIEnv *env, jclass cls);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              create
+ * Class    org_simgrid_msg_Task
+ * Method    create
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_create
-               (JNIEnv * env, jobject jtask, jstring jname, jdouble jcomputeDuration, jdouble jmessageSize);
+    (JNIEnv * env, jobject jtask, jstring jname, jdouble jcomputeDuration, jdouble jmessageSize);
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_nativeFinalize(JNIEnv * env, jobject jtask);
 /*
- * Class               org_simgrid_msg_Task
- * Method              parallelCreate
+ * Class    org_simgrid_msg_Task
+ * Method    parallelCreate
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_parallelCreate
-               (JNIEnv *, jobject,
+    (JNIEnv *, jobject,
      jstring, jobjectArray,
      jdoubleArray,
      jdoubleArray);
 /*
- * Class               org_simgrid_msg_Task
- * Method              destroy
- * Signature   (Lsimgrid/msg/Task;)V
+ * Class    org_simgrid_msg_Task
+ * Method    destroy
+ * Signature  (Lsimgrid/msg/Task;)V
  */
 /* JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_destroy */
 /*     (JNIEnv *, jobject); */
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              cancel
- * Signature   ()V
+ * Class    org_simgrid_msg_Task
+ * Method    cancel
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_cancel
     (JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              execute
- * Signature   ()V
+ * Class    org_simgrid_msg_Task
+ * Method    execute
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_execute
     (JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              setBound
- * Signature   ()V
+ * Class    org_simgrid_msg_Task
+ * Method    setBound
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_setBound
     (JNIEnv *, jobject, jdouble);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              getName
- * Signature   ()Ljava/lang/String;
+ * Class    org_simgrid_msg_Task
+ * Method    getName
+ * Signature  ()Ljava/lang/String;
  */
 JNIEXPORT jstring JNICALL Java_org_simgrid_msg_Task_getName
     (JNIEnv *, jobject);
 
 /*
- * Class               org_simgrid_msg_Task
- * Method              getSender
- * Signature   ()Lsimgrid/msg/Process;
+ * Class    org_simgrid_msg_Task
+ * Method    getSender
+ * Signature  ()Lsimgrid/msg/Process;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_getSender
     (JNIEnv *, jobject);
 /*
- * Class               org_simgrid_msg_Task
- * Method              getSource
- * Signature   ()Lsimgrid/msg/Host;
+ * Class    org_simgrid_msg_Task
+ * Method    getSource
+ * Signature  ()Lsimgrid/msg/Host;
  */
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_getSource
     (JNIEnv *, jobject);
 /*
- * Class               org_simgrid_msg_Task
- * Method              getFlopsAmount
- * Signature   ()D
+ * Class    org_simgrid_msg_Task
+ * Method    getFlopsAmount
+ * Signature  ()D
  */
 JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Task_getFlopsAmount
     (JNIEnv *, jobject);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              setName
- * Signature   (Ljava/lang/string;)V
+ * Class    org_simgrid_msg_Task
+ * Method    setName
+ * Signature  (Ljava/lang/string;)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setName(JNIEnv *env, jobject jtask, jobject jname);
 /*
- * Class               org_simgrid_msg_Task
- * Method              setPriority
- * Signature   (D)V
+ * Class    org_simgrid_msg_Task
+ * Method    setPriority
+ * Signature  (D)V
  */
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_setPriority
     (JNIEnv *, jobject, jdouble);
 /**
- * Class               org_simgrid_msg_Task
- * Method              setComputeDuration
- * Signature   (D)V
+ * Class    org_simgrid_msg_Task
+ * Method    setComputeDuration
+ * Signature  (D)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setFlopsAmount
-               (JNIEnv *env, jobject jtask, jdouble computationAmount);
-               
-               /**
- * Class               org_simgrid_msg_Task
- * Method              setDataSize
- * Signature   (D)V
+    (JNIEnv *env, jobject jtask, jdouble computationAmount);
+    
+    /**
+ * Class    org_simgrid_msg_Task
+ * Method    setDataSize
+ * Signature  (D)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_setBytesAmount
-               (JNIEnv *env, jobject jtask, jdouble dataSize);
-               
+    (JNIEnv *env, jobject jtask, jdouble dataSize);
+    
 /**
- * Class               org_simgrid_msg_Task
- * Method              send
+ * Class    org_simgrid_msg_Task
+ * Method    send
  */
 JNIEXPORT void JNICALL
     Java_org_simgrid_msg_Task_send
     (JNIEnv *, jobject, jstring, jdouble);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              sendBounded
+ * Class    org_simgrid_msg_Task
+ * Method    sendBounded
  */
 JNIEXPORT void JNICALL
     Java_org_simgrid_msg_Task_sendBounded
@@ -196,81 +196,81 @@ JNIEXPORT void JNICALL
 
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              receive
+ * Class    org_simgrid_msg_Task
+ * Method    receive
  */
 JNIEXPORT jobject JNICALL
     Java_org_simgrid_msg_Task_receive
     (JNIEnv *, jclass, jstring, jdouble, jobject);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              irecv
- * Signature   (Ljava/lang/String;)Lorg/simgrid/msg/Comm;
+ * Class     org_simgrid_msg_Task
+ * Method    irecv
+ * Signature  (Ljava/lang/String;)Lorg/simgrid/msg/Comm;
  */
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_irecv(JNIEnv * env, jclass cls, jstring jmailbox);
 /**
- * Class               org_simgrid_msg_Task
- * Method              receiveBounded
+ * Class     org_simgrid_msg_Task
+ * Method    receiveBounded
  */
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_receiveBounded(JNIEnv * env, jclass cls,
                                          jstring jalias, jdouble jtimeout,
                                          jobject jhost, jdouble rate);
 /**
- * Class               org_simgrid_msg_Task
- * Method              irecvBounded
+ * Class     org_simgrid_msg_Task
+ * Method    irecvBounded
  */
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_irecvBounded(JNIEnv * env, jclass cls,
                                        jstring jmailbox, jdouble rate);
 /**
- * Class               org_simgrid_msg_Task
- * Method              isend
- * Signature   (Lorg/simgrid/msg/Task;Ljava/lang/String;)Lorg/simgrid/msg/Comm;
+ * Class     org_simgrid_msg_Task
+ * Method    isend
+ * Signature  (Lorg/simgrid/msg/Task;Ljava/lang/String;)Lorg/simgrid/msg/Comm;
  */
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_isend(JNIEnv *env, jobject jtask, jstring jmailbox);
 /**
- * Class               org_simgrid_msg_Task
- * Method              isendBounded
+ * Class     org_simgrid_msg_Task
+ * Method    isendBounded
  */
 JNIEXPORT jobject JNICALL
 Java_org_simgrid_msg_Task_isendBounded(JNIEnv *env, jobject jtask, jstring jmailbox, jdouble maxrate);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              dsend
+ * Class     org_simgrid_msg_Task
+ * Method    dsend
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_dsend(JNIEnv * env, jobject jtask,
                                 jstring jalias);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              dsendBounded
+ * Class     org_simgrid_msg_Task
+ * Method    dsendBounded
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Task_dsendBounded(JNIEnv * env, jobject jtask,
                                 jstring jalias, jdouble maxrate);
 
 /**
- * Class               org_simgrid_msg_Task
- * Method              listen
+ * Class     org_simgrid_msg_Task
+ * Method    listen
  */
 JNIEXPORT jboolean JNICALL
 Java_org_simgrid_msg_Task_listen(JNIEnv *, jclass, jstring);
 /**
- * Class               org_simgrid_msg_Task
- * Method              listenFromHost
+ * Class     org_simgrid_msg_Task
+ * Method    listenFromHost
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_Task_listenFromHost(JNIEnv *, jclass, jstring,
                                               jobject);
 /**
- * Class               org_simgrid_msg_Task
- * Method              listenFrom
+ * Class     org_simgrid_msg_Task
+ * Method    listenFrom
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_Task_listenFrom(JNIEnv *, jclass, jstring);
index 2d2b382..81da0b2 100644 (file)
@@ -29,7 +29,7 @@ JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass cls) {
   jclass jprocess_class_VM = env->FindClass("org/simgrid/msg/VM");
   jvm_field_bind = jxbt_get_jfield(env, jprocess_class_VM, "bind", "J");
-  if (!jvm_field_bind  ) {
+  if (!jvm_field_bind  ) {
     jxbt_throw_native(env,bprintf("Can't find some fields in Java class. You should report this bug."));
   }
 }
@@ -79,14 +79,14 @@ Java_org_simgrid_msg_VM_isRestoring(JNIEnv * env, jobject jvm) {
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_setBound(JNIEnv *env, jobject jvm, jint load) { 
 
-       msg_vm_t vm = jvm_get_native(env,jvm);
-       double bound = MSG_get_host_speed(vm) * load / 100;
-       MSG_vm_set_bound(vm, bound); 
+  msg_vm_t vm = jvm_get_native(env,jvm);
+  double bound = MSG_get_host_speed(vm) * load / 100;
+  MSG_vm_set_bound(vm, bound); 
 }
 
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_create(JNIEnv *env, jobject jvm, jobject jhost, jstring jname,
-                              jint jncore, jint jramsize, jint jnetcap, jstring jdiskpath, jint jdisksize, jint jmig_netspeed, jint jdp_intensity) {
+                   jint jncore, jint jramsize, jint jnetcap, jstring jdiskpath, jint jdisksize, jint jmig_netspeed, jint jdp_intensity) {
 
   msg_host_t host = jhost_get_native(env, jhost);
 
@@ -100,7 +100,7 @@ Java_org_simgrid_msg_VM_create(JNIEnv *env, jobject jvm, jobject jhost, jstring
   // disk_path = xbt_strdup(disk_path);
 
   msg_vm_t vm = MSG_vm_create(host, name, (int) jncore, (int) jramsize,
-                 (int) jnetcap, NULL, (int) jdisksize, (int) jmig_netspeed, (int) jdp_intensity);
+      (int) jnetcap, NULL, (int) jdisksize, (int) jmig_netspeed, (int) jdp_intensity);
 
   jvm_bind(env,jvm,vm);
 }
index 6168766..1ed5e3b 100644 (file)
@@ -18,73 +18,73 @@ void jvm_bind(JNIEnv *env, jobject jvm, msg_vm_t vm);
 msg_vm_t jvm_get_native(JNIEnv *env, jobject jvm);
 
 /*
- * Class                       org_simgrid_msg_VM
- * Method                      nativeInit
- * Signature   ()V
+ * Class      org_simgrid_msg_VM
+ * Method      nativeInit
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass);
 
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isCreated
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isCreated
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isCreated(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isRunning
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isRunning
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isRunning(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isMigrating
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isMigrating
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isMigrating(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isSuspended
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isSuspended
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isSuspended(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isResuming
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isResuming
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isResuming(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isSuspended
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isSuspended
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isSaving(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isSave
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isSave
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isSaved(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      isResuming
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      isResuming
+ * Signature  ()B
  */
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_VM_isRestoring(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      setBound
- * Signature   ()B
+ * Class      org_simgrid_msg_VM
+ * Method      setBound
+ * Signature  ()B
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_setBound(JNIEnv *env, jobject jvm, jint load); 
@@ -96,7 +96,7 @@ Java_org_simgrid_msg_VM_setBound(JNIEnv *env, jobject jvm, jint load);
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_create(JNIEnv *env, jobject jvm, jobject jhost, jstring jname,
-                              jint jncore, jint jramsize, jint jnetcap, jstring jdiskpath, jint jdisksize, jint dprate, jint mig_netspeed);
+                   jint jncore, jint jramsize, jint jnetcap, jstring jdiskpath, jint jdisksize, jint dprate, jint mig_netspeed);
 
 /**
  * Class            org_simgrid_msg_VM
@@ -106,37 +106,37 @@ Java_org_simgrid_msg_VM_create(JNIEnv *env, jobject jvm, jobject jhost, jstring
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_nativeFinalize(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      start
- * Signature   (I)V
+ * Class      org_simgrid_msg_VM
+ * Method      start
+ * Signature  (I)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      nativeMigrate
- * Signature   (Lorg/simgrid/msg/Host;)V
+ * Class      org_simgrid_msg_VM
+ * Method      nativeMigrate
+ * Signature  (Lorg/simgrid/msg/Host;)V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_internalmig(JNIEnv *env, jobject jvm, jobject jhost);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      suspend
- * Signature   ()V
+ * Class      org_simgrid_msg_VM
+ * Method      suspend
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_suspend(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      resume
- * Signature   ()V
+ * Class      org_simgrid_msg_VM
+ * Method      resume
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_resume(JNIEnv *env, jobject jvm);
 /**
- * Class                       org_simgrid_msg_VM
- * Method                      shutdown
- * Signature   ()V
+ * Class      org_simgrid_msg_VM
+ * Method      shutdown
+ * Signature  ()V
  */
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_VM_shutdown(JNIEnv *env, jobject jvm);
index 35248f8..40b68dc 100644 (file)
@@ -22,8 +22,6 @@ public class As {
 
        public native String getProperty(String name);
 
-       public native String getModel();
-
        public native Host[] getHosts();
 
        /**
diff --git a/src/bindings/lua/factories/host.lua b/src/bindings/lua/factories/host.lua
deleted file mode 100644 (file)
index 17c21b1..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-hostFactory = function(host_args)
-    if type(host_args.power) ~= "number" then
-        error("OOPS")
-    end
-    return function(more_args)
-    end
-end
-
similarity index 98%
rename from src/bindings/lua/lua_debug.c
rename to src/bindings/lua/lua_debug.cpp
index 4dbe8c0..ef795da 100644 (file)
  *
  */
  /* SimGrid Lua debug functions                                             */
+extern "C" {
 #include <lauxlib.h>
+}
 #include "lua_utils.h"
 #include "xbt.h"
-#include "xbt/log.h"
-
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua_debug, bindings, "Lua helper functions");
 
@@ -221,7 +221,7 @@ int sglua_memory_writer(lua_State* L, const void* source, size_t size,
   sglua_buffer_t buffer = (sglua_buffer_t) userdata;
   while (buffer->capacity < buffer->size + size) {
     buffer->capacity *= 2;
-    buffer->data = xbt_realloc(buffer->data, buffer->capacity);
+    buffer->data = (char*)xbt_realloc(buffer->data, buffer->capacity);
   }
   memcpy(buffer->data + buffer->size, source, size);
   buffer->size += size;
similarity index 99%
rename from src/bindings/lua/lua_host.c
rename to src/bindings/lua/lua_host.cpp
index 804b672..cf6e1ab 100644 (file)
@@ -7,8 +7,10 @@
 /* SimGrid Lua bindings                                                     */
 
 #include "lua_private.h"
-#include <lauxlib.h>
 #include <simgrid/host.h>
+extern "C" {
+#include <lauxlib.h>
+}
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua_host, bindings, "Lua bindings (host module)");
 
similarity index 91%
rename from src/bindings/lua/lua_platf.c
rename to src/bindings/lua/lua_platf.cpp
index 4f7507b..0cf495a 100644 (file)
@@ -7,12 +7,14 @@
 /* SimGrid Lua bindings                                                     */
 
 #include "lua_private.h"
-#include "simgrid/platf_interface.h"
-#include "surf/surfxml_parse.h"
+#include "src/surf/xml/platf.hpp"
 #include "surf/surf_routing.h"
 #include <string.h>
 #include <ctype.h>
+
+extern "C" {
 #include <lauxlib.h>
+}
 
 #include <simgrid/host.h>
 #include "src/surf/surf_private.h"
@@ -82,7 +84,7 @@ int console_add_backbone(lua_State *L) {
   if (type != LUA_TSTRING && type != LUA_TNUMBER) {
     XBT_ERROR("Attribute 'bandwidth' must be specified for backbone and must either be a string (in the right format; see docs) or a number.");
   }
-  link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1));
+  link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1),"bandwidth of backbone",link.id);
   lua_pop(L, 1);
 
   lua_pushstring(L, "lat");
@@ -90,7 +92,7 @@ int console_add_backbone(lua_State *L) {
   if (type != LUA_TSTRING && type != LUA_TNUMBER) {
     XBT_ERROR("Attribute 'lat' must be specified for backbone and must either be a string (in the right format; see docs) or a number.");
   }
-  link.latency = surf_parse_get_time(lua_tostring(L, -1));
+  link.latency = surf_parse_get_time(lua_tostring(L, -1),"latency of backbone",link.id);
   lua_pop(L, 1);
 
   link.initiallyOn = 1;
@@ -149,7 +151,7 @@ int console_add_host___link(lua_State *L) {
   lua_pop(L, 1);
 
   XBT_DEBUG("Create a host_link for host %s", netcard.id);
-  sg_platf_new_netcard(&netcard);
+  sg_platf_new_hostlink(&netcard);
 
   return 0;
 }
@@ -169,7 +171,7 @@ int console_add_host(lua_State *L) {
   // get Id Value
   lua_pushstring(L, "id");
   type = lua_gettable(L, -2);
-  if (type != LUA_TSTRING && type != LUA_TNUMBER) {
+  if (type != LUA_TSTRING) {
     XBT_ERROR("Attribute 'id' must be specified for any host and must be a string.");
   }
   host.id = lua_tostring(L, -1);
@@ -182,7 +184,10 @@ int console_add_host(lua_State *L) {
     XBT_ERROR("Attribute 'speed' must be specified for host and must either be a string (in the correct format; check documentation) or a number.");
   }
   host.speed_peak = xbt_dynar_new(sizeof(double), NULL);
-  xbt_dynar_push_as(host.speed_peak, double, parse_cpu_speed(lua_tostring(L, -1)));
+  if (type == LUA_TNUMBER)
+    xbt_dynar_push_as(host.speed_peak, double, lua_tointeger(L, -1));
+  else // LUA_TSTRING
+    xbt_dynar_push_as(host.speed_peak, double, surf_parse_get_speed(lua_tostring(L, -1), "speed of host", host.id));
   lua_pop(L, 1);
 
   // get core
@@ -260,7 +265,10 @@ int  console_add_link(lua_State *L) {
   if (type != LUA_TSTRING && type != LUA_TNUMBER) {
     XBT_ERROR("Attribute 'bandwidth' must be specified for any link and must either be either a string (in the right format; see docs) or a number.");
   }
-  link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1));
+  if (type == LUA_TNUMBER)
+    link.bandwidth = lua_tonumber(L, -1);
+  else // LUA_TSTRING
+    link.bandwidth = surf_parse_get_bandwidth(lua_tostring(L, -1),"bandwidth of link", link.id);
   lua_pop(L, 1);
 
   //get latency value
@@ -269,7 +277,10 @@ int  console_add_link(lua_State *L) {
   if (type != LUA_TSTRING && type != LUA_TNUMBER) {
     XBT_ERROR("Attribute 'lat' must be specified for any link and must either be a string (in the right format; see docs) or a number.");
   }
-  link.latency = surf_parse_get_time(lua_tostring(L, -1));
+  if (type == LUA_TNUMBER)
+    link.latency = lua_tonumber(L, -1);
+  else // LUA_TSTRING
+    link.latency = surf_parse_get_time(lua_tostring(L, -1),"latency of link", link.id);
   lua_pop(L, 1);
 
   /*Optional Arguments  */
@@ -349,8 +360,6 @@ int console_add_router(lua_State* L) {
   return 0;
 }
 
-#include "surf/surfxml_parse.h" /* to override surf_parse and bypass the parser */
-
 int console_add_route(lua_State *L) {
   XBT_DEBUG("Adding route");
   s_sg_platf_route_cbarg_t route;
@@ -361,7 +370,7 @@ int console_add_route(lua_State *L) {
   surfxml_bufferstack = xbt_new0(char, surfxml_bufferstack_size);
 
   if (! lua_istable(L, -1)) {
-    XBT_ERROR("Bad Arguments to create a route. Should be a table with named arguments");
+    XBT_ERROR("Bad Arguments to add a route. Should be a table with named arguments");
     return -1;
   }
 
@@ -436,21 +445,24 @@ int console_add_ASroute(lua_State *L) {
 
   lua_pushstring(L, "gw_src");
   lua_gettable(L, -2);
-  ASroute.gw_src = sg_netcard_by_name_or_null(lua_tostring(L, -1));
+  const char *name = lua_tostring(L, -1);
+  ASroute.gw_src = sg_netcard_by_name_or_null(name);
+  if (ASroute.gw_src == NULL) {
+    XBT_ERROR("Attribute 'gw_src' of AS route does not name a valid machine: %s", name);
+    return -1;
+  }
   lua_pop(L, 1);
 
   lua_pushstring(L, "gw_dst");
   lua_gettable(L, -2);
-  ASroute.gw_dst = sg_netcard_by_name_or_null(lua_tostring(L, -1));
+  name = lua_tostring(L, -1);
+  ASroute.gw_dst = sg_netcard_by_name_or_null(name);
+  if (ASroute.gw_dst == NULL) {
+    XBT_ERROR("Attribute 'gw_dst' of AS route does not name a valid machine: %s", name);
+    return -1;
+  }
   lua_pop(L, 1);
 
-  /*if (A_surfxml_ASroute_gw___src && !ASroute.gw_src)*/
-    /*surf_parse_error("gw_src=\"%s\" not found for ASroute from \"%s\" to \"%s\"",*/
-                     /*A_surfxml_ASroute_gw___src, ASroute.src, ASroute.dst);*/
-  /*if (A_surfxml_ASroute_gw___dst && !ASroute.gw_dst)*/
-    /*surf_parse_error("gw_dst=\"%s\" not found for ASroute from \"%s\" to \"%s\"",*/
-                     /*A_surfxml_ASroute_gw___dst, ASroute.src, ASroute.dst);*/
-
   lua_pushstring(L,"links");
   lua_gettable(L,-2);
   ASroute.link_list = xbt_str_split(lua_tostring(L, -1), ", \t\r\n");
@@ -462,9 +474,8 @@ int console_add_ASroute(lua_State *L) {
   lua_gettable(L,-2);
   if (lua_isstring(L, -1)) {
     const char* value = lua_tostring(L, -1);
-    if (strcmp("YES", value) == 0) {
+    if (strcmp("YES", value) == 0)
       ASroute.symmetrical = TRUE;
-    }
     else
       ASroute.symmetrical = FALSE;
   }
@@ -473,7 +484,7 @@ int console_add_ASroute(lua_State *L) {
   }
   lua_pop(L,1);
 
-  sg_platf_new_ASroute(&ASroute);
+  sg_platf_new_route(&ASroute);
 
   return 0;
 }
index e6b393e..63472f0 100644 (file)
@@ -6,8 +6,13 @@
 
 /* SimGrid Lua bindings                                                     */
 
-#include "simgrid_lua.h"
+#ifndef LUA_PRIVATE_H
+#define LUA_PRIVATE_H
+
 #include "simgrid/msg.h"
+#include "simgrid_lua.h"
+
+extern "C" {
 
 void sglua_register_host_functions(lua_State* L);
 msg_host_t sglua_check_host(lua_State* L, int index);
@@ -15,3 +20,7 @@ msg_host_t sglua_check_host(lua_State* L, int index);
 void sglua_register_platf_functions(lua_State* L);
 
 const char* sglua_get_msg_error(msg_error_t err);
+
+}
+
+#endif /* LUA_PRIVATE_H */
index 5f9f75f..2eea739 100644 (file)
@@ -9,6 +9,8 @@
 #ifndef LUA_UTILS_H
 #define LUA_UTILS_H
 
+extern "C" {
+
 #include <lua.h>
 
 /**
@@ -30,4 +32,6 @@ void* sglua_checkudata_debug(lua_State* L, int ud, const char* tname);
 const char* sglua_get_spaces(int length);
 int sglua_memory_writer(lua_State* L, const void* source, size_t size, void* userdata);
 
+}
+
 #endif  /* LUA_UTILS_H */
similarity index 97%
rename from src/bindings/lua/simgrid_lua.c
rename to src/bindings/lua/simgrid_lua.cpp
index e3ed161..ea77144 100644 (file)
@@ -8,17 +8,17 @@
 
 #include "lua_private.h"
 #include "lua_utils.h"
-#include "xbt.h"
-#include "simgrid/msg.h"
-#include "simgrid/simdag.h"
-#include "surf/surfxml_parse.h"
-#include <lauxlib.h>
+#include "src/surf/xml/platf.hpp"
 
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua, bindings, "Lua Bindings");
 
+extern "C" {
+#include <lauxlib.h>
+
 int luaopen_simgrid(lua_State *L);
 static void sglua_register_c_functions(lua_State *L);
+}
 
 /* ********************************************************************************* */
 /*                                  simgrid API                                      */
index dea4da4..d5162e6 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef SIMGRID_LUA_H
 #define SIMGRID_LUA_H
 
+extern "C" {
 #include <lua.h>
 
 /* ********************************************************************************* */
@@ -27,5 +28,5 @@ int console_AS_open(lua_State*);
 int console_AS_close(lua_State *L);
 int console_set_function(lua_State*);
 int console_host_set_property(lua_State*);
-
+}
 #endif  /* SIMGRID_LUA_H */
index 763b60d..0b45c09 100644 (file)
@@ -7,6 +7,8 @@
 #ifndef MC_DATATYPE_H
 #define MC_DATATYPE_H
 
+#include <ucontext.h>
+
 #include "xbt/misc.h"
 #include "xbt/swag.h"
 #include "xbt/fifo.h"
@@ -26,7 +28,7 @@ typedef struct s_mc_transition *mc_transition_t;
 
 typedef struct s_stack_region{
   void *address;
-  void *context;
+  ucontext_t* context;
   size_t size;
   int block;
   int process_index;
index f227bae..d3eadea 100644 (file)
@@ -7,6 +7,8 @@
 #ifndef _MC_MC_H
 #define _MC_MC_H
 
+#include <ucontext.h>
+
 #include "xbt/base.h"
 #include "xbt/misc.h"
 #include "xbt/fifo.h"
@@ -36,7 +38,7 @@
 
 SG_BEGIN_DECL()
 
-/********************************** Configuration of MC **************************************/        
+/********************************** Configuration of MC **************************************/  
 
 extern XBT_PUBLIC(int) _sg_do_model_check;
 extern XBT_PRIVATE int _sg_do_model_check_record;
@@ -87,7 +89,7 @@ XBT_PUBLIC(void) MC_ignore_heap(void *address, size_t size);
 XBT_PUBLIC(void) MC_remove_ignore_heap(void *address, size_t size);
 XBT_PUBLIC(void) MC_ignore_local_variable(const char *var_name, const char *frame);
 XBT_PUBLIC(void) MC_ignore_global_variable(const char *var_name);
-XBT_PUBLIC(void) MC_register_stack_area(void *stack, smx_process_t process, void *context, size_t size);
+XBT_PUBLIC(void) MC_register_stack_area(void *stack, smx_process_t process, ucontext_t* context, size_t size);
 
 /********************************* Memory *************************************/
 XBT_PUBLIC(void) MC_memory_init(void);  /* Initialize the memory subsystem */
diff --git a/src/include/simgrid/platf_interface.h b/src/include/simgrid/platf_interface.h
deleted file mode 100644 (file)
index 00a5fd6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* platf_interface.h - Internal interface to the SimGrid platforms          */
-
-/* Copyright (c) 2004-2007, 2009-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SG_PLATF_INTERFACE_H
-#define SG_PLATF_INTERFACE_H
-
-#include <xbt/dict.h>
-
-#include "simgrid/platf.h" /* public interface */
-#include "xbt/RngStream.h"
-
-#include <simgrid/forward.h>
-
-SG_BEGIN_DECL()
-
-/* Module management functions */
-XBT_PUBLIC(void) sg_platf_init(void);
-XBT_PUBLIC(void) sg_platf_exit(void);
-
-/** \brief Pick the right models for CPU, net and host, and call their model_init_preparse
- *
- * Must be called within parsing/creating the environment (after the <config>s, if any, and before <AS> or friends such as <cluster>)
- */
-XBT_PUBLIC(void) surf_config_models_setup(void);
-
-/* RngStream management functions */
-XBT_PUBLIC(void) sg_platf_rng_stream_init(unsigned long seed[6]);
-XBT_PUBLIC(RngStream) sg_platf_rng_stream_get(const char* id);
-
-SG_END_DECL()
-
-#endif                          /* SG_PLATF_INTERFACE_H */
index 7b37c8e..d139ada 100644 (file)
@@ -8,7 +8,7 @@
 #define _SMPI_INTERFACE_H
 #include "smpi/smpi.h"
 
-
+SG_BEGIN_DECL()
 
 /** \brief MPI collective description
  */
@@ -123,4 +123,6 @@ extern XBT_PRIVATE double smpi_wtime_sleep;
 extern XBT_PRIVATE double smpi_iprobe_sleep;
 extern XBT_PRIVATE double smpi_test_sleep;
 
+SG_END_DECL()
+
 #endif                          /* _SMPI_INTERFAC_H */
index 6fbb863..b7a0a72 100644 (file)
@@ -235,7 +235,7 @@ XBT_PUBLIC(void) lmm_constraint_concurrency_maximum_reset(lmm_constraint_t cnst)
  */
 XBT_PUBLIC(int) lmm_constraint_concurrency_maximum_get(lmm_constraint_t cnst);
 
-                            
+           
 /**
  * @brief Create a new Linear MaxMin variable
  * 
diff --git a/src/include/surf/random_mgr.h b/src/include/surf/random_mgr.h
deleted file mode 100644 (file)
index 19b4a15..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (c) 2007-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef _SURF_RMGR_H
-#define _SURF_RMGR_H
-
-#include "xbt/heap.h"
-#include "xbt/dict.h"
-
-SG_BEGIN_DECL()
-
-typedef enum { NONE, DRAND48, RAND, RNGSTREAM } e_random_generator_t;
-
-typedef struct random_data_desc {
-  long int seed;
-  double max, min;
-  double mean, std;             /* note: mean and standard deviation are normalized */
-  e_random_generator_t generator;
-} s_random_data_t, *random_data_t;
-
-XBT_PUBLIC_DATA(xbt_dict_t) random_data_list;
-
-XBT_PUBLIC(double) random_generate(random_data_t random);
-XBT_PUBLIC(random_data_t) random_new(e_random_generator_t generator,
-                                     long int seed,
-                                     double min, double max, double mean,
-                                     double stdDeviation);
-
-SG_END_DECL()
-#endif                          /* _SURF_RMGR_H */
index 52a2e56..92434bc 100644 (file)
@@ -18,7 +18,6 @@
 #include "surf/datatypes.h"
 #include "xbt/lib.h"
 #include "surf/surf_routing.h"
-#include "simgrid/platf_interface.h"
 #include "simgrid/datatypes.h"
 #include "simgrid/forward.h"
 
@@ -35,8 +34,7 @@ extern XBT_PRIVATE int sg_network_crosstraffic;
 extern XBT_PRIVATE xbt_dynar_t surf_path;
 
 typedef enum {
-  SURF_NETWORK_ELEMENT_NULL = 0, /* NULL */
-  SURF_NETWORK_ELEMENT_HOST,     /* host type */
+  SURF_NETWORK_ELEMENT_HOST=1,     /* host type */
   SURF_NETWORK_ELEMENT_ROUTER,   /* router type */
   SURF_NETWORK_ELEMENT_AS        /* AS type */
 } e_surf_network_element_type_t;
@@ -133,22 +131,6 @@ typedef surf_RoutingPlatf *routing_platf_t;
 
 typedef struct surf_file *surf_file_t;
 
-XBT_PUBLIC(e_surf_network_element_type_t)
-  routing_get_network_element_type(const char* name);
-
-/** @Brief Specify that we use that action */
-XBT_PUBLIC(void) surf_action_ref(surf_action_t action);
-
-/** @brief Creates a new action.
- *
- * @param size The size is the one of the subtype you want to create
- * @param cost initial value
- * @param model to which model we should attach this action
- * @param failed whether we should start this action in failed mode
- */
-XBT_PUBLIC(void *) surf_action_new(size_t size, double cost,
-                                   surf_model_t model, int failed);
-
 /** \brief Resource model description
  */
 typedef struct surf_model_description {
@@ -157,10 +139,8 @@ typedef struct surf_model_description {
   void_f_void_t model_init_preparse;
 } s_surf_model_description_t, *surf_model_description_t;
 
-XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table,
-                                       const char *name);
-XBT_PUBLIC(void) model_help(const char *category,
-                            s_surf_model_description_t * table);
+XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table, const char *name);
+XBT_PUBLIC(void) model_help(const char *category, s_surf_model_description_t * table);
 
 /** @ingroup SURF_interface
  *  @brief Action states
@@ -231,10 +211,6 @@ XBT_PUBLIC(surf_action_t) surf_model_extract_failed_action_set(surf_model_t mode
  */
 XBT_PUBLIC(int) surf_model_running_action_set_size(surf_model_t model);
 
-/** @brief Get the route (dynar of sg_link_t) between two hosts */
-XBT_PUBLIC(xbt_dynar_t) surf_host_model_get_route(
-  surf_host_model_t model, sg_host_t src, sg_host_t dst);
-
 /** @brief Create a new VM on the specified host */
 XBT_PUBLIC(void) surf_vm_model_create(const char *name, sg_host_t host_PM);
 
@@ -256,9 +232,6 @@ XBT_PUBLIC(surf_action_t) surf_network_model_communicate(surf_network_model_t mo
  * @return The name of the surf resource
  */
 XBT_PUBLIC(const char * ) surf_resource_name(surf_cpp_resource_t resource);
-static inline const char * surf_cpu_name(surf_cpu_t cpu) {
-       return surf_resource_name((surf_cpp_resource_t)cpu);
-}
 
 /** @brief Get the available speed of cpu associated to a host */
 XBT_PUBLIC(double) surf_host_get_available_speed(sg_host_t host);
@@ -311,19 +284,6 @@ XBT_PUBLIC(sg_size_t) surf_host_get_free_size(sg_host_t resource, const char* na
  */
 XBT_PUBLIC(sg_size_t) surf_host_get_used_size(sg_host_t resource, const char* name);
 
-/** @brief Get the list of VMs hosted on the host */
-XBT_PUBLIC(xbt_dynar_t) surf_host_get_vms(sg_host_t resource);
-
-/** @brief Retrieve the params of that VM
- * @details You can use fields ramsize and overcommit on a PM, too.
- */
-XBT_PUBLIC(void) surf_host_get_params(sg_host_t resource, vm_params_t params);
-
-/** @brief Sets the params of that VM/PM
- * @details You can use fields ramsize and overcommit on a PM, too.
- */
-XBT_PUBLIC(void) surf_host_set_params(sg_host_t resource, vm_params_t params);
-
 /**
  * @brief Destroy a VM
  *
@@ -386,14 +346,6 @@ XBT_PUBLIC(void) surf_vm_set_bound(sg_host_t resource, double bound);
  */
 XBT_PUBLIC(void) surf_vm_set_affinity(sg_host_t resource, sg_host_t cpu, unsigned long mask);
 
-/**
- * @brief Get the list of storages attached to an host
- *
- * @param host The surf host
- * @return Dictionary of storage
- */
-XBT_PUBLIC(xbt_dynar_t) surf_host_get_attached_storage_list(sg_host_t host);
-
 /**
  * @brief Unlink a file descriptor
  *
@@ -487,82 +439,6 @@ XBT_PUBLIC(sg_size_t) surf_storage_get_used_size(surf_resource_t resource);
 /** @brief return the properties set associated to that storage */
 XBT_PUBLIC(xbt_dict_t) surf_storage_get_properties(surf_resource_t resource);
 
-/**
- * @brief Get the data associated to the action
- *
- * @param action The surf action
- * @return The data associated to the action
- */
-XBT_PUBLIC(void*) surf_action_get_data(surf_action_t action);
-
-/**
- * @brief Set the data associated to the action
- * @details [long description]
- *
- * @param action The surf action
- * @param data The new data associated to the action
- */
-XBT_PUBLIC(void) surf_action_set_data(surf_action_t action, void *data);
-
-/**
- * @brief Get the start time of an action
- *
- * @param action The surf action
- * @return The start time in seconds from the beginning of the simulation
- */
-XBT_PUBLIC(double) surf_action_get_start_time(surf_action_t action);
-
-/**
- * @brief Get the finish time of an action
- *
- * @param action The surf action
- * @return The finish time in seconds from the beginning of the simulation
- */
-XBT_PUBLIC(double) surf_action_get_finish_time(surf_action_t action);
-
-/**
- * @brief Get the remains amount of work to do of an action
- *
- * @param action The surf action
- * @return  The remains amount of work to do
- */
-XBT_PUBLIC(double) surf_action_get_remains(surf_action_t action);
-
-/**
- * @brief Set the category of an action
- * @details [long description]
- *
- * @param action The surf action
- * @param category The new category of the action
- */
-XBT_PUBLIC(void) surf_action_set_category(surf_action_t action, const char *category);
-
-/**
- * @brief Get the state of an action
- *
- * @param action The surf action
- * @return The state of the action
- */
-XBT_PUBLIC(e_surf_action_state_t) surf_action_get_state(surf_action_t action);
-
-/**
- * @brief Get the cost of an action
- *
- * @param action The surf action
- * @return The cost of the action
- */
-XBT_PUBLIC(double) surf_action_get_cost(surf_action_t action);
-
-/**
- * @brief [brief desrciption]
- * @details [long description]
- *
- * @param action The surf cpu action
- * @param cpu [description]
- * @param mask [description]
- */
-XBT_PUBLIC(void) surf_cpu_action_set_affinity(surf_action_t action, sg_host_t cpu, unsigned long mask);
-
 /**
  * @brief [brief description]
  * @details [long description]
@@ -904,11 +780,8 @@ XBT_PUBLIC_DATA(AS_t) surf_AS_get_routing_root(void);
 XBT_PUBLIC_DATA(const char *) surf_AS_get_name(AS_t as);
 XBT_PUBLIC_DATA(AS_t) surf_AS_get_by_name(const char * name);
 XBT_PUBLIC_DATA(xbt_dict_t) surf_AS_get_routing_sons(AS_t as);
-XBT_PUBLIC_DATA(const char *) surf_AS_get_model(AS_t as);
 XBT_PUBLIC_DATA(xbt_dynar_t) surf_AS_get_hosts(AS_t as);
 XBT_PUBLIC_DATA(void) surf_AS_get_graph(AS_t as, xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges);
-XBT_PUBLIC_DATA(AS_t) surf_platf_get_root(routing_platf_t platf);
-XBT_PUBLIC_DATA(e_surf_network_element_type_t) surf_routing_edge_get_rc_type(sg_netcard_t edge);
 
 /*******************************************/
 /*** SURF Globals **************************/
@@ -975,12 +848,6 @@ XBT_PUBLIC(void) parse_platform_file(const char *file);
 
 /* For the trace and trace:connect tag (store their content till the end of the parsing) */
 XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_speed;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_avail;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_bw;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_lat;
-
-XBT_PUBLIC(double) parse_cpu_speed(const char *str_speed);
 
 XBT_PUBLIC(xbt_dict_t) get_as_router_properties(const char* name);
 
@@ -1008,12 +875,6 @@ int instr_platform_traced (void);
 xbt_graph_t instr_routing_platform_graph (void);
 void instr_routing_platform_graph_export_graphviz (xbt_graph_t g, const char *filename);
 
-/********** Routing **********/
-void routing_AS_begin(sg_platf_AS_cbarg_t AS);
-void routing_AS_end(void);
-surf_NetCard* routing_add_host(surf_As* as, sg_platf_host_cbarg_t host);
-void routing_cluster_add_backbone(void* bb);
-surf_As* routing_get_current();
 
 SG_END_DECL()
 #endif                          /* _SURF_SURF_H */
index 82033ac..47b9554 100644 (file)
 XBT_LOG_NEW_CATEGORY(instr, "Logging the behavior of the tracing system (used for Visualization/Analysis of simulations)");
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_config, instr, "Configuration");
 
-#define OPT_TRACING               "tracing"
-#define OPT_TRACING_PLATFORM      "tracing/platform"
-#define OPT_TRACING_TOPOLOGY      "tracing/platform/topology"
-#define OPT_TRACING_SMPI          "tracing/smpi"
-#define OPT_TRACING_SMPI_GROUP    "tracing/smpi/group"
-#define OPT_TRACING_SMPI_COMPUTING "tracing/smpi/computing"
-#define OPT_TRACING_SMPI_SLEEPING "tracing/smpi/sleeping"
-#define OPT_TRACING_SMPI_INTERNALS "tracing/smpi/internals"
-#define OPT_TRACING_DISPLAY_SIZES  "tracing/smpi/display_sizes"
-#define OPT_TRACING_FORMAT        "tracing/smpi/format"
-#define OPT_TRACING_FORMAT_TI_ONEFILE "tracing/smpi/format/ti_one_file"
-#define OPT_TRACING_CATEGORIZED   "tracing/categorized"
-#define OPT_TRACING_UNCATEGORIZED "tracing/uncategorized"
-#define OPT_TRACING_MSG_PROCESS   "tracing/msg/process"
-#define OPT_TRACING_MSG_VM        "tracing/msg/vm"
-#define OPT_TRACING_FILENAME      "tracing/filename"
-#define OPT_TRACING_BUFFER        "tracing/buffer"
-#define OPT_TRACING_ONELINK_ONLY  "tracing/onelink_only"
-#define OPT_TRACING_DISABLE_DESTROY "tracing/disable_destroy"
-#define OPT_TRACING_BASIC         "tracing/basic"
-#define OPT_TRACING_COMMENT       "tracing/comment"
-#define OPT_TRACING_COMMENT_FILE  "tracing/comment_file"
-#define OPT_VIVA_UNCAT_CONF      "viva/uncategorized"
-#define OPT_VIVA_CAT_CONF        "viva/categorized"
-#define OPT_TRACING_DISABLE_LINK        "tracing/disable_link"
-#define OPT_TRACING_DISABLE_POWER       "tracing/disable_power"
-#define OPT_TRACING_PRECISION     "tracing/precision"
+#define OPT_TRACING_BASIC                "tracing/basic"
+#define OPT_TRACING_BUFFER               "tracing/buffer"
+#define OPT_TRACING_CATEGORIZED          "tracing/categorized"
+#define OPT_TRACING_COMMENT_FILE         "tracing/comment_file"
+#define OPT_TRACING_COMMENT              "tracing/comment"
+#define OPT_TRACING_DISABLE_DESTROY      "tracing/disable_destroy"
+#define OPT_TRACING_DISABLE_LINK         "tracing/disable_link"
+#define OPT_TRACING_DISABLE_POWER        "tracing/disable_power"
+#define OPT_TRACING_DISPLAY_SIZES        "tracing/smpi/display_sizes"
+#define OPT_TRACING_FILENAME             "tracing/filename"
+#define OPT_TRACING_FORMAT_TI_ONEFILE    "tracing/smpi/format/ti_one_file"
+#define OPT_TRACING_FORMAT               "tracing/smpi/format"
+#define OPT_TRACING_MSG_PROCESS          "tracing/msg/process"
+#define OPT_TRACING_MSG_VM               "tracing/msg/vm"
+#define OPT_TRACING_ONELINK_ONLY         "tracing/onelink_only"
+#define OPT_TRACING_PLATFORM             "tracing/platform"
+#define OPT_TRACING_PRECISION            "tracing/precision"
+#define OPT_TRACING_SMPI_COMPUTING       "tracing/smpi/computing"
+#define OPT_TRACING_SMPI_GROUP           "tracing/smpi/group"
+#define OPT_TRACING_SMPI_INTERNALS       "tracing/smpi/internals"
+#define OPT_TRACING_SMPI_SLEEPING        "tracing/smpi/sleeping"
+#define OPT_TRACING_SMPI                 "tracing/smpi"
+#define OPT_TRACING_TOPOLOGY             "tracing/platform/topology"
+#define OPT_TRACING                      "tracing"
+#define OPT_TRACING_UNCATEGORIZED        "tracing/uncategorized"
+#define OPT_VIVA_CAT_CONF                "viva/categorized"
+#define OPT_VIVA_UNCAT_CONF              "viva/uncategorized"
 
 static int trace_enabled = 0;
 static int trace_platform;
@@ -142,7 +142,7 @@ int TRACE_start()
 
     if (TRACE_start_functions != NULL) {
       void (*func) ();
-      unsigned int iter = xbt_dynar_length(TRACE_start_functions);
+      unsigned int iter;
       xbt_dynar_foreach(TRACE_start_functions, iter, func) {
         func();
       }
@@ -367,166 +367,166 @@ void TRACE_global_init(int *argc, char **argv)
   /* name of the tracefile */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FILENAME,
                    "Trace file created by the instrumented SimGrid.",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_FILENAME, "simgrid.trace");
 
   /* tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING,
                    "Enable Tracing.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING, "no");
 
   /* register platform in the trace */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_PLATFORM,
                    "Register the platform in the trace as a hierarchy.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_PLATFORM, "no");
 
   /* register platform in the trace */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_TOPOLOGY,
                    "Register the platform topology in the trace as a graph.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_TOPOLOGY, "yes");
 
   /* smpi */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI,
                    "Tracing of the SMPI interface.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI, "no");
 
   /* smpi grouped */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_GROUP,
                    "Group MPI processes by host.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_GROUP, "no");
 
   /* smpi computing */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING,
                    "Generate states for timing out of SMPI parts of the application",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING, "no");
 
 /* smpi sleeping */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_SLEEPING,
                    "Generate states for timing out of SMPI parts of the application",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_SLEEPING, "no");
 
 
   /* smpi internals */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS,
                    "View internal messages sent by Collective communications in SMPI",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS, "no");
 
   /* tracing categorized resource utilization traces */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_CATEGORIZED,
                    "Tracing categorized resource utilization of hosts and links.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_CATEGORIZED, "no");
 
   /* tracing uncategorized resource utilization */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_UNCATEGORIZED,
                    "Tracing uncategorized resource utilization of hosts and links.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED, "no");
 
   /* msg process */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_PROCESS,
                    "Tracing of MSG process behavior.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_PROCESS, "no");
 
   /* msg process */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_VM,
                    "Tracing of MSG process behavior.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_VM, "no");
 
   /* disable tracing link */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_LINK,
                    "Do not trace link bandwidth and latency.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_LINK, "no");
 
   /* disable tracing link */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_POWER,
                    "Do not trace host power.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_POWER, "no");
 
 
   /* tracing buffer */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BUFFER,
                    "Buffer trace events to put them in temporal order.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BUFFER, "yes");
 
   /* tracing one link only */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_ONELINK_ONLY,
                    "Use only routes with one link to trace platform.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY, "no");
 
   /* disable destroy */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY,
                    "Disable platform containers destruction.",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY, "no");
 
   /* basic -- Avoid extended events (impoverished trace file) */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BASIC,
                    "Avoid extended events (impoverished trace file).",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BASIC, "no");
 
   /* display_sizes -- Extended events with message size information */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES,
                    "(smpi only for now) Extended events with message size information",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES, "no");
 
   /* format -- Switch the ouput format of Tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FORMAT,
                    "(smpi only for now) Switch the output format of Tracing",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_FORMAT, "Paje");
 
 
   /* format -- Switch the ouput format of Tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FORMAT_TI_ONEFILE,
                    "(smpi only for now) For replay format only : output to one file only",
-                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                   xbt_cfgelm_boolean, 1, 1, NULL);
   xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_FORMAT_TI_ONEFILE, "no");
 
   /* comment */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_COMMENT,
                    "Comment to be added on the top of the trace file.",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_COMMENT, "");
 
   /* comment_file */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_COMMENT_FILE,
                    "The contents of the file are added to the top of the trace file as comment.",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_COMMENT_FILE, "");
 
   /* trace timestamp precision */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_PRECISION,
                    "Numerical precision used when timestamping events (hence this value is expressed in number of digits after decimal point)",
-                   xbt_cfgelm_int, 1, 1, NULL, NULL);
+                   xbt_cfgelm_int, 1, 1, NULL);
   xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_PRECISION, 6);
 
   /* Viva graph configuration for uncategorized tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_VIVA_UNCAT_CONF,
                    "Viva Graph configuration file for uncategorized resource utilization traces.",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_VIVA_UNCAT_CONF, "");
 
   /* Viva graph configuration for uncategorized tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_VIVA_CAT_CONF,
                    "Viva Graph configuration file for categorized resource utilization traces.",
-                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+                   xbt_cfgelm_string, 1, 1, NULL);
   xbt_cfg_setdefault_string(_sg_cfg_set, OPT_VIVA_CAT_CONF, "");
 
   /* instrumentation can be considered configured now */
index f9606bd..cab67f4 100644 (file)
@@ -60,19 +60,19 @@ container_t PJ_container_new (const char *name, e_container_types kind, containe
   //Search for network_element_t
   switch (kind){
     case INSTR_HOST:
-      newContainer->net_elm = sg_host->pimpl_netcard;
-      if(!newContainer->net_elm) xbt_die("Element '%s' not found",name);
+      newContainer->netcard = sg_host->pimpl_netcard;
+      if(!newContainer->netcard) xbt_die("Element '%s' not found",name);
       break;
     case INSTR_ROUTER:
-      newContainer->net_elm = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,name,ROUTING_ASR_LEVEL);
-      if(!newContainer->net_elm) xbt_die("Element '%s' not found",name);
+      newContainer->netcard = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,name,ROUTING_ASR_LEVEL);
+      if(!newContainer->netcard) xbt_die("Element '%s' not found",name);
       break;
     case INSTR_AS:
-      newContainer->net_elm = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,name,ROUTING_ASR_LEVEL);
-      if(!newContainer->net_elm) xbt_die("Element '%s' not found",name);
+      newContainer->netcard = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,name,ROUTING_ASR_LEVEL);
+      if(!newContainer->netcard) xbt_die("Element '%s' not found",name);
       break;
     default:
-      newContainer->net_elm = NULL;
+      newContainer->netcard = NULL;
       break;
   }
 
index 47e937a..c9aeb64 100644 (file)
@@ -26,7 +26,6 @@ SG_BEGIN_DECL()
 
 #include "xbt/graph.h"
 #include "xbt/dict.h"
-#include "simgrid/platf.h"
 
 typedef enum {
   PAJE_DefineContainerType,
@@ -89,7 +88,7 @@ typedef enum {
 
 typedef struct s_container *container_t;
 typedef struct s_container {
-  sg_netcard_t net_elm;
+  sg_netcard_t netcard;
   char *name;     /* Unique name of this container */
   char *id;       /* Unique id of this container */
   type_t type;    /* Type of this container */
index 235321f..33d13c0 100644 (file)
@@ -94,7 +94,8 @@ void TRACE_surf_host_set_utilization(const char *resource,
                                      double delta)
 {
   //only trace host utilization if host is known by tracing mechanism
-  if (!PJ_container_get_or_null(resource))
+  container_t container = PJ_container_get_or_null(resource);
+  if (!container)
     return;
   if (!value)
     return;
@@ -102,7 +103,6 @@ void TRACE_surf_host_set_utilization(const char *resource,
   //trace uncategorized host utilization
   if (TRACE_uncategorized()){
     XBT_DEBUG("UNCAT HOST [%f - %f] %s power_used %f", now, now+delta, resource, value);
-    container_t container = PJ_container_get (resource);
     type_t type = PJ_type_get ("power_used", container->type);
     instr_event (now, delta, type, container, value);
   }
@@ -115,7 +115,6 @@ void TRACE_surf_host_set_utilization(const char *resource,
     char category_type[INSTR_DEFAULT_STR_SIZE];
     snprintf (category_type, INSTR_DEFAULT_STR_SIZE, "p%s", category);
     XBT_DEBUG("CAT HOST [%f - %f] %s %s %f", now, now+delta, resource, category_type, value);
-    container_t container = PJ_container_get (resource);
     type_t type = PJ_type_get (category_type, container->type);
     instr_event (now, delta, type, container, value);
   }
similarity index 99%
rename from src/instr/jedule/jedule_output.c
rename to src/instr/jedule/jedule_output.cpp
index b8195cd..1bac445 100644 (file)
@@ -78,7 +78,7 @@ static void get_hierarchy_string(jed_simgrid_container_t container,
     xbt_dynar_t hier_list;
     unsigned int iter;
     int number;
-    int length;
+    unsigned int length;
     
     outbuf[0] = '\0';
     hier_list = xbt_dynar_new(sizeof(int), NULL);
@@ -127,7 +127,7 @@ static void print_container(jed_simgrid_container_t container) {
 }
 
 static void print_resources(jed_simgrid_container_t resource_parent) {
-  int res_nb;
+  unsigned int res_nb;
   unsigned int i;
   char *res_name;
     char resid[1024];
similarity index 91%
rename from src/instr/jedule/jedule_platform.c
rename to src/instr/jedule/jedule_platform.cpp
index 08fd7e7..b585d51 100644 (file)
@@ -30,12 +30,6 @@ static void jed_free_container(jed_simgrid_container_t container);
 
 /********************************************************************/
 
-static int compare_hostnames(const void *host1, const void *host2) {
-  const char *hp1 = *((const char**) host1);
-  const char *hp2 = *((const char**) host2);
-  return strcmp (hp1, hp2);
-}
-
 static int compare_ids(const void *num1, const void *num2) {
   int *i1 = (int*) num1;
   int *i2 = (int*) num2;
@@ -97,7 +91,7 @@ void jed_simgrid_add_resources(jed_simgrid_container_t parent,
   parent->last_id = 0;
   parent->resource_list = xbt_dynar_new(sizeof(char *), NULL);
 
-  xbt_dynar_sort (host_names,  &compare_hostnames);
+  xbt_dynar_sort_strings(host_names);
 
   xbt_dynar_foreach(host_names, iter, host_name) {
     buf = bprintf("%d", parent->last_id);
@@ -153,15 +147,15 @@ static void add_subsets_to(xbt_dynar_t subset_list, xbt_dynar_t hostgroup,
   xbt_dynar_foreach(hostgroup, iter, host_name) {
     jed_simgrid_container_t parent;
     xbt_assert( host_name != NULL );
-    parent = xbt_dict_get(host2_simgrid_parent_container, host_name);
-    id_str = xbt_dict_get(parent->name2id, host_name);
+    parent = (jed_simgrid_container_t)xbt_dict_get(host2_simgrid_parent_container, host_name);
+    id_str = (char*)xbt_dict_get(parent->name2id, host_name);
     xbt_dynar_push(id_list, &id_str);
   }
 
   nb_ids = xbt_dynar_length(id_list);
   id_ar = xbt_new0(int,nb_ids);
   xbt_dynar_foreach(id_list, iter, id_str) {
-    id_ar[iter] = atoi(id_str);
+    id_ar[iter] = xbt_str_parse_int(id_str, "Parse error: not a number: %s");
   }
 
   qsort (id_ar, nb_ids, sizeof(int), &compare_ids);
@@ -215,15 +209,12 @@ void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list,
   //  group by parent container
 
   xbt_dynar_foreach(host_names, iter, host_name) {
-    jed_simgrid_container_t parent;
-    xbt_dynar_t hostgroup;
-
     //printf("checking %s \n", host_name);
 
-    parent = xbt_dict_get(host2_simgrid_parent_container, host_name);
+    jed_simgrid_container_t parent = (jed_simgrid_container_t)xbt_dict_get(host2_simgrid_parent_container, host_name);
     xbt_assert( parent != NULL );
 
-    hostgroup = xbt_dict_get_or_null (parent2hostgroup, parent->name);
+    xbt_dynar_t hostgroup = (xbt_dynar_t)xbt_dict_get_or_null (parent2hostgroup, parent->name);
     if( hostgroup == NULL ) {
       hostgroup = xbt_dynar_new(sizeof(char*), NULL);
       xbt_dict_set(parent2hostgroup, parent->name, hostgroup, NULL);
@@ -239,7 +230,7 @@ void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list,
     jed_simgrid_container_t parent;
 
     xbt_dict_foreach(parent2hostgroup,cursor,parent_name,hostgroup) {
-      parent = xbt_dict_get(container_name2container, parent_name);
+      parent = (jed_simgrid_container_t)xbt_dict_get(container_name2container, parent_name);
       // printf("subset parent >>> %s\n", parent->name);
       add_subsets_to(subset_list, hostgroup, parent);
     }
index d0c92b5..7c75d44 100644 (file)
@@ -21,7 +21,12 @@ namespace mc {
 /** Pointer to a remote address-space (process, snapshot)
  *
  *  With this we can clearly identify the expected type of an address in the
- *  remote process whild avoiding to use native local pointers.
+ *  remote process while avoiding to use native local pointers.
+ *
+ *  Some operators (+/-) assume use the size of the underlying element. This
+ *  only works if the target applications is using the same target: it won't
+ *  work for example, when inspecting a 32 bit application from a 64 bit
+ *  model-checker.
  */
 template<class T> class remote_ptr {
   std::uint64_t address_;
@@ -30,6 +35,7 @@ public:
   remote_ptr(std::uint64_t address) : address_(address) {}
   remote_ptr(T* address) : address_((std::uintptr_t)address) {}
   std::uint64_t address() const { return address_; }
+
   operator bool() const
   {
     return address_;
@@ -126,31 +132,100 @@ const int ProcessIndexDisabled = -2;
  */
 const int ProcessIndexAny = 0;
 
+/** Options for read operations
+ *
+ *  This is a set of flags managed with bitwise operators. Only the
+ *  meaningful operations are defined: addition, conversions to/from
+ *  integers are not allowed.
+ */
+class ReadOptions {
+  std::uint32_t value_;
+  constexpr explicit ReadOptions(std::uint32_t value) : value_(value) {}
+public:
+  constexpr ReadOptions() : value_(0) {}
+
+  constexpr operator bool() const { return value_ != 0; }
+  constexpr bool operator!() const { return value_ == 0; }
+
+  constexpr ReadOptions operator|(ReadOptions const& that) const
+  {
+    return ReadOptions(value_ | that.value_);
+  }
+  constexpr ReadOptions operator&(ReadOptions const& that) const
+  {
+    return ReadOptions(value_ & that.value_);
+  }
+  constexpr ReadOptions operator^(ReadOptions const& that) const
+  {
+    return ReadOptions(value_ ^ that.value_);
+  }
+  constexpr ReadOptions operator~() const
+  {
+    return ReadOptions(~value_);
+  }
+
+  ReadOptions& operator|=(ReadOptions const& that)
+  {
+    value_ |= that.value_;
+    return *this;
+  }
+  ReadOptions& operator&=(ReadOptions const& that)
+  {
+    value_ &= that.value_;
+    return *this;
+  }
+  ReadOptions& operator^=(ReadOptions const& that)
+  {
+    value_ &= that.value_;
+    return *this;
+  }
+
+  /** Copy the data to the given buffer */
+  static constexpr ReadOptions none() { return ReadOptions(0); }
+
+  /** Allows to return a pointer to another buffer where the data is
+   *  available instead of copying the data into the buffer
+   */
+  static constexpr ReadOptions lazy() { return ReadOptions(1); }
+};
+
+/** A given state of a given process (abstract base class)
+ *
+ *  Currently, this might either be:
+ *
+ *  * the current state of an existing process;
+ *
+ *  * a snapshot.
+ */
 class AddressSpace {
 private:
   Process* process_;
 public:
-  enum ReadMode {
-    Normal,
-    /** Allows the `read_bytes` to return a pointer to another buffer
-     *  where the data ins available instead of copying the data into the buffer
-     */
-    Lazy
-  };
   AddressSpace(Process* process) : process_(process) {}
   virtual ~AddressSpace();
 
   simgrid::mc::Process* process() const { return process_; }
+
+  /** Read data from the address space
+   *
+   *  @param buffer        target buffer for the data
+   *  @param size          number of bytes
+   *  @param address       remote source address of the data
+   *  @param process_index which process (used for SMPI privatization)
+   *  @param options
+   */
   virtual const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
-    ReadMode mode = Normal) const = 0;
+    ReadOptions options = ReadOptions::none()) const = 0;
 
+  /** Read a given data structure from the address space */
   template<class T> inline
   void read(T *buffer, remote_ptr<T> ptr, int process_index = ProcessIndexAny)
   {
     this->read_bytes(buffer, sizeof(T), ptr, process_index);
   }
 
+  /** Read a given data structure from the address space */
   template<class T> inline
   T read(remote_ptr<T> ptr, int process_index = ProcessIndexMissing)
   {
index 05ef275..bd35e3b 100644 (file)
 namespace simgrid {
 namespace mc {
 
+/** A byte-string represented as a sequence of chunks from a PageStor */
 class ChunkedData {
-  PageStore* store_;
+  PageStore* store_ = nullptr;
+  /** Indices of the chunks */
   std::vector<std::size_t> pagenos_;
 public:
-  ChunkedData() : store_(nullptr) {}
-  ChunkedData(ChunkedData const& that)
-  {
-    store_ = that.store_;
-    pagenos_ = that.pagenos_;
-    for (std::size_t pageno : pagenos_)
-      store_->ref_page(pageno);
-  }
+
+  ChunkedData() {}
   void clear()
   {
     for (std::size_t pageno : pagenos_)
@@ -42,6 +38,14 @@ public:
     clear();
   }
 
+  // Copy and move
+  ChunkedData(ChunkedData const& that)
+  {
+    store_ = that.store_;
+    pagenos_ = that.pagenos_;
+    for (std::size_t pageno : pagenos_)
+      store_->ref_page(pageno);
+  }
   ChunkedData(ChunkedData&& that)
   {
     store_ = that.store_;
@@ -71,7 +75,6 @@ public:
   std::size_t page_count()          const { return pagenos_.size(); }
   std::size_t pageno(std::size_t i) const { return pagenos_[i]; }
   const std::size_t* pagenos()      const { return pagenos_.data(); }
-  std::size_t*       pagenos()            { return pagenos_.data(); }
 
   const void* page(std::size_t i) const
   {
index ecedcb2..6c90f31 100644 (file)
@@ -70,11 +70,12 @@ void execute(
     case DW_OP_breg29:
     case DW_OP_breg30:
     case DW_OP_breg31:{
+        // Push register + constant:
         int register_id = simgrid::dwarf::dwarf_register_to_libunwind(
           op->atom - DW_OP_breg0);
         unw_word_t res;
         if (!context.cursor)
-          throw evaluation_error("Missin stack context");
+          throw evaluation_error("Missing stack context");
         unw_get_reg(context.cursor, register_id, &res);
         stack.push(res + op->number);
         break;
@@ -117,7 +118,6 @@ void execute(
       // ***** Constants:
 
       // Short constant literals:
-      // DW_OP_lit15 pushed the 15 on the stack.
     case DW_OP_lit0:
     case DW_OP_lit1:
     case DW_OP_lit2:
@@ -150,6 +150,7 @@ void execute(
     case DW_OP_lit29:
     case DW_OP_lit30:
     case DW_OP_lit31:
+      // Push a literal/constant on the stack:
       stack.push(atom - DW_OP_lit0);
       break;
 
@@ -191,9 +192,8 @@ void execute(
       stack.pop();
       break;
 
-      // Swap the two top-most value of the stack:
     case DW_OP_swap:
-      std::swap(stack.top(), stack.top(1));
+      stack.swap();
       break;
 
       // Duplicate the value under the top of the stack:
index aa6d888..fda5c6a 100644 (file)
@@ -8,34 +8,58 @@
 #define SIMGRID_MC_DWARF_EXPRESSION_HPP
 
 #include <cstdint>
-
+#include <cstdlib>
 #include <stdexcept>
 
 #include "src/mc/AddressSpace.hpp"
 
+/** @file DwarfExession.hpp
+ *
+ *  Evaluation of DWARF location expressions
+ */
+
 namespace simgrid {
 namespace dwarf {
 
-class evaluation_error : std::runtime_error {
-public:
-  evaluation_error(const char* what): std::runtime_error(what) {}
-  ~evaluation_error() noexcept(true);
-};
+/** A DWARF expression
+ *
+ *  DWARF defines a simple stack-based VM for evaluating expressions
+ *  (such as locations of variables, etc.): A DWARF expressions is
+ *  just a sequence of dwarf instructions. We currently directly use
+ *  `Dwarf_Op` from `dwarf.h` for dwarf instructions.
+ */
+typedef std::vector<Dwarf_Op> DwarfExpression;
 
+/** Context of evaluation of a DWARF expression
+ *
+ *  Some DWARF instructions need to read the CPU registers,
+ *  the process memory, etc. All those informations are gathered in
+ *  the evaluation context.
+ */
 struct ExpressionContext {
   ExpressionContext() :
     cursor(nullptr), frame_base(nullptr), address_space(nullptr),
     object_info(nullptr), process_index(simgrid::mc::ProcessIndexMissing) {}
-    
+  /** CPU state (registers) */
   unw_cursor_t* cursor;
   void* frame_base;
+  /** Address space used to read memory */
   simgrid::mc::AddressSpace* address_space;
   simgrid::mc::ObjectInformation* object_info;
   int process_index;
 };
 
-typedef std::vector<Dwarf_Op> DwarfExpression;
+/** When an error happens in the execution of a DWARF expression */
+class evaluation_error : std::runtime_error {
+public:
+  evaluation_error(const char* what): std::runtime_error(what) {}
+  ~evaluation_error() noexcept(true);
+};
 
+/** A stack for evaluating a DWARF expression
+ *
+ *  DWARF expressions work by manipulating a stack of integer values.
+ */
 class ExpressionStack {
 public:
   typedef std::uintptr_t value_type;
@@ -52,12 +76,16 @@ public:
   void clear()             { size_ = 0; }
   uintptr_t&       operator[](int i)       { return stack_[i]; }
   uintptr_t const& operator[](int i) const { return stack_[i]; }
+
+  /** Top of the stack */
   value_type& top()
   {
     if (size_ == 0)
       throw evaluation_error("Empty stack");
     return stack_[size_ - 1];
   }
+
+  /** Access the i-th element from the top of the stack */
   value_type& top(unsigned i)
   {
     if (size_ < i)
@@ -65,13 +93,15 @@ public:
     return stack_[size_ - 1 - i];
   }
 
-  // Push/pop:
+  /** Push a value on the top of the stack */
   void push(value_type value)
   {
     if (size_ == max_size)
       throw evaluation_error("Dwarf stack overflow");
     stack_[size_++] = value;
   }
+
+  /* Pop a value from the top of the stack */
   value_type pop()
   {
     if (size_ == 0)
@@ -79,13 +109,31 @@ public:
     return stack_[--size_];
   }
 
-  // Other operations:
+  // These are DWARF operations (DW_OP_foo):
+
+  /* Push a copy of the top-value (DW_OP_dup) */
   void dup() { push(top()); }
+
+  /* Swap the two top-most values */
+  void swap() { std::swap(top(), top(1)); }
 };
 
+/** Executes a DWARF expression
+ *
+ *  @param ops     DWARF expression instructions
+ *  @param n       number of instructions
+ *  @param context evaluation context (registers, memory, etc.)
+ *  @param stack   DWARf stack where the operations are executed
+ */
 void execute(const Dwarf_Op* ops, std::size_t n,
   ExpressionContext const& context, ExpressionStack& stack);
 
+/** Executes/evaluates a DWARF expression
+ *
+ *  @param expression DWARF expression to execute
+ *  @param context    evaluation context (registers, memory, etc.)
+ *  @param stack      DWARf stack where the operations are executed
+ */
 inline
 void execute(simgrid::dwarf::DwarfExpression const& expression,
   ExpressionContext const& context, ExpressionStack& stack)
index ee39960..2d3e6d6 100644 (file)
@@ -10,6 +10,7 @@
 #include <string>
 
 #include <xbt/base.h>
+#include <xbt/range.hpp>
 
 #include "src/mc/mc_forward.h"
 #include "src/mc/LocationList.hpp"
 namespace simgrid {
 namespace mc {
 
+/** Debug information about a given function or scope within a function */
 class Frame {
 public:
   Frame();
 
   int tag;
   std::string name;
-  void *low_pc;
-  void *high_pc;
+  /** Range of instruction addresses for which this scope is valid */
+  simgrid::xbt::range<std::uint64_t> range;
   simgrid::dwarf::LocationList frame_base_location;
   std::vector<Variable> variables;
   unsigned long int id; /* DWARF offset of the subprogram */
@@ -42,8 +44,7 @@ inline
 Frame::Frame()
 {
   this->tag = 0;
-  this->low_pc = nullptr;
-  this->high_pc = nullptr;
+  this->range = {0, 0};
   this->id = 0;
   this->abstract_origin_id = 0;
   this->object_info = nullptr;
index 5c947d2..4411458 100644 (file)
@@ -54,6 +54,7 @@ ModelChecker::ModelChecker(pid_t pid, int socket) :
   page_store_(500),
   parent_snapshot_(nullptr)
 {
+
 }
 
 ModelChecker::~ModelChecker()
@@ -73,6 +74,14 @@ const char* ModelChecker::get_host_name(const char* hostname)
   return elt->key;
 }
 
+// HACK, for the unit test only
+void ModelChecker::init_process()
+{
+  // TODO, avoid direct dependency on sg_cfg
+  process_ = std::unique_ptr<Process>(new Process(pid_, socket_));
+  process_->privatized(sg_cfg_get_boolean("smpi/privatize_global_variables"));
+}
+
 void ModelChecker::start()
 {
   // Block SIGCHLD (this will be handled with accept/signalfd):
@@ -109,10 +118,7 @@ void ModelChecker::start()
   if (res < 0 || !WIFSTOPPED(status) || WSTOPSIG(status) != SIGSTOP)
     xbt_die("Could not wait model-checked process");
 
-  assert(process_ == nullptr);
-  process_ = std::unique_ptr<Process>(new Process(pid_, socket_));
-  // TODO, avoid direct dependency on sg_cfg
-  process_->privatized(sg_cfg_get_boolean("smpi/privatize_global_variables"));
+  this->init_process();
 
   /* Initialize statistics */
   mc_stats = xbt_new0(s_mc_stats_t, 1);
index 75b2f5d..a90e1b4 100644 (file)
@@ -62,6 +62,7 @@ public:
   }
 
   void start();
+  void init_process();
   void shutdown();
   void resume(simgrid::mc::Process& process);
   void loop();
index 9d66b0e..6418c0a 100644 (file)
@@ -84,7 +84,7 @@ simgrid::mc::Frame* ObjectInformation::find_function(const void *ip) const
      * Either we have found the correct function or we do not know
      * any function corresponding to this instruction address.
      * Only at the point do we derefernce the function pointer. */
-    else if (ip < base[k].function->high_pc)
+    else if ((std::uint64_t) ip < base[k].function->range.end())
       return base[k].function;
     else
       return nullptr;
@@ -108,32 +108,35 @@ void ObjectInformation::remove_global_variable(const char* name)
     return;
 
   // Binary search:
-  size_type start = 0;
-  size_type end = this->global_variables.size() - 1;
+  size_type first = 0;
+  size_type last = this->global_variables.size() - 1;
 
-  while (start <= end) {
-    size_type cursor = start + (end - start) / 2;
+  while (first <= last) {
+    size_type cursor = first + (last - first) / 2;
     simgrid::mc::Variable& current_var = this->global_variables[cursor];
     int cmp = current_var.name.compare(name);
 
     if (cmp == 0) {
+  
       // Find the whole range:
-      start = cursor;
-      while (start != 0 && this->global_variables[start - 1].name == name)
-        start--;
+      size_type first = cursor;
+      while (first != 0 && this->global_variables[first - 1].name == name)
+        first--;
       size_type size = this->global_variables.size();
-      end = cursor;
-      while (end != size - 1 && this->global_variables[end + 1].name == name)
-        end++;
+      size_type last = cursor;
+      while (last != size - 1 && this->global_variables[last + 1].name == name)
+        last++;
+  
       // Remove the whole range:
       this->global_variables.erase(
-        this->global_variables.begin() + cursor,
-        this->global_variables.begin() + end + 1);
+        this->global_variables.begin() + first,
+        this->global_variables.begin() + last + 1);
+  
       return;
     } else if (cmp < 0)
-      start = cursor + 1;
+      first = cursor + 1;
     else if (cursor != 0)
-      end = cursor - 1;
+      last = cursor - 1;
     else
       break;
   }
index d7e12bf..2e6d792 100644 (file)
@@ -506,7 +506,7 @@ char* Process::read_string(remote_ptr<void> address) const
 
 const void *Process::read_bytes(void* buffer, std::size_t size,
   remote_ptr<void> address, int process_index,
-  AddressSpace::ReadMode mode) const
+  ReadOptions options) const
 {
   if (process_index != simgrid::mc::ProcessIndexDisabled) {
     std::shared_ptr<simgrid::mc::ObjectInformation> const& info =
index 2f51240..8780e3c 100644 (file)
@@ -75,7 +75,7 @@ public:
   // Read memory:
   const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
-    ReadMode mode = Normal) const override;
+    ReadOptions options = ReadOptions::none()) const override;
   void read_variable(const char* name, void* target, size_t size) const;
   template<class T>
   T read_variable(const char *name) const
index d3f49de..53a34f4 100644 (file)
@@ -104,6 +104,7 @@ RegionSnapshot sparse_region(RegionType region_type,
   RegionSnapshot const* ref_region)
 {
   simgrid::mc::Process* process = &mc_model_checker->process();
+  assert(process != NULL);
 
   bool use_soft_dirty = _sg_mc_sparse_checkpoint && _sg_mc_soft_dirty
     && ref_region != nullptr
index fca86d0..0bfaf47 100644 (file)
@@ -269,7 +269,7 @@ static bool mc_valid_variable(simgrid::mc::Variable* var,
                               const void *ip)
 {
   // The variable is not yet valid:
-  if ((const void *) ((const char *) scope->low_pc + var->start_scope) > ip)
+  if (scope->range.begin() + var->start_scope > (std::uint64_t) ip)
     return false;
   else
     return true;
@@ -282,8 +282,7 @@ static void mc_fill_local_variables_values(mc_stack_frame_t stack_frame,
 {
   simgrid::mc::Process* process = &mc_model_checker->process();
 
-  void *ip = (void *) stack_frame->ip;
-  if (ip < scope->low_pc || ip >= scope->high_pc)
+  if (!scope->range.contain(stack_frame->ip))
     return;
 
   for(simgrid::mc::Variable& current_variable :
@@ -497,7 +496,7 @@ static std::vector<s_fd_infos_t> MC_get_current_fds(pid_t pid)
   struct dirent* fd_number;
   while ((fd_number = readdir(fd_dir))) {
 
-    int fd_value = atoi(fd_number->d_name);
+    int fd_value = xbt_str_parse_int(fd_number->d_name, "Found a non-numerical FD: %s. Freaking out!");
 
     if(fd_value < 3)
       continue;
index 3956391..07e65fb 100644 (file)
@@ -47,7 +47,7 @@ void MC_client_init(void)
   if (!fd_env)
     xbt_die("MC socket not found");
 
-  int fd = atoi(fd_env);
+  int fd = xbt_str_parse_int(fd_env,bprintf("Variable %s should contain a number but contains '%%s'", MC_ENV_SOCKET_FD));
   XBT_DEBUG("Model-checked application found socket FD %i", fd);
 
   int type;
index daf84c8..dd6dd27 100644 (file)
@@ -440,11 +440,11 @@ int snapshot_compare(void *state1, void *state2)
   xbt_mheap_t heap1 = (xbt_mheap_t)s1->read_bytes(
     alloca(sizeof(struct mdesc)), sizeof(struct mdesc),
     remote(process->heap_address),
-    simgrid::mc::ProcessIndexMissing, simgrid::mc::AddressSpace::Lazy);
+    simgrid::mc::ProcessIndexMissing, simgrid::mc::ReadOptions::lazy());
   xbt_mheap_t heap2 = (xbt_mheap_t)s2->read_bytes(
     alloca(sizeof(struct mdesc)), sizeof(struct mdesc),
     remote(process->heap_address),
-    simgrid::mc::ProcessIndexMissing, simgrid::mc::AddressSpace::Lazy);
+    simgrid::mc::ProcessIndexMissing, simgrid::mc::ReadOptions::lazy());
   res_init = init_heap_information(heap1, heap2, &s1->to_ignore, &s2->to_ignore);
   if (res_init == -1) {
 #ifdef MC_DEBUG
@@ -520,7 +520,8 @@ int snapshot_compare(void *state1, void *state2)
 
     /* Compare global variables */
     is_diff =
-      compare_global_variables(region1->object_info(  ), simgrid::mc::AddressSpace::Normal,
+      compare_global_variables(region1->object_info(),
+        simgrid::mc::ProcessIndexDisabled,
         region1, region2,
         s1, s2);
 
index 93fd254..f8bbd84 100644 (file)
@@ -337,7 +337,7 @@ int mmalloc_compare_heap(mc_snapshot_t snapshot1, mc_snapshot_t snapshot2)
   const malloc_info* heapinfos2 = snapshot2->read<malloc_info*>(
     (std::uint64_t)heapinfo_address, simgrid::mc::ProcessIndexMissing);
 
-  while (i1 < state->heaplimit) {
+  while (i1 <= state->heaplimit) {
 
     const malloc_info* heapinfo1 = (const malloc_info*) MC_region_read(heap_region1, &heapinfo_temp1, &heapinfos1[i1], sizeof(malloc_info));
     const malloc_info* heapinfo2 = (const malloc_info*) MC_region_read(heap_region2, &heapinfo_temp2, &heapinfos2[i1], sizeof(malloc_info));
@@ -401,7 +401,7 @@ int mmalloc_compare_heap(mc_snapshot_t snapshot1, mc_snapshot_t snapshot2)
 
       }
 
-      while (i2 < state->heaplimit && !equal) {
+      while (i2 <= state->heaplimit && !equal) {
 
         addr_block2 = (ADDR2UINT(i2) - 1) * BLOCKSIZE +
                        (char *) state->std_heap_copy.heapbase;
@@ -486,7 +486,7 @@ int mmalloc_compare_heap(mc_snapshot_t snapshot1, mc_snapshot_t snapshot2)
 
         }
 
-        while (i2 < state->heaplimit && !equal) {
+        while (i2 <= state->heaplimit && !equal) {
 
           const malloc_info* heapinfo2b = (const malloc_info*) MC_region_read(
             heap_region2, &heapinfo_temp2b, &heapinfos2[i2],
@@ -560,7 +560,7 @@ int mmalloc_compare_heap(mc_snapshot_t snapshot1, mc_snapshot_t snapshot2)
   /* All blocks/fragments are equal to another block/fragment ? */
   size_t i = 1, j = 0;
 
-  for(i = 1; i < state->heaplimit; i++) {
+  for(i = 1; i <= state->heaplimit; i++) {
     const malloc_info* heapinfo1 = (const malloc_info*) MC_region_read(
       heap_region1, &heapinfo_temp1, &heapinfos1[i], sizeof(malloc_info));
     if (heapinfo1->type == MMALLOC_TYPE_UNFRAGMENTED) {
@@ -602,7 +602,7 @@ int mmalloc_compare_heap(mc_snapshot_t snapshot1, mc_snapshot_t snapshot2)
   if (i1 == state->heaplimit)
     XBT_DEBUG("Number of blocks/fragments not found in heap1 : %d", nb_diff1);
 
-  for (i=1; i < state->heaplimit; i++) {
+  for (i=1; i <= state->heaplimit; i++) {
     const malloc_info* heapinfo2 = (const malloc_info*) MC_region_read(
       heap_region2, &heapinfo_temp2, &heapinfos2[i], sizeof(malloc_info));
     if (heapinfo2->type == MMALLOC_TYPE_UNFRAGMENTED) {
@@ -758,9 +758,13 @@ static int compare_heap_area_with_type(struct s_mc_diff *state, int process_inde
                                        int pointer_level)
 {
 top:
-  if (is_stack(real_area1) && is_stack(real_area2))
+  // HACK: This should not happen but in pratice, there is some
+  // DW_TAG_typedef without DW_AT_type. We should fix this somehow.
+  if (type == nullptr)
     return 0;
 
+  if (is_stack(real_area1) && is_stack(real_area2))
+    return 0;
   ssize_t ignore1, ignore2;
 
   if ((check_ignore > 0)
@@ -925,7 +929,7 @@ top:
         void *real_member2 = simgrid::dwarf::resolve_member(
             real_area2, type, &member, (simgrid::mc::AddressSpace*) snapshot2, process_index);
         res =
-            compare_heap_area_with_type(state, process_index, real_member1, real_member2,
+          compare_heap_area_with_type(state, process_index, real_member1, real_member2,
                                         snapshot1, snapshot2,
                                         previous, member.type, -1,
                                         check_ignore, 0);
index 3886239..a6fb218 100644 (file)
@@ -865,11 +865,11 @@ static void MC_dwarf_handle_scope_die(simgrid::mc::ObjectInformation* info, Dwar
   // This is the base address for DWARF addresses.
   // Relocated addresses are offset from this base address.
   // See DWARF4 spec 7.5
-  void *base = info->base_address();
+  std::uint64_t base = (std::uint64_t) info->base_address();
 
   // TODO, support DW_AT_ranges
   uint64_t low_pc = MC_dwarf_attr_integrate_addr(die, DW_AT_low_pc);
-  frame.low_pc = low_pc ? ((char *) base) + low_pc : 0;
+  frame.range.begin() = low_pc ? (std::uint64_t) base + low_pc : 0;
   if (low_pc) {
     // DW_AT_high_pc:
     Dwarf_Attribute attr;
@@ -887,14 +887,14 @@ static void MC_dwarf_handle_scope_die(simgrid::mc::ObjectInformation* info, Dwar
 
       if (dwarf_formsdata(&attr, &offset) != 0)
         xbt_die("Could not read constant");
-      frame.high_pc = (void *) ((char *) frame.low_pc + offset);
+      frame.range.end() = frame.range.begin() + offset;
       break;
 
       // DW_AT_high_pc is a relocatable address:
     case simgrid::dwarf::FormClass::Address:
       if (dwarf_formaddr(&attr, &high_pc) != 0)
         xbt_die("Could not read address");
-      frame.high_pc = ((char *) base) + high_pc;
+      frame.range.begin() = base + high_pc;
       break;
 
     default:
@@ -1055,10 +1055,10 @@ static void MC_make_functions_index(simgrid::mc::ObjectInformation* info)
   info->functions_index.clear();
 
   for (auto& e : info->subprograms) {
-    if (e.second.low_pc == nullptr)
+    if (e.second.range.begin() == 0)
       continue;
     simgrid::mc::FunctionIndexEntry entry;
-    entry.low_pc = e.second.low_pc;
+    entry.low_pc = (void*) e.second.range.begin();
     entry.function = &e.second;
     info->functions_index.push_back(entry);
   }
index ccac733..6017779 100644 (file)
@@ -77,7 +77,7 @@ void MC_ignore_global_variable(const char *name)
  *  @param context
  *  @param size    Size of the stack
  */
-void MC_register_stack_area(void *stack, smx_process_t process, void *context, size_t size)
+void MC_register_stack_area(void *stack, smx_process_t process, ucontext_t* context, size_t size)
 {
   if (mc_mode != MC_MODE_CLIENT)
     return;
index 2d534f5..ec1bd47 100644 (file)
@@ -171,12 +171,12 @@ Snapshot::~Snapshot()
 
 const void* Snapshot::read_bytes(void* buffer, std::size_t size,
   remote_ptr<void> address, int process_index,
-  AddressSpace::ReadMode mode) const
+  ReadOptions options) const
 {
   mc_mem_region_t region = mc_get_snapshot_region((void*)address.address(), this, process_index);
   if (region) {
     const void* res = MC_region_read(region, buffer, (void*)address.address(), size);
-    if (buffer == res || mode == AddressSpace::Lazy)
+    if (buffer == res || options & ReadOptions::lazy())
       return res;
     else {
       memcpy(buffer, res, size);
@@ -185,7 +185,7 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size,
   }
   else
     return this->process()->read_bytes(
-      buffer, size, address, process_index, mode);
+      buffer, size, address, process_index, options);
 }
 
 }
@@ -233,6 +233,7 @@ static void test_snapshot(bool sparse_checkpoint) {
   xbt_assert(xbt_pagesize == getpagesize());
   xbt_assert(1 << xbt_pagebits == xbt_pagesize);
   mc_model_checker = new ::simgrid::mc::ModelChecker(getpid(), -1);
+  mc_model_checker->init_process();
 
   for(int n=1; n!=256; ++n) {
 
index 5c638f6..8960b45 100644 (file)
@@ -146,7 +146,7 @@ public:
   ~Snapshot();
   const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
-    ReadMode mode = Normal) const override;
+    ReadOptions options = ReadOptions::none()) const override;
 public: // To be private
   int num_state;
   std::size_t heap_bytes_used;
index aab93dd..bb6053a 100644 (file)
@@ -168,7 +168,7 @@ static int get_proc_name(unw_addr_space_t as,
   simgrid::mc::Frame* frame = context->process->find_function(remote(addr));
   if (!frame)
     return - UNW_ENOINFO;
-  *offp = (unw_word_t) frame->low_pc - addr;
+  *offp = (unw_word_t) frame->range.begin() - addr;
 
   strncpy(bufp, frame->name.c_str(), buf_len);
   if (bufp[buf_len - 1]) {
index a923cdb..4b307b3 100644 (file)
@@ -45,6 +45,13 @@ static int do_child(int socket, char** argv)
 
 #ifdef __linux__
   // Make sure we do not outlive our parent:
+  sigset_t mask;
+  sigemptyset (&mask);
+  if (sigprocmask(SIG_SETMASK, &mask, nullptr) < 0) {
+    std::perror ("sigprocmask");
+    return SIMGRID_MC_EXIT_ERROR;
+  }
+
   if (prctl(PR_SET_PDEATHSIG, SIGHUP) != 0) {
     std::perror("simgrid-mc");
     return SIMGRID_MC_EXIT_ERROR;
index c002413..995a22d 100644 (file)
@@ -12,7 +12,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_msg_vm, instr, "MSG VM");
 
 char *instr_vm_id (msg_vm_t vm, char *str, int len)
 {
-       return instr_vm_id_2 (MSG_vm_get_name(vm), str, len);
+  return instr_vm_id_2 (MSG_vm_get_name(vm), str, len);
 }
 
 char *instr_vm_id_2 (const char *vm_name, char *str, int len)
index b1123b3..b9c604a 100644 (file)
@@ -75,10 +75,6 @@ const char *MSG_environment_as_get_property_value(msg_as_t as, const char *name)
   return (char*) xbt_dict_get_or_null(dict, name);
 }
 
-const char *MSG_environment_as_get_model(msg_as_t as) {
-  return surf_AS_get_model(as);
-}
-
 xbt_dynar_t MSG_environment_as_get_hosts(msg_as_t as) {
   return surf_AS_get_hosts(as);
 }
index bab2b10..4d5d20d 100644 (file)
@@ -16,7 +16,7 @@
 #include "xbt/replay.h"
 #include "simgrid/sg_config.h" /* Configuration mechanism of SimGrid */
 #include "src/surf/callbacks.h"
-#include "src/surf/platform.hpp"
+#include "src/surf/xml/platf_private.hpp" // FIXME: KILLME by removing MSG_post_create_environment()
 
 XBT_LOG_NEW_CATEGORY(msg, "All MSG categories");
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_kernel, msg,
@@ -53,7 +53,7 @@ void MSG_init_nocheck(int *argc, char **argv) {
 
     xbt_cfg_register(&_sg_cfg_set, "msg/debug_multiple_use",
                      "Print backtraces of both processes when there is a conflict of multiple use of a task",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_msg_debug_multiple_use, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_msg_debug_multiple_use);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "msg/debug_multiple_use", "no");
 
     SIMIX_global_init(argc, argv);
index 87582b1..15a78c1 100644 (file)
@@ -121,7 +121,7 @@ void __MSG_host_priv_free(msg_host_priv_t priv)
 {
 
   if (priv == NULL)
-         return;
+    return;
   unsigned int size = xbt_dict_size(priv->dp_objs);
   if (size > 0)
     XBT_WARN("dp_objs: %u pending task?", size);
@@ -274,8 +274,8 @@ void MSG_host_get_params(msg_host_t host, vm_params_t params)
  * \return Returns the processor speed associated with pstate_index
  */
 double MSG_host_get_power_peak_at(msg_host_t host, int pstate_index) {
-         xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
-         return host->power_peak_at(pstate_index);
+    xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
+    return host->power_peak_at(pstate_index);
 }
 
 /** \ingroup m_host_management
@@ -285,8 +285,8 @@ double MSG_host_get_power_peak_at(msg_host_t host, int pstate_index) {
  * \return Returns the current processor speed
  */
 double MSG_host_get_current_power_peak(msg_host_t host) {
-         xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
-         return host->current_power_peak();
+    xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
+    return host->current_power_peak();
 }
 
 /** \ingroup m_host_management
@@ -295,7 +295,7 @@ double MSG_host_get_current_power_peak(msg_host_t host) {
  * \param  host host to test
  */
 int MSG_host_get_nb_pstates(msg_host_t host) {
-         return sg_host_get_nb_pstates(host);
+    return sg_host_get_nb_pstates(host);
 }
 
 /** \ingroup m_host_management
index 959fb1f..227031e 100644 (file)
@@ -536,7 +536,7 @@ xbt_dynar_t MSG_storages_as_dynar(void) {
   xbt_dynar_t res = xbt_dynar_new(sizeof(msg_storage_t),NULL);
 
   xbt_lib_foreach(storage_lib, cursor, key, data) {
-         if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), MSG_STORAGE_LEVEL) != NULL) {
+    if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), MSG_STORAGE_LEVEL) != NULL) {
       xbt_dictelm_t elm = xbt_dict_cursor_get_elm(cursor);
       xbt_dynar_push(res, &elm);
     }
index a941ea2..ab3bc9b 100644 (file)
@@ -181,6 +181,59 @@ msg_process_t MSG_process_create_with_environment(const char *name,
   return process;
 }
 
+static
+int MSG_maestro(int argc, char** argv)
+{
+  int res = MSG_main();
+  return res;
+}
+
+/* Become a process in the simulation
+ *
+ * Currently this can only be called by the main thread (once) and only work
+ * with some thread factories (currently ThreadContextFactory).
+ *
+ * In the future, it might be extended in order to attach other threads created
+ * by a third party library.
+ */
+msg_process_t MSG_process_attach(
+  const char *name, void *data,
+  msg_host_t host, xbt_dict_t properties)
+{
+  xbt_assert(host != NULL, "Invalid parameters: host and code params must not be NULL");
+  simdata_process_t simdata = xbt_new0(s_simdata_process_t, 1);
+  msg_process_t process;
+
+  /* Simulator data for MSG */
+  simdata->waiting_action = NULL;
+  simdata->waiting_task = NULL;
+  simdata->m_host = host;
+  simdata->argc = 0;
+  simdata->argv = NULL;
+  simdata->data = data;
+  simdata->last_errno = MSG_OK;
+
+  /* Let's create the process: SIMIX may decide to start it right now,
+   * even before returning the flow control to us */
+  process = SIMIX_process_attach(name, simdata, sg_host_get_name(host), properties, NULL);
+  if (!process)
+    xbt_die("Could not attach");
+  simcall_process_on_exit(process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,process);
+  return process;
+}
+
+/** Detach a process attached with `MSG_process_attach()`
+ *
+ *  This is called when the current process has finished its job.
+ *  Used in the main thread, it waits for the simulation to finish before
+ *  returning. When it returns, the other simulated processes and the maestro
+ *  are destroyed.
+ */
+void MSG_process_detach(void)
+{
+  SIMIX_process_detach();
+}
+
 /** \ingroup m_process_management
  * \param process poor victim
  *
index 70f1383..6547de0 100644 (file)
@@ -54,7 +54,7 @@ void MSG_sem_get_capacity(msg_sem_t sem) {
 }
 
 void MSG_sem_destroy(msg_sem_t sem) {
-  simcall_sem_destroy(sem);
+  SIMIX_sem_destroy(sem);
 }
 /** @brief returns a boolean indicating if this semaphore would block at this very specific time
  *
index 22de933..2455645 100644 (file)
@@ -318,11 +318,11 @@ msg_error_t MSG_task_cancel(msg_task_t task)
  */
 double MSG_task_get_flops_amount(msg_task_t task) {
 
-       if (task->simdata->compute) {
-               return simcall_execution_get_remains(task->simdata->compute);
-       } else {
-               return task->simdata->flops_amount;
-       }
+  if (task->simdata->compute) {
+    return simcall_execution_get_remains(task->simdata->compute);
+  } else {
+    return task->simdata->flops_amount;
+  }
 }
 
 
index cbfb739..4b360b7 100644 (file)
@@ -15,7 +15,6 @@
 #include "msg_private.h"
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
-#include "simgrid/platf.h"
 #include "simgrid/host.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_vm, msg,
index 010aff4..8344b43 100644 (file)
@@ -18,10 +18,10 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_actor,"S4U actors");
 /* C main function of a actor, running this->main */
 static int s4u_actor_runner(int argc, char **argv) {
 
-       smx_process_t smx_proc = SIMIX_process_self();
-       simgrid::s4u::Actor *actor = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc);
-       int res = actor->main(argc,argv);
-       return res;
+  smx_process_t smx_proc = SIMIX_process_self();
+  simgrid::s4u::Actor *actor = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc);
+  int res = actor->main(argc,argv);
+  return res;
 }
 
 
@@ -29,83 +29,83 @@ static int s4u_actor_runner(int argc, char **argv) {
 using namespace simgrid;
 
 s4u::Actor::Actor(smx_process_t smx_proc) {
-       p_smx_process = smx_proc;
+  p_smx_process = smx_proc;
 }
 s4u::Actor::Actor(const char *name, s4u::Host *host, int argc, char **argv)
     : s4u::Actor::Actor(name,host, argc,argv, -1) {
 }
 s4u::Actor::Actor(const char *name, s4u::Host *host, int argc, char **argv, double killTime) {
-       p_smx_process = simcall_process_create(name, s4u_actor_runner, this, host->name().c_str(), killTime, argc, argv, NULL/*properties*/,0);
+  p_smx_process = simcall_process_create(name, s4u_actor_runner, this, host->name().c_str(), killTime, argc, argv, NULL/*properties*/,0);
 
-       xbt_assert(p_smx_process,"Cannot create the actor");
-//     TRACE_msg_process_create(procname, simcall_process_get_PID(p_smx_process), host->getInferior());
-//     simcall_process_on_exit(p_smx_process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,p_smx_process);
+  xbt_assert(p_smx_process,"Cannot create the actor");
+//  TRACE_msg_process_create(procname, simcall_process_get_PID(p_smx_process), host->getInferior());
+//  simcall_process_on_exit(p_smx_process,(int_f_pvoid_pvoid_t)TRACE_msg_process_kill,p_smx_process);
 }
 
 int s4u::Actor::main(int argc, char **argv) {
-       fprintf(stderr,"Error: You should override the method main(int, char**) in Actor class %s\n",getName());
-       return 0;
+  fprintf(stderr,"Error: You should override the method main(int, char**) in Actor class %s\n",getName());
+  return 0;
 }
 s4u::Actor *s4u::Actor::current() {
-       smx_process_t smx_proc = SIMIX_process_self();
-       simgrid::s4u::Actor* res = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc);
-       if (res == NULL) // The smx_process was not created by S4U (but by deployment?). Embed it in a S4U object
-               res = new Actor(smx_proc);
-       return res;
+  smx_process_t smx_proc = SIMIX_process_self();
+  simgrid::s4u::Actor* res = (simgrid::s4u::Actor*) SIMIX_process_self_get_data(smx_proc);
+  if (res == NULL) // The smx_process was not created by S4U (but by deployment?). Embed it in a S4U object
+    res = new Actor(smx_proc);
+  return res;
 }
 s4u::Actor *s4u::Actor::byPid(int pid) {
-       return (simgrid::s4u::Actor*) SIMIX_process_self_get_data(SIMIX_process_from_PID(pid));
+  return (simgrid::s4u::Actor*) SIMIX_process_self_get_data(SIMIX_process_from_PID(pid));
 }
 
 void s4u::Actor::setAutoRestart(bool autorestart) {
-       simcall_process_auto_restart_set(p_smx_process,autorestart);
+  simcall_process_auto_restart_set(p_smx_process,autorestart);
 }
 
 s4u::Host *s4u::Actor::getHost() {
-       return s4u::Host::by_name(sg_host_get_name(simcall_process_get_host(p_smx_process)));
+  return s4u::Host::by_name(sg_host_get_name(simcall_process_get_host(p_smx_process)));
 }
 const char* s4u::Actor::getName() {
-       return simcall_process_get_name(p_smx_process);
+  return simcall_process_get_name(p_smx_process);
 }
 int s4u::Actor::getPid(){
-       return simcall_process_get_PID(p_smx_process);
+  return simcall_process_get_PID(p_smx_process);
 }
 
 void s4u::Actor::setKillTime(double time) {
-       simcall_process_set_kill_time(p_smx_process,time);
+  simcall_process_set_kill_time(p_smx_process,time);
 }
 double s4u::Actor::getKillTime() {
-       return simcall_process_get_kill_time(p_smx_process);
+  return simcall_process_get_kill_time(p_smx_process);
 }
 void s4u::Actor::killAll() {
-       simcall_process_killall(1);
+  simcall_process_killall(1);
 }
 void s4u::Actor::kill() {
-       simcall_process_kill(p_smx_process);
+  simcall_process_kill(p_smx_process);
 }
 
 void s4u::Actor::sleep(double duration) {
-       simcall_process_sleep(duration);
+  simcall_process_sleep(duration);
 }
 
 e_smx_state_t s4u::Actor::execute(double flops) {
-       smx_synchro_t s = simcall_execution_start(NULL,flops,1.0/*priority*/,0./*bound*/, 0L/*affinity*/);
-       return simcall_execution_wait(s);
+  smx_synchro_t s = simcall_execution_start(NULL,flops,1.0/*priority*/,0./*bound*/, 0L/*affinity*/);
+  return simcall_execution_wait(s);
 }
 
 void *s4u::Actor::recv(Mailbox &chan) {
-       void *res=NULL;
+  void *res=NULL;
 
-       Comm c = Comm::recv_init(this, chan);
-       c.setDstData(&res,sizeof(res));
-       c.wait();
+  Comm c = Comm::recv_init(this, chan);
+  c.setDstData(&res,sizeof(res));
+  c.wait();
 
     return res;
 }
 void s4u::Actor::send(Mailbox &chan, void *payload, size_t simulatedSize) {
-       Comm c = Comm::send_init(this,chan);
-       c.setRemains(simulatedSize);
-       c.setSrcData(payload);
-       // c.start() is optional.
-       c.wait();
+  Comm c = Comm::send_init(this,chan);
+  c.setRemains(simulatedSize);
+  c.setSrcData(payload);
+  // c.start() is optional.
+  c.wait();
 }
index 5bbce9a..331ef22 100644 (file)
@@ -22,7 +22,7 @@ s4u::Async::~Async() {
 }
 
 void s4u::Async::setRemains(double remains) {
-       xbt_assert(p_state == inited, "Cannot change the remaining amount of work once the Async is started");
-       p_remains = remains;
+  xbt_assert(p_state == inited, "Cannot change the remaining amount of work once the Async is started");
+  p_remains = remains;
 }
 
index d26c4d6..564ae9c 100644 (file)
@@ -18,135 +18,135 @@ s4u::Comm::~Comm() {
 }
 
 s4u::Comm &s4u::Comm::send_init(s4u::Actor *sender, s4u::Mailbox &chan) {
-       s4u::Comm *res = new s4u::Comm();
-       res->p_sender = sender;
-       res->p_mailbox = &chan;
+  s4u::Comm *res = new s4u::Comm();
+  res->p_sender = sender;
+  res->p_mailbox = &chan;
 
-       return *res;
+  return *res;
 }
 s4u::Comm &s4u::Comm::recv_init(s4u::Actor *receiver, s4u::Mailbox &chan) {
-       s4u::Comm *res = new s4u::Comm();
-       res->p_receiver = receiver;
-       res->p_mailbox = &chan;
+  s4u::Comm *res = new s4u::Comm();
+  res->p_receiver = receiver;
+  res->p_mailbox = &chan;
 
-       return *res;
+  return *res;
 }
 
 void s4u::Comm::setRate(double rate) {
-       xbt_assert(p_state==inited);
-       p_rate = rate;
+  xbt_assert(p_state==inited);
+  p_rate = rate;
 }
 
 void s4u::Comm::setSrcData(void * buff) {
-       xbt_assert(p_state==inited);
-       xbt_assert(p_dstBuff == NULL, "Cannot set the src and dst buffers at the same time");
-       p_srcBuff = buff;
+  xbt_assert(p_state==inited);
+  xbt_assert(p_dstBuff == NULL, "Cannot set the src and dst buffers at the same time");
+  p_srcBuff = buff;
 }
 void s4u::Comm::setSrcDataSize(size_t size){
-       xbt_assert(p_state==inited);
-       p_srcBuffSize = size;
+  xbt_assert(p_state==inited);
+  p_srcBuffSize = size;
 }
 void s4u::Comm::setSrcData(void * buff, size_t size) {
-       xbt_assert(p_state==inited);
+  xbt_assert(p_state==inited);
 
-       xbt_assert(p_dstBuff == NULL, "Cannot set the src and dst buffers at the same time");
-       p_srcBuff = buff;
-       p_srcBuffSize = size;
+  xbt_assert(p_dstBuff == NULL, "Cannot set the src and dst buffers at the same time");
+  p_srcBuff = buff;
+  p_srcBuffSize = size;
 }
 void s4u::Comm::setDstData(void ** buff) {
-       xbt_assert(p_state==inited);
-       xbt_assert(p_srcBuff == NULL, "Cannot set the src and dst buffers at the same time");
-       p_dstBuff = buff;
+  xbt_assert(p_state==inited);
+  xbt_assert(p_srcBuff == NULL, "Cannot set the src and dst buffers at the same time");
+  p_dstBuff = buff;
 }
 size_t s4u::Comm::getDstDataSize(){
-       xbt_assert(p_state==finished);
-       return p_dstBuffSize;
+  xbt_assert(p_state==finished);
+  return p_dstBuffSize;
 }
 void s4u::Comm::setDstData(void ** buff, size_t size) {
-       xbt_assert(p_state==inited);
+  xbt_assert(p_state==inited);
 
-       xbt_assert(p_srcBuff == NULL, "Cannot set the src and dst buffers at the same time");
-       p_dstBuff = buff;
-       p_dstBuffSize = size;
+  xbt_assert(p_srcBuff == NULL, "Cannot set the src and dst buffers at the same time");
+  p_dstBuff = buff;
+  p_dstBuffSize = size;
 }
 
 void s4u::Comm::start() {
-       xbt_assert(p_state == inited);
-
-       if (p_srcBuff != NULL) { // Sender side
-               p_inferior = simcall_comm_isend(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
-                               p_srcBuff, p_srcBuffSize,
-                               p_matchFunction, p_cleanFunction, p_copyDataFunction,
-                               p_userData, p_detached);
-       } else if (p_dstBuff != NULL) { // Receiver side
-               p_inferior = simcall_comm_irecv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
-                               p_matchFunction, p_copyDataFunction,
-                               p_userData, p_rate);
-
-       } else {
-               xbt_die("Cannot start a communication before specifying whether we are the sender or the receiver");
-       }
-       p_state = started;
+  xbt_assert(p_state == inited);
+
+  if (p_srcBuff != NULL) { // Sender side
+    p_inferior = simcall_comm_isend(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
+        p_srcBuff, p_srcBuffSize,
+        p_matchFunction, p_cleanFunction, p_copyDataFunction,
+        p_userData, p_detached);
+  } else if (p_dstBuff != NULL) { // Receiver side
+    p_inferior = simcall_comm_irecv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
+        p_matchFunction, p_copyDataFunction,
+        p_userData, p_rate);
+
+  } else {
+    xbt_die("Cannot start a communication before specifying whether we are the sender or the receiver");
+  }
+  p_state = started;
 }
 void s4u::Comm::wait() {
-       xbt_assert(p_state == started || p_state == inited);
-
-       if (p_state == started)
-               simcall_comm_wait(p_inferior, -1/*timeout*/);
-       else {// p_state == inited. Save a simcall and do directly a blocking send/recv
-               if (p_srcBuff != NULL) {
-                       simcall_comm_send(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
-                                       p_srcBuff, p_srcBuffSize,
-                                       p_matchFunction, p_copyDataFunction,
-                                       p_userData, -1 /*timeout*/);
-               } else {
-                       simcall_comm_recv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
-                                       p_matchFunction, p_copyDataFunction,
-                                       p_userData, -1/*timeout*/, p_rate);
-               }
-       }
-       p_state = finished;
+  xbt_assert(p_state == started || p_state == inited);
+
+  if (p_state == started)
+    simcall_comm_wait(p_inferior, -1/*timeout*/);
+  else {// p_state == inited. Save a simcall and do directly a blocking send/recv
+    if (p_srcBuff != NULL) {
+      simcall_comm_send(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
+          p_srcBuff, p_srcBuffSize,
+          p_matchFunction, p_copyDataFunction,
+          p_userData, -1 /*timeout*/);
+    } else {
+      simcall_comm_recv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
+          p_matchFunction, p_copyDataFunction,
+          p_userData, -1/*timeout*/, p_rate);
+    }
+  }
+  p_state = finished;
 }
 void s4u::Comm::wait(double timeout) {
-       xbt_assert(p_state == started || p_state == inited);
-
-       if (p_state == started) {
-               simcall_comm_wait(p_inferior, timeout);
-               p_state = finished;
-               return;
-       }
-
-       // It's not started yet. Do it in one simcall
-       if (p_srcBuff != NULL) {
-               simcall_comm_send(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
-                               p_srcBuff, p_srcBuffSize,
-                               p_matchFunction, p_copyDataFunction,
-                               p_userData, timeout);
-       } else { // Receiver
-               simcall_comm_recv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
-                               p_matchFunction, p_copyDataFunction,
-                               p_userData, timeout, p_rate);
-       }
-       p_state = finished;
+  xbt_assert(p_state == started || p_state == inited);
+
+  if (p_state == started) {
+    simcall_comm_wait(p_inferior, timeout);
+    p_state = finished;
+    return;
+  }
+
+  // It's not started yet. Do it in one simcall
+  if (p_srcBuff != NULL) {
+    simcall_comm_send(p_sender->getInferior(), p_mailbox->getInferior(), p_remains, p_rate,
+        p_srcBuff, p_srcBuffSize,
+        p_matchFunction, p_copyDataFunction,
+        p_userData, timeout);
+  } else { // Receiver
+    simcall_comm_recv(p_receiver->getInferior(), p_mailbox->getInferior(), p_dstBuff, &p_dstBuffSize,
+        p_matchFunction, p_copyDataFunction,
+        p_userData, timeout, p_rate);
+  }
+  p_state = finished;
 }
 
 s4u::Comm &s4u::Comm::send_async(s4u::Actor *sender, Mailbox &dest, void *data, int simulatedSize) {
-       s4u::Comm &res = s4u::Comm::send_init(sender, dest);
+  s4u::Comm &res = s4u::Comm::send_init(sender, dest);
 
-       res.setRemains(simulatedSize);
-       res.p_srcBuff = data;
-       res.p_srcBuffSize = sizeof(void*);
+  res.setRemains(simulatedSize);
+  res.p_srcBuff = data;
+  res.p_srcBuffSize = sizeof(void*);
 
-       res.start();
-       return res;
+  res.start();
+  return res;
 }
 
 s4u::Comm &s4u::Comm::recv_async(s4u::Actor *receiver, Mailbox &dest, void **data) {
-       s4u::Comm &res = s4u::Comm::recv_init(receiver, dest);
+  s4u::Comm &res = s4u::Comm::recv_init(receiver, dest);
 
-       res.setDstData(data);
+  res.setDstData(data);
 
-       res.start();
-       return res;
+  res.start();
+  return res;
 }
 
index dc22416..3e2e284 100644 (file)
@@ -13,31 +13,31 @@ XBT_LOG_NEW_CATEGORY(s4u,"Log channels of the S4U (Simgrid for you) interface");
 using namespace simgrid;
 
 double s4u::Engine::getClock() {
-       return SIMIX_get_clock();
+  return SIMIX_get_clock();
 }
 
 s4u::Engine::Engine(int *argc, char **argv) {
-       SIMIX_global_init(argc, argv);
+  SIMIX_global_init(argc, argv);
 }
 
 void s4u::Engine::loadPlatform(const char *platf) {
-       SIMIX_create_environment(platf);
+  SIMIX_create_environment(platf);
 }
 
 void s4u::Engine::register_function(const char*name, int (*code)(int,char**)) {
-       SIMIX_function_register(name,code);
+  SIMIX_function_register(name,code);
 }
 void s4u::Engine::register_default(int (*code)(int,char**)) {
-       SIMIX_function_register_default(code);
+  SIMIX_function_register_default(code);
 }
 void s4u::Engine::loadDeployment(const char *deploy) {
-       SIMIX_launch_application(deploy);
+  SIMIX_launch_application(deploy);
 }
 
 void s4u::Engine::run() {
-       if (MC_is_active()) {
-               MC_run();
-       } else {
-               SIMIX_run();
-       }
+  if (MC_is_active()) {
+    MC_run();
+  } else {
+    SIMIX_run();
+  }
 }
index e68d191..23a6360 100644 (file)
@@ -22,37 +22,37 @@ namespace simgrid {
 namespace s4u {
 
 File::File(const char*fullpath, void *userdata) {
-       // this cannot fail because we get a xbt_die if the mountpoint does not exist
-       p_inferior = simcall_file_open(fullpath, Host::current());
-       p_path = fullpath;
+  // this cannot fail because we get a xbt_die if the mountpoint does not exist
+  p_inferior = simcall_file_open(fullpath, Host::current());
+  p_path = fullpath;
 }
 
 File::~File() {
-       simcall_file_close(p_inferior, Host::current());
+  simcall_file_close(p_inferior, Host::current());
 }
 
 sg_size_t File::read(sg_size_t size) {
-       return simcall_file_read(p_inferior, size, Host::current());
+  return simcall_file_read(p_inferior, size, Host::current());
 }
 sg_size_t File::write(sg_size_t size) {
-       return simcall_file_write(p_inferior,size, Host::current());
+  return simcall_file_write(p_inferior,size, Host::current());
 }
 sg_size_t File::size() {
-       return simcall_file_get_size(p_inferior);
+  return simcall_file_get_size(p_inferior);
 }
 
 void File::seek(sg_size_t pos) {
-       simcall_file_seek(p_inferior,pos,SEEK_SET);
+  simcall_file_seek(p_inferior,pos,SEEK_SET);
 }
 sg_size_t File::tell() {
-       return simcall_file_tell(p_inferior);
+  return simcall_file_tell(p_inferior);
 }
 void File::move(const char*fullpath) {
-       simcall_file_move(p_inferior,fullpath);
+  simcall_file_move(p_inferior,fullpath);
 }
 void File::unlink() {
-       sg_host_t attached = Host::current(); // FIXME: we should check where this file is attached
-       simcall_file_unlink(p_inferior,attached);
+  sg_host_t attached = Host::current(); // FIXME: we should check where this file is attached
+  simcall_file_unlink(p_inferior,attached);
 }
 
 }} // namespace simgrid::s4u
index b997195..7aaf021 100644 (file)
@@ -46,16 +46,16 @@ Host::Host(const char* name)
 }
 
 Host::~Host() {
-       delete pimpl_cpu;
-       delete mounts;
+  delete pimpl_cpu;
+  delete mounts;
 }
 
 Host *Host::by_name(std::string name) {
-       Host* host = Host::by_name_or_null(name.c_str());
-       // TODO, raise an exception instead?
-       if (host == nullptr)
-               xbt_die("No such host: %s", name.c_str());
-       return host;
+  Host* host = Host::by_name_or_null(name.c_str());
+  // TODO, raise an exception instead?
+  if (host == nullptr)
+    xbt_die("No such host: %s", name.c_str());
+  return host;
 }
 Host* Host::by_name_or_null(const char* name)
 {
@@ -72,14 +72,14 @@ Host* Host::by_name_or_create(const char* name)
 }
 
 Host *Host::current(){
-       smx_process_t smx_proc = SIMIX_process_self();
-       if (smx_proc == NULL)
-               xbt_die("Cannot call Host::current() from the maestro context");
-       return SIMIX_process_get_host(smx_proc);
+  smx_process_t smx_proc = SIMIX_process_self();
+  if (smx_proc == NULL)
+    xbt_die("Cannot call Host::current() from the maestro context");
+  return SIMIX_process_get_host(smx_proc);
 }
 
 void Host::turn_on() {
-       simgrid::simix::kernel(std::bind(SIMIX_host_on, this));
+  simgrid::simix::kernel(std::bind(SIMIX_host_on, this));
 }
 
 void Host::turn_off() {
@@ -87,37 +87,37 @@ void Host::turn_off() {
 }
 
 bool Host::is_on() {
-       return this->pimpl_cpu->isOn();
+  return this->pimpl_cpu->isOn();
 }
 
 int Host::pstates_count() const {
-       return this->pimpl_cpu->getNbPStates();
+  return this->pimpl_cpu->getNbPStates();
 }
 
 boost::unordered_map<std::string, Storage*> const& Host::mounted_storages() {
-       if (mounts == NULL) {
-               mounts = new boost::unordered_map<std::string, Storage*> ();
-
-               xbt_dict_t dict = this->mounted_storages_as_dict();
-
-               xbt_dict_cursor_t cursor;
-               char *mountname;
-               char *storagename;
-               xbt_dict_foreach(dict, cursor, mountname, storagename) {
-                       mounts->insert({mountname, &Storage::byName(storagename)});
-               }
-               xbt_dict_free(&dict);
-       }
+  if (mounts == NULL) {
+    mounts = new boost::unordered_map<std::string, Storage*> ();
+
+    xbt_dict_t dict = this->mounted_storages_as_dict();
+
+    xbt_dict_cursor_t cursor;
+    char *mountname;
+    char *storagename;
+    xbt_dict_foreach(dict, cursor, mountname, storagename) {
+      mounts->insert({mountname, &Storage::byName(storagename)});
+    }
+    xbt_dict_free(&dict);
+  }
 
-       return *mounts;
+  return *mounts;
 }
 
 /** Get the properties assigned to a host */
 xbt_dict_t Host::properties() {
   return simgrid::simix::kernel([&] {
-               simgrid::surf::Host* surf_host = this->extension<simgrid::surf::Host>();
-               return surf_host->getProperties();
-       });
+    simgrid::surf::Host* surf_host = this->extension<simgrid::surf::Host>();
+    return surf_host->getProperties();
+  });
 }
 
 /** Get the processes attached to the host */
@@ -146,11 +146,11 @@ double Host::power_peak_at(int pstate_index)
 
 /** @brief Get the speed of the cpu associated to a host */
 double Host::speed() {
-       return pimpl_cpu->getSpeed(1.0);
+  return pimpl_cpu->getSpeed(1.0);
 }
 /** @brief Returns the number of core of the processor. */
 int Host::core_count() {
-       return pimpl_cpu->getCore();
+  return pimpl_cpu->getCore();
 }
 
 /** @brief Set the pstate at which the host should run */
index a2a6a42..587a72a 100644 (file)
@@ -20,24 +20,24 @@ boost::unordered_map <std::string, s4u::Mailbox *> *s4u::Mailbox::mailboxes = ne
 
 
 s4u::Mailbox::Mailbox(const char*name, smx_rdv_t inferior) {
-       p_inferior = inferior;
-       p_name = name;
-       mailboxes->insert({name, this});
+  p_inferior = inferior;
+  p_name = name;
+  mailboxes->insert({name, this});
 }
 const char *s4u::Mailbox::getName() {
-       return p_name.c_str();
+  return p_name.c_str();
 }
 s4u::Mailbox *s4u::Mailbox::byName(const char*name) {
-       s4u::Mailbox *res;
-       try {
-               res = mailboxes->at(name);
-       } catch (std::out_of_range& e) {
-               // FIXME: there is a potential race condition here where two actors run Mailbox::byName on a non-existent mailbox
-               // during the same scheduling round. Both will be interrupted in the simcall creating the underlying simix rdv.
-               // Only one simix object will be created, but two S4U objects will be created.
-               // Only one S4U object will be stored in the hashmap and used, and the other one will be leaked.
-               new Mailbox(name,simcall_rdv_create(name));
-               res = mailboxes->at(name); // Use the stored one, even if it's not the one I created myself.
-       }
-       return res;
+  s4u::Mailbox *res;
+  try {
+    res = mailboxes->at(name);
+  } catch (std::out_of_range& e) {
+    // FIXME: there is a potential race condition here where two actors run Mailbox::byName on a non-existent mailbox
+    // during the same scheduling round. Both will be interrupted in the simcall creating the underlying simix rdv.
+    // Only one simix object will be created, but two S4U objects will be created.
+    // Only one S4U object will be stored in the hashmap and used, and the other one will be leaked.
+    new Mailbox(name,simcall_rdv_create(name));
+    res = mailboxes->at(name); // Use the stored one, even if it's not the one I created myself.
+  }
+  return res;
 }
index 3c5bb11..3b0841b 100644 (file)
@@ -14,45 +14,45 @@ namespace s4u {
 
 boost::unordered_map <std::string, Storage *> *Storage::storages = new boost::unordered_map<std::string, Storage*> ();
 Storage::Storage(std::string name, smx_storage_t inferior) {
-       p_name = name;
-       p_inferior = inferior;
+  p_name = name;
+  p_inferior = inferior;
 
-       storages->insert({name, this});
+  storages->insert({name, this});
 }
 
 Storage::~Storage() {
-       // TODO Auto-generated destructor stub
+  // TODO Auto-generated destructor stub
 }
 
 smx_storage_t Storage::inferior() {
-       return p_inferior;
+  return p_inferior;
 }
 Storage &Storage::byName(const char*name) {
-       s4u::Storage *res = NULL;
-       try {
-               res = storages->at(name);
-       } catch (std::out_of_range& e) {
-               smx_storage_t inferior = xbt_lib_get_elm_or_null(storage_lib,name);
-               if (inferior == NULL)
-                       xbt_die("Storage %s does not exist. Please only use the storages that are defined in your platform.", name);
+  s4u::Storage *res = NULL;
+  try {
+    res = storages->at(name);
+  } catch (std::out_of_range& e) {
+    smx_storage_t inferior = xbt_lib_get_elm_or_null(storage_lib,name);
+    if (inferior == NULL)
+      xbt_die("Storage %s does not exist. Please only use the storages that are defined in your platform.", name);
 
-               res = new Storage(name,inferior);
-       }
-       return *res;
+    res = new Storage(name,inferior);
+  }
+  return *res;
 }
 
 const char*Storage::name() {
-       return p_name.c_str();
+  return p_name.c_str();
 }
 
 sg_size_t Storage::size_free() {
-       return simcall_storage_get_free_size(p_inferior);
+  return simcall_storage_get_free_size(p_inferior);
 }
 sg_size_t Storage::size_used() {
-       return simcall_storage_get_used_size(p_inferior);
+  return simcall_storage_get_used_size(p_inferior);
 }
 sg_size_t Storage::size() {
-       return SIMIX_storage_get_size(p_inferior);
+  return SIMIX_storage_get_size(p_inferior);
 }
 
 } /* namespace s4u */
index 7566f87..a9f46f3 100644 (file)
@@ -52,7 +52,7 @@
 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
+ * if you want the limit (max/min) macros for int types. 
  */
 #ifndef __STDC_LIMIT_MACROS
 #define __STDC_LIMIT_MACROS 1
@@ -69,7 +69,7 @@ typedef uint32_t flex_uint32_t;
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
 typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
+typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
 
@@ -195,7 +195,7 @@ extern FILE *dax_in, *dax_out;
 
     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
      *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE dax_lex.
+     *       existing scanners that call yyless() from OUTSIDE dax_lex. 
      *       One obvious solution it to make yy_act a global. I tried that, and saw
      *       a 5% performance hit in a non-dax_lineno scanner, because yy_act is
      *       normally declared as a register variable-- so it is not worth it.
@@ -214,7 +214,7 @@ extern FILE *dax_in, *dax_out;
                     if ( *p == '\n' )\
                         --dax_lineno;\
             }while(0)
-
+    
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
        do \
@@ -271,7 +271,7 @@ struct yy_buffer_state
 
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
-
+    
        /* Whether to try to fill the input buffer when we reach the
         * end of it.
         */
@@ -433,77 +433,77 @@ static yyconst flex_int16_t yy_accept[775] =
       127,  128,  138,  139,   40,   10,   40,   40,   40,   38,
 
        40,   40,   40,   40,   40,   40,   40,   44,   10,   44,
-       44,  139,  139,   44,   61,   10,   61,   61,   61,   59,
-       61,   61,   61,   61,   61,   65,   10,   65,  139,   65,
-       92,   10,   92,   92,   92,   90,   92,   92,   92,   92,
-       92,   92,   96,   10,   96,  103,   10,  103,  103,  103,
-      101,  103,  107,   10,  107,  139,  107,  114,   10,  114,
-      114,  114,  112,  114,  118,   10,  118,  136,  135,   10,
+       44,  139,  139,   44,   51,   10,   51,   51,   51,   49,
+       51,   55,   10,   55,  139,   55,   72,   10,   72,   72,
+       72,   70,   72,   72,   72,   72,   72,   76,   10,   76,
+      139,   76,   83,   10,   83,   83,   83,   81,   83,   87,
+       10,   87,  114,   10,  114,  114,  114,  112,  114,  114,
+      114,  114,  114,  114,  118,   10,  118,  136,  135,   10,
         0,    2,    2,    0,    4,    7,  130,  129,    0,    0,
         0,    0,    0,    0,    0,   39,   41,   41,   41,   41,
        41,   41,   41,   41,   41,   41,    0,    0,    0,    0,
 
-        0,    0,    0,    0,   60,   62,   62,   62,   62,   62,
-       62,    0,    0,   91,   93,   93,   93,   93,   93,   93,
-       93,   93,    0,  102,  104,  104,    0,    0,  113,  115,
+        0,    0,    0,    0,   50,   52,   52,    0,    0,   71,
+       73,   73,   73,   73,   73,   73,    0,    0,   82,   84,
+       84,    0,  113,  115,  115,  115,  115,  115,  115,  115,
       115,    0,    0,    0,    0,    0,    0,    0,    3,    0,
         0,    0,    0,    0,    0,    0,  137,    0,   41,   41,
        41,   41,   41,   41,   41,   41,   41,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   62,   62,
-       62,   62,    0,    0,    0,   93,   93,   93,   93,   93,
-       93,   93,    0,    0,  104,    0,    0,    0,  115,    0,
+        0,    0,    0,    0,    0,    0,   52,    0,    0,    0,
+        0,    0,   73,   73,   73,   73,    0,    0,    0,   84,
+        0,    0,  115,  115,  115,  115,  115,  115,  115,    0,
         0,    0,  132,    0,   14,    1,    0,    0,  125,    0,
 
         0,    0,  122,  121,    0,    0,   41,   41,   41,   41,
        41,   41,   41,   41,   41,    0,    0,   43,    0,    0,
-        0,   46,    0,    0,   45,    0,    0,   48,   47,   62,
-       62,   62,   62,    0,    0,   64,    0,    0,   93,   93,
-       93,   93,   93,   93,   93,    0,    0,   95,    0,    0,
-        0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
+        0,   57,    0,    0,   56,    0,    0,    0,    0,    0,
+       54,    0,    0,    0,   59,   58,   73,   73,   73,   73,
+        0,    0,   75,    0,    0,    0,    0,    0,    0,   86,
+        0,  115,  115,  115,  115,  115,  115,  115,    0,    0,
       117,    0,    0,    0,    0,  126,  120,    0,    0,   17,
        41,   41,   41,   41,   41,    0,    0,   41,   41,   41,
-        0,   16,    0,   46,    0,   66,   45,    0,   62,    0,
-        0,   62,   62,   62,    0,   67,    0,    0,    0,    0,
+        0,   16,    0,   57,    0,   88,   56,    0,    0,   48,
+       47,    0,    0,   73,    0,    0,   73,   73,   73,    0,
 
-       93,   93,    0,    0,   93,    0,    0,    0,    0,  100,
-       99,    0,    0,    0,  111,  110,    0,    0,    0,    0,
+       89,    0,   80,   79,    0,    0,    0,    0,    0,  115,
+      115,    0,    0,  115,    0,    0,    0,    0,    0,    0,
         0,   12,    0,  123,  124,   17,   41,    0,    0,   41,
-        0,    0,   41,    0,   31,   30,   41,    0,   41,    0,
-       41,    0,   16,   98,    0,   66,   97,    0,    0,    0,
-       52,   51,   62,   62,   62,    0,   63,   67,    0,   69,
-       68,    0,    0,    0,   93,   93,    0,   89,   88,   93,
-        0,   87,   86,    0,    0,    0,    0,    0,    0,    0,
-        0,   11,   41,    0,   27,   26,   41,    0,   29,   28,
-       41,   41,   41,    0,   19,   18,   41,    0,   42,   98,
-
-      108,   97,    0,   58,   57,   62,   62,   62,    0,    0,
-        0,    0,   93,   93,   93,    0,   94,    0,  109,    0,
+        0,    0,   41,    0,   29,   28,   41,    0,   41,    0,
+       41,    0,   16,   46,    0,   88,   45,    0,    0,    0,
+        0,    0,   63,   62,   73,   73,   73,    0,   74,   89,
+        0,    0,   91,   90,    0,    0,    0,  115,  115,    0,
+      105,  104,  115,    0,  111,  110,    0,    0,    0,    0,
+        0,   11,   41,    0,   21,   20,   41,    0,   25,   24,
+       41,   41,   41,    0,   33,   32,   41,    0,   42,   46,
+
+       77,   45,    0,   78,    0,   61,   60,   73,   73,   73,
+        0,    0,    0,    0,    0,  115,  115,  115,    0,  116,
         0,    0,    0,    0,   41,   41,   41,    0,    0,   41,
-       41,  108,   62,    0,    0,    0,    0,    0,    0,    0,
-        0,   93,   93,   93,    0,  105,  109,    0,    0,    0,
-        0,    0,   41,   41,    0,    0,    0,   25,   24,   41,
-       41,   62,    0,   56,   55,    0,   54,   53,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  116,
-      131,    0,    0,    0,   41,    0,    0,    0,   33,   32,
+       41,   77,    0,   53,   78,   73,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  115,  115,  115,    0,    0,
+        0,    0,   41,   41,    0,    0,    0,   31,   30,   41,
+       41,   73,    0,   67,   66,    0,   69,   68,    0,   85,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      131,    0,    0,    0,   41,    0,    0,    0,   27,   26,
         0,    0,   41,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   35,   34,    0,   21,   20,   41,
-        0,   50,   49,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   23,   22,    0,   35,   34,   41,
+        0,   65,   64,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   37,   36,   41,   71,    0,   70,    0,
+        0,    0,    0,   19,   18,   41,   93,    0,   92,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   41,   73,   72,    0,    0,
+        0,    0,    0,    0,    0,   41,   95,   94,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,   41,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   41,    0,   85,    0,   84,    0,   77,
-        0,   76,    0,   81,    0,   80,    0,    0,    0,    0,
-        0,    0,   41,   83,   82,   75,   74,   79,   78,    0,
+        0,    0,    0,   41,    0,   99,    0,   98,    0,  103,
+        0,  102,    0,  109,    0,  108,    0,    0,    0,    0,
+        0,    0,   41,   97,   96,  101,  100,  107,  106,    0,
         0,    0,   12,    0,   12,    0,   41,    0,    0,    0,
         0,    0,   41,    0,    0,    0,    0,    0,   11,    0,
-       23,   22,    0,    0,    0,    0,    0,    0,    0,    0,
+       37,   36,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,   13,    0
     } ;
@@ -555,93 +555,93 @@ static yyconst flex_int16_t yy_base[814] =
         0,    0,    0,    3,    6,    9,   24,   27,   11,   14,
        15,   17,   29,   38,   45,   52,   59,   61,   67,   70,
        95,    0,   73,   76,  153,  156,  159,  162,  177,  180,
-      183,  186,  201,  204,  207,  210,  226,    0,  284,  287,
-      290,  293,  308,  311,  314,  317,  333,    0,  391,  394,
-      410,  462,  429,  432,  435,  438,  481,  484,  487,  490,
-      514,  566,  533,  536,  585,  587, 1886, 2164, 2164,  397,
-      400,   47,   62, 2164,  453,  172, 2164, 2164, 1875, 2164,
-     2164, 1865, 2164, 1866, 1863,  551, 2164, 2164, 2164, 2164,
-     1861, 1861, 1829,  441, 2164,  505, 1844,    0,  196, 2164,
-
-        8, 1818, 1812, 1810, 1823, 1813,   35, 2164,  508,  593,
-      601,  589,  622,  630, 2164,  539, 1833,    0,  303, 2164,
-     1811, 1809, 1793, 1772, 1786, 2164,  542,  649,  657,  676,
-     2164,  551, 1798,    0,  442, 2164, 1772, 1770, 1750, 1760,
-     1751,   32, 2164,  557,  545, 2164,  607, 1775,    0,  494,
-     2164, 1752, 2164,  612,  684,  703,  711, 2164,  667, 1764,
-        0,  546, 2164, 1722, 2164,  733,  641, 1752, 1721,  739,
-      594, 1690, 2164, 1735, 1723, 2164, 2164, 2164,    2,   44,
-     1685, 1684, 1675, 1711, 1689, 2164,    0, 1678, 1663, 1670,
-     1677, 1676, 1664, 1658, 1650, 1652, 1658, 1650, 1645, 1636,
-
-     1645, 1626, 1628, 1630, 2164,    0,  747, 1615, 1618, 1615,
-     1610, 1616, 1599, 2164,    0, 1605, 1601, 1590, 1602, 1582,
-     1601, 1585, 1578, 2164,    0, 1588, 1590, 1590, 2164,    0,
-     1584, 1572, 1584, 1594, 1593, 1599,  431, 1554, 2164,   72,
-        0, 1549, 1549, 1581, 1576, 1541, 2164, 1553, 1540, 1535,
-     1533, 1528, 1544, 1525, 1503, 1507, 1539,  765,  768, 1517,
-     1507, 1509, 1488, 1500, 1501, 1486,  771,  775, 1489, 1487,
-     1467, 1467,  787,  790, 1479, 1477, 1470, 1470, 1459, 1462,
-     1445, 1429,  793,  796,  799,  815,  818, 1415,  821,  824,
-      827, 1443, 2164, 1446, 2164, 2164,   17, 1400, 2164, 1428,
-
-     1426, 1384, 2164, 2164, 1381, 1389, 1391, 1373, 1394, 1358,
-     1364,  844, 1368, 1357, 1344,  848,  851, 2164,  854, 1355,
-     1344,  861, 1350, 1318,  871, 1324,  874, 2164, 2164, 1322,
-      882, 1317, 1316,  888,  891, 2164,  894, 1301,  898,  901,
-     1304, 1295,  917, 1290,  920,  923,  929, 2164,  936,  940,
-      946,  956,  959, 2164,  962, 1301,  965,  981,  968,  989,
-     2164,  992, 1309,  616,  995, 2164, 2164, 1316, 1314,  998,
-     1302, 1013, 1274, 1016, 1266, 1019, 1022, 1269, 1035, 1279,
-     1038, 1043, 1274, 1051, 1253, 1055, 1058, 1262, 1061, 1064,
-     1067, 1248, 1246, 1243, 1080, 1083, 1086, 1090, 1098, 1102,
-
-     1242, 1231, 1110, 1114, 1244, 1122, 1126, 1134, 1138, 2164,
-     2164, 1146, 1234, 1151, 2164, 2164, 1159, 1257,  632, 1258,
-     1163, 2164, 1256, 2164, 2164, 1166, 1224, 1169, 1176, 1216,
-     1172, 1191, 1212, 1201, 2164, 2164, 1211, 1209, 1196, 1212,
-     1209, 1220, 1225, 1228, 1196, 1231, 1237, 1240, 1243, 1252,
-     2164, 2164, 1213, 1198, 1188, 1260, 2164, 1263, 1266, 2164,
-     2164, 1277,  124,  125, 1190, 1181, 1285, 2164, 2164, 1178,
-     1293, 2164, 2164, 1301, 1304, 1155, 1307, 1177,  578,  152,
-        5, 2164, 1151, 1311, 2164, 2164, 1153, 1324, 2164, 2164,
-     1145, 1332, 1143, 1335, 2164, 2164, 1152, 1343, 2164, 1348,
-
-     1354, 1360, 1363, 2164, 2164, 1153, 1371, 1374, 1140, 1129,
-     1135, 1104, 1112, 1104, 1099, 1377, 2164, 1380, 1383, 1390,
-     1126,  174,  158,  280, 1097, 1089, 1397, 1400, 1403, 1091,
-     1086, 1416, 1092, 1419, 1422, 1430, 1436, 1072, 1067, 1069,
-     1056, 1446, 1449, 1452, 1455, 2164, 1458, 1468, 1076, 1472,
-      176,  510, 1053, 1475, 1478, 1485, 1494, 2164, 2164, 1502,
-     1062, 1505, 1508, 2164, 2164, 1521, 2164, 2164, 1040, 1041,
-     1025, 1027, 1529, 1532, 1540, 1545, 1556, 1559, 1481, 2164,
-     2164, 1567,  287,  179, 1572, 1575, 1578, 1591, 2164, 2164,
-     1601, 1604, 1049, 1612, 1617, 1020, 1017,  997,  995, 1628,
-
-      633,  643, 1636,  651,  660, 1644,  670,  675,  412,  283,
-      538, 1652, 1655, 1664, 2164, 2164, 1672, 2164, 2164,  999,
-     1680, 2164, 2164, 1037,  981, 1025,  978,  994,  975,  977,
-      959,  974,  956,  971,  952,  968,  937,  953,  929,  605,
-      281,  434, 1688, 2164, 2164,  942, 2164,  972, 2164,  967,
-      927,  901,  907,  896,  900,  890,  890,  874,  882,  859,
-      867,  856,  611,  614, 1696,  875, 2164, 2164,  855,  820,
-      760,  773,  757,  770,  732,  713,  674,  686,  664,  670,
-     1699, 1702, 1705, 1722,  652,  659,  673,  619,  616,  541,
-      556,  495,  496,  463,  495,  419,  444, 1730, 1733, 1740,
-
-     1750, 1768, 1802,  381,  403, 2164,  399, 2164,  400, 2164,
-      396, 2164,  325, 2164,  319, 2164,  700, 1820,  657,  613,
-     1838, 1872,  274, 2164, 2164, 2164, 2164, 2164, 2164,  660,
-      727,  200,  301,  745,  295, 1760,  254,  726,  218,  202,
-      207, 1794, 1865,  480,  153, 1890, 1786,  738, 2164, 1828,
-     2164, 2164, 1763, 1893,  664,  742,  741,  769,  814,  822,
-      823,  826,  744,  797,  789,  863,  849,  850,  864,  898,
-     1906, 1910, 2164, 2164, 1928, 1935, 1942, 1949, 1956, 1963,
-     1970, 1977, 1984, 1991, 1998, 2005, 2012, 2019, 2024, 2029,
-     2034, 2039, 2044, 2051, 2054, 2057, 2060, 2063, 2066, 2073,
-
-     2077, 2083, 2089, 2095, 2101, 2107, 2114, 2121, 2128, 2135,
-     2142, 2149, 2156
+      183,  186,  201,  204,  207,  210,  226,  278,  245,  248,
+      251,  254,  297,  300,  303,  306,  330,    0,  388,  391,
+      394,  397,  412,  415,  418,  421,  437,  489,  456,  459,
+      541,    0,  462,  465,  598,  600, 2053, 2135, 2135,  269,
+      272,   47,   62, 2135,  321,  172, 2135, 2135, 2033, 2135,
+     2135, 2022, 2135, 2033, 2031,  475, 2135, 2135, 2135, 2135,
+     2027, 2025, 1987,  468, 2135,  324, 1998,    0,  196, 2135,
+
+        8, 1968, 1958, 1952, 1863, 1858,   35, 2135,  481,  600,
+      608,  604,  612,  641, 2135,  509, 1878,    0,  258, 2135,
+     1855, 2135,  515,  660,  663,  682, 2135,  525, 1875,    0,
+      310, 2135, 1854, 1852, 1855, 1834, 1849, 2135,  528,  704,
+      701,  723, 2135,  531, 1869,    0,  407, 2135, 1847, 2135,
+      534,  606, 2135,  626, 1857,    0,  469, 2135, 1831, 1829,
+     1821, 1830, 1814,   32, 2135,  667,  621, 1851, 1820,  671,
+      628, 1784, 2135, 1827, 1818, 2135, 2135, 2135,    2,   44,
+     1781, 1780, 1778, 1814, 1793, 2135,    0, 1787, 1774, 1777,
+     1784, 1784, 1772, 1747, 1752, 1753, 1752, 1748, 1742, 1722,
+
+     1735, 1712, 1715, 1720, 2135,    0, 1713, 1695, 1693, 2135,
+        0,  686, 1670, 1671, 1668, 1660, 1666, 1656, 2135,    0,
+     1661, 1650, 2135,    0, 1652, 1644, 1635, 1646, 1627, 1648,
+     1632, 1626, 1634, 1648, 1646, 1649,  458, 1611, 2135,   72,
+        0, 1606, 1602, 1635, 1633, 1594, 2135, 1607, 1590, 1586,
+     1594, 1592, 1601, 1583, 1567, 1567, 1600,  759,  762, 1577,
+     1564, 1570, 1547, 1559, 1560, 1544,  727,  766,  772, 1534,
+      779,  783, 1545, 1536, 1520, 1519,  791,  795, 1528,  799,
+      802,  808, 1527, 1517, 1517, 1513, 1506, 1496, 1503,  815,
+      819, 1519, 2135, 1521, 2135, 2135,   17, 1488, 2135, 1514,
+
+     1513, 1473, 2135, 2135, 1464, 1475, 1477, 1459, 1490, 1453,
+     1450,  825, 1455, 1443, 1438,  828,  832, 2135,  836, 1449,
+     1442,  845, 1447, 1432,  849, 1437,  853,  856,  864,  871,
+     2135,  874, 1433,  877, 2135, 2135, 1425,  891, 1426, 1421,
+      894,  897, 2135,  900, 1410,  903,  907,  919,  922, 2135,
+      925,  928,  931, 1411, 1406,  947, 1404,  950,  953,  956,
+     2135,  966, 1422,  646,  976, 2135, 2135, 1429, 1427,  959,
+     1419,  979, 1386,  983, 1379,  986,  995, 1374, 1004, 1381,
+     1007,  989, 1379, 1010, 1367, 1013, 1020, 1369, 1024, 2135,
+     2135, 1032, 1357, 1035, 1038, 1054, 1352, 1353, 1347, 1041,
+
+     1062, 1065, 2135, 2135, 1073, 1077, 1080, 1093, 1096, 1333,
+     1325, 1104, 1111, 1334, 1120, 1123, 1131, 1352,  507, 1353,
+     1136, 2135, 1347, 2135, 2135, 1139, 1315, 1142, 1149, 1291,
+     1159, 1162, 1297, 1176, 2135, 2135, 1295, 1170, 1285, 1187,
+     1298, 1195, 1198, 1201, 1275, 1204, 1207, 1212, 1274, 1215,
+     1218, 1231, 2135, 2135, 1282, 1273, 1263, 1239, 2135, 1242,
+     1245, 1249, 2135, 2135, 1258,  124,  125, 1274, 1262, 1266,
+     2135, 2135, 1259, 1274, 2135, 2135, 1282, 1261,  491,  152,
+        5, 2135, 1235, 1285, 2135, 2135, 1234, 1293, 2135, 2135,
+     1227, 1301, 1226, 1304, 2135, 2135, 1235, 1312, 2135, 1317,
+
+     1320, 1323, 1329, 1332, 1335, 2135, 2135, 1236, 1346, 1349,
+     1352, 1223, 1211, 1217, 1204, 1210, 1202, 1187, 1355, 2135,
+     1218,  174,  158,  384, 1188, 1177, 1358, 1365, 1374, 1186,
+     1181, 1382, 1385, 2135, 1388, 1187, 1391, 1395, 1407, 1410,
+     1418, 1175, 1169, 1162, 1141, 1423, 1426, 1429, 1161, 1435,
+      176,  461, 1134, 1445, 1448, 1452, 1464, 2135, 2135, 1472,
+     1151, 1475, 1478, 2135, 2135, 1491, 2135, 2135, 1499, 2135,
+     1128, 1131, 1122, 1120, 1502, 1505, 1518, 1521, 1529, 1534,
+     2135, 1545,  228,  179, 1548, 1551, 1555, 1567, 2135, 2135,
+     1575, 1579, 1143, 1587, 1591, 1113, 1105, 1103, 1101, 1599,
+
+      567,  570, 1607,  582,  626, 1615,  668,  671,  280,  222,
+      643, 1623, 1626, 1635, 2135, 2135, 1643, 2135, 2135, 1101,
+     1651, 2135, 2135, 1142, 1093, 1127, 1077, 1095, 1076, 1084,
+     1066, 1081, 1059, 1074, 1052, 1068, 1049, 1058, 1040,  715,
+      244,  385, 1659, 2135, 2135, 1053, 2135, 1082, 2135, 1078,
+     1026, 1015, 1016, 1006, 1008,  992, 1000,  974,  973,  921,
+      929,  918,  388,  391, 1667,  937, 2135, 2135,  912,  907,
+      889,  902,  861,  851,  835,  848,  832,  830,  792,  776,
+     1670, 1673, 1676, 1693,  753,  714,  746,  695,  712,  666,
+      678,  644,  648,  603,  609,  501,  471, 1701, 1704, 1711,
+
+     1721, 1739, 1773,  408,  429, 2135,  421, 2135,  421, 2135,
+      402, 2135,  402, 2135,  396, 2135,  725, 1791,  675,  506,
+     1809, 1843,  272, 2135, 2135, 2135, 2135, 2135, 2135,  684,
+      706,  200,  311,  731,  260, 1731,  220,  668,  218,  202,
+      207, 1765, 1836,  296,  153, 1861, 1757,  728, 2135, 1799,
+     2135, 2135, 1734, 1864,  439,  709,  753,  773,  806,  807,
+      761,  873,  823,  901,  948, 1031, 1013, 1035, 1014,  929,
+     1877, 1881, 2135, 2135, 1899, 1906, 1913, 1920, 1927, 1934,
+     1941, 1948, 1955, 1962, 1969, 1976, 1983, 1990, 1995, 2000,
+     2005, 2010, 2015, 2022, 2025, 2028, 2031, 2034, 2037, 2044,
+
+     2048, 2054, 2060, 2066, 2072, 2078, 2085, 2092, 2099, 2106,
+     2113, 2120, 2127
     } ;
 
 static yyconst flex_int16_t yy_def[814] =
@@ -649,65 +649,65 @@ static yyconst flex_int16_t yy_def[814] =
       775,  775,  776,  776,  776,  776,  777,  777,  778,  778,
       779,  779,  780,  780,  780,  780,  781,  781,  775,  775,
       774,   21,  782,  782,  782,  782,  775,  775,  782,  782,
-      775,  775,  782,  782,  782,  782,  774,   37,  783,  783,
-      775,  775,  783,  783,  783,  783,  774,   47,  784,  784,
-      785,  785,  786,  786,  775,  775,  786,  786,  786,  786,
-      787,  787,  788,  788,  780,  780,  774,  774,  774,  774,
+      775,  775,  782,  782,  782,  782,  783,  783,  784,  784,
+      775,  775,  784,  784,  784,  784,  774,   47,  785,  785,
+      775,  775,  785,  785,  785,  785,  786,  786,  787,  787,
+      774,   61,  788,  788,  780,  780,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  789,  774,  774,
 
       789,  789,  789,  789,  789,  789,  789,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  790,  774,  774,
-      790,  790,  790,  790,  790,  774,  774,  774,  774,  774,
-      774,  774,  774,  791,  774,  774,  791,  791,  791,  791,
-      791,  791,  774,  774,  774,  774,  774,  774,  792,  774,
-      774,  792,  774,  774,  774,  774,  774,  774,  774,  774,
-      793,  774,  774,  793,  774,  774,  774,  774,  774,  774,
+      790,  774,  774,  774,  774,  774,  774,  774,  774,  791,
+      774,  774,  791,  791,  791,  791,  791,  774,  774,  774,
+      774,  774,  774,  774,  774,  792,  774,  774,  792,  774,
+      774,  774,  774,  774,  774,  793,  774,  774,  793,  793,
+      793,  793,  793,  793,  774,  774,  774,  774,  774,  774,
       794,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  789,  789,  789,  789,
       789,  789,  789,  789,  789,  789,  795,  774,  774,  774,
 
-      774,  774,  774,  774,  774,  790,  790,  790,  790,  790,
-      790,  796,  774,  774,  791,  791,  791,  791,  791,  791,
-      791,  791,  797,  774,  792,  792,  798,  774,  774,  793,
+      774,  774,  774,  774,  774,  790,  790,  796,  774,  774,
+      791,  791,  791,  791,  791,  791,  797,  774,  774,  792,
+      792,  798,  774,  793,  793,  793,  793,  793,  793,  793,
       793,  799,  774,  774,  800,  774,  800,  774,  774,  774,
       801,  774,  774,  774,  774,  774,  774,  774,  789,  789,
       789,  789,  789,  789,  789,  789,  789,  802,  802,  774,
-      774,  774,  774,  774,  774,  774,  774,  774,  790,  790,
-      790,  790,  803,  803,  774,  791,  791,  791,  791,  791,
-      791,  791,  804,  804,  792,  805,  805,  774,  793,  806,
+      774,  774,  774,  774,  774,  774,  790,  803,  803,  774,
+      774,  774,  791,  791,  791,  791,  804,  804,  774,  792,
+      805,  805,  793,  793,  793,  793,  793,  793,  793,  806,
       806,  774,  774,  800,  774,  774,  800,  774,  774,  801,
 
       774,  774,  774,  774,  774,  774,  789,  789,  789,  789,
       789,  789,  789,  789,  789,  774,  802,  774,  802,  774,
-      774,  774,  774,  774,  774,  774,  774,  774,  774,  790,
-      790,  790,  790,  774,  803,  774,  803,  774,  791,  791,
-      791,  791,  791,  791,  791,  774,  804,  774,  804,  774,
-      774,  774,  805,  774,  805,  774,  774,  774,  774,  806,
+      774,  774,  774,  774,  774,  774,  774,  774,  774,  803,
+      774,  803,  774,  774,  774,  774,  791,  791,  791,  791,
+      774,  804,  774,  804,  774,  774,  774,  774,  805,  774,
+      805,  793,  793,  793,  793,  793,  793,  793,  774,  806,
       774,  806,  774,  800,  807,  774,  774,  774,  774,  774,
       789,  789,  789,  789,  789,  774,  774,  789,  789,  789,
-      802,  774,  774,  774,  774,  774,  774,  774,  790,  774,
-      774,  790,  790,  790,  803,  774,  774,  774,  774,  774,
+      802,  774,  774,  774,  774,  774,  774,  774,  774,  774,
+      774,  803,  774,  791,  774,  774,  791,  791,  791,  804,
 
-      791,  791,  774,  774,  791,  774,  774,  804,  774,  774,
-      774,  805,  774,  774,  774,  774,  806,  774,  800,  807,
+      774,  774,  774,  774,  805,  774,  774,  774,  774,  793,
+      793,  774,  774,  793,  774,  774,  806,  774,  800,  807,
       807,  774,  807,  774,  774,  774,  789,  774,  774,  789,
       774,  774,  789,  774,  774,  774,  789,  774,  789,  774,
-      789,  802,  774,  774,  774,  774,  774,  774,  774,  774,
-      774,  774,  790,  790,  790,  774,  774,  774,  774,  774,
-      774,  774,  774,  774,  791,  791,  774,  774,  774,  791,
-      774,  774,  774,  804,  805,  774,  806,  774,  800,  807,
+      789,  802,  774,  774,  774,  774,  774,  803,  774,  774,
+      774,  774,  774,  774,  791,  791,  791,  774,  774,  774,
+      805,  774,  774,  774,  774,  774,  774,  793,  793,  774,
+      774,  774,  793,  774,  774,  774,  806,  774,  800,  807,
       807,  774,  789,  774,  774,  774,  789,  774,  774,  774,
       789,  789,  789,  774,  774,  774,  789,  774,  774,  774,
 
-      774,  774,  774,  774,  774,  790,  790,  790,  774,  774,
-      774,  774,  791,  791,  791,  774,  774,  805,  774,  806,
+      774,  774,  803,  774,  774,  774,  774,  791,  791,  791,
+      805,  774,  774,  774,  774,  793,  793,  793,  774,  774,
       774,  800,  807,  807,  789,  789,  789,  774,  774,  789,
-      789,  774,  790,  774,  774,  774,  774,  774,  774,  774,
-      774,  791,  791,  791,  774,  774,  774,  806,  774,  800,
+      789,  774,  774,  774,  774,  791,  774,  774,  774,  774,
+      805,  774,  774,  774,  774,  793,  793,  793,  774,  800,
       807,  807,  789,  789,  774,  774,  774,  774,  774,  789,
-      789,  790,  774,  774,  774,  774,  774,  774,  774,  774,
+      789,  791,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  800,  807,  807,  789,  774,  774,  774,  774,  774,
       774,  774,  789,  774,  774,  774,  774,  774,  774,  774,
@@ -738,7 +738,7 @@ static yyconst flex_int16_t yy_def[814] =
       774,  774,  774
     } ;
 
-static yyconst flex_int16_t yy_nxt[2224] =
+static yyconst flex_int16_t yy_nxt[2195] =
     {   0,
       774,   70,   71,   70,   70,   71,   70,   70,   71,   70,
        70,   71,   70,   78,  240,   72,   78,   81,   72,   81,
@@ -748,7 +748,7 @@ static yyconst flex_int16_t yy_nxt[2224] =
        89,  171,   86,   88,   84,   85,  189,   89,  241,   86,
        88,   91,   92,   91,   92,  172,  171,   88,   71,   71,
        71,   71,   71,   71,  109,   71,  109,  109,   71,  109,
-      173,  195,   94,  221,  240,   94,  299,  196,  110,  222,
+      173,  195,   94,  230,  240,   94,  299,  196,  110,  231,
       242,  110,   93,  243,   93,   95,   96,   71,   96,   95,
 
        95,   95,   95,   95,   95,   95,   97,   95,   98,   95,
@@ -757,237 +757,234 @@ static yyconst flex_int16_t yy_nxt[2224] =
        98,  101,   98,   98,  102,   98,   98,  103,  104,   98,
        98,   98,  105,   98,   98,   98,   98,   98,   98,   98,
       106,  107,   98,   98,  109,   71,  109,  109,   71,  109,
-       71,   71,   71,   71,   71,   71,  509,  511,  111,  422,
-      749,  111,  510,  512,  112,  422,  174,  112,  109,   71,
+       71,   71,   71,   71,   71,   71,  512,  514,  111,  422,
+      749,  111,  513,  515,  112,  422,  174,  112,  109,   71,
       109,  109,   71,  109,   71,   71,   71,   71,   71,   71,
       173,  295,  110,  422,  551,  110,  422,  550,  113,  523,
 
       174,  113,  109,   71,  109,  109,   71,  109,  109,   71,
       109,  109,   71,  109,  173,  740,  111,  422,  423,  111,
       745,  611,  114,  740,  583,  114,  115,  116,   71,  116,
-      115,  115,  115,  115,  115,  115,  115,  117,  115,  118,
-      115,  119,  115,  120,  115,  118,  118,  118,  118,  118,
-      118,  118,  118,  118,  118,  118,  118,  118,  115,  115,
-      118,  118,  118,  118,  118,  118,  118,  118,  121,  118,
-      118,  122,  118,  123,  118,  118,  118,  124,  118,  118,
-      118,  125,  118,  118,  118,  127,   71,  127,  127,   71,
-      127,   71,   71,   71,   71,   71,   71,  422,  422,  128,
-
-      422,  743,  128,  740,  422,  129,  740,  174,  129,  127,
-       71,  127,  127,   71,  127,  127,   71,  127,  127,   71,
-      127,  173,  737,  128,  610,  641,  128,  729,  664,  130,
-      728,  552,  130,  131,  132,   71,  132,  131,  131,  131,
-      131,  131,  131,  131,  133,  131,  134,  131,  135,  131,
-      136,  131,  134,  134,  134,  134,  134,  134,  134,  134,
-      134,  134,  134,  134,  134,  131,  131,  134,  134,  134,
-      134,  134,  137,  134,  134,  134,  134,  134,  138,  134,
-      134,  139,  134,  134,  140,  141,  142,  134,  134,  134,
-      134,  134,  144,   71,  144,  144,   71,  144,  170,  170,
-
-      170,  170,  170,  170,  727,  726,  145,  725,  724,  145,
-      146,  147,   71,  147,  146,  146,  146,  146,  146,  146,
-      146,  148,  146,  723,  146,  150,  146,  151,  146,  295,
-      154,   71,  154,  154,   71,  154,   71,   71,   71,   71,
-       71,   71,  146,  146,  155,  174,  174,  155,  295,  640,
-      156,  422,  716,  156,  170,  170,  170,  715,  297,  173,
-      173,  152,  146,  147,   71,  147,  146,  146,  146,  146,
-      146,  146,  146,  148,  146,  185,  146,  150,  146,  151,
-      146,  665,  154,   71,  154,  154,   71,  154,  154,   71,
-      154,  154,   71,  154,  146,  146,  155,  295,  174,  155,
-
-      714,  713,  157,  748,  712,  157,  170,  170,  170,  170,
-      170,  170,  173,  152,  158,  159,   71,  159,  158,  158,
-      158,  158,  158,  158,  158,  160,  158,  422,  158,  162,
-      158,  163,  158,  711,  166,   71,  166,  166,   71,  166,
-      170,  170,  170,  170,  170,  170,  158,  158,  167,  174,
-      174,  167,  170,  170,  170,  422,  223,  179,  170,  170,
-      170,  710,  584,  173,  173,  164,  158,  159,   71,  159,
-      158,  158,  158,  158,  158,  158,  158,  160,  158,  709,
-      158,  162,  158,  163,  158,  180,  642,   84,   85,   84,
-       85,  181,   86,  174,   86,  295,  182,  174,  158,  158,
-
-      168,  183,  168,  236,  197,  174,  522,  173,  170,  170,
-      170,  173,  197,  170,  170,  170,  237,  164,  169,  173,
-      169,  732,  295,  198,  708,  204,  174,  198,  295,  199,
-      735,  422,  200,  295,  174,  198,  200,  199,  201,  663,
-      173,  197,  201,  202,  203,  174,  419,  202,  173,  295,
-      201,  681,  232,  174,  682,  202,  198,  707,  199,  173,
-      212,  174,  732,  479,  198,  203,  204,  173,  170,  170,
-      170,  201,  628,  203,  733,  173,  202,  295,  706,  201,
-      174,  295,  630,  198,  202,  204,  629,  212,  174,  738,
-      632,  198,  203,  204,  173,  227,  631,  705,  201,  634,
-
-      203,  757,  173,  213,  633,  704,  201,  174,  697,  636,
-      198,  213,  204,  635,  638,  174,  696,  295,  198,  203,
-      204,  173,  227,  637,  695,  201,  694,  203,  639,  173,
-      202,  730,  732,  228,  170,  170,  170,  198,  202,  204,
-      170,  170,  170,  295,  733,  198,  203,  204,  267,  267,
-      267,  693,  228,  732,  203,  295,  744,  202,  295,  295,
-      201,  295,  735,  268,  753,  202,  316,  316,  316,  316,
-      316,  316,  267,  267,  267,  759,  327,  327,  327,  758,
-      328,  765,  318,  329,  692,  318,  295,  268,  334,  334,
-      334,  334,  334,  334,  346,  346,  346,  346,  346,  346,
-
-      350,  350,  350,  760,  336,  319,  295,  336,  691,  690,
-      348,  689,  688,  348,  295,  351,  352,  352,  352,  352,
-      352,  352,  357,  357,  357,  359,  359,  359,  359,  359,
-      359,  295,  354,  763,  766,  354,  764,  358,  337,  295,
-      295,  361,  767,  295,  361,  376,  376,  376,  349,  316,
-      316,  316,  316,  316,  316,  316,  316,  316,  687,  355,
-      377,  362,  384,  384,  384,  318,  295,  295,  318,  771,
-      761,  318,  387,  387,  387,  327,  327,  327,  762,  328,
-      295,  295,  329,  390,  390,  390,  769,  770,  381,  334,
-      334,  334,  334,  334,  334,  334,  334,  334,  391,  397,
-
-      397,  397,  399,  399,  399,  336,  771,  686,  336,  685,
-      680,  336,  679,  678,  398,  295,  768,  400,  403,  403,
-      403,  406,  406,  406,  346,  346,  346,  677,  676,  395,
-      346,  346,  346,  404,  392,  675,  407,  346,  346,  346,
-      348,  350,  350,  350,  674,  673,  348,  409,  409,  409,
-      672,  410,  671,  348,  411,  670,  351,  352,  352,  352,
-      352,  352,  352,  352,  352,  352,  357,  357,  357,  359,
-      359,  359,  669,  354,  408,  668,  354,  667,  666,  354,
-      662,  358,  414,  414,  414,  361,  415,  661,  660,  416,
-      359,  359,  359,  359,  359,  359,  421,  421,  421,  426,
-
-      426,  426,  659,  658,  412,  657,  361,  656,  655,  361,
-      654,  653,  422,  423,  428,  428,  428,  431,  431,  431,
-      376,  376,  376,  434,  434,  434,  652,  435,  651,  429,
-      436,  650,  432,  649,  648,  377,  438,  438,  438,  316,
-      316,  316,  647,  417,  443,  443,  443,  646,  439,  627,
-      626,  440,  384,  384,  384,  318,  446,  446,  446,  387,
-      387,  387,  448,  448,  448,  390,  390,  390,  450,  450,
-      450,  625,  451,  624,  620,  452,  599,  449,  442,  598,
-      391,  456,  456,  456,  458,  458,  458,  397,  397,  397,
-      597,  459,  459,  459,  596,  460,  593,  457,  461,  399,
-
-      399,  399,  398,  462,  462,  462,  585,  463,  581,  572,
-      464,  403,  403,  403,  400,  467,  467,  467,  571,  468,
-      570,  569,  469,  406,  406,  406,  404,  471,  471,  471,
-      562,  472,  561,  560,  473,  346,  346,  346,  407,  409,
-      409,  409,  554,  410,  553,  549,  411,  352,  352,  352,
-      544,  348,  414,  414,  414,  543,  415,  542,  541,  416,
-      359,  359,  359,  354,  421,  421,  421,  426,  426,  426,
-      428,  428,  428,  431,  431,  431,  361,  484,  484,  484,
-      422,  485,  540,  539,  486,  429,  474,  538,  432,  533,
-      531,  475,  488,  488,  488,  530,  489,  477,  527,  490,
-
-      526,  480,  434,  434,  434,  525,  435,  521,  519,  436,
-      438,  438,  438,  494,  494,  494,  515,  495,  481,  514,
-      496,  498,  498,  498,  513,  440,  443,  443,  443,  500,
-      500,  500,  446,  446,  446,  508,  507,  499,  502,  502,
-      502,  448,  448,  448,  503,  503,  503,  506,  504,  501,
-      497,  505,  493,  450,  450,  450,  449,  451,  492,  491,
-      452,  456,  456,  456,  458,  458,  458,  459,  459,  459,
-      487,  460,  483,  482,  461,  422,  478,  457,  462,  462,
-      462,  476,  463,  470,  466,  464,  467,  467,  467,  465,
-      468,  455,  454,  469,  471,  471,  471,  453,  472,  447,
-
-      445,  473,  516,  516,  516,  352,  352,  352,  359,  359,
-      359,  444,  484,  484,  484,  441,  485,  437,  517,  486,
-      433,  354,  430,  427,  361,  488,  488,  488,  425,  489,
-      424,  418,  490,  528,  528,  528,  494,  494,  494,  413,
-      495,  518,  405,  496,  498,  498,  498,  402,  529,  500,
-      500,  500,  401,  396,  520,  532,  532,  532,  394,  393,
-      499,  502,  502,  502,  503,  503,  503,  389,  504,  388,
-      386,  505,  534,  534,  534,  536,  536,  536,  516,  516,
-      516,  545,  545,  545,  547,  547,  547,  535,  385,  383,
-      537,  359,  359,  359,  517,  382,  380,  546,  555,  555,
-
-      555,  528,  528,  528,  557,  557,  557,  361,  558,  379,
-      378,  559,  375,  556,  374,  373,  529,  532,  532,  532,
-      534,  534,  534,  563,  563,  563,  372,  564,  371,  370,
-      565,  536,  536,  536,  369,  535,  368,  566,  566,  566,
-      367,  567,  366,  548,  568,  365,  537,  573,  573,  573,
-      575,  575,  575,  577,  577,  577,  545,  545,  545,  547,
-      547,  547,  574,  295,  363,  576,  356,  345,  578,  579,
-      579,  579,  546,  582,  582,  582,  586,  586,  586,  555,
-      555,  555,  579,  579,  579,  580,  588,  588,  588,  295,
-      589,  587,  344,  590,  556,  557,  557,  557,  580,  558,
-
-      343,  342,  559,  591,  591,  591,  594,  594,  594,  563,
-      563,  563,  341,  564,  340,  339,  565,  338,  592,  333,
-      332,  595,  566,  566,  566,  331,  567,  330,  326,  568,
-      573,  573,  573,  600,  600,  600,  325,  601,  324,  323,
-      602,  575,  575,  575,  322,  574,  603,  603,  603,  321,
-      604,  320,  315,  605,  314,  313,  576,  577,  577,  577,
-      606,  606,  606,  312,  607,  311,  310,  608,  582,  582,
-      582,  309,  578,  612,  612,  612,  586,  586,  586,  614,
-      614,  614,  308,  615,  295,  307,  616,  306,  613,  305,
-      304,  587,  588,  588,  588,  303,  589,  302,  301,  590,
-
-      298,  609,  591,  591,  591,  617,  617,  617,  296,  618,
-      295,  293,  619,  594,  594,  594,  292,  592,  621,  621,
-      621,  291,  622,  289,  288,  623,  287,  285,  595,  600,
-      600,  600,  284,  601,  282,  281,  602,  603,  603,  603,
-      280,  604,  279,  278,  605,  606,  606,  606,  277,  607,
-      276,  275,  608,  612,  612,  612,  643,  643,  643,  274,
-      644,  272,  271,  645,  270,  614,  614,  614,  613,  615,
-      269,  266,  616,  617,  617,  617,  265,  618,  264,  263,
-      619,  621,  621,  621,  262,  622,  261,  260,  623,  643,
-      643,  643,  259,  644,  257,  256,  645,  683,  683,  683,
-
-      698,  698,  698,  699,  699,  699,  683,  683,  683,  255,
-      254,  253,  684,  422,  252,  251,  295,  250,  700,  422,
-      249,  684,  422,  701,  701,  701,  248,  702,  247,  246,
-      703,  698,  698,  698,  699,  699,  699,  245,  244,  422,
-      239,  718,  718,  718,  236,  719,  238,  295,  720,  700,
-      422,  701,  701,  701,  234,  702,  233,  422,  703,  717,
-      231,  742,  742,  742,  754,  754,  754,  422,  420,  420,
-      420,  420,  420,  420,  420,  420,  420,  422,  423,  420,
-      295,  229,  420,  420,  420,  422,  420,  750,  750,  750,
-      226,  751,  224,  220,  752,  742,  742,  742,  219,  218,
-
-      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-      420,  422,  217,  420,  216,  214,  420,  420,  420,  422,
-      420,  718,  718,  718,  211,  719,  210,  209,  720,  750,
-      750,  750,  480,  751,  420,  420,  752,  422,  420,  420,
-      420,  420,  420,  736,  420,  420,  420,  208,  207,  420,
-      205,  194,  420,  420,  420,  422,  420,  193,  192,  191,
-      190,  186,  184,  178,  177,  178,  746,  746,  746,  177,
-      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
-      736,  747,  176,  420,  175,  774,  420,  420,  420,  422,
-      420,  746,  746,  746,  754,  754,  754,  774,  755,  774,
-
-      774,  756,  774,  774,  420,  420,  747,  772,  772,  772,
-      295,  772,  772,  772,  774,  774,  774,  774,  774,  774,
-      774,  774,  774,  773,  774,  774,  774,  773,   68,   68,
-       68,   68,   68,   68,   68,   69,   69,   69,   69,   69,
-       69,   69,   74,   74,   74,   74,   74,   74,   74,   77,
-       77,   77,   77,   77,   77,   77,   80,   80,   80,   80,
-       80,   80,   80,   83,   83,   83,   83,   83,   83,   83,
-       90,   90,   90,   90,   90,   90,   90,  108,  108,  108,
-      108,  108,  108,  108,  126,  126,  126,  126,  126,  126,
-      126,  143,  143,  143,  143,  143,  143,  143,  149,  149,
-
-      149,  149,  149,  149,  149,  153,  153,  153,  153,  153,
-      153,  153,  161,  161,  161,  161,  161,  161,  161,  165,
-      165,  165,  165,  165,  165,  165,  187,  187,  187,  774,
-      187,  206,  206,  206,  774,  206,  215,  215,  215,  774,
-      215,  225,  225,  225,  774,  225,  230,  230,  230,  774,
-      230,  235,  235,  235,  235,  235,  774,  235,  258,  774,
-      258,  273,  774,  273,  283,  774,  283,  286,  774,  286,
-      290,  774,  290,  294,  294,  294,  294,  294,  294,  294,
-      300,  774,  774,  300,  317,  317,  317,  317,  317,  317,
-      335,  335,  335,  335,  335,  335,  347,  347,  347,  347,
-
-      347,  347,  353,  353,  353,  353,  353,  353,  360,  360,
-      360,  360,  360,  360,  420,  420,  420,  420,  420,  420,
-      420,  721,  721,  721,  721,  721,  721,  721,  722,  722,
-      722,  722,  722,  722,  722,  731,  731,  731,  731,  731,
-      731,  731,  734,  734,  734,  734,  734,  734,  734,  739,
-      739,  739,  739,  739,  739,  739,  741,  741,  741,  741,
-      741,  741,  741,   67,  774,  774,  774,  774,  774,  774,
+      115,  115,  115,  115,  115,  115,  115,  117,  115,  422,
+      115,  119,  115,  120,  115,  422,  123,   71,  123,  123,
+       71,  123,   71,   71,   71,   71,   71,   71,  115,  115,
+      124,  422,  174,  124,  641,  610,  125,  743,  740,  125,
+      170,  170,  170,  170,  170,  170,  173,  121,  115,  116,
+       71,  116,  115,  115,  115,  115,  115,  115,  115,  117,
+      115,  664,  115,  119,  115,  120,  115,  295,  123,   71,
+
+      123,  123,   71,  123,  123,   71,  123,  123,   71,  123,
+      115,  115,  124,  295,  174,  124,  740,  640,  126,  748,
+      737,  126,  170,  170,  170,  170,  170,  170,  173,  121,
+      127,  128,   71,  128,  127,  127,  127,  127,  127,  127,
+      127,  129,  127,  130,  127,  131,  127,  132,  127,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  127,  127,  130,  130,  130,  130,  130,  130,
+      130,  130,  133,  130,  130,  134,  130,  135,  130,  130,
+      130,  136,  130,  130,  130,  137,  130,  130,  130,  139,
+       71,  139,  139,   71,  139,   71,   71,   71,   71,   71,
+
+       71,  422,  422,  140,  729,  295,  140,  728,  422,  141,
+      727,  174,  141,  139,   71,  139,  139,   71,  139,  139,
+       71,  139,  139,   71,  139,  173,  726,  140,  681,  725,
+      140,  682,  665,  142,  724,  552,  142,  143,  144,   71,
+      144,  143,  143,  143,  143,  143,  143,  143,  145,  143,
+      723,  143,  147,  143,  148,  143,  295,  151,   71,  151,
+      151,   71,  151,  166,   71,  166,  166,   71,  166,  143,
+      143,  152,  174,  174,  152,  295,  757,  167,  422,  716,
+      167,  179,  170,  170,  170,  297,  173,  173,  149,  143,
+      144,   71,  144,  143,  143,  143,  143,  143,  143,  143,
+
+      145,  143,  185,  143,  147,  143,  148,  143,  295,  180,
+      170,  170,  170,  584,  732,  181,  170,  170,  170,  522,
+      182,  143,  143,  735,  295,  183,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  479,  715,
+      149,  153,  154,   71,  154,  153,  153,  153,  153,  153,
+      153,  153,  155,  153,  156,  153,  157,  153,  158,  153,
+      156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
+      156,  156,  156,  153,  153,  156,  156,  156,  156,  156,
+      159,  156,  156,  156,  156,  156,  160,  156,  156,  161,
+      156,  156,  162,  163,  164,  156,  156,  156,  156,  156,
+
+       84,   85,   84,   85,  174,   86,  628,   86,  174,  630,
+      174,  197,  174,  168,  714,  168,  174,  222,  173,  197,
+      629,  632,  173,  631,  173,  174,  173,  170,  170,  170,
+      173,  169,  232,  169,  198,  633,  199,  236,  198,  173,
+      204,  713,  198,  200,  199,  174,  198,  200,  199,  201,
+      237,  203,  197,  201,  202,  203,  712,  201,  202,  173,
+      422,  201,  202,  295,  174,  634,  202,  174,  170,  170,
+      170,  208,  170,  170,  170,  198,  419,  204,  173,  635,
+      732,  173,  711,  710,  203,  295,  174,  271,  271,  271,
+      201,  642,  733,  208,  198,  202,  204,  198,  744,  204,
+
+      173,  295,  272,  203,  709,  174,  203,  636,  174,  209,
+      638,  732,  209,  738,  202,  217,  198,  202,  204,  173,
+      708,  637,  173,  733,  639,  203,  295,  174,  327,  327,
+      327,  201,  295,  707,  217,  198,  202,  204,  198,  732,
+      204,  173,  295,  328,  203,  295,  758,  203,  735,  663,
+      201,  706,  705,  201,  753,  218,  730,  198,  218,  204,
+      316,  316,  316,  316,  316,  316,  203,  329,  329,  329,
+      295,  763,  201,  329,  329,  329,  318,  202,  295,  318,
+      271,  271,  271,  331,  334,  334,  334,  759,  335,  331,
+      295,  336,  341,  341,  341,  272,  341,  341,  341,  319,
+
+      346,  346,  346,  348,  348,  348,  704,  760,  343,  348,
+      348,  348,  343,  332,  697,  347,  359,  359,  359,  350,
+      359,  359,  359,  295,  295,  350,  376,  376,  376,  316,
+      316,  316,  361,  316,  316,  316,  361,  316,  316,  316,
+      295,  377,  351,  344,  696,  318,  384,  384,  384,  318,
+      387,  387,  387,  318,  327,  327,  327,  389,  389,  389,
+      765,  390,  761,  762,  391,  329,  329,  329,  695,  328,
+      381,  362,  329,  329,  329,  329,  329,  329,  334,  334,
+      334,  331,  335,  764,  694,  336,  693,  692,  331,  691,
+      295,  331,  395,  395,  395,  341,  341,  341,  341,  341,
+
+      341,  341,  341,  341,  346,  346,  346,  396,  402,  402,
+      402,  343,  403,  690,  343,  404,  392,  343,  295,  347,
+      348,  348,  348,  348,  348,  348,  348,  348,  348,  406,
+      406,  406,  408,  408,  408,  400,  350,  771,  766,  350,
+      689,  688,  350,  397,  407,  687,  295,  409,  412,  412,
+      412,  415,  415,  415,  359,  359,  359,  359,  359,  359,
+      426,  426,  426,  413,  686,  295,  416,  359,  359,  359,
+      361,  685,  680,  361,  679,  678,  405,  421,  421,  421,
+      428,  428,  428,  361,  431,  431,  431,  376,  376,  376,
+      443,  443,  443,  422,  423,  429,  434,  434,  434,  432,
+
+      435,  767,  377,  436,  417,  438,  438,  438,  316,  316,
+      316,  384,  384,  384,  446,  446,  446,  439,  677,  771,
+      440,  387,  387,  387,  318,  389,  389,  389,  676,  390,
+      295,  295,  391,  329,  329,  329,  450,  450,  450,  395,
+      395,  395,  458,  458,  458,  675,  674,  442,  295,  331,
+      769,  451,  295,  673,  396,  452,  452,  452,  459,  453,
+      672,  671,  454,  460,  460,  460,  402,  402,  402,  670,
+      403,  669,  770,  404,  348,  348,  348,  448,  406,  406,
+      406,  462,  462,  462,  768,  463,  668,  667,  464,  666,
+      350,  662,  661,  407,  408,  408,  408,  465,  465,  465,
+
+      660,  466,  659,  658,  467,  412,  412,  412,  657,  409,
+      656,  461,  470,  470,  470,  655,  471,  654,  653,  472,
+      413,  415,  415,  415,  474,  474,  474,  652,  475,  651,
+      650,  476,  359,  359,  359,  649,  416,  421,  421,  421,
+      426,  426,  426,  428,  428,  428,  648,  647,  361,  646,
+      484,  484,  484,  422,  485,  627,  626,  486,  429,  625,
+      431,  431,  431,  488,  488,  488,  624,  489,  620,  599,
+      490,  438,  438,  438,  480,  432,  598,  434,  434,  434,
+      597,  435,  596,  477,  436,  593,  440,  585,  494,  494,
+      494,  481,  495,  581,  574,  496,  498,  498,  498,  443,
+
+      443,  443,  500,  500,  500,  446,  446,  446,  502,  502,
+      502,  573,  499,  329,  329,  329,  450,  450,  450,  505,
+      505,  505,  572,  506,  571,  562,  507,  561,  560,  331,
+      554,  451,  452,  452,  452,  553,  453,  549,  548,  454,
+      458,  458,  458,  460,  460,  460,  348,  348,  348,  503,
+      462,  462,  462,  547,  463,  546,  459,  464,  545,  465,
+      465,  465,  350,  466,  544,  543,  467,  470,  470,  470,
+      542,  471,  536,  531,  472,  474,  474,  474,  530,  475,
+      527,  526,  476,  519,  519,  519,  484,  484,  484,  525,
+      485,  521,  511,  486,  488,  488,  488,  518,  489,  520,
+
+      517,  490,  528,  528,  528,  494,  494,  494,  516,  495,
+      510,  509,  496,  498,  498,  498,  508,  529,  500,  500,
+      500,  532,  532,  532,  502,  502,  502,  504,  501,  499,
+      533,  533,  533,  535,  535,  535,  505,  505,  505,  497,
+      506,  493,  492,  507,  491,  487,  534,  537,  537,  537,
+      539,  539,  539,  348,  348,  348,  519,  519,  519,  555,
+      555,  555,  538,  483,  482,  540,  528,  528,  528,  350,
+      422,  478,  520,  473,  556,  557,  557,  557,  469,  558,
+      468,  529,  559,  532,  532,  532,  533,  533,  533,  535,
+      535,  535,  537,  537,  537,  457,  563,  563,  563,  456,
+
+      564,  455,  534,  565,  449,  541,  447,  538,  539,  539,
+      539,  566,  566,  566,  445,  567,  444,  441,  568,  569,
+      569,  569,  437,  540,  575,  575,  575,  577,  577,  577,
+      579,  579,  579,  433,  430,  570,  582,  582,  582,  576,
+      427,  425,  578,  424,  418,  580,  586,  586,  586,  555,
+      555,  555,  295,  588,  588,  588,  414,  589,  411,  410,
+      590,  587,  401,  399,  556,  557,  557,  557,  398,  558,
+      394,  393,  559,  591,  591,  591,  594,  594,  594,  563,
+      563,  563,  388,  564,  386,  385,  565,  383,  592,  382,
+      380,  595,  566,  566,  566,  379,  567,  378,  375,  568,
+
+      569,  569,  569,  575,  575,  575,  600,  600,  600,  374,
+      601,  373,  372,  602,  371,  370,  570,  369,  576,  577,
+      577,  577,  603,  603,  603,  368,  604,  367,  366,  605,
+      579,  579,  579,  365,  578,  606,  606,  606,  295,  607,
+      363,  358,  608,  357,  356,  580,  582,  582,  582,  612,
+      612,  612,  586,  586,  586,  355,  614,  614,  614,  354,
+      615,  353,  295,  616,  613,  352,  345,  587,  588,  588,
+      588,  340,  589,  339,  338,  590,  591,  591,  591,  609,
+      617,  617,  617,  337,  618,  333,  326,  619,  594,  594,
+      594,  592,  621,  621,  621,  325,  622,  324,  323,  623,
+
+      600,  600,  600,  595,  601,  322,  321,  602,  603,  603,
+      603,  320,  604,  315,  314,  605,  606,  606,  606,  313,
+      607,  312,  311,  608,  612,  612,  612,  643,  643,  643,
+      310,  644,  309,  308,  645,  307,  614,  614,  614,  613,
+      615,  306,  305,  616,  617,  617,  617,  304,  618,  303,
+      302,  619,  621,  621,  621,  301,  622,  298,  296,  623,
+      643,  643,  643,  295,  644,  293,  292,  645,  683,  683,
+      683,  698,  698,  698,  699,  699,  699,  683,  683,  683,
+      291,  289,  288,  684,  422,  287,  286,  295,  285,  700,
+      422,  284,  684,  422,  701,  701,  701,  283,  702,  282,
+
+      280,  703,  698,  698,  698,  699,  699,  699,  279,  278,
+      422,  276,  718,  718,  718,  275,  719,  274,  295,  720,
+      700,  422,  701,  701,  701,  273,  702,  270,  422,  703,
+      717,  269,  742,  742,  742,  754,  754,  754,  422,  420,
+      420,  420,  420,  420,  420,  420,  420,  420,  422,  423,
+      420,  295,  267,  420,  420,  420,  422,  420,  750,  750,
+      750,  266,  751,  265,  264,  752,  742,  742,  742,  263,
+      262,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  420,  422,  261,  420,  260,  259,  420,  420,  420,
+      422,  420,  718,  718,  718,  257,  719,  256,  255,  720,
+
+      750,  750,  750,  480,  751,  420,  420,  752,  422,  420,
+      420,  420,  420,  420,  736,  420,  420,  420,  254,  253,
+      420,  252,  251,  420,  420,  420,  422,  420,  250,  249,
+      248,  247,  246,  245,  244,  239,  236,  746,  746,  746,
+      238,  420,  420,  420,  420,  420,  420,  420,  420,  420,
+      420,  736,  747,  234,  420,  233,  229,  420,  420,  420,
+      422,  420,  746,  746,  746,  754,  754,  754,  228,  755,
+      227,  226,  756,  225,  223,  420,  420,  747,  772,  772,
+      772,  295,  772,  772,  772,  221,  219,  216,  215,  214,
+      213,  212,  210,  207,  773,  205,  194,  193,  773,   68,
+
+       68,   68,   68,   68,   68,   68,   69,   69,   69,   69,
+       69,   69,   69,   74,   74,   74,   74,   74,   74,   74,
+       77,   77,   77,   77,   77,   77,   77,   80,   80,   80,
+       80,   80,   80,   80,   83,   83,   83,   83,   83,   83,
+       83,   90,   90,   90,   90,   90,   90,   90,  108,  108,
+      108,  108,  108,  108,  108,  118,  118,  118,  118,  118,
+      118,  118,  122,  122,  122,  122,  122,  122,  122,  138,
+      138,  138,  138,  138,  138,  138,  146,  146,  146,  146,
+      146,  146,  146,  150,  150,  150,  150,  150,  150,  150,
+      165,  165,  165,  165,  165,  165,  165,  187,  187,  187,
+
+      192,  187,  206,  206,  206,  191,  206,  211,  211,  211,
+      190,  211,  220,  220,  220,  186,  220,  224,  224,  224,
+      184,  224,  235,  235,  235,  235,  235,  178,  235,  258,
+      177,  258,  268,  178,  268,  277,  177,  277,  281,  176,
+      281,  290,  175,  290,  294,  294,  294,  294,  294,  294,
+      294,  300,  774,  774,  300,  317,  317,  317,  317,  317,
+      317,  330,  330,  330,  330,  330,  330,  342,  342,  342,
+      342,  342,  342,  349,  349,  349,  349,  349,  349,  360,
+      360,  360,  360,  360,  360,  420,  420,  420,  420,  420,
+      420,  420,  721,  721,  721,  721,  721,  721,  721,  722,
+
+      722,  722,  722,  722,  722,  722,  731,  731,  731,  731,
+      731,  731,  731,  734,  734,  734,  734,  734,  734,  734,
+      739,  739,  739,  739,  739,  739,  739,  741,  741,  741,
+      741,  741,  741,  741,   67,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-      774,  774,  774
+      774,  774,  774,  774
+
     } ;
 
-static yyconst flex_int16_t yy_chk[2224] =
+static yyconst flex_int16_t yy_chk[2195] =
     {   0,
         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
         6,    6,    6,    9,  179,    3,   10,   11,    4,   12,
@@ -997,7 +994,7 @@ static yyconst flex_int16_t yy_chk[2224] =
        15,   72,   15,   14,   16,   16,  101,   16,  179,   16,
        15,   17,   17,   18,   18,   72,   73,   16,   19,   19,
        19,   20,   20,   20,   23,   23,   23,   24,   24,   24,
-       73,  107,   19,  142,  240,   20,  240,  107,   23,  142,
+       73,  107,   19,  164,  240,   20,  240,  107,   23,  164,
       180,   24,   17,  180,   18,   21,   21,   21,   21,   21,
 
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
@@ -1006,246 +1003,243 @@ static yyconst flex_int16_t yy_chk[2224] =
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
        21,   21,   21,   21,   25,   25,   25,   26,   26,   26,
-       27,   27,   27,   28,   28,   28,  463,  464,   25,  480,
-      745,   26,  463,  464,   27,  523,   76,   28,   29,   29,
+       27,   27,   27,   28,   28,   28,  466,  467,   25,  480,
+      745,   26,  466,  467,   27,  523,   76,   28,   29,   29,
        29,   30,   30,   30,   31,   31,   31,   32,   32,   32,
        76,  522,   29,  551,  523,   30,  584,  522,   31,  480,
 
        99,   32,   33,   33,   33,   34,   34,   34,   35,   35,
        35,   36,   36,   36,   99,  741,   33,  732,  732,   34,
       740,  584,   35,  739,  551,   36,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
-       37,   37,   37,   37,   37,   39,   39,   39,   40,   40,
-       40,   41,   41,   41,   42,   42,   42,  524,  641,   39,
-
-      610,  737,   40,  735,  583,   41,  733,  119,   42,   43,
-       43,   43,   44,   44,   44,   45,   45,   45,   46,   46,
-       46,  119,  723,   43,  583,  610,   44,  715,  641,   45,
-      713,  524,   46,   47,   47,   47,   47,   47,   47,   47,
+       37,   37,   37,   37,   37,   37,   37,   37,   37,  610,
+       37,   37,   37,   37,   37,  583,   39,   39,   39,   40,
+       40,   40,   41,   41,   41,   42,   42,   42,   37,   37,
+       39,  641,  119,   40,  610,  583,   41,  737,  735,   42,
+       70,   70,   70,   71,   71,   71,  119,   37,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,  641,   38,   38,   38,   38,   38,  609,   43,   43,
+
+       43,   44,   44,   44,   45,   45,   45,   46,   46,   46,
+       38,   38,   43,  744,  131,   44,  733,  609,   45,  744,
+      723,   46,   75,   75,   75,   96,   96,   96,  131,   38,
        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
-       47,   47,   49,   49,   49,   50,   50,   50,   70,   70,
-
-       70,   71,   71,   71,  711,  709,   49,  707,  705,   50,
-       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
-       51,   51,   51,  704,   51,   51,   51,   51,   51,  609,
-       53,   53,   53,   54,   54,   54,   55,   55,   55,   56,
-       56,   56,   51,   51,   53,   94,  135,   54,  237,  609,
-       55,  642,  697,   56,   75,   75,   75,  696,  237,   94,
-      135,   51,   52,   52,   52,   52,   52,   52,   52,   52,
-       52,   52,   52,   52,   52,   94,   52,   52,   52,   52,
-       52,  642,   57,   57,   57,   58,   58,   58,   59,   59,
-       59,   60,   60,   60,   52,   52,   57,  744,  150,   58,
-
-      695,  694,   59,  744,  693,   60,   96,   96,   96,  109,
-      109,  109,  150,   52,   61,   61,   61,   61,   61,   61,
-       61,   61,   61,   61,   61,   61,   61,  552,   61,   61,
-       61,   61,   61,  692,   63,   63,   63,   64,   64,   64,
-      116,  116,  116,  127,  127,  127,   61,   61,   63,  145,
-      162,   64,  132,  132,  132,  611,  145,   86,  144,  144,
-      144,  691,  552,  145,  162,   61,   62,   62,   62,   62,
-       62,   62,   62,   62,   62,   62,   62,   62,   62,  690,
-       62,   62,   62,   62,   62,   86,  611,   65,   65,   66,
-       66,   86,   65,  112,   66,  479,   86,  110,   62,   62,
-
-       65,   86,   66,  171,  110,  111,  479,  112,  147,  147,
-      147,  110,  111,  154,  154,  154,  171,   62,   65,  111,
-       66,  720,  640,  112,  689,  112,  113,  110,  663,  110,
-      720,  664,  112,  364,  114,  111,  110,  111,  112,  640,
-      113,  114,  110,  112,  111,  167,  364,  110,  114,  419,
-      111,  663,  167,  128,  664,  111,  113,  688,  113,  167,
-      128,  129,  719,  419,  114,  113,  114,  128,  159,  159,
-      159,  113,  601,  114,  719,  129,  113,  730,  687,  114,
-      130,  755,  602,  128,  114,  128,  601,  130,  155,  730,
-      604,  129,  128,  129,  130,  155,  602,  686,  128,  605,
-
-      129,  755,  155,  128,  604,  685,  129,  156,  680,  607,
-      130,  129,  130,  605,  608,  157,  679,  717,  155,  130,
-      155,  156,  157,  607,  678,  130,  677,  155,  608,  157,
-      130,  717,  731,  155,  166,  166,  166,  156,  155,  156,
-      170,  170,  170,  738,  731,  157,  156,  157,  207,  207,
-      207,  676,  156,  734,  157,  748,  738,  156,  757,  756,
-      157,  763,  734,  207,  748,  157,  258,  258,  258,  259,
-      259,  259,  267,  267,  267,  757,  268,  268,  268,  756,
-      268,  763,  258,  268,  675,  259,  758,  267,  273,  273,
-      273,  274,  274,  274,  283,  283,  283,  284,  284,  284,
-
-      285,  285,  285,  758,  273,  259,  765,  274,  674,  673,
-      283,  672,  671,  284,  764,  285,  286,  286,  286,  287,
-      287,  287,  289,  289,  289,  290,  290,  290,  291,  291,
-      291,  759,  286,  761,  764,  287,  762,  289,  274,  760,
-      761,  290,  765,  762,  291,  312,  312,  312,  284,  316,
-      316,  316,  317,  317,  317,  319,  319,  319,  670,  287,
-      312,  291,  322,  322,  322,  316,  767,  768,  317,  769,
-      759,  319,  325,  325,  325,  327,  327,  327,  760,  327,
-      766,  769,  327,  331,  331,  331,  767,  768,  319,  334,
-      334,  334,  335,  335,  335,  337,  337,  337,  331,  339,
-
-      339,  339,  340,  340,  340,  334,  770,  669,  335,  666,
-      662,  337,  661,  660,  339,  770,  766,  340,  343,  343,
-      343,  345,  345,  345,  346,  346,  346,  659,  658,  337,
-      347,  347,  347,  343,  331,  657,  345,  349,  349,  349,
-      346,  350,  350,  350,  656,  655,  347,  351,  351,  351,
-      654,  351,  653,  349,  351,  652,  350,  352,  352,  352,
-      353,  353,  353,  355,  355,  355,  357,  357,  357,  359,
-      359,  359,  651,  352,  349,  650,  353,  648,  646,  355,
-      639,  357,  358,  358,  358,  359,  358,  638,  637,  358,
-      360,  360,  360,  362,  362,  362,  365,  365,  365,  370,
-
-      370,  370,  636,  635,  355,  634,  360,  633,  632,  362,
-      631,  630,  365,  365,  372,  372,  372,  374,  374,  374,
-      376,  376,  376,  377,  377,  377,  629,  377,  628,  372,
-      377,  627,  374,  626,  625,  376,  379,  379,  379,  381,
-      381,  381,  624,  362,  382,  382,  382,  620,  379,  599,
-      598,  379,  384,  384,  384,  381,  386,  386,  386,  387,
-      387,  387,  389,  389,  389,  390,  390,  390,  391,  391,
-      391,  597,  391,  596,  593,  391,  572,  389,  381,  571,
-      390,  395,  395,  395,  396,  396,  396,  397,  397,  397,
-      570,  398,  398,  398,  569,  398,  561,  395,  398,  399,
-
-      399,  399,  397,  400,  400,  400,  553,  400,  549,  541,
-      400,  403,  403,  403,  399,  404,  404,  404,  540,  404,
-      539,  538,  404,  406,  406,  406,  403,  407,  407,  407,
-      533,  407,  531,  530,  407,  408,  408,  408,  406,  409,
-      409,  409,  526,  409,  525,  521,  409,  412,  412,  412,
-      515,  408,  414,  414,  414,  514,  414,  513,  512,  414,
-      417,  417,  417,  412,  421,  421,  421,  426,  426,  426,
-      428,  428,  428,  431,  431,  431,  417,  429,  429,  429,
-      421,  429,  511,  510,  429,  428,  408,  509,  431,  506,
-      497,  412,  432,  432,  432,  493,  432,  417,  491,  432,
-
-      487,  421,  434,  434,  434,  483,  434,  478,  476,  434,
-      438,  438,  438,  440,  440,  440,  470,  440,  421,  466,
-      440,  442,  442,  442,  465,  438,  443,  443,  443,  444,
-      444,  444,  446,  446,  446,  455,  454,  442,  447,  447,
-      447,  448,  448,  448,  449,  449,  449,  453,  449,  445,
-      441,  449,  439,  450,  450,  450,  448,  450,  437,  433,
-      450,  456,  456,  456,  458,  458,  458,  459,  459,  459,
-      430,  459,  427,  423,  459,  420,  418,  456,  462,  462,
-      462,  413,  462,  405,  402,  462,  467,  467,  467,  401,
-      467,  394,  393,  467,  471,  471,  471,  392,  471,  388,
-
-      385,  471,  474,  474,  474,  475,  475,  475,  477,  477,
-      477,  383,  484,  484,  484,  380,  484,  378,  474,  484,
-      375,  475,  373,  371,  477,  488,  488,  488,  369,  488,
-      368,  363,  488,  492,  492,  492,  494,  494,  494,  356,
-      494,  475,  344,  494,  498,  498,  498,  342,  492,  500,
-      500,  500,  341,  338,  477,  501,  501,  501,  333,  332,
-      498,  502,  502,  502,  503,  503,  503,  330,  503,  326,
-      324,  503,  507,  507,  507,  508,  508,  508,  516,  516,
-      516,  518,  518,  518,  519,  519,  519,  507,  323,  321,
-      508,  520,  520,  520,  516,  320,  315,  518,  527,  527,
-
-      527,  528,  528,  528,  529,  529,  529,  520,  529,  314,
-      313,  529,  311,  527,  310,  309,  528,  532,  532,  532,
-      534,  534,  534,  535,  535,  535,  308,  535,  307,  306,
-      535,  536,  536,  536,  305,  534,  302,  537,  537,  537,
-      301,  537,  300,  520,  537,  298,  536,  542,  542,  542,
-      543,  543,  543,  544,  544,  544,  545,  545,  545,  547,
-      547,  547,  542,  294,  292,  543,  288,  282,  544,  548,
-      548,  548,  545,  550,  550,  550,  554,  554,  554,  555,
-      555,  555,  579,  579,  579,  548,  556,  556,  556,  550,
-      556,  554,  281,  556,  555,  557,  557,  557,  579,  557,
-
-      280,  279,  557,  560,  560,  560,  562,  562,  562,  563,
-      563,  563,  278,  563,  277,  276,  563,  275,  560,  272,
-      271,  562,  566,  566,  566,  270,  566,  269,  266,  566,
-      573,  573,  573,  574,  574,  574,  265,  574,  264,  263,
-      574,  575,  575,  575,  262,  573,  576,  576,  576,  261,
-      576,  260,  257,  576,  256,  255,  575,  577,  577,  577,
-      578,  578,  578,  254,  578,  253,  252,  578,  582,  582,
-      582,  251,  577,  585,  585,  585,  586,  586,  586,  587,
-      587,  587,  250,  587,  582,  249,  587,  248,  585,  246,
-      245,  586,  588,  588,  588,  244,  588,  243,  242,  588,
-
-      238,  582,  591,  591,  591,  592,  592,  592,  236,  592,
-      235,  234,  592,  594,  594,  594,  233,  591,  595,  595,
-      595,  232,  595,  231,  228,  595,  227,  226,  594,  600,
-      600,  600,  223,  600,  222,  221,  600,  603,  603,  603,
-      220,  603,  219,  218,  603,  606,  606,  606,  217,  606,
-      216,  213,  606,  612,  612,  612,  613,  613,  613,  212,
-      613,  211,  210,  613,  209,  614,  614,  614,  612,  614,
-      208,  204,  614,  617,  617,  617,  203,  617,  202,  201,
-      617,  621,  621,  621,  200,  621,  199,  198,  621,  643,
-      643,  643,  197,  643,  196,  195,  643,  665,  665,  665,
-
-      681,  681,  681,  682,  682,  682,  683,  683,  683,  194,
-      193,  192,  665,  665,  191,  190,  681,  189,  682,  682,
-      188,  683,  683,  684,  684,  684,  185,  684,  184,  183,
-      684,  698,  698,  698,  699,  699,  699,  182,  181,  684,
-      175,  700,  700,  700,  174,  700,  172,  698,  700,  699,
-      699,  701,  701,  701,  169,  701,  168,  700,  701,  698,
-      164,  736,  736,  736,  753,  753,  753,  701,  702,  702,
-      702,  702,  702,  702,  702,  702,  702,  736,  736,  702,
-      753,  160,  702,  702,  702,  702,  702,  747,  747,  747,
-      152,  747,  148,  141,  747,  742,  742,  742,  140,  139,
-
-      702,  702,  703,  703,  703,  703,  703,  703,  703,  703,
-      703,  742,  138,  703,  137,  133,  703,  703,  703,  703,
-      703,  718,  718,  718,  125,  718,  124,  123,  718,  750,
-      750,  750,  742,  750,  703,  703,  750,  718,  721,  721,
-      721,  721,  721,  721,  721,  721,  721,  122,  121,  721,
-      117,  106,  721,  721,  721,  721,  721,  105,  104,  103,
-      102,   97,   93,   92,   91,   85,  743,  743,  743,   84,
-      721,  721,  722,  722,  722,  722,  722,  722,  722,  722,
-      722,  743,   82,  722,   79,   67,  722,  722,  722,  722,
-      722,  746,  746,  746,  754,  754,  754,    0,  754,    0,
-
-        0,  754,    0,    0,  722,  722,  746,  771,  771,  771,
-      754,  772,  772,  772,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  771,    0,    0,    0,  772,  775,  775,
-      775,  775,  775,  775,  775,  776,  776,  776,  776,  776,
-      776,  776,  777,  777,  777,  777,  777,  777,  777,  778,
-      778,  778,  778,  778,  778,  778,  779,  779,  779,  779,
-      779,  779,  779,  780,  780,  780,  780,  780,  780,  780,
-      781,  781,  781,  781,  781,  781,  781,  782,  782,  782,
-      782,  782,  782,  782,  783,  783,  783,  783,  783,  783,
-      783,  784,  784,  784,  784,  784,  784,  784,  785,  785,
-
-      785,  785,  785,  785,  785,  786,  786,  786,  786,  786,
-      786,  786,  787,  787,  787,  787,  787,  787,  787,  788,
-      788,  788,  788,  788,  788,  788,  789,  789,  789,    0,
-      789,  790,  790,  790,    0,  790,  791,  791,  791,    0,
-      791,  792,  792,  792,    0,  792,  793,  793,  793,    0,
-      793,  794,  794,  794,  794,  794,    0,  794,  795,    0,
-      795,  796,    0,  796,  797,    0,  797,  798,    0,  798,
-      799,    0,  799,  800,  800,  800,  800,  800,  800,  800,
-      801,    0,    0,  801,  802,  802,  802,  802,  802,  802,
-      803,  803,  803,  803,  803,  803,  804,  804,  804,  804,
-
-      804,  804,  805,  805,  805,  805,  805,  805,  806,  806,
-      806,  806,  806,  806,  807,  807,  807,  807,  807,  807,
-      807,  808,  808,  808,  808,  808,  808,  808,  809,  809,
-      809,  809,  809,  809,  809,  810,  810,  810,  810,  810,
-      810,  810,  811,  811,  811,  811,  811,  811,  811,  812,
-      812,  812,  812,  812,  812,  812,  813,  813,  813,  813,
-      813,  813,  813,  774,  774,  774,  774,  774,  774,  774,
+       47,   47,   47,   47,   47,   47,   47,   47,   47,   49,
+       49,   49,   50,   50,   50,   51,   51,   51,   52,   52,
+
+       52,  524,  642,   49,  715,  663,   50,  713,  664,   51,
+      711,  147,   52,   53,   53,   53,   54,   54,   54,   55,
+       55,   55,   56,   56,   56,  147,  709,   53,  663,  707,
+       54,  664,  642,   55,  705,  524,   56,   57,   57,   57,
+       57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
+      704,   57,   57,   57,   57,   57,  755,   59,   59,   59,
+       60,   60,   60,   63,   63,   63,   64,   64,   64,   57,
+       57,   59,   94,  157,   60,  237,  755,   63,  552,  697,
+       64,   86,  109,  109,  109,  237,   94,  157,   57,   58,
+       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
+
+       58,   58,   94,   58,   58,   58,   58,   58,  479,   86,
+      116,  116,  116,  552,  720,   86,  123,  123,  123,  479,
+       86,   58,   58,  720,  419,   86,  128,  128,  128,  139,
+      139,  139,  144,  144,  144,  151,  151,  151,  419,  696,
+       58,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+
+       65,   65,   66,   66,  110,   65,  601,   66,  112,  602,
+      152,  110,  111,   65,  695,   66,  113,  152,  110,  111,
+      601,  604,  112,  602,  152,  167,  111,  154,  154,  154,
+      113,   65,  167,   66,  110,  604,  110,  171,  112,  167,
+      112,  694,  111,  110,  111,  114,  113,  112,  113,  110,
+      171,  111,  114,  112,  110,  113,  693,  111,  112,  114,
+      611,  113,  111,  364,  124,  605,  113,  125,  166,  166,
+      166,  124,  170,  170,  170,  114,  364,  114,  124,  605,
+      719,  125,  692,  691,  114,  738,  126,  212,  212,  212,
+      114,  611,  719,  126,  124,  114,  124,  125,  738,  125,
+
+      126,  730,  212,  124,  690,  141,  125,  607,  140,  124,
+      608,  731,  125,  730,  124,  140,  126,  125,  126,  141,
+      689,  607,  140,  731,  608,  126,  756,  142,  267,  267,
+      267,  126,  640,  688,  142,  141,  126,  141,  140,  734,
+      140,  142,  717,  267,  141,  748,  756,  140,  734,  640,
+      141,  687,  686,  140,  748,  141,  717,  142,  140,  142,
+      258,  258,  258,  259,  259,  259,  142,  268,  268,  268,
+      757,  761,  142,  269,  269,  269,  258,  142,  761,  259,
+      271,  271,  271,  268,  272,  272,  272,  757,  272,  269,
+      758,  272,  277,  277,  277,  271,  278,  278,  278,  259,
+
+      280,  280,  280,  281,  281,  281,  685,  758,  277,  282,
+      282,  282,  278,  269,  680,  280,  290,  290,  290,  281,
+      291,  291,  291,  759,  760,  282,  312,  312,  312,  316,
+      316,  316,  290,  317,  317,  317,  291,  319,  319,  319,
+      763,  312,  282,  278,  679,  316,  322,  322,  322,  317,
+      325,  325,  325,  319,  327,  327,  327,  328,  328,  328,
+      763,  328,  759,  760,  328,  329,  329,  329,  678,  327,
+      319,  291,  330,  330,  330,  332,  332,  332,  334,  334,
+      334,  329,  334,  762,  677,  334,  676,  675,  330,  674,
+      762,  332,  338,  338,  338,  341,  341,  341,  342,  342,
+
+      342,  344,  344,  344,  346,  346,  346,  338,  347,  347,
+      347,  341,  347,  673,  342,  347,  332,  344,  764,  346,
+      348,  348,  348,  349,  349,  349,  351,  351,  351,  352,
+      352,  352,  353,  353,  353,  344,  348,  770,  764,  349,
+      672,  671,  351,  338,  352,  670,  770,  353,  356,  356,
+      356,  358,  358,  358,  359,  359,  359,  360,  360,  360,
+      370,  370,  370,  356,  669,  765,  358,  362,  362,  362,
+      359,  666,  662,  360,  661,  660,  351,  365,  365,  365,
+      372,  372,  372,  362,  374,  374,  374,  376,  376,  376,
+      382,  382,  382,  365,  365,  372,  377,  377,  377,  374,
+
+      377,  765,  376,  377,  362,  379,  379,  379,  381,  381,
+      381,  384,  384,  384,  386,  386,  386,  379,  659,  769,
+      379,  387,  387,  387,  381,  389,  389,  389,  658,  389,
+      767,  769,  389,  392,  392,  392,  394,  394,  394,  395,
+      395,  395,  400,  400,  400,  657,  656,  381,  766,  392,
+      767,  394,  768,  655,  395,  396,  396,  396,  400,  396,
+      654,  653,  396,  401,  401,  401,  402,  402,  402,  652,
+      402,  651,  768,  402,  405,  405,  405,  392,  406,  406,
+      406,  407,  407,  407,  766,  407,  650,  648,  407,  646,
+      405,  639,  638,  406,  408,  408,  408,  409,  409,  409,
+
+      637,  409,  636,  635,  409,  412,  412,  412,  634,  408,
+      633,  405,  413,  413,  413,  632,  413,  631,  630,  413,
+      412,  415,  415,  415,  416,  416,  416,  629,  416,  628,
+      627,  416,  417,  417,  417,  626,  415,  421,  421,  421,
+      426,  426,  426,  428,  428,  428,  625,  624,  417,  620,
+      429,  429,  429,  421,  429,  599,  598,  429,  428,  597,
+      431,  431,  431,  432,  432,  432,  596,  432,  593,  574,
+      432,  438,  438,  438,  421,  431,  573,  434,  434,  434,
+      572,  434,  571,  417,  434,  561,  438,  553,  440,  440,
+      440,  421,  440,  549,  545,  440,  442,  442,  442,  443,
+
+      443,  443,  444,  444,  444,  446,  446,  446,  447,  447,
+      447,  544,  442,  448,  448,  448,  450,  450,  450,  451,
+      451,  451,  543,  451,  542,  536,  451,  531,  530,  448,
+      526,  450,  452,  452,  452,  525,  452,  521,  518,  452,
+      458,  458,  458,  460,  460,  460,  461,  461,  461,  448,
+      462,  462,  462,  517,  462,  516,  458,  462,  515,  465,
+      465,  465,  461,  465,  514,  513,  465,  470,  470,  470,
+      512,  470,  508,  497,  470,  474,  474,  474,  493,  474,
+      491,  487,  474,  477,  477,  477,  484,  484,  484,  483,
+      484,  478,  461,  484,  488,  488,  488,  473,  488,  477,
+
+      469,  488,  492,  492,  492,  494,  494,  494,  468,  494,
+      457,  456,  494,  498,  498,  498,  455,  492,  500,  500,
+      500,  501,  501,  501,  502,  502,  502,  449,  445,  498,
+      503,  503,  503,  504,  504,  504,  505,  505,  505,  441,
+      505,  439,  437,  505,  433,  430,  503,  509,  509,  509,
+      510,  510,  510,  511,  511,  511,  519,  519,  519,  527,
+      527,  527,  509,  427,  423,  510,  528,  528,  528,  511,
+      420,  418,  519,  414,  527,  529,  529,  529,  411,  529,
+      410,  528,  529,  532,  532,  532,  533,  533,  533,  535,
+      535,  535,  537,  537,  537,  399,  538,  538,  538,  398,
+
+      538,  397,  533,  538,  393,  511,  388,  537,  539,  539,
+      539,  540,  540,  540,  385,  540,  383,  380,  540,  541,
+      541,  541,  378,  539,  546,  546,  546,  547,  547,  547,
+      548,  548,  548,  375,  373,  541,  550,  550,  550,  546,
+      371,  369,  547,  368,  363,  548,  554,  554,  554,  555,
+      555,  555,  550,  556,  556,  556,  357,  556,  355,  354,
+      556,  554,  345,  340,  555,  557,  557,  557,  339,  557,
+      337,  333,  557,  560,  560,  560,  562,  562,  562,  563,
+      563,  563,  326,  563,  324,  323,  563,  321,  560,  320,
+      315,  562,  566,  566,  566,  314,  566,  313,  311,  566,
+
+      569,  569,  569,  575,  575,  575,  576,  576,  576,  310,
+      576,  309,  308,  576,  307,  306,  569,  305,  575,  577,
+      577,  577,  578,  578,  578,  302,  578,  301,  300,  578,
+      579,  579,  579,  298,  577,  580,  580,  580,  294,  580,
+      292,  289,  580,  288,  287,  579,  582,  582,  582,  585,
+      585,  585,  586,  586,  586,  286,  587,  587,  587,  285,
+      587,  284,  582,  587,  585,  283,  279,  586,  588,  588,
+      588,  276,  588,  275,  274,  588,  591,  591,  591,  582,
+      592,  592,  592,  273,  592,  270,  266,  592,  594,  594,
+      594,  591,  595,  595,  595,  265,  595,  264,  263,  595,
+
+      600,  600,  600,  594,  600,  262,  261,  600,  603,  603,
+      603,  260,  603,  257,  256,  603,  606,  606,  606,  255,
+      606,  254,  253,  606,  612,  612,  612,  613,  613,  613,
+      252,  613,  251,  250,  613,  249,  614,  614,  614,  612,
+      614,  248,  246,  614,  617,  617,  617,  245,  617,  244,
+      243,  617,  621,  621,  621,  242,  621,  238,  236,  621,
+      643,  643,  643,  235,  643,  234,  233,  643,  665,  665,
+      665,  681,  681,  681,  682,  682,  682,  683,  683,  683,
+      232,  231,  230,  665,  665,  229,  228,  681,  227,  682,
+      682,  226,  683,  683,  684,  684,  684,  225,  684,  222,
+
+      221,  684,  698,  698,  698,  699,  699,  699,  218,  217,
+      684,  216,  700,  700,  700,  215,  700,  214,  698,  700,
+      699,  699,  701,  701,  701,  213,  701,  209,  700,  701,
+      698,  208,  736,  736,  736,  753,  753,  753,  701,  702,
+      702,  702,  702,  702,  702,  702,  702,  702,  736,  736,
+      702,  753,  207,  702,  702,  702,  702,  702,  747,  747,
+      747,  204,  747,  203,  202,  747,  742,  742,  742,  201,
+      200,  702,  702,  703,  703,  703,  703,  703,  703,  703,
+      703,  703,  742,  199,  703,  198,  197,  703,  703,  703,
+      703,  703,  718,  718,  718,  196,  718,  195,  194,  718,
+
+      750,  750,  750,  742,  750,  703,  703,  750,  718,  721,
+      721,  721,  721,  721,  721,  721,  721,  721,  193,  192,
+      721,  191,  190,  721,  721,  721,  721,  721,  189,  188,
+      185,  184,  183,  182,  181,  175,  174,  743,  743,  743,
+      172,  721,  721,  722,  722,  722,  722,  722,  722,  722,
+      722,  722,  743,  169,  722,  168,  163,  722,  722,  722,
+      722,  722,  746,  746,  746,  754,  754,  754,  162,  754,
+      161,  160,  754,  159,  155,  722,  722,  746,  771,  771,
+      771,  754,  772,  772,  772,  149,  145,  137,  136,  135,
+      134,  133,  129,  121,  771,  117,  106,  105,  772,  775,
+
+      775,  775,  775,  775,  775,  775,  776,  776,  776,  776,
+      776,  776,  776,  777,  777,  777,  777,  777,  777,  777,
+      778,  778,  778,  778,  778,  778,  778,  779,  779,  779,
+      779,  779,  779,  779,  780,  780,  780,  780,  780,  780,
+      780,  781,  781,  781,  781,  781,  781,  781,  782,  782,
+      782,  782,  782,  782,  782,  783,  783,  783,  783,  783,
+      783,  783,  784,  784,  784,  784,  784,  784,  784,  785,
+      785,  785,  785,  785,  785,  785,  786,  786,  786,  786,
+      786,  786,  786,  787,  787,  787,  787,  787,  787,  787,
+      788,  788,  788,  788,  788,  788,  788,  789,  789,  789,
+
+      104,  789,  790,  790,  790,  103,  790,  791,  791,  791,
+      102,  791,  792,  792,  792,   97,  792,  793,  793,  793,
+       93,  793,  794,  794,  794,  794,  794,   92,  794,  795,
+       91,  795,  796,   85,  796,  797,   84,  797,  798,   82,
+      798,  799,   79,  799,  800,  800,  800,  800,  800,  800,
+      800,  801,   67,    0,  801,  802,  802,  802,  802,  802,
+      802,  803,  803,  803,  803,  803,  803,  804,  804,  804,
+      804,  804,  804,  805,  805,  805,  805,  805,  805,  806,
+      806,  806,  806,  806,  806,  807,  807,  807,  807,  807,
+      807,  807,  808,  808,  808,  808,  808,  808,  808,  809,
+
+      809,  809,  809,  809,  809,  809,  810,  810,  810,  810,
+      810,  810,  810,  811,  811,  811,  811,  811,  811,  811,
+      812,  812,  812,  812,  812,  812,  812,  813,  813,  813,
+      813,  813,  813,  813,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
-      774,  774,  774
+      774,  774,  774,  774
+
     } ;
 
 /* Table of booleans, true if rule could match eol. */
 static yyconst flex_int32_t yy_rule_can_match_eol[141] =
     {   0,
-0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
-    0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
-    0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
-    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1,
+0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
+    0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
+    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 
     0,     };
 
 static yy_state_type yy_last_accepting_state;
@@ -1268,13 +1262,13 @@ char *dax_text;
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
  * (1.9.6).
- *
+ * 
  * There are two, intertwined parts to this program, part A and part B.
  *
  * Part A
  * ------
- *
- * Some parts, here collectively called "Part A", are found in the
+ * 
+ * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
@@ -1292,20 +1286,20 @@ char *dax_text;
  * Notice that these are explicit rights granted to you for files
  * generated by the FleXML system.  For your rights in connection with
  * the FleXML system itself please consult the GNU General Public License.
- *
+ * 
  * Part B
  * ------
- *
- * The other parts, here collectively called "Part B", and which came
- * from the DTD used by FleXML to generate this program, can be
+ * 
+ * The other parts, here collectively called "Part B", and which came 
+ * from the DTD used by FleXML to generate this program, can be 
  * distributed (or not, as the case may be) under the terms of whoever
- * wrote them, provided these terms respect and obey the two conditions
+ * wrote them, provided these terms respect and obey the two conditions 
  * above under the heading "Part A".
  *
  * The author of and contributors to FleXML specifically disclaim
- * any copyright interest in "Part B", unless "Part B" was written
+ * any copyright interest in "Part B", unless "Part B" was written 
  * by the author of or contributors to FleXML.
- *
+ * 
  */
 
 /* Version strings. */
@@ -1318,7 +1312,7 @@ const char dax__flexml_version[] = "1.9.6";
 #include <assert.h>
 #include <stdarg.h>
 #include <ctype.h>
-
+     
 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
 # ifndef __STRICT_ANSI__
 #  include <io.h>
@@ -1327,7 +1321,7 @@ const char dax__flexml_version[] = "1.9.6";
 #else
 # include <unistd.h>
 #endif
-
+     
 #ifndef FLEXML_INDEXSTACKSIZE
 #define FLEXML_INDEXSTACKSIZE 1000
 #endif
@@ -1347,78 +1341,78 @@ extern char *dax__bufferstack;
 AT_dax__adag_childCount AX_dax__adag_childCount;
 #define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
 short int dax__adag_childCount_isset;
-AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation;
-#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
-short int dax__adag_xsi_c_schemaLocation_isset;
-AT_dax__job_namespace AX_dax__job_namespace;
-#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
-short int dax__job_namespace_isset;
-AT_dax__uses_file AX_dax__uses_file;
-#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
-short int dax__uses_file_isset;
-AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi;
-#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
-short int dax__adag_xmlns_c_xsi_isset;
-AT_dax__adag_xmlns AX_dax__adag_xmlns;
-#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
-short int dax__adag_xmlns_isset;
+AT_dax__adag_count AX_dax__adag_count;
+#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
+short int dax__adag_count_isset;
 AT_dax__adag_fileCount AX_dax__adag_fileCount;
 #define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
 short int dax__adag_fileCount_isset;
-AT_dax__uses_size AX_dax__uses_size;
-#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
-short int dax__uses_size_isset;
-AT_dax__uses_type AX_dax__uses_type;
-#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
-short int dax__uses_type_isset;
+AT_dax__adag_index AX_dax__adag_index;
+#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
+short int dax__adag_index_isset;
+AT_dax__adag_jobCount AX_dax__adag_jobCount;
+#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
+short int dax__adag_jobCount_isset;
+AT_dax__adag_name AX_dax__adag_name;
+#define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
+short int dax__adag_name_isset;
 AT_dax__adag_version AX_dax__adag_version;
 #define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
 short int dax__adag_version_isset;
-AT_dax__job_runtime AX_dax__job_runtime;
-#define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
-short int dax__job_runtime_isset;
+AT_dax__adag_xmlns AX_dax__adag_xmlns;
+#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
+short int dax__adag_xmlns_isset;
+AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi;
+#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
+short int dax__adag_xmlns_c_xsi_isset;
+AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation;
+#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
+short int dax__adag_xsi_c_schemaLocation_isset;
+AT_dax__child_ref AX_dax__child_ref;
+#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
+short int dax__child_ref_isset;
 AT_dax__job_id AX_dax__job_id;
 #define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
 short int dax__job_id_isset;
-AT_dax__adag_jobCount AX_dax__adag_jobCount;
-#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
-short int dax__adag_jobCount_isset;
-AT_dax__uses_register AX_dax__uses_register;
-#define A_dax__uses_register AX_dax__uses_register
-short int dax__uses_register_isset;
 AT_dax__job_level AX_dax__job_level;
 #define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
 short int dax__job_level_isset;
-AT_dax__adag_index AX_dax__adag_index;
-#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
-short int dax__adag_index_isset;
-AT_dax__child_ref AX_dax__child_ref;
-#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
-short int dax__child_ref_isset;
+AT_dax__job_name AX_dax__job_name;
+#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
+short int dax__job_name_isset;
+AT_dax__job_namespace AX_dax__job_namespace;
+#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
+short int dax__job_namespace_isset;
+AT_dax__job_runtime AX_dax__job_runtime;
+#define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
+short int dax__job_runtime_isset;
+AT_dax__job_version AX_dax__job_version;
+#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
+short int dax__job_version_isset;
 AT_dax__parent_ref AX_dax__parent_ref;
 #define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
 short int dax__parent_ref_isset;
+AT_dax__uses_file AX_dax__uses_file;
+#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
+short int dax__uses_file_isset;
 AT_dax__uses_link AX_dax__uses_link;
 #define A_dax__uses_link AX_dax__uses_link
 short int dax__uses_link_isset;
-AT_dax__uses_transfer AX_dax__uses_transfer;
-#define A_dax__uses_transfer AX_dax__uses_transfer
-short int dax__uses_transfer_isset;
-AT_dax__job_version AX_dax__job_version;
-#define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
-short int dax__job_version_isset;
-AT_dax__adag_count AX_dax__adag_count;
-#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
-short int dax__adag_count_isset;
-AT_dax__job_name AX_dax__job_name;
-#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
-short int dax__job_name_isset;
-AT_dax__adag_name AX_dax__adag_name;
-#define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
-short int dax__adag_name_isset;
 AT_dax__uses_optional AX_dax__uses_optional;
 #define A_dax__uses_optional AX_dax__uses_optional
 short int dax__uses_optional_isset;
+AT_dax__uses_register AX_dax__uses_register;
+#define A_dax__uses_register AX_dax__uses_register
+short int dax__uses_register_isset;
+AT_dax__uses_size AX_dax__uses_size;
+#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
+short int dax__uses_size_isset;
+AT_dax__uses_transfer AX_dax__uses_transfer;
+#define A_dax__uses_transfer AX_dax__uses_transfer
+short int dax__uses_transfer_isset;
+AT_dax__uses_type AX_dax__uses_type;
+#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
+short int dax__uses_type_isset;
 
 /* XML state. */
 #ifdef FLEX_DEBUG
@@ -1527,7 +1521,7 @@ static void pushbuffer(int p)
 {
     ck_ilimit();
     indexstack[inext++] = p;
-    indexstack[inext++] = bnext;
+    indexstack[inext++] = bnext;    
 }
 
 static int popbuffer(void)
@@ -1586,20 +1580,20 @@ const char* *dax__statenames=NULL;
 #define S_dax__adag_4 15
 #define S_dax__adag_5 16
 #define E_dax__adag 17
-#define AL_dax__job 18
-#define S_dax__job 19
-#define S_dax__job_1 20
-#define S_dax__job_2 21
-#define E_dax__job 22
-#define AL_dax__uses 23
-#define E_dax__uses 24
-#define AL_dax__child 25
-#define S_dax__child 26
-#define S_dax__child_1 27
-#define S_dax__child_2 28
-#define E_dax__child 29
-#define AL_dax__parent 30
-#define E_dax__parent 31
+#define AL_dax__child 18
+#define S_dax__child 19
+#define S_dax__child_1 20
+#define S_dax__child_2 21
+#define E_dax__child 22
+#define AL_dax__job 23
+#define S_dax__job 24
+#define S_dax__job_1 25
+#define S_dax__job_2 26
+#define E_dax__job 27
+#define AL_dax__parent 28
+#define E_dax__parent 29
+#define AL_dax__uses 30
+#define E_dax__uses 31
 #define IMPOSSIBLE 32
 
 #ifndef YY_NO_UNISTD_H
@@ -1685,11 +1679,11 @@ static int input (void );
         static int yy_start_stack_ptr = 0;
         static int yy_start_stack_depth = 0;
         static int *yy_start_stack = NULL;
-
+    
     static void yy_push_state (int new_state );
-
+    
     static void yy_pop_state (void );
-
+    
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
 #ifdef __ia64__
@@ -1794,10 +1788,10 @@ extern int dax_lex (void);
  */
 YY_DECL
 {
-       yy_state_type yy_current_state;
-       char *yy_cp, *yy_bp;
-       int yy_act;
-
+       register yy_state_type yy_current_state;
+       register char *yy_cp, *yy_bp;
+       register int yy_act;
+    
        if ( !(yy_init) )
                {
                (yy_init) = 1;
@@ -1870,20 +1864,20 @@ YY_DECL
   dax__statenames[S_dax__adag_4] = "adag";
   dax__statenames[S_dax__adag_5] = "adag";
   dax__statenames[E_dax__adag] = "adag";
-  dax__statenames[AL_dax__job] = NULL;
-  dax__statenames[S_dax__job] = "job";
-  dax__statenames[S_dax__job_1] = "job";
-  dax__statenames[S_dax__job_2] = "job";
-  dax__statenames[E_dax__job] = "job";
-  dax__statenames[AL_dax__uses] = NULL;
-  dax__statenames[E_dax__uses] = "uses";
   dax__statenames[AL_dax__child] = NULL;
   dax__statenames[S_dax__child] = "child";
   dax__statenames[S_dax__child_1] = "child";
   dax__statenames[S_dax__child_2] = "child";
   dax__statenames[E_dax__child] = "child";
+  dax__statenames[AL_dax__job] = NULL;
+  dax__statenames[S_dax__job] = "job";
+  dax__statenames[S_dax__job_1] = "job";
+  dax__statenames[S_dax__job_2] = "job";
+  dax__statenames[E_dax__job] = "job";
   dax__statenames[AL_dax__parent] = NULL;
   dax__statenames[E_dax__parent] = "parent";
+  dax__statenames[AL_dax__uses] = NULL;
+  dax__statenames[E_dax__uses] = "uses";
   }
 
  /* COMMENTS and PIs: handled uniformly for efficiency. */
@@ -1904,7 +1898,7 @@ YY_DECL
 yy_match:
                do
                        {
-                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
                        if ( yy_accept[yy_current_state] )
                                {
                                (yy_last_accepting_state) = yy_current_state;
@@ -1919,7 +1913,7 @@ yy_match:
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 2164 );
+               while ( yy_base[yy_current_state] != 2135 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1937,7 +1931,7 @@ yy_find_action:
                        yy_size_t yyl;
                        for ( yyl = 0; yyl < dax_leng; ++yyl )
                                if ( dax_text[yyl] == '\n' )
-
+                                          
     dax_lineno++;
 ;
                        }
@@ -2002,7 +1996,7 @@ SKIP;
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-SET(ROOT_dax__adag);
+SET(ROOT_dax__adag); 
        YY_BREAK
 case 12:
 /* rule 12 can match eol */
@@ -2040,26 +2034,26 @@ case 17:
 /* rule 17 can match eol */
 YY_RULE_SETUP
 {
-  AX_dax__adag_xmlns = 1;
-  dax__adag_xmlns_isset = 0;
-  AX_dax__adag_xmlns_c_xsi = 35;
-  dax__adag_xmlns_c_xsi_isset = 0;
-  AX_dax__adag_xsi_c_schemaLocation = 77;
-  dax__adag_xsi_c_schemaLocation_isset = 0;
-  AX_dax__adag_version = 153;
-  dax__adag_version_isset = 0;
+  AX_dax__adag_childCount = 0;
+  dax__adag_childCount_isset = 0;
   AX_dax__adag_count = 0;
   dax__adag_count_isset = 0;
+  AX_dax__adag_fileCount = 0;
+  dax__adag_fileCount_isset = 0;
   AX_dax__adag_index = 0;
   dax__adag_index_isset = 0;
-  AX_dax__adag_name = 0;
-  dax__adag_name_isset = 0;
   AX_dax__adag_jobCount = 0;
   dax__adag_jobCount_isset = 0;
-  AX_dax__adag_fileCount = 0;
-  dax__adag_fileCount_isset = 0;
-  AX_dax__adag_childCount = 0;
-  dax__adag_childCount_isset = 0;
+  AX_dax__adag_name = 0;
+  dax__adag_name_isset = 0;
+  AX_dax__adag_version = 153;
+  dax__adag_version_isset = 0;
+  AX_dax__adag_xmlns = 1;
+  dax__adag_xmlns_isset = 0;
+  AX_dax__adag_xmlns_c_xsi = 35;
+  dax__adag_xmlns_c_xsi_isset = 0;
+  AX_dax__adag_xsi_c_schemaLocation = 77;
+  dax__adag_xsi_c_schemaLocation_isset = 0;
   ENTER(AL_dax__adag); pushbuffer(0);
   }
        YY_BREAK
@@ -2067,102 +2061,102 @@ YY_RULE_SETUP
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xmlns_isset != 0) {FAIL("Multiple definition of attribute xmlns in <dax__adag>");} dax__adag_xmlns_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns);
+if (dax__adag_childCount_isset != 0) {FAIL("Multiple definition of attribute childCount in <dax__adag>");} dax__adag_childCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_childCount);
        YY_BREAK
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xmlns_isset != 0) {FAIL("Multiple definition of attribute xmlns in <dax__adag>");}  dax__adag_xmlns_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns);
+if (dax__adag_childCount_isset != 0) {FAIL("Multiple definition of attribute childCount in <dax__adag>");}  dax__adag_childCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_childCount);
        YY_BREAK
 case 20:
 /* rule 20 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xmlns_c_xsi_isset != 0) {FAIL("Multiple definition of attribute xmlns:xsi in <dax__adag>");} dax__adag_xmlns_c_xsi_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
+if (dax__adag_count_isset != 0) {FAIL("Multiple definition of attribute count in <dax__adag>");} dax__adag_count_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_count);
        YY_BREAK
 case 21:
 /* rule 21 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xmlns_c_xsi_isset != 0) {FAIL("Multiple definition of attribute xmlns:xsi in <dax__adag>");}  dax__adag_xmlns_c_xsi_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
+if (dax__adag_count_isset != 0) {FAIL("Multiple definition of attribute count in <dax__adag>");}  dax__adag_count_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_count);
        YY_BREAK
 case 22:
 /* rule 22 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xsi_c_schemaLocation_isset != 0) {FAIL("Multiple definition of attribute xsi:schemaLocation in <dax__adag>");} dax__adag_xsi_c_schemaLocation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xsi_c_schemaLocation);
+if (dax__adag_fileCount_isset != 0) {FAIL("Multiple definition of attribute fileCount in <dax__adag>");} dax__adag_fileCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_fileCount);
        YY_BREAK
 case 23:
 /* rule 23 can match eol */
 YY_RULE_SETUP
-if (dax__adag_xsi_c_schemaLocation_isset != 0) {FAIL("Multiple definition of attribute xsi:schemaLocation in <dax__adag>");}  dax__adag_xsi_c_schemaLocation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xsi_c_schemaLocation);
+if (dax__adag_fileCount_isset != 0) {FAIL("Multiple definition of attribute fileCount in <dax__adag>");}  dax__adag_fileCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_fileCount);
        YY_BREAK
 case 24:
 /* rule 24 can match eol */
 YY_RULE_SETUP
-if (dax__adag_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__adag>");} dax__adag_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_version);
+if (dax__adag_index_isset != 0) {FAIL("Multiple definition of attribute index in <dax__adag>");} dax__adag_index_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_index);
        YY_BREAK
 case 25:
 /* rule 25 can match eol */
 YY_RULE_SETUP
-if (dax__adag_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__adag>");}  dax__adag_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_version);
+if (dax__adag_index_isset != 0) {FAIL("Multiple definition of attribute index in <dax__adag>");}  dax__adag_index_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_index);
        YY_BREAK
 case 26:
 /* rule 26 can match eol */
 YY_RULE_SETUP
-if (dax__adag_count_isset != 0) {FAIL("Multiple definition of attribute count in <dax__adag>");} dax__adag_count_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_count);
+if (dax__adag_jobCount_isset != 0) {FAIL("Multiple definition of attribute jobCount in <dax__adag>");} dax__adag_jobCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_jobCount);
        YY_BREAK
 case 27:
 /* rule 27 can match eol */
 YY_RULE_SETUP
-if (dax__adag_count_isset != 0) {FAIL("Multiple definition of attribute count in <dax__adag>");}  dax__adag_count_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_count);
+if (dax__adag_jobCount_isset != 0) {FAIL("Multiple definition of attribute jobCount in <dax__adag>");}  dax__adag_jobCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_jobCount);
        YY_BREAK
 case 28:
 /* rule 28 can match eol */
 YY_RULE_SETUP
-if (dax__adag_index_isset != 0) {FAIL("Multiple definition of attribute index in <dax__adag>");} dax__adag_index_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_index);
+if (dax__adag_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__adag>");} dax__adag_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_name);
        YY_BREAK
 case 29:
 /* rule 29 can match eol */
 YY_RULE_SETUP
-if (dax__adag_index_isset != 0) {FAIL("Multiple definition of attribute index in <dax__adag>");}  dax__adag_index_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_index);
+if (dax__adag_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__adag>");}  dax__adag_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_name);
        YY_BREAK
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-if (dax__adag_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__adag>");} dax__adag_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_name);
+if (dax__adag_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__adag>");} dax__adag_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_version);
        YY_BREAK
 case 31:
 /* rule 31 can match eol */
 YY_RULE_SETUP
-if (dax__adag_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__adag>");}  dax__adag_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_name);
+if (dax__adag_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__adag>");}  dax__adag_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_version);
        YY_BREAK
 case 32:
 /* rule 32 can match eol */
 YY_RULE_SETUP
-if (dax__adag_jobCount_isset != 0) {FAIL("Multiple definition of attribute jobCount in <dax__adag>");} dax__adag_jobCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_jobCount);
+if (dax__adag_xmlns_isset != 0) {FAIL("Multiple definition of attribute xmlns in <dax__adag>");} dax__adag_xmlns_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns);
        YY_BREAK
 case 33:
 /* rule 33 can match eol */
 YY_RULE_SETUP
-if (dax__adag_jobCount_isset != 0) {FAIL("Multiple definition of attribute jobCount in <dax__adag>");}  dax__adag_jobCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_jobCount);
+if (dax__adag_xmlns_isset != 0) {FAIL("Multiple definition of attribute xmlns in <dax__adag>");}  dax__adag_xmlns_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns);
        YY_BREAK
 case 34:
 /* rule 34 can match eol */
 YY_RULE_SETUP
-if (dax__adag_fileCount_isset != 0) {FAIL("Multiple definition of attribute fileCount in <dax__adag>");} dax__adag_fileCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_fileCount);
+if (dax__adag_xmlns_c_xsi_isset != 0) {FAIL("Multiple definition of attribute xmlns:xsi in <dax__adag>");} dax__adag_xmlns_c_xsi_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
        YY_BREAK
 case 35:
 /* rule 35 can match eol */
 YY_RULE_SETUP
-if (dax__adag_fileCount_isset != 0) {FAIL("Multiple definition of attribute fileCount in <dax__adag>");}  dax__adag_fileCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_fileCount);
+if (dax__adag_xmlns_c_xsi_isset != 0) {FAIL("Multiple definition of attribute xmlns:xsi in <dax__adag>");}  dax__adag_xmlns_c_xsi_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
        YY_BREAK
 case 36:
 /* rule 36 can match eol */
 YY_RULE_SETUP
-if (dax__adag_childCount_isset != 0) {FAIL("Multiple definition of attribute childCount in <dax__adag>");} dax__adag_childCount_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_childCount);
+if (dax__adag_xsi_c_schemaLocation_isset != 0) {FAIL("Multiple definition of attribute xsi:schemaLocation in <dax__adag>");} dax__adag_xsi_c_schemaLocation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__adag_xsi_c_schemaLocation);
        YY_BREAK
 case 37:
 /* rule 37 can match eol */
 YY_RULE_SETUP
-if (dax__adag_childCount_isset != 0) {FAIL("Multiple definition of attribute childCount in <dax__adag>");}  dax__adag_childCount_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_childCount);
+if (dax__adag_xsi_c_schemaLocation_isset != 0) {FAIL("Multiple definition of attribute xsi:schemaLocation in <dax__adag>");}  dax__adag_xsi_c_schemaLocation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__adag_xsi_c_schemaLocation);
        YY_BREAK
 case 38:
 YY_RULE_SETUP
@@ -2214,461 +2208,461 @@ FAIL("Unexpected character `%c': `</adag>' expected.",dax_text[0]);
        YY_BREAK
 case YY_STATE_EOF(E_dax__adag):
 case YY_STATE_EOF(S_dax__adag):
-case YY_STATE_EOF(S_dax__adag_5):
-case YY_STATE_EOF(S_dax__adag_3):
 case YY_STATE_EOF(S_dax__adag_1):
+case YY_STATE_EOF(S_dax__adag_3):
+case YY_STATE_EOF(S_dax__adag_5):
 FAIL("Premature EOF: `</adag>' expected.");
        YY_BREAK
 
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <job> is not allowed here.");
+FAIL("Starting tag <child> is not allowed here.");
        YY_BREAK
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
 {
-  AX_dax__job_id = 0;
-  dax__job_id_isset = 0;
-  AX_dax__job_namespace = 0;
-  dax__job_namespace_isset = 0;
-  AX_dax__job_name = 0;
-  dax__job_name_isset = 0;
-  AX_dax__job_version = 157;
-  dax__job_version_isset = 0;
-  AX_dax__job_runtime = 0;
-  dax__job_runtime_isset = 0;
-  AX_dax__job_level = 0;
-  dax__job_level_isset = 0;
-  ENTER(AL_dax__job); pushbuffer(0);
+  AX_dax__child_ref = 0;
+  dax__child_ref_isset = 0;
+  ENTER(AL_dax__child); pushbuffer(0);
   }
        YY_BREAK
 
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-if (dax__job_id_isset != 0) {FAIL("Multiple definition of attribute id in <dax__job>");} dax__job_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_id);
+if (dax__child_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__child>");} dax__child_ref_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__child_ref);
        YY_BREAK
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-if (dax__job_id_isset != 0) {FAIL("Multiple definition of attribute id in <dax__job>");}  dax__job_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_id);
+if (dax__child_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__child>");}  dax__child_ref_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__child_ref);
        YY_BREAK
 case 49:
-/* rule 49 can match eol */
 YY_RULE_SETUP
-if (dax__job_namespace_isset != 0) {FAIL("Multiple definition of attribute namespace in <dax__job>");} dax__job_namespace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_namespace);
+{
+  if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
+  LEAVE; STag_dax__child();dax__pcdata_ix = 0; ENTER(S_dax__child);
+ }
        YY_BREAK
 case 50:
-/* rule 50 can match eol */
 YY_RULE_SETUP
-if (dax__job_namespace_isset != 0) {FAIL("Multiple definition of attribute namespace in <dax__job>");}  dax__job_namespace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_namespace);
+{
+  if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
+  LEAVE; STag_dax__child(); dax__pcdata_ix = 0; ETag_dax__child(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_4: case S_dax__adag_5: SET(S_dax__adag_5); break;
+  }
+ }
        YY_BREAK
 case 51:
-/* rule 51 can match eol */
 YY_RULE_SETUP
-if (dax__job_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__job>");} dax__job_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_name);
+FAIL("Unexpected character `%c' in attribute list of child element.", dax_text[0]);
        YY_BREAK
 case 52:
-/* rule 52 can match eol */
 YY_RULE_SETUP
-if (dax__job_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__job>");}  dax__job_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_name);
+FAIL("Bad attribute `%s' in `child' element start tag.",dax_text);
        YY_BREAK
+case YY_STATE_EOF(AL_dax__child):
+FAIL("EOF in attribute list of `child' element.");
+       YY_BREAK
+
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-if (dax__job_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__job>");} dax__job_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_version);
-       YY_BREAK
-case 54:
-/* rule 54 can match eol */
+{
+  LEAVE;
+  ETag_dax__child();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_4: case S_dax__adag_5: SET(S_dax__adag_5); break;
+  }
+ }
+       YY_BREAK
+case 54:
+/* rule 54 can match eol */
 YY_RULE_SETUP
-if (dax__job_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__job>");}  dax__job_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_version);
+FAIL("Unexpected end-tag `%s': `</child>' expected.",dax_text);
        YY_BREAK
 case 55:
-/* rule 55 can match eol */
 YY_RULE_SETUP
-if (dax__job_runtime_isset != 0) {FAIL("Multiple definition of attribute runtime in <dax__job>");} dax__job_runtime_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_runtime);
+FAIL("Unexpected character `%c': `</child>' expected.",dax_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_dax__child):
+case YY_STATE_EOF(S_dax__child):
+case YY_STATE_EOF(S_dax__child_2):
+FAIL("Premature EOF: `</child>' expected.");
+       YY_BREAK
+
 case 56:
 /* rule 56 can match eol */
 YY_RULE_SETUP
-if (dax__job_runtime_isset != 0) {FAIL("Multiple definition of attribute runtime in <dax__job>");}  dax__job_runtime_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_runtime);
+FAIL("Starting tag <job> is not allowed here.");
        YY_BREAK
 case 57:
 /* rule 57 can match eol */
 YY_RULE_SETUP
-if (dax__job_level_isset != 0) {FAIL("Multiple definition of attribute level in <dax__job>");} dax__job_level_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_level);
+{
+  AX_dax__job_id = 0;
+  dax__job_id_isset = 0;
+  AX_dax__job_level = 0;
+  dax__job_level_isset = 0;
+  AX_dax__job_name = 0;
+  dax__job_name_isset = 0;
+  AX_dax__job_namespace = 0;
+  dax__job_namespace_isset = 0;
+  AX_dax__job_runtime = 0;
+  dax__job_runtime_isset = 0;
+  AX_dax__job_version = 157;
+  dax__job_version_isset = 0;
+  ENTER(AL_dax__job); pushbuffer(0);
+  }
        YY_BREAK
+
 case 58:
 /* rule 58 can match eol */
 YY_RULE_SETUP
-if (dax__job_level_isset != 0) {FAIL("Multiple definition of attribute level in <dax__job>");}  dax__job_level_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_level);
+if (dax__job_id_isset != 0) {FAIL("Multiple definition of attribute id in <dax__job>");} dax__job_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_id);
        YY_BREAK
 case 59:
+/* rule 59 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
-  if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
-  if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
-  LEAVE; STag_dax__job();dax__pcdata_ix = 0; ENTER(S_dax__job);
- }
+if (dax__job_id_isset != 0) {FAIL("Multiple definition of attribute id in <dax__job>");}  dax__job_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_id);
        YY_BREAK
 case 60:
+/* rule 60 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
-  if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
-  if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
-  LEAVE; STag_dax__job(); dax__pcdata_ix = 0; ETag_dax__job(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break;
-  }
- }
+if (dax__job_level_isset != 0) {FAIL("Multiple definition of attribute level in <dax__job>");} dax__job_level_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_level);
        YY_BREAK
 case 61:
+/* rule 61 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of job element.", dax_text[0]);
+if (dax__job_level_isset != 0) {FAIL("Multiple definition of attribute level in <dax__job>");}  dax__job_level_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_level);
        YY_BREAK
 case 62:
+/* rule 62 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `job' element start tag.",dax_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_dax__job):
-FAIL("EOF in attribute list of `job' element.");
+if (dax__job_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__job>");} dax__job_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_name);
        YY_BREAK
-
 case 63:
 /* rule 63 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_dax__job();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break;
-  }
- }
+if (dax__job_name_isset != 0) {FAIL("Multiple definition of attribute name in <dax__job>");}  dax__job_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_name);
        YY_BREAK
 case 64:
 /* rule 64 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</job>' expected.",dax_text);
+if (dax__job_namespace_isset != 0) {FAIL("Multiple definition of attribute namespace in <dax__job>");} dax__job_namespace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_namespace);
        YY_BREAK
 case 65:
+/* rule 65 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</job>' expected.",dax_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_dax__job):
-case YY_STATE_EOF(E_dax__job):
-case YY_STATE_EOF(S_dax__job_2):
-FAIL("Premature EOF: `</job>' expected.");
+if (dax__job_namespace_isset != 0) {FAIL("Multiple definition of attribute namespace in <dax__job>");}  dax__job_namespace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_namespace);
        YY_BREAK
-
-/* <!-- ignored -->
-  * <!-- ignored -->  */
 case 66:
 /* rule 66 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <uses> is not allowed here.");
+if (dax__job_runtime_isset != 0) {FAIL("Multiple definition of attribute runtime in <dax__job>");} dax__job_runtime_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_runtime);
        YY_BREAK
 case 67:
 /* rule 67 can match eol */
 YY_RULE_SETUP
-{
-  AX_dax__uses_file = 0;
-  dax__uses_file_isset = 0;
-  AX_dax__uses_link = AU_dax__uses_link;
-  dax__uses_link_isset = 0;
-  AX_dax__uses_register = A_dax__uses_register_true;
-  dax__uses_register_isset = 0;
-  AX_dax__uses_transfer = A_dax__uses_transfer_true;
-  dax__uses_transfer_isset = 0;
-  AX_dax__uses_optional = A_dax__uses_optional_false;
-  dax__uses_optional_isset = 0;
-  AX_dax__uses_type = 161;
-  dax__uses_type_isset = 0;
-  AX_dax__uses_size = 0;
-  dax__uses_size_isset = 0;
-  ENTER(AL_dax__uses); pushbuffer(0);
-  }
+if (dax__job_runtime_isset != 0) {FAIL("Multiple definition of attribute runtime in <dax__job>");}  dax__job_runtime_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_runtime);
        YY_BREAK
-
 case 68:
 /* rule 68 can match eol */
 YY_RULE_SETUP
-if (dax__uses_file_isset != 0) {FAIL("Multiple definition of attribute file in <dax__uses>");} dax__uses_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_file);
+if (dax__job_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__job>");} dax__job_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__job_version);
        YY_BREAK
 case 69:
 /* rule 69 can match eol */
 YY_RULE_SETUP
-if (dax__uses_file_isset != 0) {FAIL("Multiple definition of attribute file in <dax__uses>");}  dax__uses_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_file);
+if (dax__job_version_isset != 0) {FAIL("Multiple definition of attribute version in <dax__job>");}  dax__job_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__job_version);
        YY_BREAK
 case 70:
-/* rule 70 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
+  if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
+  if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
+  LEAVE; STag_dax__job();dax__pcdata_ix = 0; ENTER(S_dax__job);
+ }
+       YY_BREAK
 case 71:
-/* rule 71 can match eol */
 YY_RULE_SETUP
-A_dax__uses_link = A_dax__uses_link_input;
+{
+  if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
+  if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
+  if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
+  LEAVE; STag_dax__job(); dax__pcdata_ix = 0; ETag_dax__job(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__adag: case S_dax__adag_2: case S_dax__adag_3: SET(S_dax__adag_3); break;
+  }
+ }
        YY_BREAK
 case 72:
-/* rule 72 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c' in attribute list of job element.", dax_text[0]);
+       YY_BREAK
 case 73:
-/* rule 73 can match eol */
 YY_RULE_SETUP
-A_dax__uses_link = A_dax__uses_link_output;
+FAIL("Bad attribute `%s' in `job' element start tag.",dax_text);
        YY_BREAK
+case YY_STATE_EOF(AL_dax__job):
+FAIL("EOF in attribute list of `job' element.");
+       YY_BREAK
+
 case 74:
 /* rule 74 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_dax__job();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__adag: case S_dax__adag_2: case S_dax__adag_3: SET(S_dax__adag_3); break;
+  }
+ }
+       YY_BREAK
 case 75:
 /* rule 75 can match eol */
 YY_RULE_SETUP
-A_dax__uses_register = A_dax__uses_register_false;
+FAIL("Unexpected end-tag `%s': `</job>' expected.",dax_text);
        YY_BREAK
 case 76:
-/* rule 76 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</job>' expected.",dax_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_dax__job):
+case YY_STATE_EOF(S_dax__job):
+case YY_STATE_EOF(S_dax__job_2):
+FAIL("Premature EOF: `</job>' expected.");
+       YY_BREAK
+
 case 77:
 /* rule 77 can match eol */
 YY_RULE_SETUP
-A_dax__uses_register = A_dax__uses_register_true;
+FAIL("Starting tag <parent> is not allowed here.");
        YY_BREAK
 case 78:
 /* rule 78 can match eol */
+YY_RULE_SETUP
+{
+  AX_dax__parent_ref = 0;
+  dax__parent_ref_isset = 0;
+  ENTER(AL_dax__parent); pushbuffer(0);
+  }
+       YY_BREAK
+
 case 79:
 /* rule 79 can match eol */
 YY_RULE_SETUP
-A_dax__uses_transfer = A_dax__uses_transfer_false;
+if (dax__parent_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__parent>");} dax__parent_ref_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__parent_ref);
        YY_BREAK
 case 80:
 /* rule 80 can match eol */
+YY_RULE_SETUP
+if (dax__parent_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__parent>");}  dax__parent_ref_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__parent_ref);
+       YY_BREAK
 case 81:
-/* rule 81 can match eol */
 YY_RULE_SETUP
-A_dax__uses_transfer = A_dax__uses_transfer_true;
+{
+  if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
+  LEAVE; STag_dax__parent();dax__pcdata_ix = 0; ENTER(E_dax__parent);
+ }
        YY_BREAK
 case 82:
-/* rule 82 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
+  LEAVE; STag_dax__parent(); dax__pcdata_ix = 0; ETag_dax__parent(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__child: case S_dax__child_1: case S_dax__child_2: SET(S_dax__child_2); break;
+  }
+ }
+       YY_BREAK
 case 83:
-/* rule 83 can match eol */
 YY_RULE_SETUP
-A_dax__uses_optional = A_dax__uses_optional_false;
+FAIL("Unexpected character `%c' in attribute list of parent element.", dax_text[0]);
        YY_BREAK
 case 84:
-/* rule 84 can match eol */
+YY_RULE_SETUP
+FAIL("Bad attribute `%s' in `parent' element start tag.",dax_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_dax__parent):
+FAIL("EOF in attribute list of `parent' element.");
+       YY_BREAK
+
 case 85:
 /* rule 85 can match eol */
 YY_RULE_SETUP
-A_dax__uses_optional = A_dax__uses_optional_true;
+{
+  LEAVE;
+  ETag_dax__parent();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_dax__child: case S_dax__child_1: case S_dax__child_2: SET(S_dax__child_2); break;
+  }
+ }
        YY_BREAK
 case 86:
 /* rule 86 can match eol */
 YY_RULE_SETUP
-if (dax__uses_type_isset != 0) {FAIL("Multiple definition of attribute type in <dax__uses>");} dax__uses_type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_type);
+FAIL("Unexpected end-tag `%s': `</parent>' expected.",dax_text);
        YY_BREAK
 case 87:
-/* rule 87 can match eol */
 YY_RULE_SETUP
-if (dax__uses_type_isset != 0) {FAIL("Multiple definition of attribute type in <dax__uses>");}  dax__uses_type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_type);
+FAIL("Unexpected character `%c': `</parent>' expected.",dax_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_dax__parent):
+FAIL("Premature EOF: `</parent>' expected.");
+       YY_BREAK
+
+/* <!-- ignored -->
+  * <!-- ignored -->  */
 case 88:
 /* rule 88 can match eol */
 YY_RULE_SETUP
-if (dax__uses_size_isset != 0) {FAIL("Multiple definition of attribute size in <dax__uses>");} dax__uses_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_size);
+FAIL("Starting tag <uses> is not allowed here.");
        YY_BREAK
 case 89:
 /* rule 89 can match eol */
 YY_RULE_SETUP
-if (dax__uses_size_isset != 0) {FAIL("Multiple definition of attribute size in <dax__uses>");}  dax__uses_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_size);
+{
+  AX_dax__uses_file = 0;
+  dax__uses_file_isset = 0;
+  AX_dax__uses_link = AU_dax__uses_link;
+  dax__uses_link_isset = 0;
+  AX_dax__uses_optional = A_dax__uses_optional_false;
+  dax__uses_optional_isset = 0;
+  AX_dax__uses_register = A_dax__uses_register_true;
+  dax__uses_register_isset = 0;
+  AX_dax__uses_size = 0;
+  dax__uses_size_isset = 0;
+  AX_dax__uses_transfer = A_dax__uses_transfer_true;
+  dax__uses_transfer_isset = 0;
+  AX_dax__uses_type = 161;
+  dax__uses_type_isset = 0;
+  ENTER(AL_dax__uses); pushbuffer(0);
+  }
        YY_BREAK
+
 case 90:
+/* rule 90 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
-  if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
-  LEAVE; STag_dax__uses();dax__pcdata_ix = 0; ENTER(E_dax__uses);
- }
+if (dax__uses_file_isset != 0) {FAIL("Multiple definition of attribute file in <dax__uses>");} dax__uses_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_file);
        YY_BREAK
 case 91:
+/* rule 91 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
-  if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
-  LEAVE; STag_dax__uses(); dax__pcdata_ix = 0; ETag_dax__uses(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__job_2: case S_dax__job_1: case S_dax__job: SET(S_dax__job_2); break;
-  }
- }
+if (dax__uses_file_isset != 0) {FAIL("Multiple definition of attribute file in <dax__uses>");}  dax__uses_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_file);
        YY_BREAK
 case 92:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of uses element.", dax_text[0]);
-       YY_BREAK
+/* rule 92 can match eol */
 case 93:
+/* rule 93 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `uses' element start tag.",dax_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_dax__uses):
-FAIL("EOF in attribute list of `uses' element.");
+A_dax__uses_link = A_dax__uses_link_input;
        YY_BREAK
-
 case 94:
 /* rule 94 can match eol */
-YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_dax__uses();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__job_2: case S_dax__job_1: case S_dax__job: SET(S_dax__job_2); break;
-  }
- }
-       YY_BREAK
 case 95:
 /* rule 95 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</uses>' expected.",dax_text);
+A_dax__uses_link = A_dax__uses_link_output;
        YY_BREAK
 case 96:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</uses>' expected.",dax_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_dax__uses):
-FAIL("Premature EOF: `</uses>' expected.");
-       YY_BREAK
-
+/* rule 96 can match eol */
 case 97:
 /* rule 97 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <child> is not allowed here.");
+A_dax__uses_optional = A_dax__uses_optional_false;
        YY_BREAK
 case 98:
 /* rule 98 can match eol */
-YY_RULE_SETUP
-{
-  AX_dax__child_ref = 0;
-  dax__child_ref_isset = 0;
-  ENTER(AL_dax__child); pushbuffer(0);
-  }
-       YY_BREAK
-
 case 99:
 /* rule 99 can match eol */
 YY_RULE_SETUP
-if (dax__child_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__child>");} dax__child_ref_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__child_ref);
+A_dax__uses_optional = A_dax__uses_optional_true;
        YY_BREAK
 case 100:
 /* rule 100 can match eol */
-YY_RULE_SETUP
-if (dax__child_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__child>");}  dax__child_ref_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__child_ref);
-       YY_BREAK
 case 101:
+/* rule 101 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
-  LEAVE; STag_dax__child();dax__pcdata_ix = 0; ENTER(S_dax__child);
- }
+A_dax__uses_register = A_dax__uses_register_false;
        YY_BREAK
 case 102:
-YY_RULE_SETUP
-{
-  if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
-  LEAVE; STag_dax__child(); dax__pcdata_ix = 0; ETag_dax__child(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__adag_4: case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_5: SET(S_dax__adag_5); break;
-  }
- }
-       YY_BREAK
+/* rule 102 can match eol */
 case 103:
+/* rule 103 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of child element.", dax_text[0]);
+A_dax__uses_register = A_dax__uses_register_true;
        YY_BREAK
 case 104:
+/* rule 104 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `child' element start tag.",dax_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_dax__child):
-FAIL("EOF in attribute list of `child' element.");
+if (dax__uses_size_isset != 0) {FAIL("Multiple definition of attribute size in <dax__uses>");} dax__uses_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_size);
        YY_BREAK
-
 case 105:
 /* rule 105 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_dax__child();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_dax__adag_4: case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_5: SET(S_dax__adag_5); break;
-  }
- }
+if (dax__uses_size_isset != 0) {FAIL("Multiple definition of attribute size in <dax__uses>");}  dax__uses_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_size);
        YY_BREAK
 case 106:
 /* rule 106 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</child>' expected.",dax_text);
-       YY_BREAK
 case 107:
+/* rule 107 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</child>' expected.",dax_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_dax__child):
-case YY_STATE_EOF(S_dax__child_2):
-case YY_STATE_EOF(E_dax__child):
-FAIL("Premature EOF: `</child>' expected.");
+A_dax__uses_transfer = A_dax__uses_transfer_false;
        YY_BREAK
-
 case 108:
 /* rule 108 can match eol */
-YY_RULE_SETUP
-FAIL("Starting tag <parent> is not allowed here.");
-       YY_BREAK
 case 109:
 /* rule 109 can match eol */
 YY_RULE_SETUP
-{
-  AX_dax__parent_ref = 0;
-  dax__parent_ref_isset = 0;
-  ENTER(AL_dax__parent); pushbuffer(0);
-  }
+A_dax__uses_transfer = A_dax__uses_transfer_true;
        YY_BREAK
-
 case 110:
 /* rule 110 can match eol */
 YY_RULE_SETUP
-if (dax__parent_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__parent>");} dax__parent_ref_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__parent_ref);
+if (dax__uses_type_isset != 0) {FAIL("Multiple definition of attribute type in <dax__uses>");} dax__uses_type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_dax__uses_type);
        YY_BREAK
 case 111:
 /* rule 111 can match eol */
 YY_RULE_SETUP
-if (dax__parent_ref_isset != 0) {FAIL("Multiple definition of attribute ref in <dax__parent>");}  dax__parent_ref_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__parent_ref);
+if (dax__uses_type_isset != 0) {FAIL("Multiple definition of attribute type in <dax__uses>");}  dax__uses_type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_dax__uses_type);
        YY_BREAK
 case 112:
 YY_RULE_SETUP
 {
-  if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
-  LEAVE; STag_dax__parent();dax__pcdata_ix = 0; ENTER(E_dax__parent);
+  if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
+  if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
+  LEAVE; STag_dax__uses();dax__pcdata_ix = 0; ENTER(E_dax__uses);
  }
        YY_BREAK
 case 113:
 YY_RULE_SETUP
 {
-  if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
-  LEAVE; STag_dax__parent(); dax__pcdata_ix = 0; ETag_dax__parent(); popbuffer(); /* attribute */
+  if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
+  if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
+  LEAVE; STag_dax__uses(); dax__pcdata_ix = 0; ETag_dax__uses(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_dax__child: case S_dax__child_2: case S_dax__child_1: SET(S_dax__child_2); break;
+   case S_dax__job: case S_dax__job_1: case S_dax__job_2: SET(S_dax__job_2); break;
   }
  }
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of parent element.", dax_text[0]);
+FAIL("Unexpected character `%c' in attribute list of uses element.", dax_text[0]);
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `parent' element start tag.",dax_text);
+FAIL("Bad attribute `%s' in `uses' element start tag.",dax_text);
        YY_BREAK
-case YY_STATE_EOF(AL_dax__parent):
-FAIL("EOF in attribute list of `parent' element.");
+case YY_STATE_EOF(AL_dax__uses):
+FAIL("EOF in attribute list of `uses' element.");
        YY_BREAK
 
 case 116:
@@ -2676,24 +2670,24 @@ case 116:
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_dax__parent();
+  ETag_dax__uses();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_dax__child: case S_dax__child_2: case S_dax__child_1: SET(S_dax__child_2); break;
+   case S_dax__job: case S_dax__job_1: case S_dax__job_2: SET(S_dax__job_2); break;
   }
  }
        YY_BREAK
 case 117:
 /* rule 117 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</parent>' expected.",dax_text);
+FAIL("Unexpected end-tag `%s': `</uses>' expected.",dax_text);
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</parent>' expected.",dax_text[0]);
+FAIL("Unexpected character `%c': `</uses>' expected.",dax_text[0]);
        YY_BREAK
-case YY_STATE_EOF(E_dax__parent):
-FAIL("Premature EOF: `</parent>' expected.");
+case YY_STATE_EOF(E_dax__uses):
+FAIL("Premature EOF: `</uses>' expected.");
        YY_BREAK
 
 /* EPILOG: after the root element. */
@@ -2817,8 +2811,8 @@ case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(ROOT_dax__adag):
 case YY_STATE_EOF(S_dax__adag_2):
 case YY_STATE_EOF(S_dax__adag_4):
-case YY_STATE_EOF(S_dax__job_1):
 case YY_STATE_EOF(S_dax__child_1):
+case YY_STATE_EOF(S_dax__job_1):
 case YY_STATE_EOF(IMPOSSIBLE):
        yyterminate();
 
@@ -2961,9 +2955,9 @@ case YY_STATE_EOF(IMPOSSIBLE):
  */
 static int yy_get_next_buffer (void)
 {
-       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       char *source = (yytext_ptr);
-       int number_to_move, i;
+       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+       register char *source = (yytext_ptr);
+       register int number_to_move, i;
        int ret_val;
 
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
@@ -3095,14 +3089,14 @@ static int yy_get_next_buffer (void)
 
     static yy_state_type yy_get_previous_state (void)
 {
-       yy_state_type yy_current_state;
-       char *yy_cp;
-
+       register yy_state_type yy_current_state;
+       register char *yy_cp;
+    
        yy_current_state = (yy_start);
 
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
                {
-               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
                if ( yy_accept[yy_current_state] )
                        {
                        (yy_last_accepting_state) = yy_current_state;
@@ -3127,10 +3121,10 @@ static int yy_get_next_buffer (void)
  */
     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 {
-       int yy_is_jam;
-       char *yy_cp = (yy_c_buf_p);
+       register int yy_is_jam;
+       register char *yy_cp = (yy_c_buf_p);
 
-       YY_CHAR yy_c = 1;
+       register YY_CHAR yy_c = 1;
        if ( yy_accept[yy_current_state] )
                {
                (yy_last_accepting_state) = yy_current_state;
@@ -3157,7 +3151,7 @@ static int yy_get_next_buffer (void)
 
 {
        int c;
-
+    
        *(yy_c_buf_p) = (yy_hold_char);
 
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -3219,7 +3213,7 @@ static int yy_get_next_buffer (void)
        (yy_hold_char) = *++(yy_c_buf_p);
 
        if ( c == '\n' )
-
+                  
     dax_lineno++;
 ;
 
@@ -3229,12 +3223,12 @@ static int yy_get_next_buffer (void)
 
 /** Immediately switch to a different input stream.
  * @param input_file A readable stream.
- *
+ * 
  * @note This function does not reset the start condition to @c INITIAL .
  */
     void dax_restart  (FILE * input_file )
 {
-
+    
        if ( ! YY_CURRENT_BUFFER ){
         dax_ensure_buffer_stack ();
                YY_CURRENT_BUFFER_LVALUE =
@@ -3247,11 +3241,11 @@ static int yy_get_next_buffer (void)
 
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
- *
+ * 
  */
     void dax__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 {
-
+    
        /* TODO. We should be able to replace this entire function body
         * with
         *              dax_pop_buffer_state();
@@ -3291,13 +3285,13 @@ static void dax__load_buffer_state  (void)
 /** Allocate and initialize an input buffer state.
  * @param file A readable stream.
  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
+ * 
  * @return the allocated buffer state.
  */
     YY_BUFFER_STATE dax__create_buffer  (FILE * file, int  size )
 {
        YY_BUFFER_STATE b;
-
+    
        b = (YY_BUFFER_STATE) dax_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
                YY_FATAL_ERROR( "out of dynamic memory in dax__create_buffer()" );
@@ -3320,11 +3314,11 @@ static void dax__load_buffer_state  (void)
 
 /** Destroy the buffer.
  * @param b a buffer created with dax__create_buffer()
- *
+ * 
  */
     void dax__delete_buffer (YY_BUFFER_STATE  b )
 {
-
+    
        if ( ! b )
                return;
 
@@ -3345,7 +3339,7 @@ static void dax__load_buffer_state  (void)
 
 {
        int oerrno = errno;
-
+    
        dax__flush_buffer(b );
 
        b->yy_input_file = file;
@@ -3361,13 +3355,13 @@ static void dax__load_buffer_state  (void)
     }
 
         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
+    
        errno = oerrno;
 }
 
 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
+ * 
  */
     void dax__flush_buffer (YY_BUFFER_STATE  b )
 {
@@ -3396,7 +3390,7 @@ static void dax__load_buffer_state  (void)
  *  the current state. This function will allocate the stack
  *  if necessary.
  *  @param new_buffer The new state.
- *
+ *  
  */
 void dax_push_buffer_state (YY_BUFFER_STATE new_buffer )
 {
@@ -3426,7 +3420,7 @@ void dax_push_buffer_state (YY_BUFFER_STATE new_buffer )
 
 /** Removes and deletes the top of the stack, if present.
  *  The next element becomes the new top.
- *
+ *  
  */
 void dax_pop_buffer_state (void)
 {
@@ -3450,7 +3444,7 @@ void dax_pop_buffer_state (void)
 static void dax_ensure_buffer_stack (void)
 {
        yy_size_t num_to_alloc;
-
+    
        if (!(yy_buffer_stack)) {
 
                /* First allocation is just for 2 elements, since we don't know if this
@@ -3463,9 +3457,9 @@ static void dax_ensure_buffer_stack (void)
                                                                );
                if ( ! (yy_buffer_stack) )
                        YY_FATAL_ERROR( "out of dynamic memory in dax_ensure_buffer_stack()" );
-
+                                                                 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
+                               
                (yy_buffer_stack_max) = num_to_alloc;
                (yy_buffer_stack_top) = 0;
                return;
@@ -3493,13 +3487,13 @@ static void dax_ensure_buffer_stack (void)
 /** Setup the input buffer state to scan directly from a user-specified character buffer.
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
+ * 
+ * @return the newly allocated buffer state object. 
  */
 YY_BUFFER_STATE dax__scan_buffer  (char * base, yy_size_t  size )
 {
        YY_BUFFER_STATE b;
-
+    
        if ( size < 2 ||
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
             base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -3528,14 +3522,14 @@ YY_BUFFER_STATE dax__scan_buffer  (char * base, yy_size_t  size )
 /** Setup the input buffer state to scan a string. The next call to dax_lex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
- *
+ * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
  *       dax__scan_bytes() instead.
  */
 YY_BUFFER_STATE dax__scan_string (yyconst char * yystr )
 {
-
+    
        return dax__scan_bytes(yystr,strlen(yystr) );
 }
 
@@ -3543,7 +3537,7 @@ YY_BUFFER_STATE dax__scan_string (yyconst char * yystr )
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
+ * 
  * @return the newly allocated buffer state object.
  */
 YY_BUFFER_STATE dax__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
@@ -3552,7 +3546,7 @@ YY_BUFFER_STATE dax__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_le
        char *buf;
        yy_size_t n;
        yy_size_t i;
-
+    
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = _yybytes_len + 2;
        buf = (char *) dax_alloc(n  );
@@ -3638,16 +3632,16 @@ static void yy_fatal_error (yyconst char* msg )
 /* Accessor  methods (get/set functions) to struct members. */
 
 /** Get the current line number.
- *
+ * 
  */
 int dax_get_lineno  (void)
 {
-
+        
     return dax_lineno;
 }
 
 /** Get the input stream.
- *
+ * 
  */
 FILE *dax_get_in  (void)
 {
@@ -3655,7 +3649,7 @@ FILE *dax_get_in  (void)
 }
 
 /** Get the output stream.
- *
+ * 
  */
 FILE *dax_get_out  (void)
 {
@@ -3663,7 +3657,7 @@ FILE *dax_get_out  (void)
 }
 
 /** Get the length of the current token.
- *
+ * 
  */
 yy_size_t dax_get_leng  (void)
 {
@@ -3671,7 +3665,7 @@ yy_size_t dax_get_leng  (void)
 }
 
 /** Get the current token.
- *
+ * 
  */
 
 char *dax_get_text  (void)
@@ -3681,18 +3675,18 @@ char *dax_get_text  (void)
 
 /** Set the current line number.
  * @param line_number
- *
+ * 
  */
 void dax_set_lineno (int  line_number )
 {
-
+    
     dax_lineno = line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param in_str A readable stream.
- *
+ * 
  * @see dax__switch_to_buffer
  */
 void dax_set_in (FILE *  in_str )
@@ -3723,7 +3717,7 @@ static int yy_init_globals (void)
 
     /* We do not touch dax_lineno unless the option is enabled. */
     dax_lineno =  1;
-
+    
     (yy_buffer_stack) = 0;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
@@ -3753,7 +3747,7 @@ static int yy_init_globals (void)
 /* dax_lex_destroy is for both reentrant and non-reentrant scanners. */
 int dax_lex_destroy  (void)
 {
-
+    
     /* Pop the buffer stack, destroying each element. */
        while(YY_CURRENT_BUFFER){
                dax__delete_buffer(YY_CURRENT_BUFFER  );
@@ -3783,7 +3777,7 @@ int dax_lex_destroy  (void)
 #ifndef yytext_ptr
 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
-       int i;
+       register int i;
        for ( i = 0; i < n; ++i )
                s1[i] = s2[i];
 }
@@ -3792,7 +3786,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 #ifdef YY_NEED_STRLEN
 static int yy_flex_strlen (yyconst char * s )
 {
-       int n;
+       register int n;
        for ( n = 0; s[n]; ++n )
                ;
 
index c1191e1..5552c33 100644 (file)
 #ifndef _FLEXML_dax_H
 #define _FLEXML_dax_H
 
-#include <xbt/base.h>
-
 /* XML application entry points. */
 XBT_PUBLIC(void) STag_dax__adag(void);
 XBT_PUBLIC(void) ETag_dax__adag(void);
-XBT_PUBLIC(void) STag_dax__job(void);
-XBT_PUBLIC(void) ETag_dax__job(void);
-XBT_PUBLIC(void) STag_dax__uses(void);
-XBT_PUBLIC(void) ETag_dax__uses(void);
 XBT_PUBLIC(void) STag_dax__child(void);
 XBT_PUBLIC(void) ETag_dax__child(void);
+XBT_PUBLIC(void) STag_dax__job(void);
+XBT_PUBLIC(void) ETag_dax__job(void);
 XBT_PUBLIC(void) STag_dax__parent(void);
 XBT_PUBLIC(void) ETag_dax__parent(void);
+XBT_PUBLIC(void) STag_dax__uses(void);
+XBT_PUBLIC(void) ETag_dax__uses(void);
 
 /* XML application data. */
-typedef enum { AU_dax__uses_link, A_dax__uses_link_input,A_dax__uses_link_output } AT_dax__uses_link;
-typedef int AT_dax__child_ref;
-#define AU_dax__child_ref NULL
-typedef int AT_dax__uses_size;
-#define AU_dax__uses_size NULL
-typedef int AT_dax__job_namespace;
-#define AU_dax__job_namespace NULL
-typedef int AT_dax__adag_fileCount;
-#define AU_dax__adag_fileCount NULL
-typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register;
-typedef int AT_dax__adag_xmlns;
-#define AU_dax__adag_xmlns NULL
-typedef int AT_dax__uses_type;
-#define AU_dax__uses_type NULL
-typedef int AT_dax__job_id;
-#define AU_dax__job_id NULL
-typedef int AT_dax__job_name;
-#define AU_dax__job_name NULL
-typedef int AT_dax__job_level;
-#define AU_dax__job_level NULL
 typedef int AT_dax__adag_childCount;
 #define AU_dax__adag_childCount NULL
+typedef int AT_dax__adag_count;
+#define AU_dax__adag_count NULL
+typedef int AT_dax__adag_fileCount;
+#define AU_dax__adag_fileCount NULL
+typedef int AT_dax__adag_index;
+#define AU_dax__adag_index NULL
+typedef int AT_dax__adag_jobCount;
+#define AU_dax__adag_jobCount NULL
 typedef int AT_dax__adag_name;
 #define AU_dax__adag_name NULL
 typedef int AT_dax__adag_version;
 #define AU_dax__adag_version NULL
-typedef int AT_dax__uses_file;
-#define AU_dax__uses_file NULL
+typedef int AT_dax__adag_xmlns;
+#define AU_dax__adag_xmlns NULL
+typedef int AT_dax__adag_xmlns_c_xsi;
+#define AU_dax__adag_xmlns_c_xsi NULL
 typedef int AT_dax__adag_xsi_c_schemaLocation;
 #define AU_dax__adag_xsi_c_schemaLocation NULL
-typedef int AT_dax__adag_index;
-#define AU_dax__adag_index NULL
+typedef int AT_dax__child_ref;
+#define AU_dax__child_ref NULL
+typedef int AT_dax__job_id;
+#define AU_dax__job_id NULL
+typedef int AT_dax__job_level;
+#define AU_dax__job_level NULL
+typedef int AT_dax__job_name;
+#define AU_dax__job_name NULL
+typedef int AT_dax__job_namespace;
+#define AU_dax__job_namespace NULL
 typedef int AT_dax__job_runtime;
 #define AU_dax__job_runtime NULL
-typedef int AT_dax__parent_ref;
-#define AU_dax__parent_ref NULL
-typedef int AT_dax__adag_xmlns_c_xsi;
-#define AU_dax__adag_xmlns_c_xsi NULL
-typedef enum { AU_dax__uses_transfer, A_dax__uses_transfer_false,A_dax__uses_transfer_true } AT_dax__uses_transfer;
 typedef int AT_dax__job_version;
 #define AU_dax__job_version NULL
-typedef int AT_dax__adag_count;
-#define AU_dax__adag_count NULL
+typedef int AT_dax__parent_ref;
+#define AU_dax__parent_ref NULL
+typedef int AT_dax__uses_file;
+#define AU_dax__uses_file NULL
+typedef enum { AU_dax__uses_link, A_dax__uses_link_input,A_dax__uses_link_output } AT_dax__uses_link;
 typedef enum { AU_dax__uses_optional, A_dax__uses_optional_false,A_dax__uses_optional_true } AT_dax__uses_optional;
-typedef int AT_dax__adag_jobCount;
-#define AU_dax__adag_jobCount NULL
+typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register;
+typedef int AT_dax__uses_size;
+#define AU_dax__uses_size NULL
+typedef enum { AU_dax__uses_transfer, A_dax__uses_transfer_false,A_dax__uses_transfer_true } AT_dax__uses_transfer;
+typedef int AT_dax__uses_type;
+#define AU_dax__uses_type NULL
 
 /* FleXML-provided data. */
 XBT_PUBLIC_DATA(int) dax__pcdata_ix;
 XBT_PUBLIC_DATA(char *) dax__bufferstack;
 #define dax__pcdata (dax__bufferstack + dax__pcdata_ix)
-XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link;
-#define A_dax__uses_link AX_dax__uses_link
-XBT_PUBLIC_DATA(short int) dax__uses_link_isset;
-XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref;
-#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
-XBT_PUBLIC_DATA(short int) dax__child_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size;
-#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
-XBT_PUBLIC_DATA(short int) dax__uses_size_isset;
-XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace;
-#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
-XBT_PUBLIC_DATA(short int) dax__job_namespace_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount;
-#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
-XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register;
-#define A_dax__uses_register AX_dax__uses_register
-XBT_PUBLIC_DATA(short int) dax__uses_register_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xmlns) AX_dax__adag_xmlns;
-#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
-XBT_PUBLIC_DATA(short int) dax__adag_xmlns_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type;
-#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
-XBT_PUBLIC_DATA(short int) dax__uses_type_isset;
-XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id;
-#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
-XBT_PUBLIC_DATA(short int) dax__job_id_isset;
-XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name;
-#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
-XBT_PUBLIC_DATA(short int) dax__job_name_isset;
-XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level;
-#define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
-XBT_PUBLIC_DATA(short int) dax__job_level_isset;
 XBT_PUBLIC_DATA(AT_dax__adag_childCount) AX_dax__adag_childCount;
 #define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
 XBT_PUBLIC_DATA(short int) dax__adag_childCount_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count;
+#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
+XBT_PUBLIC_DATA(short int) dax__adag_count_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount;
+#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
+XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index;
+#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
+XBT_PUBLIC_DATA(short int) dax__adag_index_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount;
+#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
+XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset;
 XBT_PUBLIC_DATA(AT_dax__adag_name) AX_dax__adag_name;
 #define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
 XBT_PUBLIC_DATA(short int) dax__adag_name_isset;
 XBT_PUBLIC_DATA(AT_dax__adag_version) AX_dax__adag_version;
 #define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
 XBT_PUBLIC_DATA(short int) dax__adag_version_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file;
-#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
-XBT_PUBLIC_DATA(short int) dax__uses_file_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xmlns) AX_dax__adag_xmlns;
+#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
+XBT_PUBLIC_DATA(short int) dax__adag_xmlns_isset;
+XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi;
+#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
+XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset;
 XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation) AX_dax__adag_xsi_c_schemaLocation;
 #define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation)
 XBT_PUBLIC_DATA(short int) dax__adag_xsi_c_schemaLocation_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index;
-#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
-XBT_PUBLIC_DATA(short int) dax__adag_index_isset;
+XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref;
+#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
+XBT_PUBLIC_DATA(short int) dax__child_ref_isset;
+XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id;
+#define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
+XBT_PUBLIC_DATA(short int) dax__job_id_isset;
+XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level;
+#define A_dax__job_level (dax__bufferstack + AX_dax__job_level)
+XBT_PUBLIC_DATA(short int) dax__job_level_isset;
+XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name;
+#define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
+XBT_PUBLIC_DATA(short int) dax__job_name_isset;
+XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace;
+#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
+XBT_PUBLIC_DATA(short int) dax__job_namespace_isset;
 XBT_PUBLIC_DATA(AT_dax__job_runtime) AX_dax__job_runtime;
 #define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
 XBT_PUBLIC_DATA(short int) dax__job_runtime_isset;
-XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref;
-#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
-XBT_PUBLIC_DATA(short int) dax__parent_ref_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi;
-#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
-XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset;
-XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer;
-#define A_dax__uses_transfer AX_dax__uses_transfer
-XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset;
 XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version;
 #define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
 XBT_PUBLIC_DATA(short int) dax__job_version_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count;
-#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
-XBT_PUBLIC_DATA(short int) dax__adag_count_isset;
+XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref;
+#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
+XBT_PUBLIC_DATA(short int) dax__parent_ref_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file;
+#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
+XBT_PUBLIC_DATA(short int) dax__uses_file_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link;
+#define A_dax__uses_link AX_dax__uses_link
+XBT_PUBLIC_DATA(short int) dax__uses_link_isset;
 XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional;
 #define A_dax__uses_optional AX_dax__uses_optional
 XBT_PUBLIC_DATA(short int) dax__uses_optional_isset;
-XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount;
-#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
-XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register;
+#define A_dax__uses_register AX_dax__uses_register
+XBT_PUBLIC_DATA(short int) dax__uses_register_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size;
+#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
+XBT_PUBLIC_DATA(short int) dax__uses_size_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer;
+#define A_dax__uses_transfer AX_dax__uses_transfer
+XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset;
+XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type;
+#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
+XBT_PUBLIC_DATA(short int) dax__uses_type_isset;
 
 /* XML application utilities. */
 XBT_PUBLIC(int) dax__element_context(int);
@@ -196,5 +194,5 @@ XBT_PUBLIC(int) dax__element_context(int);
 XBT_PUBLIC(int) yylex(void);
 
 /* Flexml error handling function (useful only when -q flag passed to flexml) */
-XBT_PRIVATE const char * dax__parse_err_msg(void);
+const char * dax__parse_err_msg(void);
 #endif
index 2141196..6eb07fd 100644 (file)
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_daxparse, sd, "Parsing DAX files");
 
 extern "C" {
-       #undef CLEANUP
-       #include "dax_dtd.h"
-       #include "dax_dtd.c"
+  #undef CLEANUP
+  #include "dax_dtd.h"
+  #define register /* g++ don't like register, so don't say it */
+  #include "dax_dtd.c"
+  #undef register
 }
 
 bool children_are_marked(SD_task_t task);
@@ -25,10 +27,9 @@ bool parents_are_marked(SD_task_t task);
 
 static double dax_parse_double(const char *string)
 {
-  int ret = 0;
   double value;
 
-  ret = sscanf(string, "%lg", &value);
+  int ret = sscanf(string, "%lg", &value);
   xbt_assert (ret == 1, "Parse error on line %d: %s is not a double", dax_lineno, string);
   return value;
 }
@@ -38,16 +39,14 @@ static double dax_parse_double(const char *string)
 void uniq_transfer_task_name(SD_task_t task)
 {
   SD_task_t child, parent;
-  xbt_dynar_t children, parents;
-  char *new_name;
 
-  children = SD_task_get_children(task);
-  parents = SD_task_get_parents(task);
+  xbt_dynar_t children = SD_task_get_children(task);
+  xbt_dynar_t parents = SD_task_get_parents(task);
 
   xbt_dynar_get_cpy(children, 0, &child);
   xbt_dynar_get_cpy(parents, 0, &parent);
 
-  new_name = bprintf("%s_%s_%s", SD_task_get_name(parent), SD_task_get_name(task), SD_task_get_name(child));
+  char *new_name = bprintf("%s_%s_%s", SD_task_get_name(parent), SD_task_get_name(task), SD_task_get_name(child));
 
   SD_task_set_name(task, new_name);
 
@@ -57,41 +56,30 @@ void uniq_transfer_task_name(SD_task_t task)
 }
 
 bool children_are_marked(SD_task_t task){
-  SD_task_t child_task = NULL;
-  bool all_marked = true;
   SD_dependency_t depafter = NULL;
   unsigned int count;
+
   xbt_dynar_foreach(task->tasks_after,count,depafter){
-    child_task = depafter->dst;
-    //test marked
-    if(child_task->marked == 0) {
-      all_marked = false;
-      break;
+    if(depafter->dst->marked == 0) {
+      return false;
     }
-    child_task = NULL;
   }
-  return all_marked;
+  return true;
 }
 
 bool parents_are_marked(SD_task_t task){
-  SD_task_t parent_task = NULL;
-  bool all_marked = true;
   SD_dependency_t depbefore = NULL;
   unsigned int count;
   xbt_dynar_foreach(task->tasks_before,count,depbefore){
-    parent_task = depbefore->src;
-    //test marked
-    if(parent_task->marked == 0) {
-      all_marked = false;
-      break;
+    if(depbefore->src->marked == 0) {
+      return false;
     }
-    parent_task = NULL;
   }
-  return all_marked;
+  return true;
 }
 
 bool acyclic_graph_detail(xbt_dynar_t dag){
-  unsigned int count=0, count_current=0;
+  unsigned int count, count_current=0;
   bool all_marked = true;
   SD_task_t task = NULL, parent_task = NULL, child_task = NULL;
   SD_dependency_t depbefore = NULL, depafter = NULL;
@@ -104,19 +92,14 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
       xbt_dynar_push(current, &task);
     }
   }
-  task = NULL;
-  count = 0;
   //test if something has to be done for the next iteration
   while(!xbt_dynar_is_empty(current)){
     next = xbt_dynar_new(sizeof(SD_task_t),NULL);
     //test if the current iteration is done
-    count_current=0;
     xbt_dynar_foreach(current,count_current,task){
       if (task == NULL) continue;
-      count = 0;
       //push task in next
       task->marked = 1;
-      count = 0;
       xbt_dynar_foreach(task->tasks_before,count,depbefore){
         parent_task = depbefore->src;
         if(parent_task->kind == SD_TASK_COMM_E2E){
@@ -134,15 +117,12 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
         }
         parent_task = NULL;
       }
-      task = NULL;
-      count = 0;
     }
     xbt_dynar_free(&current);
     current = next;
     next = NULL;
   }
   xbt_dynar_free(&current);
-  current = NULL;
   all_marked = true;
   xbt_dynar_foreach(dag,count,task){
     if(task->kind == SD_TASK_COMM_E2E) continue;
@@ -153,7 +133,6 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
       break;
     }
   }
-  task = NULL;
   if(!all_marked){
     XBT_VERB("there is at least one cycle in your task graph");
 
@@ -165,8 +144,6 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
       }
     }
 
-    count = 0;
-    task = NULL;
     xbt_dynar_foreach(dag,count,task){
       if(task->kind == SD_TASK_COMM_E2E) continue;
       if(xbt_dynar_is_empty(task->tasks_before)){
@@ -174,19 +151,14 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
         xbt_dynar_push(current, &task);
       }
     }
-    task = NULL;
-    count = 0;
     //test if something has to be done for the next iteration
     while(!xbt_dynar_is_empty(current)){
       next = xbt_dynar_new(sizeof(SD_task_t),NULL);
       //test if the current iteration is done
-      count_current=0;
       xbt_dynar_foreach(current,count_current,task){
         if (task == NULL) continue;
-        count = 0;
         //push task in next
         task->marked = 1;
-        count = 0;
         xbt_dynar_foreach(task->tasks_after,count,depafter){
           child_task = depbefore->dst;
           if(child_task->kind == SD_TASK_COMM_E2E){
@@ -204,15 +176,12 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
           }
           child_task = NULL;
         }
-        task = NULL;
-        count = 0;
       }
       xbt_dynar_free(&current);
       current = next;
       next = NULL;
     }
     xbt_dynar_free(&current);
-    current = NULL;
     all_marked = true;
     xbt_dynar_foreach(dag,count,task){
       if(task->kind == SD_TASK_COMM_E2E) continue;
@@ -226,8 +195,6 @@ bool acyclic_graph_detail(xbt_dynar_t dag){
   return all_marked;
 }
 
-
-
 static YY_BUFFER_STATE input_buffer;
 
 static xbt_dynar_t result;
@@ -370,12 +337,11 @@ void STag_dax__job(void)
 
 void STag_dax__uses(void)
 {
-  SD_task_t file;
   double size = dax_parse_double(A_dax__uses_size);
   int is_input = (A_dax__uses_link == A_dax__uses_link_input);
 
 //  XBT_INFO("See <uses file=%s %s>",A_dax__uses_file,(is_input?"in":"out"));
-  file = (SD_task_t)xbt_dict_get_or_null(files, A_dax__uses_file);
+  SD_task_t file = (SD_task_t)xbt_dict_get_or_null(files, A_dax__uses_file);
   if (file == NULL) {
     file = SD_task_create_comm_e2e(A_dax__uses_file, NULL, size);
     xbt_dynar_pop(sd_global->initial_task_set,NULL);
index 9333294..25fdbae 100644 (file)
@@ -6,11 +6,9 @@
 
 #include "src/simdag/simdag_private.h"
 #include "simgrid/simdag.h"
-#include "xbt/misc.h"
 #include "xbt/log.h"
 #include <stdbool.h>
 #include <string.h>
-#include <libgen.h>
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files");
 
@@ -21,8 +19,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_dotparse, sd, "Parsing DOT files");
 #elif HAVE_AGRAPH_H
 #include <graphviz/agraph.h>
 #define agnxtnode(dot, node)    agnxtnode(node)
-#define agfstin(dot, node)      agfstin(node)
-#define agnxtin(dot, edge)      agnxtin(edge)
 #define agfstout(dot, node)     agfstout(node)
 #define agnxtout(dot, edge)     agnxtout(edge)
 #endif
@@ -32,219 +28,114 @@ typedef enum {
   parallel
 } seq_par_t;
 
-xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par);
+xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool schedule);
 
-static xbt_dynar_t result;
-static xbt_dict_t jobs;
-static xbt_dict_t computers;
-static Agraph_t *dag_dot;
-static bool schedule = true;
 
 static void dot_task_p_free(void *task) {
-  SD_task_t *t = (SD_task_t *)task;
-  SD_task_destroy(*t);
+  SD_task_destroy(*(SD_task_t *)task);
 }
 
 /** @brief loads a DOT file describing a DAG
  * 
- * See http://www.graphviz.org/doc/info/lang.html
- * for more details.
- * To obtain information about transfers and tasks, two attributes are
- * required : size on task (execution time in Flop) and size on edge
- * (the amount of data transfer in bit).
- * if they aren't here, there choose to be equal to zero.
+ * See http://www.graphviz.org/doc/info/lang.html  for more details.
+ * The size attribute of a node describes:
+ *   - for a compute task: the amount of flops to execute
+ *   - for a communication task : the amount of bytes to transfer
+ * If this attribute is ommited, the default value is zero.
  */
 xbt_dynar_t SD_dotload(const char *filename) {
-  computers = xbt_dict_new_homogeneous(NULL);
-  schedule = false;
-  SD_dotload_generic(filename, sequential);
-  xbt_dynar_t computer = NULL;
-  xbt_dict_cursor_t dict_cursor;
-  char *computer_name;
-  xbt_dict_foreach(computers,dict_cursor,computer_name,computer){
-    xbt_dynar_free(&computer);
-  }
-  xbt_dict_free(&computers);
-  return result;
+  return SD_dotload_generic(filename, sequential, false);
 }
 
-xbt_dynar_t SD_dotload_with_sched(const char *filename) {
-  computers = xbt_dict_new_homogeneous(NULL);
-  SD_dotload_generic(filename, sequential);
-
-  if(schedule){
-    xbt_dynar_t computer = NULL;
-    xbt_dict_cursor_t dict_cursor;
-    char *computer_name;
-    const sg_host_t *workstations = sg_host_list ();
-    xbt_dict_foreach(computers,dict_cursor,computer_name,computer){
-      int count_computer = atoi(computer_name);
-      unsigned int count=0;
-      SD_task_t task;
-      SD_task_t task_previous = NULL;
-      xbt_dynar_foreach(computer,count,task){
-        /* add dependency between the previous and the task to avoid
-         * parallel execution */
-        if(task != NULL ){
-          if(task_previous != NULL &&
-             !SD_task_dependency_exists(task_previous, task))
-            SD_task_dependency_add(NULL, NULL, task_previous, task);
-          SD_task_schedulel(task, 1, workstations[count_computer]);
-          task_previous = task;
-        }
-      }
-      xbt_dynar_free(&computer);
-    }
-    xbt_dict_free(&computers);
-    if(acyclic_graph_detail(result))
-      return result;
-    else
-      XBT_WARN("There is at least one cycle in the provided task graph");
-  }else{
-    XBT_WARN("The scheduling is ignored");
-  }
-  xbt_dynar_t computer = NULL;
-  xbt_dict_cursor_t dict_cursor;
-  char *computer_name;
-  xbt_dict_foreach(computers,dict_cursor,computer_name,computer){
-    xbt_dynar_free(&computer);
-  }
-  xbt_dict_free(&computers);
-  xbt_dynar_free(&result);
-  return NULL;
+xbt_dynar_t SD_PTG_dotload(const char * filename) {
+  return SD_dotload_generic(filename, parallel, false);
 }
 
-xbt_dynar_t SD_PTG_dotload(const char * filename) {
-  xbt_dynar_t result = SD_dotload_generic(filename, parallel);
-  if (!acyclic_graph_detail(result)) {
-    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
-              basename((char*)filename));
-    xbt_dynar_free(&result);
-    /* (result == NULL) here */
-  }
-  return result;
+xbt_dynar_t SD_dotload_with_sched(const char *filename) {
+  return SD_dotload_generic(filename, sequential, true);
 }
 
-#ifdef HAVE_CGRAPH_H
 static int edge_compare(const void *a, const void *b)
 {
   unsigned va = AGSEQ(*(Agedge_t **)a);
   unsigned vb = AGSEQ(*(Agedge_t **)b);
   return va == vb ? 0 : (va < vb ? -1 : 1);
 }
-#endif
 
-xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
+xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par, bool schedule){
   xbt_assert(filename, "Unable to use a null file descriptor\n");
-  unsigned int i;
-  result = xbt_dynar_new(sizeof(SD_task_t), dot_task_p_free);
-  jobs = xbt_dict_new_homogeneous(NULL);
   FILE *in_file = fopen(filename, "r");
-  if (in_file == NULL)
-    xbt_die("Failed to open file: %s", filename);
-  dag_dot = agread(in_file, NIL(Agdisc_t *));
+  xbt_assert(in_file != NULL, "Failed to open file: %s", filename);
+
+  unsigned int i;
   SD_task_t root, end, task;
-  /*
-   * Create all the nodes
-   */
+  xbt_dict_t computers;
+  xbt_dynar_t computer = NULL;
+  xbt_dict_cursor_t dict_cursor;
+  bool schedule_success = true;
+
+  xbt_dict_t jobs = xbt_dict_new_homogeneous(NULL);
+  xbt_dynar_t result = xbt_dynar_new(sizeof(SD_task_t), dot_task_p_free);
+
+  Agraph_t * dag_dot = agread(in_file, NIL(Agdisc_t *));
+
+  if (schedule)
+    computers = xbt_dict_new_homogeneous(NULL);
+
+  /* Create all the nodes */
   Agnode_t *node = NULL;
   for (node = agfstnode(dag_dot); node; node = agnxtnode(dag_dot, node)) {
-
     char *name = agnameof(node);
     double amount = atof(agget(node, (char *) "size"));
-    double alpha = 0.0;
-
-    if (seq_or_par == sequential){
-      XBT_DEBUG("See <job id=%s amount =%.0f>", name, amount);
-    } else {
-      if (!strcmp(agget(node, (char *) "alpha"), "")){
-        alpha = atof(agget(node, (char *) "alpha"));
-        if (alpha == -1.){
-          XBT_DEBUG("negative alpha value provided. Set to 0.");
-          alpha = 0.0 ;
-        }
-      } else {
-        XBT_DEBUG("no alpha value provided. Set to 0");
-        alpha = 0.0 ;
-      }
-
-      XBT_DEBUG("See <job id=%s amount =%.0f alpha = %.3f>",
-          name, amount, alpha);
-    }
 
     if (!(task = (SD_task_t)xbt_dict_get_or_null(jobs, name))) {
       if (seq_or_par == sequential){
+        XBT_DEBUG("See <job id=%s amount =%.0f>", name, amount);
         task = SD_task_create_comp_seq(name, NULL , amount);
       } else {
+        double alpha = atof(agget(node, (char *) "alpha"));
+        XBT_DEBUG("See <job id=%s amount =%.0f alpha = %.3f>", name, amount, alpha);
         task = SD_task_create_comp_par_amdahl(name, NULL , amount, alpha);
       }
+
       xbt_dict_set(jobs, name, task, NULL);
-      if (!strcmp(name, "root")){
-      /* by design the root task is always SCHEDULABLE */
-      SD_task_set_state(task, SD_SCHEDULABLE);
-      /* Put it at the beginning of the dynar */
-        xbt_dynar_insert_at(result, 0, &task);
-      } else {
-        if (!strcmp(name, "end")){
-          XBT_DEBUG("Declaration of the 'end' node, don't store it yet.");
-          end = task;
-          /* Should be inserted later in the dynar */
-        } else {
-          xbt_dynar_push(result, &task);
-        }
-      }
+
+      if (strcmp(name,"root") && strcmp(name,"end"))
+        xbt_dynar_push(result, &task);
 
       if((seq_or_par == sequential) &&
-          (schedule ||
-              XBT_LOG_ISENABLED(sd_dotparse, xbt_log_priority_verbose))){
-        /* try to take the information to schedule the task only if all is
-         * right*/
-        int performer, order;
+        ((schedule && schedule_success) || XBT_LOG_ISENABLED(sd_dotparse, xbt_log_priority_verbose))){
+        /* try to take the information to schedule the task only if all is right*/
         char *char_performer = agget(node, (char *) "performer");
         char *char_order = agget(node, (char *) "order");
-        /* performer is the computer which execute the task */
-        performer =
-            ((!char_performer || !strcmp(char_performer,"")) ? -1:atoi(char_performer));
-        /* order is giving the task order on one computer */
-        order = ((!char_order || !strcmp(char_order, ""))? -1:atoi(char_order));
-
-        XBT_DEBUG ("Task '%s' is scheduled on workstation '%d' in position '%d'",
-                    task->name, performer, order);
-        xbt_dynar_t computer = NULL;
-        if(performer != -1 && order != -1){
-          /* required parameters are given */
-          computer = (xbt_dynar_t)xbt_dict_get_or_null(computers, char_performer);
-          if(computer == NULL){
+        /* Tasks will execute on in a given "order" on a given set of "performer" hosts */
+        int performer = ((!char_performer || !strcmp(char_performer,"")) ? -1:atoi(char_performer));
+        int order = ((!char_order || !strcmp(char_order, ""))? -1:atoi(char_order));
+
+        if((performer != -1 && order != -1) && performer < (int) sg_host_count()){
+          /* required parameters are given and less performers than hosts are required */
+          XBT_DEBUG ("Task '%s' is scheduled on workstation '%d' in position '%d'", task->name, performer, order);
+          if(!(computer = (xbt_dynar_t) xbt_dict_get_or_null(computers, char_performer))){
             computer = xbt_dynar_new(sizeof(SD_task_t), NULL);
             xbt_dict_set(computers, char_performer, computer, NULL);
           }
-          if(performer < xbt_dict_length(host_list)){
-            /* the wanted computer is available */
-            SD_task_t *task_test = NULL;
-            if((unsigned int)order < computer->used)
-              task_test = (SD_task_t *)xbt_dynar_get_ptr(computer,order);
-            if(task_test != NULL && *task_test != NULL && *task_test != task){
-              /* the user gives the same order to several tasks */
-              schedule = false;
-              XBT_VERB("The task %s starts on the computer %s at the position : %s like the task %s",
-                     (*task_test)->name, char_performer, char_order,
-                     task->name);
-            }else{
-              /* the parameter seems to be ok */
-              xbt_dynar_set_as(computer, order, SD_task_t, task);
+
+          if((unsigned int)order < xbt_dynar_length(computer)){
+            SD_task_t *task_test = (SD_task_t *)xbt_dynar_get_ptr(computer,order);
+            if(*task_test && *task_test != task){
+              /* the user gave the same order to several tasks */
+              schedule_success = false;
+              XBT_VERB("Task '%s' wants to start on performer '%s' at the same position '%s' as task '%s'",
+                       (*task_test)->name, char_performer, char_order, task->name);
+              continue;
             }
-          }else{
-            /* the platform has not enough processors to schedule the DAG like
-             * the user wants*/
-            schedule = false;
-            XBT_VERB("The schedule is ignored, there are not enough computers");
           }
-        }
-        else {
+          /* the parameter seems to be ok */
+          xbt_dynar_set_as(computer, order, SD_task_t, task);
+        } else {
           /* one of required parameters is not given */
-          schedule = false;
-          XBT_VERB("The schedule is ignored, the task %s is not correctly scheduled",
-              task->name);
+          schedule_success = false;
+          XBT_VERB("The schedule is ignored, task '%s' can not be scheduled on %d hosts", task->name, performer);
         }
       }
     } else {
@@ -252,56 +143,32 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
     }
   }
 
-  /*
-   * Check if 'root' and 'end' nodes have been explicitly declared.
-   * If not, create them.
-   */
-  if (!(root = (SD_task_t)xbt_dict_get_or_null(jobs, "root"))){
-    if (seq_or_par == sequential)
-      root = SD_task_create_comp_seq("root", NULL, 0);
-    else
-      root = SD_task_create_comp_par_amdahl("root", NULL, 0, 0);
-    /* by design the root task is always SCHEDULABLE */
-    SD_task_set_state(root, SD_SCHEDULABLE);
-    /* Put it at the beginning of the dynar */
-      xbt_dynar_insert_at(result, 0, &root);
-  }
+  /*Check if 'root' and 'end' nodes have been explicitly declared.  If not, create them. */
+  if (!(root = (SD_task_t)xbt_dict_get_or_null(jobs, "root")))
+    root = (seq_or_par == sequential?SD_task_create_comp_seq("root", NULL, 0):
+                                     SD_task_create_comp_par_amdahl("root", NULL, 0, 0));
 
-  if (!(end = (SD_task_t)xbt_dict_get_or_null(jobs, "end"))){
-    if (seq_or_par == sequential)
-      end = SD_task_create_comp_seq("end", NULL, 0);
-    else
-      end = SD_task_create_comp_par_amdahl("end", NULL, 0, 0);
-    /* Should be inserted later in the dynar */
-  }
+  SD_task_set_state(root, SD_SCHEDULABLE);   /* by design the root task is always SCHEDULABLE */
+  xbt_dynar_insert_at(result, 0, &root);     /* Put it at the beginning of the dynar */
+
+  if (!(end = (SD_task_t)xbt_dict_get_or_null(jobs, "end")))
+    end = (seq_or_par == sequential?SD_task_create_comp_seq("end", NULL, 0):
+                                    SD_task_create_comp_par_amdahl("end", NULL, 0, 0));
 
-  /*
-   * Create edges
-   */
+  /* Create edges */
   xbt_dynar_t edges = xbt_dynar_new(sizeof(Agedge_t*), NULL);
   for (node = agfstnode(dag_dot); node; node = agnxtnode(dag_dot, node)) {
-    unsigned cursor;
     Agedge_t * edge;
     xbt_dynar_reset(edges);
     for (edge = agfstout(dag_dot, node); edge; edge = agnxtout(dag_dot, edge))
       xbt_dynar_push_as(edges, Agedge_t *, edge);
-#ifdef HAVE_CGRAPH_H
-    /* Hack: circumvent a bug in libcgraph, where the edges are not always given
-     * back in creation order.  We sort them again, according to their sequence
-     * id.  The problem appears to be solved (i.e.: I did not test it) in
-     * graphviz' mercurial repository by the following changeset:
-     *    changeset:   8431:d5f1fb7e8103
-     *    user:        Emden Gansner <erg@research.att.com>
-     *    date:        Tue Oct 11 12:38:58 2011 -0400
-     *    summary:     Make sure edges are stored in node creation order
-     * It should be fixed in graphviz 2.30 and above.
-     */
+
+    /* Be sure edges are sorted */
     xbt_dynar_sort(edges, edge_compare);
-#endif
-    xbt_dynar_foreach(edges, cursor, edge) {
+
+    xbt_dynar_foreach(edges, i, edge) {
       SD_task_t src, dst;
-      char *src_name=agnameof(agtail(edge));
-      char *dst_name=agnameof(aghead(edge));
+      char *src_name=agnameof(agtail(edge)), *dst_name=agnameof(aghead(edge));
       double size = atof(agget(edge, (char *) "size"));
 
       src = (SD_task_t)xbt_dict_get_or_null(jobs, src_name);
@@ -331,25 +198,18 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
   }
   xbt_dynar_free(&edges);
 
-  /* all compute and transfer tasks have been created, put the "end" node at
-   * the end of dynar
-   */
-  XBT_DEBUG("All tasks have been created, put %s at the end of the dynar",
-      end->name);
+  XBT_DEBUG("All tasks have been created, put %s at the end of the dynar", end->name);
   xbt_dynar_push(result, &end);
 
   /* Connect entry tasks to 'root', and exit tasks to 'end'*/
-
   xbt_dynar_foreach (result, i, task){
-    if (task == root || task == end)
-      continue;
-    if (xbt_dynar_is_empty(task->tasks_before)) {
-      XBT_DEBUG("file '%s' has no source. Add dependency from 'root'",
-          task->name);
+    if (xbt_dynar_is_empty(task->tasks_before) && task != root) {
+      XBT_DEBUG("Task '%s' has no source. Add dependency from 'root'", task->name);
       SD_task_dependency_add(NULL, NULL, root, task);
-    } else if (xbt_dynar_is_empty(task->tasks_after)) {
-      XBT_DEBUG("file '%s' has no destination. Add dependency to 'end'",
-          task->name);
+    }
+
+    if (xbt_dynar_is_empty(task->tasks_after) && task != end) {
+      XBT_DEBUG("Task '%s' has no destination. Add dependency to 'end'", task->name);
       SD_task_dependency_add(NULL, NULL, task, end);
     }
   }
@@ -358,11 +218,39 @@ xbt_dynar_t SD_dotload_generic(const char * filename, seq_par_t seq_or_par){
   xbt_dict_free(&jobs);
   fclose(in_file);
 
-  if (!acyclic_graph_detail(result)) {
-    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.",
-              basename((char*)filename));
+  if(schedule){
+    char *computer_name;
+    if (schedule_success) {
+      const sg_host_t *workstations = sg_host_list ();
+      xbt_dict_foreach(computers,dict_cursor,computer_name,computer){
+        SD_task_t previous_task = NULL;
+        xbt_dynar_foreach(computer, i, task){
+          /* add dependency between the previous and the task to avoid parallel execution */
+          if(task){
+            if(previous_task && !SD_task_dependency_exists(previous_task, task))
+              SD_task_dependency_add(NULL, NULL, previous_task, task);
+
+            SD_task_schedulel(task, 1, workstations[atoi(computer_name)]);
+            previous_task = task;
+          }
+        }
+        xbt_dynar_free(&computer);
+      }
+      xbt_dict_free(&computers);
+    } else {
+      XBT_WARN("The scheduling is ignored");
+      xbt_dict_foreach(computers,dict_cursor,computer_name,computer)
+        xbt_dynar_free(&computer);
+      xbt_dict_free(&computers);
+      xbt_dynar_free(&result);
+      result = NULL;
+    }
+  }
+
+  if (result && !acyclic_graph_detail(result)) {
+    XBT_ERROR("The DOT described in %s is not a DAG. It contains a cycle.", basename((char*)filename));
     xbt_dynar_free(&result);
-    /* (result == NULL) here */
+    result = NULL;
   }
   return result;
 }
index f506061..f8b6d50 100644 (file)
@@ -76,24 +76,6 @@ void SD_config(const char *key, const char *value){
   xbt_cfg_set_as_string(_sg_cfg_set, key, value);
 }
 
-/**
- * \brief Reinits the application part of the simulation (experimental feature)
- *
- * This function allows you to run several simulations on the same platform
- * by resetting the part describing the application.
- *
- * @warning: this function is still experimental and not perfect. For example,
- * the simulation clock (and traces usage) is not reset. So, do not use it if
- * you use traces in your simulation, and do not use absolute timing after
- * using it.
- * That being said, this function is still precious if you want to compare a
- * bunch of heuristics on the same platforms.
- */
-void SD_application_reinit(void)
-{
-  xbt_die("This function is not working since the C++ links and others. Please report the problem if you really need that function.");
-}
-
 /**
  * \brief Creates the environment
  *
@@ -240,7 +222,7 @@ xbt_dynar_t SD_simulate(double how_long) {
       /* let's see which tasks have just failed */
       while ((action = surf_model_extract_failed_action_set(model))) {
         task = (SD_task_t) action->getData();
-        task->start_time = surf_action_get_start_time(task->surf_action);
+        task->start_time = task->surf_action->getStartTime();
         task->finish_time = surf_get_clock();
         XBT_VERB("Task '%s' failed", SD_task_get_name(task));
         SD_task_set_state(task, SD_FAILED);
index c5e72f2..c9243b0 100644 (file)
@@ -35,7 +35,6 @@ void SD_task_recycle_f(void *t)
   task->state= SD_NOT_SCHEDULED;
   xbt_dynar_push(sd_global->initial_task_set,&task);
 
-
   task->marked = 0;
 
   task->start_time = -1.0;
@@ -156,7 +155,7 @@ SD_task_t SD_task_create_comp_seq(const char *name, void *data, double flops_amo
 SD_task_t SD_task_create_comp_par_amdahl(const char *name, void *data, double flops_amount, double alpha)
 {
   xbt_assert(alpha < 1. && alpha >= 0., "Invalid parameter: alpha must be in [0.;1.[");
-  
+
   SD_task_t res = SD_task_create(name, data, flops_amount);
   res->alpha = alpha;
   res->kind = SD_TASK_COMP_PAR_AMDAHL;
@@ -197,7 +196,6 @@ SD_task_t SD_task_create_comm_par_mxn_1d_block(const char *name, void *data, dou
  */
 void SD_task_destroy(SD_task_t task)
 {
-  int idx;
   XBT_DEBUG("Destroying task %s...", SD_task_get_name(task));
 
   __SD_task_remove_dependencies(task);
@@ -205,7 +203,7 @@ void SD_task_destroy(SD_task_t task)
   if (task->state == SD_SCHEDULED || task->state == SD_RUNNABLE)
     __SD_task_destroy_scheduling_data(task);
 
-  idx = xbt_dynar_search_or_negative(sd_global->return_set, &task);
+  int idx = xbt_dynar_search_or_negative(sd_global->return_set, &task);
   if (idx >=0) {
     xbt_dynar_remove_at(sd_global->return_set, idx, NULL);
   }
@@ -370,10 +368,9 @@ void SD_task_set_name(SD_task_t task, const char *name)
 xbt_dynar_t SD_task_get_parents(SD_task_t task)
 {
   unsigned int i;
-  xbt_dynar_t parents;
   SD_dependency_t dep;
 
-  parents = xbt_dynar_new(sizeof(SD_task_t), NULL);
+  xbt_dynar_t parents = xbt_dynar_new(sizeof(SD_task_t), NULL);
   xbt_dynar_foreach(task->tasks_before, i, dep) {
     xbt_dynar_push(parents, &(dep->src));
   }
@@ -388,10 +385,9 @@ xbt_dynar_t SD_task_get_parents(SD_task_t task)
 xbt_dynar_t SD_task_get_children(SD_task_t task)
 {
   unsigned int i;
-  xbt_dynar_t children;
   SD_dependency_t dep;
 
-  children = xbt_dynar_new(sizeof(SD_task_t), NULL);
+  xbt_dynar_t children = xbt_dynar_new(sizeof(SD_task_t), NULL);
   xbt_dynar_foreach(task->tasks_after, i, dep) {
     xbt_dynar_push(children, &(dep->dst));
   }
@@ -472,7 +468,7 @@ double SD_task_get_alpha(SD_task_t task)
 double SD_task_get_remaining_amount(SD_task_t task)
 {
   if (task->surf_action)
-    return surf_action_get_remains(task->surf_action);
+    return task->surf_action->getRemains();
   else
     return task->remains;
 }
@@ -487,10 +483,9 @@ void SD_task_dump(SD_task_t task)
 {
   unsigned int counter;
   SD_dependency_t dependency;
-  char *statename;
 
   XBT_INFO("Displaying task %s", SD_task_get_name(task));
-  statename = bprintf("%s%s%s%s%s%s%s",
+  char *statename = bprintf("%s%s%s%s%s%s%s",
                       (task->state == SD_NOT_SCHEDULED ? " not scheduled" : ""),
                       (task->state == SD_SCHEDULABLE ? " schedulable" : ""),
                       (task->state == SD_SCHEDULED ? " scheduled" : ""),
@@ -588,20 +583,15 @@ static void __SD_task_dependency_destroy(void *dependency)
  */
 void SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task_t dst)
 {
-  xbt_dynar_t dynar;
-  unsigned long length;
   int found = 0;
-  unsigned long i;
   SD_dependency_t dependency;
-  e_SD_task_state_t state;
 
-  dynar = src->tasks_after;
-  length = xbt_dynar_length(dynar);
+  unsigned long length = xbt_dynar_length(src->tasks_after);
 
   if (src == dst)
     THROWF(arg_error, 0, "Cannot add a dependency between task '%s' and itself", SD_task_get_name(src));
 
-  state = SD_task_get_state(src);
+  e_SD_task_state_t state = SD_task_get_state(src);
   if (state != SD_NOT_SCHEDULED && state != SD_SCHEDULABLE && state != SD_RUNNING && state != SD_SCHEDULED &&
        state != SD_RUNNABLE)
     THROWF(arg_error, 0, "Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED, SD_RUNNABLE, or SD_RUNNING",
@@ -613,8 +603,8 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task
            SD_task_get_name(dst));
 
   XBT_DEBUG("SD_task_dependency_add: src = %s, dst = %s", SD_task_get_name(src), SD_task_get_name(dst));
-  for (i = 0; i < length && !found; i++) {
-    xbt_dynar_get_cpy(dynar, i, &dependency);
+  for (unsigned long i = 0; i < length && !found; i++) {
+    xbt_dynar_get_cpy(src->tasks_after, i, &dependency);
     found = (dependency->dst == dst);
     XBT_DEBUG("Dependency %lu: dependency->dst = %s", i, SD_task_get_name(dependency->dst));
   }
@@ -643,6 +633,7 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task
     SD_task_set_state(dst, SD_SCHEDULED);
   }
 }
+
 /**
  * \brief Returns the name given as input when dependency has been created..
  *
@@ -672,13 +663,12 @@ const char *SD_task_dependency_get_name(SD_task_t src, SD_task_t dst){
  */
 int SD_task_dependency_exists(SD_task_t src, SD_task_t dst)
 {
-  unsigned int counter;
-  SD_dependency_t dependency;
-
   xbt_assert(src != NULL || dst != NULL, "Invalid parameter: both src and dst are NULL");
 
   if (src) {
     if (dst) {
+      unsigned int counter;
+      SD_dependency_t dependency;
       xbt_dynar_foreach(src->tasks_after, counter, dependency) {
         if (dependency->dst == dst)
           return 1;
@@ -701,20 +691,17 @@ int SD_task_dependency_exists(SD_task_t src, SD_task_t dst)
  */
 void SD_task_dependency_remove(SD_task_t src, SD_task_t dst)
 {
-  xbt_dynar_t dynar;
   unsigned long length;
   int found = 0;
-  unsigned long i;
   SD_dependency_t dependency;
 
   /* remove the dependency from src->tasks_after */
-  dynar = src->tasks_after;
-  length = xbt_dynar_length(dynar);
+  length = xbt_dynar_length(src->tasks_after);
 
-  for (i = 0; i < length && !found; i++) {
-    xbt_dynar_get_cpy(dynar, i, &dependency);
+  for (unsigned long i = 0; i < length && !found; i++) {
+    xbt_dynar_get_cpy(src->tasks_after, i, &dependency);
     if (dependency->dst == dst) {
-      xbt_dynar_remove_at(dynar, i, NULL);
+      xbt_dynar_remove_at(src->tasks_after, i, NULL);
       found = 1;
     }
   }
@@ -723,14 +710,13 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst)
            SD_task_get_name(src), SD_task_get_name(dst), SD_task_get_name(dst), SD_task_get_name(src));
 
   /* remove the dependency from dst->tasks_before */
-  dynar = dst->tasks_before;
-  length = xbt_dynar_length(dynar);
+  length = xbt_dynar_length(dst->tasks_before);
   found = 0;
 
-  for (i = 0; i < length && !found; i++) {
-    xbt_dynar_get_cpy(dynar, i, &dependency);
+  for (unsigned long i = 0; i < length && !found; i++) {
+    xbt_dynar_get_cpy(dst->tasks_before, i, &dependency);
     if (dependency->src == src) {
-      xbt_dynar_remove_at(dynar, i, NULL);
+      xbt_dynar_remove_at(dst->tasks_before, i, NULL);
       __SD_task_dependency_destroy(dependency);
       dst->unsatisfied_dependencies--;
       dst->is_not_ready--;
@@ -742,7 +728,6 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst)
               SD_task_get_name(dst), SD_task_get_name(src), SD_task_get_name(src), SD_task_get_name(dst));
 
   /* if the task was scheduled and dst->tasks_before is empty now, we can make it runnable */
-
   if (dst->unsatisfied_dependencies == 0) {
     if (SD_task_get_state(dst) == SD_SCHEDULED)
       SD_task_set_state(dst, SD_RUNNABLE);
@@ -764,17 +749,13 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst)
  */
 void *SD_task_dependency_get_data(SD_task_t src, SD_task_t dst)
 {
-  xbt_dynar_t dynar;
-  unsigned long length;
   int found = 0;
-  unsigned long i;
   SD_dependency_t dependency;
 
-  dynar = src->tasks_after;
-  length = xbt_dynar_length(dynar);
+  unsigned long length = xbt_dynar_length(src->tasks_after);
 
-  for (i = 0; i < length && !found; i++) {
-    xbt_dynar_get_cpy(dynar, i, &dependency);
+  for (unsigned long i = 0; i < length && !found; i++) {
+    xbt_dynar_get_cpy(src->tasks_after, i, &dependency);
     found = (dependency->dst == dst);
   }
   if (!found)
@@ -790,8 +771,7 @@ void *SD_task_dependency_get_data(SD_task_t src, SD_task_t dst)
  * The watch point is then automatically removed.
  *
  * \param task a task
- * \param state the \ref e_SD_task_state_t "state" you want to watch
- * (cannot be #SD_NOT_SCHEDULED)
+ * \param state the \ref e_SD_task_state_t "state" you want to watch (cannot be #SD_NOT_SCHEDULED)
  * \see SD_task_unwatch()
  */
 void SD_task_watch(SD_task_t task, e_SD_task_state_t state)
@@ -812,7 +792,6 @@ void SD_task_watch(SD_task_t task, e_SD_task_state_t state)
 void SD_task_unwatch(SD_task_t task, e_SD_task_state_t state)
 {
   xbt_assert(state != SD_NOT_SCHEDULED, "SimDag error: Cannot have a watch point for state SD_NOT_SCHEDULED");
-
   task->watch_points = task->watch_points & ~state;
 }
 
@@ -832,19 +811,17 @@ void SD_task_unwatch(SD_task_t task, e_SD_task_state_t state)
 double SD_task_get_execution_time(SD_task_t task, int workstation_nb, const sg_host_t *workstation_list,
                                   const double *flops_amount, const double *bytes_amount)
 {
-  double time, max_time = 0.0;
-  int i, j;
   xbt_assert(workstation_nb > 0, "Invalid parameter");
+  double max_time = 0.0;
 
   /* the task execution time is the maximum execution time of the parallel tasks */
-
-  for (i = 0; i < workstation_nb; i++) {
-    time = 0.0;
+  for (int i = 0; i < workstation_nb; i++) {
+    double time = 0.0;
     if (flops_amount != NULL)
       time = flops_amount[i] / sg_host_speed(workstation_list[i]);
 
     if (bytes_amount != NULL)
-      for (j = 0; j < workstation_nb; j++) {
+      for (int j = 0; j < workstation_nb; j++) {
         if (bytes_amount[i * workstation_nb + j] !=0 ) {
           time += (SD_route_get_latency(workstation_list[i], workstation_list[j]) +
                    bytes_amount[i * workstation_nb + j] /
@@ -864,7 +841,6 @@ static XBT_INLINE void SD_task_do_schedule(SD_task_t task)
   if (SD_task_get_state(task) > SD_SCHEDULABLE)
     THROWF(arg_error, 0, "Task '%s' has already been scheduled", SD_task_get_name(task));
 
-  /* update the task state */
   if (task->unsatisfied_dependencies == 0)
     SD_task_set_state(task, SD_RUNNABLE);
   else
@@ -878,30 +854,30 @@ static XBT_INLINE void SD_task_do_schedule(SD_task_t task)
  * Once scheduled, a task is executed as soon as possible in \see SD_simulate, i.e. when its dependencies are satisfied.
  *
  * \param task the task you want to schedule
- * \param workstation_count number of workstations on which the task will be executed
+ * \param host_count number of workstations on which the task will be executed
  * \param workstation_list the workstations on which the task will be executed
  * \param flops_amount computation amount for each workstation
  * \param bytes_amount communication amount between each pair of workstations
  * \param rate task execution speed rate
  * \see SD_task_unschedule()
  */
-void SD_task_schedule(SD_task_t task, int workstation_count, const sg_host_t * workstation_list,
+void SD_task_schedule(SD_task_t task, int host_count, const sg_host_t * workstation_list,
                       const double *flops_amount, const double *bytes_amount, double rate)
 {
-  xbt_assert(workstation_count > 0, "workstation_nb must be positive");
+  xbt_assert(host_count > 0, "workstation_nb must be positive");
 
-  task->host_count = workstation_count;
+  task->host_count = host_count;
   task->rate = rate;
 
   if (flops_amount) {
-    task->flops_amount = (double*)xbt_realloc(task->flops_amount, sizeof(double) * workstation_count);
-    memcpy(task->flops_amount, flops_amount, sizeof(double) * workstation_count);
+    task->flops_amount = (double*)xbt_realloc(task->flops_amount, sizeof(double) * host_count);
+    memcpy(task->flops_amount, flops_amount, sizeof(double) * host_count);
   } else {
     xbt_free(task->flops_amount);
     task->flops_amount = NULL;
   }
 
-  int communication_nb = workstation_count * workstation_count;
+  int communication_nb = host_count * host_count;
   if (bytes_amount) {
     task->bytes_amount = (double*)xbt_realloc(task->bytes_amount, sizeof(double) * communication_nb);
     memcpy(task->bytes_amount, bytes_amount, sizeof(double) * communication_nb);
@@ -910,8 +886,8 @@ void SD_task_schedule(SD_task_t task, int workstation_count, const sg_host_t * w
     task->bytes_amount = NULL;
   }
 
-  task->host_list = (sg_host_t*) xbt_realloc(task->host_list, sizeof(sg_host_t) * workstation_count);
-  memcpy(task->host_list, workstation_list, sizeof(sg_host_t) * workstation_count);
+  task->host_list = (sg_host_t*) xbt_realloc(task->host_list, sizeof(sg_host_t) * host_count);
+  memcpy(task->host_list, workstation_list, sizeof(sg_host_t) * host_count);
 
   SD_task_do_schedule(task);
 }
@@ -971,9 +947,6 @@ static void __SD_task_destroy_scheduling_data(SD_task_t task)
 /* Runs a task. */
 void SD_task_run(SD_task_t task)
 {
-  int i;
-  sg_host_t *hosts;
-
   xbt_assert(SD_task_get_state(task) == SD_RUNNABLE, "Task '%s' is not runnable! Task state: %d",
              SD_task_get_name(task), (int)SD_task_get_state(task));
   xbt_assert(task->host_list != NULL, "Task '%s': workstation_list is NULL!", SD_task_get_name(task));
@@ -982,9 +955,9 @@ void SD_task_run(SD_task_t task)
 
   /* Copy the elements of the task into the action */
   int host_nb = task->host_count;
-  hosts = xbt_new(sg_host_t, host_nb);
+  sg_host_t *hosts = xbt_new(sg_host_t, host_nb);
 
-  for (i = 0; i < host_nb; i++)
+  for (int i = 0; i < host_nb; i++)
     hosts[i] =  task->host_list[i];
 
   double *flops_amount = xbt_new0(double, host_nb);
@@ -1006,9 +979,6 @@ void SD_task_run(SD_task_t task)
 
   __SD_task_destroy_scheduling_data(task);      /* now the scheduling data are not useful anymore */
   SD_task_set_state(task, SD_RUNNING);
-  xbt_assert(SD_task_get_state(task) == SD_RUNNING, "Bad state of task '%s': %d",
-             SD_task_get_name(task), (int)SD_task_get_state(task));
-
 }
 
 /* 
@@ -1065,7 +1035,6 @@ double SD_task_get_finish_time(SD_task_t task)
 
 void SD_task_distribute_comp_amdahl(SD_task_t task, int ws_count)
 {
-  int i;
   xbt_assert(task->kind == SD_TASK_COMP_PAR_AMDAHL, "Task %s is not a SD_TASK_COMP_PAR_AMDAHL typed task."
               "Cannot use this function.", SD_task_get_name(task));
   task->flops_amount = xbt_new0(double, ws_count);
@@ -1074,7 +1043,7 @@ void SD_task_distribute_comp_amdahl(SD_task_t task, int ws_count)
   task->host_count = ws_count;
   task->host_list = xbt_new0(sg_host_t, ws_count);
   
-  for(i=0;i<ws_count;i++){
+  for(int i=0;i<ws_count;i++){
     task->flops_amount[i] = (task->alpha + (1 - task->alpha)/ws_count) * task->amount;
   }
 } 
@@ -1120,10 +1089,10 @@ void SD_task_schedulev(SD_task_t task, int count, const sg_host_t * list)
   default:
     xbt_die("Kind of task %s not supported by SD_task_schedulev()", SD_task_get_name(task));
   }
+
   if (task->kind == SD_TASK_COMM_E2E) {
     XBT_VERB("Schedule comm task %s between %s -> %s. It costs %.f bytes", SD_task_get_name(task),
           sg_host_get_name(task->host_list[0]), sg_host_get_name(task->host_list[1]), task->bytes_amount[2]);
-
   }
 
   /* Iterate over all children and parents being COMM_E2E to say where I am located (and start them if runnable) */
@@ -1277,9 +1246,8 @@ void SD_task_schedulel(SD_task_t task, int count, ...)
 {
   va_list ap;
   sg_host_t *list = xbt_new(sg_host_t, count);
-  int i;
   va_start(ap, count);
-  for (i = 0; i < count; i++) {
+  for (int i = 0; i < count; i++) {
     list[i] = va_arg(ap, sg_host_t);
   }
   va_end(ap);
index 8f9cef4..a0fe6ec 100644 (file)
  * \return an array of the \ref SD_link_t composing the route
  * \see SD_route_get_size(), SD_link_t
  */
-const SD_link_t *SD_route_get_list(sg_host_t src, sg_host_t dst)
+SD_link_t *SD_route_get_list(sg_host_t src, sg_host_t dst)
 {
-  xbt_dynar_t surf_route;
-  SD_link_t* list;
   void *surf_link;
   unsigned int cpt;
-  surf_route = surf_host_model_get_route((surf_host_model_t)surf_host_model,
-                                         src, dst);
+  xbt_dynar_t surf_route = NULL;
+  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard, &surf_route, NULL);
 
-  list = xbt_new(SD_link_t, xbt_dynar_length(surf_route));
+  SD_link_t *list = xbt_new(SD_link_t, xbt_dynar_length(surf_route));
   xbt_dynar_foreach(surf_route, cpt, surf_link) {
     list[cpt] = (SD_link_t)surf_link;
   }
@@ -49,8 +47,9 @@ const SD_link_t *SD_route_get_list(sg_host_t src, sg_host_t dst)
  */
 int SD_route_get_size(sg_host_t src, sg_host_t dst)
 {
-  return xbt_dynar_length(surf_host_model_get_route(
-      (surf_host_model_t)surf_host_model, src, dst));
+  xbt_dynar_t surf_route = NULL;
+  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard, &surf_route, NULL);
+  return xbt_dynar_length(surf_route);
 }
 
 /**
@@ -66,8 +65,7 @@ double SD_route_get_latency(sg_host_t src, sg_host_t dst)
   xbt_dynar_t route = NULL;
   double latency = 0;
 
-  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard,
-                                    &route, &latency);
+  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard, &route, &latency);
 
   return latency;
 }
@@ -78,8 +76,7 @@ double SD_route_get_latency(sg_host_t src, sg_host_t dst)
  *
  * \param src the first workstation
  * \param dst the second workstation
- * \return the bandwidth of the route between the two workstations
- * (in bytes/second)
+ * \return the bandwidth of the route between the two workstations (in bytes/second)
  * \see SD_route_get_latency()
  */
 double SD_route_get_bandwidth(sg_host_t src, sg_host_t dst)
@@ -87,15 +84,13 @@ double SD_route_get_bandwidth(sg_host_t src, sg_host_t dst)
   xbt_dynar_t route = NULL;
   unsigned int cpt;
   double latency = 0;
-  double bandwidth;
   double min_bandwidth = -1.0;
   SD_link_t link;
 
-  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard,
-                                    &route, &latency);
+  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard, &route, &latency);
 
   xbt_dynar_foreach(route, cpt, link){
-    bandwidth = sg_link_bandwidth(link);
+    double bandwidth = sg_link_bandwidth(link);
     if (bandwidth < min_bandwidth || min_bandwidth == -1.0)
       min_bandwidth = bandwidth;
   }
index 94def06..cbe140a 100644 (file)
@@ -29,14 +29,14 @@ size_t sg_host_count()
  * internally).
  * \see sg_host_count()
  */
-const sg_host_t *sg_host_list(void) {
+sg_host_t *sg_host_list(void) {
   xbt_assert(sg_host_count() > 0, "There is no host!");
   return (sg_host_t*)xbt_dynar_to_array(sg_hosts_as_dynar());
 }
 
 const char *sg_host_get_name(sg_host_t host)
 {
-       return host->name().c_str();
+  return host->name().c_str();
 }
 
 void* sg_host_extension_get(sg_host_t host, size_t ext)
@@ -61,15 +61,15 @@ sg_host_t sg_host_by_name_or_create(const char *name)
 
 xbt_dynar_t sg_hosts_as_dynar(void)
 {
-       xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t),NULL);
+  xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t),NULL);
 
   xbt_dict_cursor_t cursor = nullptr;
   const char* name = nullptr;
   simgrid::s4u::Host* host = nullptr;
-       xbt_dict_foreach(host_list, cursor, name, host)
-               if(routing_get_network_element_type(name) == SURF_NETWORK_ELEMENT_HOST)
-                       xbt_dynar_push(res, &host);
-       return res;
+  xbt_dict_foreach(host_list, cursor, name, host)
+    if (host && host->pimpl_netcard && host->pimpl_netcard->getRcType() == SURF_NETWORK_ELEMENT_HOST)
+       xbt_dynar_push(res, &host);
+  return res;
 }
 
 // ========= Layering madness ==============*
@@ -86,7 +86,7 @@ void sg_host_init()
   });
 
   ROUTING_HOST_LEVEL = simgrid::s4u::Host::extension_create([](void *p) {
-         delete static_cast<simgrid::surf::NetCard*>(p);
+    delete static_cast<simgrid::surf::NetCard*>(p);
   });
 
   SD_HOST_LEVEL = simgrid::s4u::Host::extension_create(NULL);
@@ -107,7 +107,7 @@ void sg_host_user_destroy(sg_host_t host) {
 
 // ========== MSG Layer ==============
 msg_host_priv_t sg_host_msg(sg_host_t host) {
-       return (msg_host_priv_t) host->extension(MSG_HOST_LEVEL);
+  return (msg_host_priv_t) host->extension(MSG_HOST_LEVEL);
 }
 void sg_host_msg_set(sg_host_t host, msg_host_priv_t smx_host) {
   host->extension_set(MSG_HOST_LEVEL, smx_host);
index 760acb6..f3939f5 100644 (file)
@@ -39,8 +39,7 @@ xbt_cfg_t _sg_cfg_set = NULL;
  */
 int _sg_cfg_init_status = 0;
 
-/* instruct the upper layer (simix or simdag) to exit as soon as possible
- */
+/* instruct the upper layer (simix or simdag) to exit as soon as possible */
 int _sg_cfg_exit_asap = 0;
 
 #define sg_cfg_exit_early() do { _sg_cfg_exit_asap = 1; return; } while (0)
@@ -63,25 +62,28 @@ static void sg_config_cmd_line(int *argc, char **argv)
       printf("%s\n", SIMGRID_VERSION_STRING);
       shall_exit = 1;
     } else if (!strcmp(argv[i], "--cfg-help") || !strcmp(argv[i], "--help")) {
-      printf
-          ("Description of the configuration accepted by this simulator:\n");
+      printf("Description of the configuration accepted by this simulator:\n");
       xbt_cfg_help(_sg_cfg_set);
       printf(
-"\n"
-"Each of these configurations can be used by adding\n"
-"    --cfg=<option name>:<option value>\n"
-"to the command line.\n"
-"\n"
-"You can also use --help-models to see the details of all models known by this simulator.\n"
-"\n"
-"You can also use --help-tracing to see the details of all tracing options known by this simulator.\n"
-"\n"
-"You can also use --help-logs and --help-log-categories to see the details of logging output.\n"
-"\n"
-"You can also use --version to get SimGrid version information.\n"
-"\n"
+          "\n"
+          "Each of these configurations can be used by adding\n"
+          "    --cfg=<option name>:<option value>\n"
+          "to the command line.\n"
+          "\n"
+          "For more information, please refer to:\n"
+          "   --help-aliases for the list of all option aliases.\n"
+          "   --help-logs and --help-log-categories for the details of logging output.\n"
+          "   --help-models for a list of all models known by this simulator.\n"
+          "   --help-tracing for the details of all tracing options known by this simulator.\n"
+          "   --version to get SimGrid version information.\n"
+          "\n"
         );
       shall_exit = 1;
+    } else if (!strcmp(argv[i], "--help-aliases")) {
+      printf("Here is a list of all deprecated option names, with their replacement.\n");
+      xbt_cfg_aliases(_sg_cfg_set);
+      printf("Please consider using the recent names\n");
+      shall_exit = 1;
     } else if (!strcmp(argv[i], "--help-models")) {
       int k;
 
@@ -362,7 +364,7 @@ static void _sg_cfg_cb__test_sleep(const char *name, int pos){
 /* callback of the inclusion path */
 static void _sg_cfg_cb__surf_path(const char *name, int pos)
 {
-  char *path = xbt_cfg_get_string_at(_sg_cfg_set, name, pos);
+  char *path = xbt_strdup(xbt_cfg_get_string_at(_sg_cfg_set, name, pos));
   xbt_dynar_push(surf_path, &path);
 }
 
@@ -494,214 +496,195 @@ void sg_config_init(int *argc, char **argv)
     describe_model(description, surf_plugin_description,
                    "plugin", "The plugins");
     xbt_cfg_register(&_sg_cfg_set, "plugin", description,
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__plugin, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__plugin);
 
-    describe_model(description, surf_cpu_model_description,
-                   "model", "The model to use for the CPU");
-    xbt_cfg_register(&_sg_cfg_set, "cpu/model", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__cpu_model, NULL);
+    describe_model(description, surf_cpu_model_description, "model", "The model to use for the CPU");
+    xbt_cfg_register(&_sg_cfg_set, "cpu/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__cpu_model);
     xbt_cfg_setdefault_string(_sg_cfg_set, "cpu/model", "Cas01");
 
-    describe_model(description, surf_optimization_mode_description,
-                   "optimization mode",
-                   "The optimization modes to use for the CPU");
-    xbt_cfg_register(&_sg_cfg_set, "cpu/optim", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode, NULL);
+    describe_model(description, surf_optimization_mode_description, "optimization mode", "The optimization modes to use for the CPU");
+    xbt_cfg_register(&_sg_cfg_set, "cpu/optim", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode);
     xbt_cfg_setdefault_string(_sg_cfg_set, "cpu/optim", "Lazy");
 
-    describe_model(description, surf_storage_model_description,
-                   "model", "The model to use for the storage");
-    xbt_cfg_register(&_sg_cfg_set, "storage/model", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__storage_mode, NULL);
+    describe_model(description, surf_storage_model_description, "model", "The model to use for the storage");
+    xbt_cfg_register(&_sg_cfg_set, "storage/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__storage_mode);
     xbt_cfg_setdefault_string(_sg_cfg_set, "storage/model", "default");
 
-    describe_model(description, surf_network_model_description,
-                   "model", "The model to use for the network");
-    xbt_cfg_register(&_sg_cfg_set, "network/model", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__network_model, NULL);
+    describe_model(description, surf_network_model_description, "model", "The model to use for the network");
+    xbt_cfg_register(&_sg_cfg_set, "network/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__network_model);
     xbt_cfg_setdefault_string(_sg_cfg_set, "network/model", "LV08");
 
-    describe_model(description, surf_optimization_mode_description,
-                   "optimization mode",
-                   "The optimization modes to use for the network");
-    xbt_cfg_register(&_sg_cfg_set, "network/optim", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode, NULL);
+    describe_model(description, surf_optimization_mode_description, "optimization mode", "The optimization modes to use for the network");
+    xbt_cfg_register(&_sg_cfg_set, "network/optim", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode);
     xbt_cfg_setdefault_string(_sg_cfg_set, "network/optim", "Lazy");
 
-    describe_model(description, surf_host_model_description,
-                   "model", "The model to use for the host");
-    xbt_cfg_register(&_sg_cfg_set, "host/model", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__host_model, NULL);
+    describe_model(description, surf_host_model_description, "model", "The model to use for the host");
+    xbt_cfg_register(&_sg_cfg_set, "host/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__host_model);
     xbt_cfg_setdefault_string(_sg_cfg_set, "host/model", "default");
 
-    describe_model(description, surf_vm_model_description,
-                   "model", "The model to use for the vm");
-    xbt_cfg_register(&_sg_cfg_set, "vm/model", description,
-                     xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__vm_model, NULL);
+    describe_model(description, surf_vm_model_description, "model", "The model to use for the vm");
+    xbt_cfg_register(&_sg_cfg_set, "vm/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__vm_model);
     xbt_cfg_setdefault_string(_sg_cfg_set, "vm/model", "default");
 
     xbt_cfg_register(&_sg_cfg_set, "network/TCP_gamma",
                      "Size of the biggest TCP window (cat /proc/sys/net/ipv4/tcp_[rw]mem for recv/send window; Use the last given value, which is the max window size)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__tcp_gamma, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__tcp_gamma);
     xbt_cfg_setdefault_double(_sg_cfg_set, "network/TCP_gamma", 4194304.0);
 
-    xbt_cfg_register(&_sg_cfg_set, "surf/precision",
-                     "Numerical precision used when updating simulation times (hence this value is expressed in seconds)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__surf_precision, NULL);
+    xbt_cfg_register(&_sg_cfg_set, "surf/precision", "Numerical precision used when updating simulation times (in seconds)",
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__surf_precision);
     xbt_cfg_setdefault_double(_sg_cfg_set, "surf/precision", 0.00001);
 
     xbt_cfg_register(&_sg_cfg_set, "maxmin/precision",
-                     "Numerical precision used when computing resource sharing (hence this value is expressed in ops/sec or bytes/sec)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__maxmin_precision, NULL);
+                     "Numerical precision used when computing resource sharing (in ops/sec or bytes/sec)",
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__maxmin_precision);
     xbt_cfg_setdefault_double(_sg_cfg_set, "maxmin/precision", 0.00001);
 
     /* The parameters of network models */
 
-    xbt_cfg_register(&_sg_cfg_set, "network/sender_gap",
-                     "Minimum gap between two overlapping sends",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__sender_gap, NULL);
+    xbt_cfg_register(&_sg_cfg_set, "network/sender_gap", "Minimum gap between two overlapping sends",
+        xbt_cfgelm_double, 1, 1, _sg_cfg_cb__sender_gap);
     /* real default for "network/sender_gap" is set in network_smpi.cpp */
     xbt_cfg_setdefault_double(_sg_cfg_set, "network/sender_gap", NAN);
 
     xbt_cfg_register(&_sg_cfg_set, "network/latency_factor",
                      "Correction factor to apply to the provided latency (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__latency_factor, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__latency_factor);
     xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 1.0);
 
     xbt_cfg_register(&_sg_cfg_set, "network/bandwidth_factor",
                      "Correction factor to apply to the provided bandwidth (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__bandwidth_factor, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__bandwidth_factor);
     xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 1.0);
 
     xbt_cfg_register(&_sg_cfg_set, "network/weight_S",
                      "Correction factor to apply to the weight of competing streams (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__weight_S, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__weight_S);
     /* real default for "network/weight_S" is set in network_*.cpp */
     xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", NAN);
 
     /* Inclusion path */
     xbt_cfg_register(&_sg_cfg_set, "path",
                      "Lookup path for inclusions in platform and deployment XML files",
-                     xbt_cfgelm_string, 1, 0, _sg_cfg_cb__surf_path, NULL);
+                     xbt_cfgelm_string, 1, 0, _sg_cfg_cb__surf_path);
 
     xbt_cfg_register(&_sg_cfg_set, "cpu/maxmin_selective_update",
                      "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "cpu/maxmin_selective_update", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "network/maxmin_selective_update",
                      "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/maxmin_selective_update", "no");
 
     /* Replay (this part is enabled even if MC it disabled) */
     xbt_cfg_register(&_sg_cfg_set, "model-check/replay",
-      "Uenable replay mode with the given path",
-      xbt_cfgelm_string, 0, 1, _sg_cfg_cb_model_check_replay, NULL);
+      "Enable replay mode with the given path", xbt_cfgelm_string, 0, 1, _sg_cfg_cb_model_check_replay);
 
 #ifdef HAVE_MC
     /* do model-checking-record */
     xbt_cfg_register(&_sg_cfg_set, "model-check/record",
                      "Record the model-checking paths",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check_record, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check_record);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/record", "no");
 
     /* do stateful model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/checkpoint",
                      "Specify the amount of steps between checkpoints during stateful model-checking (default: 0 => stateless verification). "
                      "If value=1, one checkpoint is saved for each step => faster verification, but huge memory consumption; higher values are good compromises between speed and memory consumption.",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_checkpoint, NULL);
+                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_checkpoint);
     xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/checkpoint", 0);
 
     /* do stateful model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/sparse_checkpoint",
                      "Use sparse per-page snapshots.",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/sparse_checkpoint", "no");
 
     /* do stateful model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/soft-dirty",
                      "Use sparse per-page snapshots.",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/soft-dirty", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "model-check/ksm",
                      "Kernel same-page merging",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_ksm, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_ksm);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/ksm", "no");
 
     /* do liveness model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/property",
                      "Specify the name of the file containing the property. It must be the result of the ltl2ba program.",
-                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_property, NULL);
+                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_property);
     xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/property", "");
 
     /* do communications determinism model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/communications_determinism",
                      "Enable/disable the detection of determinism in the communications schemes",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_comms_determinism, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_comms_determinism);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/communications_determinism", "no");
 
     /* do send determinism model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/send_determinism",
                      "Enable/disable the detection of send-determinism in the communications schemes",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_send_determinism, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_send_determinism);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/send_determinism", "no");
 
     /* Specify the kind of model-checking reduction */
     xbt_cfg_register(&_sg_cfg_set, "model-check/reduction",
                      "Specify the kind of exploration reduction (either none or DPOR)",
-                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_reduce, NULL);
+                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_reduce);
     xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/reduction", "dpor");
 
     /* Enable/disable timeout for wait requests with model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/timeout",
                      "Enable/Disable timeout for wait requests",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_timeout, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_timeout);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/timeout", "no");
 
     /* Enable/disable global hash computation with model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/hash",
-                     "Enable/Disable state hash for state comparison (exprimental)",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_hash, NULL);
+                     "Enable/Disable state hash for state comparison (experimental)",
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_hash);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/hash", "no");
 
     /* Set max depth exploration */
     /* Currently, this option cannot be used. */
     xbt_cfg_register(&_sg_cfg_set, "model-check/snapshot_fds",
                      "Whether file descriptors must be snapshoted",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_snapshot_fds, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_snapshot_fds);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/snapshot_fds", "no");
 
     /* Set max depth exploration */
     xbt_cfg_register(&_sg_cfg_set, "model-check/max_depth",
                      "Specify the max depth of exploration (default : 1000)",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_max_depth, NULL);
+                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_max_depth);
     xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/max_depth", 1000);
 
     /* Set number of visited state stored for state comparison reduction*/
     xbt_cfg_register(&_sg_cfg_set, "model-check/visited",
                      "Specify the number of visited state stored for state comparison reduction. If value=5, the last 5 visited states are stored",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_visited, NULL);
+                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_visited);
     xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/visited", 0);
 
     /* Set file name for dot output of graph state */
     xbt_cfg_register(&_sg_cfg_set, "model-check/dot_output",
                      "Specify the name of dot file corresponding to graph state",
-                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_dot_output, NULL);
+                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_dot_output);
     xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/dot_output", "");
 
      /* Enable/disable non progressive cycles detection with model-checking */
     xbt_cfg_register(&_sg_cfg_set, "model-check/termination",
                      "Enable/Disable non progressive cycle detection",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_termination, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_termination);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/termination", "no");
 #endif
 
     /* do verbose-exit */
     xbt_cfg_register(&_sg_cfg_set, "verbose-exit",
                      "Activate the \"do nothing\" mode in Ctrl-C",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_verbose_exit, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_verbose_exit);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "verbose-exit", "yes");
 
     /* context factory */
@@ -711,24 +694,24 @@ void sg_config_init(int *argc, char **argv)
         sprintf(description,
                 "Context factory to use in SIMIX. Possible values: %s",
                 dflt_ctx_fact);
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
       dflt_ctx_fact = "ucontext";
       p += sprintf(p, ", %s", dflt_ctx_fact);
 #endif
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
       dflt_ctx_fact = "raw";
       p += sprintf(p, ", %s", dflt_ctx_fact);
 #endif
       sprintf(p, ".");
     }
     xbt_cfg_register(&_sg_cfg_set, "contexts/factory", description,
-                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_context_factory, NULL);
+                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_context_factory);
     xbt_cfg_setdefault_string(_sg_cfg_set, "contexts/factory", dflt_ctx_fact);
 
     /* stack size of contexts in KiB */
     xbt_cfg_register(&_sg_cfg_set, "contexts/stack_size",
                      "Stack size of contexts in KiB",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_stack_size, NULL);
+                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_stack_size);
     xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/stack_size", 8*1024);
     /* No, it was not set yet (the above setdefault() changed this to 1). */
     smx_context_stack_size_was_set = 0;
@@ -736,7 +719,7 @@ void sg_config_init(int *argc, char **argv)
     /* guard size for contexts stacks in memory pages */
     xbt_cfg_register(&_sg_cfg_set, "contexts/guard_size",
                      "Guard size for contexts stacks in memory pages",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_guard_size, NULL);
+                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_guard_size);
 #if defined(_XBT_WIN32) || (PTH_STACKGROWTH != -1)
     xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/guard_size", 0);
 #else
@@ -748,19 +731,19 @@ void sg_config_init(int *argc, char **argv)
     /* number of parallel threads for user processes */
     xbt_cfg_register(&_sg_cfg_set, "contexts/nthreads",
                      "Number of parallel threads used to execute user contexts",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_nthreads, NULL);
+                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_nthreads);
     xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/nthreads", 1);
 
     /* minimal number of user contexts to be run in parallel */
     xbt_cfg_register(&_sg_cfg_set, "contexts/parallel_threshold",
                      "Minimal number of user contexts to be run in parallel (raw contexts only)",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_parallel_threshold, NULL);
+                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_parallel_threshold);
     xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/parallel_threshold", 2);
 
     /* synchronization mode for parallel user contexts */
     xbt_cfg_register(&_sg_cfg_set, "contexts/synchro",
                      "Synchronization mode to use when running contexts in parallel (either futex, posix or busy_wait)",
-                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_contexts_parallel_mode, NULL);
+                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_contexts_parallel_mode);
 #ifdef HAVE_FUTEX_H
     xbt_cfg_setdefault_string(_sg_cfg_set, "contexts/synchro", "futex");
 #else //No futex on mac and posix is unimplememted yet
@@ -769,18 +752,18 @@ void sg_config_init(int *argc, char **argv)
 
     xbt_cfg_register(&_sg_cfg_set, "network/coordinates",
                      "\"yes\" or \"no\", specifying whether we use a coordinate-based routing (as Vivaldi)",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_coordinates, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_coordinates);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/coordinates", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "network/crosstraffic",
                      "Activate the interferences between uploads and downloads for fluid max-min models (LV08, CM02)",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_crosstraffic, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_crosstraffic);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/crosstraffic", "no");
 
 #ifdef HAVE_NS3
     xbt_cfg_register(&_sg_cfg_set, "ns3/TcpModel",
                      "The ns3 tcp model can be : NewReno or Reno or Tahoe",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "ns3/TcpModel", "default");
 #endif
 
@@ -789,160 +772,159 @@ void sg_config_init(int *argc, char **argv)
     //test is if( size >= thresholdN ) return valueN;
     //Values can be modified with command line --cfg=smpi/bw_factor:"threshold0:value0;threshold1:value1;...;thresholdN:valueN"
     //  or with tag config put line <prop id="smpi/bw_factor" value="threshold0:value0;threshold1:value1;...;thresholdN:valueN"></prop>
-    // SMPI model can be used without enable_smpi, so keep this the ifdef.
+    // SMPI model can be used without enable_smpi, so keep this out of the ifdef.
     xbt_cfg_register(&_sg_cfg_set, "smpi/bw_factor",
                      "Bandwidth factors for smpi.",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/bw_factor", "65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493;1426:0.608902;732:0.341987;257:0.338112;0:0.812084");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/lat_factor",
                      "Latency factors for smpi.",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/lat_factor", "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;1426:1.61075;732:1.9503;257:1.95341;0:2.01467");
     
     xbt_cfg_register(&_sg_cfg_set, "smpi/IB_penalty_factors",
                      "Correction factor to communications using Infiniband model with contention (default value based on Stampede cluster profiling)",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/IB_penalty_factors", "0.965;0.925;1.35");
     
 #ifdef HAVE_SMPI
     xbt_cfg_register(&_sg_cfg_set, "smpi/running_power",
                      "Power of the host running the simulation (in flop/s). Used to bench the operations.",
-                     xbt_cfgelm_double, 1, 1, NULL, NULL);
+                     xbt_cfgelm_double, 1, 1, NULL);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/running_power", 20000.0);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/display_timing",
                      "Boolean indicating whether we should display the timing after simulation.",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/display_timing", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/simulate_computation",
                      "Boolean indicating whether the computational part of the simulated application should be simulated.",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/simulate_computation", "yes");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/use_shared_malloc",
                      "Boolean indicating whether we should use shared memory when using SMPI_SHARED_MALLOC. Allows user to disable it for debug purposes.",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/use_shared_malloc", "yes");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/cpu_threshold",
                      "Minimal computation time (in seconds) not discarded, or -1 for infinity.",
-                     xbt_cfgelm_double, 1, 1, NULL, NULL);
+                     xbt_cfgelm_double, 1, 1, NULL);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/cpu_threshold", 1e-6);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/async_small_thresh",
                      "Maximal size of messages that are to be sent asynchronously, without waiting for the receiver",
-                     xbt_cfgelm_int, 1, 1, NULL, NULL);
+                     xbt_cfgelm_int, 1, 1, NULL);
     xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/async_small_thresh", 0);
 
-    xbt_cfg_register(&_sg_cfg_set, "smpi/send_is_detached_thres",
+    xbt_cfg_register(&_sg_cfg_set, "smpi/send_is_detached_thresh",
                      "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend",
-                     xbt_cfgelm_int, 1, 1, NULL, NULL);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/send_is_detached_thres", 65536);
+                     xbt_cfgelm_int, 1, 1, NULL);
+    xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/send_is_detached_thresh", 65536);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/privatize_global_variables",
                      "Boolean indicating whether we should privatize global variable at runtime.",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/privatize_global_variables", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/os",
                      "Small messages timings (MPI_Send minimum time for small messages)",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/os", "1:0:0:0:0");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/ois",
                      "Small messages timings (MPI_Isend minimum time for small messages)",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/ois", "1:0:0:0:0");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/or",
                      "Small messages timings (MPI_Recv minimum time for small messages)",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/or", "1:0:0:0:0");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/iprobe",
                      "Minimum time to inject inside a call to MPI_Iprobe",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__iprobe_sleep, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__iprobe_sleep);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/iprobe", 1e-4);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/test",
                      "Minimum time to inject inside a call to MPI_Test",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__test_sleep, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__test_sleep);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/test", 1e-4);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/wtime",
                      "Minimum time to inject inside a call to MPI_Wtime",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__wtime_sleep, NULL);
+                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__wtime_sleep);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/wtime", 0.0);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/coll_selector",
                      "Which collective selector to use",
-                     xbt_cfgelm_string, 1, 1, NULL, NULL);
+                     xbt_cfgelm_string, 1, 1, NULL);
     xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/coll_selector", "default");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/gather",
                      "Which collective to use for gather",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_gather, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_gather);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/allgather",
                      "Which collective to use for allgather",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allgather, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allgather);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/barrier",
                      "Which collective to use for barrier",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_barrier, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_barrier);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/reduce_scatter",
                      "Which collective to use for reduce_scatter",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_reduce_scatter, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_reduce_scatter);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/scatter",
                      "Which collective to use for scatter",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_scatter, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_scatter);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/allgatherv",
                      "Which collective to use for allgatherv",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allgatherv, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allgatherv);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/allreduce",
                      "Which collective to use for allreduce",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allreduce, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_allreduce);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/alltoall",
                      "Which collective to use for alltoall",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_alltoall, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_alltoall);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/alltoallv",
                      "Which collective to use for alltoallv",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_alltoallv, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_alltoallv);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/bcast",
                      "Which collective to use for bcast",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_bcast, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_bcast);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/reduce",
                      "Which collective to use for reduce",
-                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_reduce, NULL);
+                     xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__coll_reduce);
 #endif // HAVE_SMPI
 
     xbt_cfg_register(&_sg_cfg_set, "exception/cutpath",
                      "\"yes\" or \"no\". \"yes\" will cut all path information from call traces, used e.g. in exceptions.",
-                     xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+                     xbt_cfgelm_boolean, 1, 1, NULL);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "exception/cutpath", "no");
 
     xbt_cfg_register(&_sg_cfg_set, "clean_atexit",
                      "\"yes\" or \"no\". \"yes\" enables all the cleanups of SimGrid (XBT,SIMIX,MSG) to be registered with atexit. \"no\" may be useful if your code segfaults when calling the exit function.",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_clean_atexit, NULL);
+                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_clean_atexit);
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "clean_atexit", "yes");
 
     if (!surf_path) {
       /* retrieves the current directory of the current process */
       const char *initial_path = __surf_get_initial_path();
-      xbt_assert((initial_path),
-                  "__surf_get_initial_path() failed! Can't resolve current Windows directory");
+      xbt_assert((initial_path), "__surf_get_initial_path() failed! Can't resolve current Windows directory");
 
-      surf_path = xbt_dynar_new(sizeof(char *), NULL);
+      surf_path = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
       xbt_cfg_setdefault_string(_sg_cfg_set, "path", initial_path);
     }
 
@@ -967,75 +949,6 @@ void sg_config_finalize(void)
   _sg_cfg_init_status = 0;
 }
 
-/* Pick the right models for CPU, net and host, and call their model_init_preparse */
-void surf_config_models_setup()
-{
-  const char *host_model_name;
-  const char *vm_model_name;
-  int host_id = -1;
-  int vm_id = -1;
-  char *network_model_name = NULL;
-  char *cpu_model_name = NULL;
-  int storage_id = -1;
-  char *storage_model_name = NULL;
-
-  host_model_name = xbt_cfg_get_string(_sg_cfg_set, "host/model");
-  vm_model_name = xbt_cfg_get_string(_sg_cfg_set, "vm/model");
-  network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model");
-  cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model");
-  storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/model");
-
-  /* Check whether we use a net/cpu model differing from the default ones, in which case
-   * we should switch to the "compound" host model to correctly dispatch stuff to
-   * the right net/cpu models.
-   */
-
-  if ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") ||
-       !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) &&
-      xbt_cfg_is_default_value(_sg_cfg_set, "host/model")) {
-    host_model_name = "compound";
-    xbt_cfg_set_string(_sg_cfg_set, "host/model", host_model_name);
-  }
-
-  XBT_DEBUG("host model: %s", host_model_name);
-  host_id = find_model_description(surf_host_model_description, host_model_name);
-  if (!strcmp(host_model_name, "compound")) {
-    int network_id = -1;
-    int cpu_id = -1;
-
-    xbt_assert(cpu_model_name,
-                "Set a cpu model to use with the 'compound' host model");
-
-    xbt_assert(network_model_name,
-                "Set a network model to use with the 'compound' host model");
-
-    if(surf_cpu_model_init_preparse){
-      surf_cpu_model_init_preparse();
-    } else {
-      cpu_id =
-          find_model_description(surf_cpu_model_description, cpu_model_name);
-      surf_cpu_model_description[cpu_id].model_init_preparse();
-    }
-
-    network_id =
-        find_model_description(surf_network_model_description,
-                               network_model_name);
-    surf_network_model_description[network_id].model_init_preparse();
-  }
-
-  XBT_DEBUG("Call host_model_init");
-  surf_host_model_description[host_id].model_init_preparse();
-
-  XBT_DEBUG("Call vm_model_init");
-  vm_id = find_model_description(surf_vm_model_description, vm_model_name);
-  surf_vm_model_description[vm_id].model_init_preparse();
-
-  XBT_DEBUG("Call storage_model_init");
-  storage_id = find_model_description(surf_storage_model_description, storage_model_name);
-  surf_storage_model_description[storage_id].model_init_preparse();
-
-}
-
 int sg_cfg_is_default_value(const char *name)
 {
   return xbt_cfg_is_default_value(_sg_cfg_set, name);
index debd695..3b4e63f 100644 (file)
@@ -38,7 +38,7 @@ public:
   void resume();
 };
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 class BoostParallelContext : public BoostContext {
 public:
   BoostParallelContext(std::function<void()> code,
@@ -66,7 +66,7 @@ BoostContextFactory::BoostContextFactory()
 {
   BoostContext::parallel_ = SIMIX_context_is_parallel();
   if (BoostContext::parallel_) {
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
     xbt_die("No thread support for parallel context execution");
 #else
     int nthreads = SIMIX_context_get_nthreads();
@@ -81,7 +81,7 @@ BoostContextFactory::BoostContextFactory()
 
 BoostContextFactory::~BoostContextFactory()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (BoostContext::parmap_) {
     xbt_parmap_destroy(BoostContext::parmap_);
     BoostContext::parmap_ = nullptr;
@@ -95,7 +95,7 @@ smx_context_t BoostContextFactory::create_context(std::function<void()>  code,
 {
   BoostContext* context = nullptr;
   if (BoostContext::parallel_)
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
     context = this->new_context<BoostParallelContext>(
       std::move(code), cleanup_func, process);
 #else
@@ -109,7 +109,7 @@ smx_context_t BoostContextFactory::create_context(std::function<void()>  code,
 
 void BoostContextFactory::run_all()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (BoostContext::parallel_) {
     BoostContext::threads_working_ = 0;
     xbt_parmap_apply(BoostContext::parmap_,
@@ -161,7 +161,7 @@ BoostContext::BoostContext(std::function<void()> code,
                       smx_context_usable_stack_size,
                       smx_ctx_boost_wrapper);
   } else {
-    #if HAVE_BOOST_CONTEXT == 1
+    #if HAVE_BOOST_CONTEXTS == 1
     this->fc_ = new boost::context::fcontext_t();
     #endif
     if (BoostContext::maestro_context_ == nullptr)
@@ -171,7 +171,7 @@ BoostContext::BoostContext(std::function<void()> code,
 
 BoostContext::~BoostContext()
 {
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   if (!this->stack_)
     delete this->fc_;
 #endif
@@ -185,7 +185,7 @@ BoostContext::~BoostContext()
 void BoostContext::resume()
 {
   SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     maestro_context_->fc_, this->fc_,
     (intptr_t) this);
@@ -215,7 +215,7 @@ void BoostSerialContext::suspend()
       maestro_context_);
   }
   SIMIX_context_set_current((smx_context_t) next_context);
-  #if HAVE_BOOST_CONTEXT == 1
+  #if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     this->fc_, next_context->fc_, (intptr_t) next_context);
   #else
@@ -232,7 +232,7 @@ void BoostSerialContext::stop()
 
 // BoostParallelContext
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 
 void BoostParallelContext::suspend()
 {
@@ -252,7 +252,7 @@ void BoostParallelContext::suspend()
   }
 
   SIMIX_context_set_current((smx_context_t) next_context);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     this->fc_, next_context->fc_, (intptr_t)next_context);
 #else
@@ -277,7 +277,7 @@ void BoostParallelContext::resume()
   workers_context_[worker_id] = worker_context;
 
   SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::jump_fcontext(
     worker_context->fc_, this->fc_, (intptr_t) this);
 #else
index c2df0d1..62b6066 100644 (file)
@@ -36,7 +36,7 @@ protected: // static
   static unsigned long process_index_;
   static BoostContext* maestro_context_;
 protected:
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
   boost::context::fcontext_t* fc_ = nullptr;
 #else
   boost::context::fcontext_t fc_;
index 7115e3a..4c478a2 100644 (file)
@@ -15,6 +15,7 @@
 #include "mc/mc.h"
 
 #include <src/simix/smx_private.h>
+#include <src/simix/smx_private.hpp>
 
 void SIMIX_process_set_cleanup_function(
   smx_process_t process, void_pfn_smxprocess_t cleanup)
@@ -22,69 +23,6 @@ void SIMIX_process_set_cleanup_function(
   process->context->set_cleanup(cleanup);
 }
 
-namespace simgrid {
-namespace simix {
-
-class XBT_PRIVATE args {
-private:
-  int argc_;
-  char** argv_;
-public:
-
-  // Main constructors
-  args() : argc_(0), argv_(nullptr) {}
-  args(int argc, char** argv) : argc_(argc), argv_(argv) {}
-
-  // Free
-  void clear()
-  {
-    for (int i = 0; i < this->argc_; i++)
-      free(this->argv_[i]);
-    free(this->argv_);
-    this->argc_ = 0;
-    this->argv_ = nullptr;
-  }
-  ~args() { clear(); }
-
-  // Copy
-  args(args const& that) = delete;
-  args& operator=(args const& that) = delete;
-
-  // Move:
-  args(args&& that) : argc_(that.argc_), argv_(that.argv_)
-  {
-    that.argc_ = 0;
-    that.argv_ = nullptr;
-  }
-  args& operator=(args&& that)
-  {
-    this->argc_ = that.argc_;
-    this->argv_ = that.argv_;
-    that.argc_ = 0;
-    that.argv_ = nullptr;
-    return *this;
-  }
-
-  int    argc()            const { return argc_; }
-  char** argv()                  { return argv_; }
-  const char*const* argv() const { return argv_; }
-  char* operator[](std::size_t i) { return argv_[i]; }
-};
-
-}
-}
-
-static
-std::function<void()> wrap_main(xbt_main_func_t code, int argc, char **argv)
-{
-  if (code) {
-    auto arg = std::make_shared<simgrid::simix::args>(argc, argv);
-    return [=]() {
-      code(arg->argc(), arg->argv());
-    };
-  } else return std::function<void()>();
-}
-
 /**
  * \brief creates a new context for a user level process
  * \param code a main function
@@ -101,7 +39,7 @@ smx_context_t SIMIX_context_new(
   if (!simix_global)
     xbt_die("simix is not initialized, please call MSG_init first");
   return simix_global->context_factory->create_context(
-    wrap_main(code, argc, argv), cleanup_func, simix_process);
+    simgrid::simix::wrap_main(code, argc, argv), cleanup_func, simix_process);
 }
 
 namespace simgrid {
@@ -125,6 +63,18 @@ void ContextFactory::declare_context(void* context, std::size_t size)
 #endif
 }
 
+Context* ContextFactory::attach(void_pfn_smxprocess_t cleanup_func, smx_process_t process)
+{
+  xbt_die("Cannot attach with this ContextFactory.\n"
+    "Try using --cfg=contexts/factory:thread instead.\n");
+}
+
+Context* ContextFactory::create_maestro(std::function<void()> code, smx_process_t process)
+{
+  xbt_die("Cannot create_maestro with this ContextFactory.\n"
+    "Try using --cfg=contexts/factory:thread instead.\n");
+}
+
 Context::Context(std::function<void()> code,
     void_pfn_smxprocess_t cleanup_func, smx_process_t process)
   : code_(std::move(code)), process_(process), iwannadie(false)
@@ -153,5 +103,9 @@ void Context::stop()
   this->iwannadie = true;
 }
 
+AttachContext::~AttachContext()
+{
+}
+
 }
 }
\ No newline at end of file
index 98c07e8..9cbb2df 100644 (file)
@@ -82,7 +82,7 @@ ContextFactory* raw_factory()
 
 // ***** Loads of static stuff
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 static xbt_parmap_t raw_parmap;
 static simgrid::simix::RawContext** raw_workers_context;    /* space to save the worker context in each thread */
 static unsigned long raw_threads_working;     /* number of threads that have started their work */
@@ -128,7 +128,7 @@ __asm__ (
    ".text\n"
    ".globl _raw_makecontext\n"
    "_raw_makecontext:\n"
-#elif defined(_WIN32)
+#elif defined(_XBT_WIN32)
    ".text\n"
    ".globl raw_makecontext\n"
    "raw_makecontext:\n"
@@ -164,7 +164,7 @@ __asm__ (
    ".text\n"
    ".globl _raw_swapcontext\n"
    "_raw_swapcontext:\n"
-#elif defined(_WIN32)
+#elif defined(_XBT_WIN32)
    ".text\n"
    ".globl raw_swapcontext\n"
    "raw_swapcontext:\n"
@@ -204,7 +204,7 @@ __asm__ (
 );
 #elif PROCESSOR_i686
 __asm__ (
-#if defined(APPLE) || defined(_WIN32)
+#if defined(APPLE) || defined(_XBT_WIN32)
    ".text\n"
    ".globl _raw_makecontext\n"
    "_raw_makecontext:\n"
@@ -231,7 +231,7 @@ __asm__ (
 );
 
 __asm__ (
-#if defined(APPLE) || defined(_WIN32)
+#if defined(APPLE) || defined(_XBT_WIN32)
    ".text\n"
    ".globl _raw_swapcontext\n"
    "_raw_swapcontext:\n"
@@ -259,7 +259,7 @@ __asm__ (
 
 
 /* If you implement raw contexts for other processors, don't forget to
-   update the definition of HAVE_RAWCTX in tools/cmake/CompleteInFiles.cmake */
+   update the definition of HAVE_RAW_CONTEXTS in tools/cmake/CompleteInFiles.cmake */
 
 raw_stack_t raw_makecontext(void* malloced_stack, int stack_size,
                             rawctx_entry_point_t entry_point, void* arg) {
@@ -285,7 +285,7 @@ RawContextFactory::RawContextFactory()
 #endif
   raw_context_parallel = SIMIX_context_is_parallel();
   if (raw_context_parallel) {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
     int nthreads = SIMIX_context_get_nthreads();
     xbt_os_thread_key_create(&raw_worker_id_key);
     // TODO, lazily init
@@ -304,7 +304,7 @@ RawContextFactory::RawContextFactory()
 
 RawContextFactory::~RawContextFactory()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (raw_parmap)
     xbt_parmap_destroy(raw_parmap);
   xbt_free(raw_workers_context);
@@ -379,7 +379,7 @@ void RawContextFactory::run_all_serial()
 
 void RawContextFactory::run_all_parallel()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   raw_threads_working = 0;
   if (raw_parmap == nullptr)
     raw_parmap = xbt_parmap_new(
@@ -427,7 +427,7 @@ void RawContext::suspend_serial()
 
 void RawContext::suspend_parallel()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   /* determine the next context */
   smx_process_t next_work = (smx_process_t) xbt_parmap_next(raw_parmap);
   RawContext* next_context = nullptr;
@@ -468,7 +468,7 @@ void RawContext::resume_serial()
 
 void RawContext::resume_parallel()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   unsigned long worker_id = __sync_fetch_and_add(&raw_threads_working, 1);
   xbt_os_thread_set_specific(raw_worker_id_key, (void*)(uintptr_t) worker_id);
   RawContext* worker_context = (RawContext*) SIMIX_context_self();
index c3a3c00..c84dc52 100644 (file)
@@ -52,35 +52,7 @@ ThreadContext* ThreadContextFactory::create_context(
     std::function<void()> code,
     void_pfn_smxprocess_t cleanup, smx_process_t process)
 {
-  return this->new_context<ThreadContext>(std::move(code), cleanup, process);
-}
-
-ThreadContext::ThreadContext(std::function<void()> code,
-    void_pfn_smxprocess_t cleanup, smx_process_t process)
-  : Context(std::move(code), cleanup, process)
-{
-  /* If the user provided a function for the process then use it
-     otherwise is the context for maestro */
-  if (has_code()) {
-    this->begin_ = xbt_os_sem_init(0);
-    this->end_ = xbt_os_sem_init(0);
-    if (smx_context_stack_size_was_set)
-      xbt_os_thread_setstacksize(smx_context_stack_size);
-    if (smx_context_guard_size_was_set)
-      xbt_os_thread_setguardsize(smx_context_guard_size);
-
-    /* create and start the process */
-    /* NOTE: The first argument to xbt_os_thread_create used to be the process *
-    * name, but now the name is stored at SIMIX level, so we pass a null  */
-    this->thread_ =
-      xbt_os_thread_create(NULL, ThreadContext::wrapper, this, this);
-
-    /* wait the starting of the newly created process */
-    xbt_os_sem_acquire(this->end_);
-
-  } else {
-    xbt_os_thread_set_extra_data(this);
-  }
+  return this->new_context<ThreadContext>(std::move(code), cleanup, process, !code);
 }
 
 void ThreadContextFactory::run_all()
@@ -111,6 +83,51 @@ ThreadContext* ThreadContextFactory::self()
   return static_cast<ThreadContext*>(xbt_os_thread_get_extra_data());
 }
 
+ThreadContext* ThreadContextFactory::attach(void_pfn_smxprocess_t cleanup_func, smx_process_t process)
+{
+  return this->new_context<ThreadContext>(
+    std::function<void()>(), cleanup_func, process, false);
+}
+
+ThreadContext* ThreadContextFactory::create_maestro(std::function<void()> code, smx_process_t process)
+{
+    return this->new_context<ThreadContext>(std::move(code), nullptr, process, true);
+}
+
+ThreadContext::ThreadContext(std::function<void()> code,
+    void_pfn_smxprocess_t cleanup, smx_process_t process, bool maestro)
+  : AttachContext(std::move(code), cleanup, process)
+{
+  // We do not need the semaphores when maestro is in main:
+  // if (!(maestro && !code)) {
+    this->begin_ = xbt_os_sem_init(0);
+    this->end_ = xbt_os_sem_init(0);
+  // }
+
+  /* If the user provided a function for the process then use it */
+  if (has_code()) {
+    if (smx_context_stack_size_was_set)
+      xbt_os_thread_setstacksize(smx_context_stack_size);
+    if (smx_context_guard_size_was_set)
+      xbt_os_thread_setguardsize(smx_context_guard_size);
+
+    /* create and start the process */
+    /* NOTE: The first argument to xbt_os_thread_create used to be the process *
+    * name, but now the name is stored at SIMIX level, so we pass a null  */
+    this->thread_ =
+      xbt_os_thread_create(NULL,
+        maestro ? ThreadContext::maestro_wrapper : ThreadContext::wrapper,
+        this, this);
+    /* wait the starting of the newly created process */
+    xbt_os_sem_acquire(this->end_);
+  }
+
+  /* Otherwise, we attach to the current thread */
+  else {
+    xbt_os_thread_set_extra_data(this);
+  }
+}
+
 ThreadContext::~ThreadContext()
 {
   /* check if this is the context of maestro (it doesn't have a real thread) */
@@ -138,15 +155,49 @@ void *ThreadContext::wrapper(void *param)
 #endif
   /* Tell the maestro we are starting, and wait for its green light */
   xbt_os_sem_release(context->end_);
+
   xbt_os_sem_acquire(context->begin_);
   if (smx_ctx_thread_sem)       /* parallel run */
     xbt_os_sem_acquire(smx_ctx_thread_sem);
 
   (*context)();
   context->stop();
+
+  return nullptr;
+}
+
+void *ThreadContext::maestro_wrapper(void *param)
+{
+  ThreadContext* context = static_cast<ThreadContext*>(param);
+
+#ifndef WIN32
+  /* Install alternate signal stack, for SIGSEGV handler. */
+  stack_t stack;
+  stack.ss_sp = sigsegv_stack;
+  stack.ss_size = sizeof sigsegv_stack;
+  stack.ss_flags = 0;
+  sigaltstack(&stack, nullptr);
+#endif
+  /* Tell the caller we are starting */
+  xbt_os_sem_release(context->end_);
+
+  // Wait for the caller to give control back to us:
+  xbt_os_sem_acquire(context->begin_);
+  (*context)();
+
+  // Tell main that we have finished:
+  xbt_os_sem_release(context->end_);
+
   return nullptr;
 }
 
+void ThreadContext::start()
+{
+  xbt_os_sem_acquire(this->begin_);
+  if (smx_ctx_thread_sem)       /* parallel run */
+    xbt_os_sem_acquire(smx_ctx_thread_sem);
+}
+
 void ThreadContext::stop()
 {
   Context::stop();
@@ -169,5 +220,25 @@ void ThreadContext::suspend()
     xbt_os_sem_acquire(smx_ctx_thread_sem);
 }
 
+void ThreadContext::attach_start()
+{
+  // We're breaking the layers here by depending on the upper layer:
+  ThreadContext* maestro = (ThreadContext*) simix_global->maestro_process->context;
+  xbt_os_sem_release(maestro->begin_);
+  this->start();
+}
+
+void ThreadContext::attach_stop()
+{
+  if (smx_ctx_thread_sem)
+    xbt_os_sem_release(smx_ctx_thread_sem);
+  xbt_os_sem_release(this->end_);
+
+  ThreadContext* maestro = (ThreadContext*) simix_global->maestro_process->context;
+  xbt_os_sem_acquire(maestro->end_);
+
+  xbt_os_thread_set_extra_data(nullptr);
+}
+
 }
 }
index d706a33..abed187 100644 (file)
@@ -18,15 +18,17 @@ namespace simix {
 class ThreadContext;
 class ThreadContextFactory;
 
-class ThreadContext : public Context {
+class ThreadContext : public AttachContext {
 public:
   friend ThreadContextFactory;
   ThreadContext(std::function<void()> code,
           void_pfn_smxprocess_t cleanup_func,
-          smx_process_t process);
+          smx_process_t process, bool maestro =false);
   ~ThreadContext();
   void stop() override;
   void suspend() override;
+  void attach_start() override;
+  void attach_stop() override;
 private:
   /** A portable thread */
   xbt_os_thread_t thread_ = nullptr;
@@ -36,6 +38,9 @@ private:
   xbt_os_sem_t end_ = nullptr;
 private:
   static void* wrapper(void *param);
+  static void* maestro_wrapper(void *param);
+public:
+  void start();
 };
 
 class ThreadContextFactory : public ContextFactory {
@@ -46,6 +51,10 @@ public:
     void_pfn_smxprocess_t cleanup_func,  smx_process_t process) override;
   void run_all() override;
   ThreadContext* self() override;
+
+  // Optional methods:
+  ThreadContext* attach(void_pfn_smxprocess_t cleanup_func, smx_process_t process) override;
+  ThreadContext* create_maestro(std::function<void()> code, smx_process_t process) override;
 };
 
 }
index 5b793c5..1669ed8 100644 (file)
@@ -65,7 +65,7 @@ namespace simix {
 }
 }
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 static xbt_parmap_t sysv_parmap;
 static simgrid::simix::ParallelUContext** sysv_workers_context;   /* space to save the worker's context in each thread */
 static unsigned long sysv_threads_working;     /* number of threads that have started their work */
@@ -76,6 +76,10 @@ static unsigned long sysv_process_index = 0;   /* index of the next process to r
 static simgrid::simix::UContext* sysv_maestro_context;
 static bool sysv_parallel;
 
+// The name of this function is currently hardcoded in the code (as string).
+// Do not change it without fixing those references as well.
+static void smx_ctx_sysv_wrapper(int first, ...);
+
 namespace simgrid {
 namespace simix {
 
@@ -88,8 +92,6 @@ public:
   UContext(std::function<void()>  code,
     void_pfn_smxprocess_t cleanup_func, smx_process_t process);
   ~UContext();
-protected:
-  static void wrapper(int first, ...);
 };
 
 class SerialUContext : public UContext {
@@ -137,7 +139,7 @@ UContextFactory::UContextFactory() : ContextFactory("UContextFactory")
 {
   if (SIMIX_context_is_parallel()) {
     sysv_parallel = true;
-#ifdef CONTEXT_THREADS  /* To use parallel ucontexts a thread pool is needed */
+#ifdef HAVE_THREAD_CONTEXTS  /* To use parallel ucontexts a thread pool is needed */
     int nthreads = SIMIX_context_get_nthreads();
     sysv_parmap = nullptr;
     sysv_workers_context = xbt_new(ParallelUContext*, nthreads);
@@ -153,7 +155,7 @@ UContextFactory::UContextFactory() : ContextFactory("UContextFactory")
 
 UContextFactory::~UContextFactory()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   if (sysv_parmap)
     xbt_parmap_destroy(sysv_parmap);
   xbt_free(sysv_workers_context);
@@ -167,7 +169,7 @@ UContextFactory::~UContextFactory()
 void UContextFactory::run_all()
 {
   if (sysv_parallel) {
-    #ifdef CONTEXT_THREADS
+    #ifdef HAVE_THREAD_CONTEXTS
       sysv_threads_working = 0;
       // Parmap_apply ensures that every working thread get an index in the
       // process_to_run array (through an atomic fetch_and_add),
@@ -224,14 +226,14 @@ UContext::UContext(std::function<void()> code,
           this->stack_, smx_context_usable_stack_size);
     this->uc_.uc_stack.ss_size = pth_sksize_makecontext(
           this->stack_, smx_context_usable_stack_size);
-    simgrid_makecontext(&this->uc_, UContext::wrapper, this);
+    simgrid_makecontext(&this->uc_, smx_ctx_sysv_wrapper, this);
   } else {
     if (process != NULL && sysv_maestro_context == NULL)
       sysv_maestro_context = this;
   }
 
 #ifdef HAVE_MC
-  if (MC_is_active() && code) {
+  if (MC_is_active() && has_code()) {
     MC_register_stack_area(this->stack_, process,
                       &(this->uc_), smx_context_usable_stack_size);
   }
@@ -243,11 +245,14 @@ UContext::~UContext()
   SIMIX_context_stack_delete(this->stack_);
 }
 
-void UContext::wrapper(int first, ...)
+}
+}
+
+static void smx_ctx_sysv_wrapper(int first, ...)
 {
   // Rebuild the Context* pointer from the integers:
   int ctx_addr[CTX_ADDR_LEN];
-  UContext* context;
+  simgrid::simix::UContext* context;
   ctx_addr[0] = first;
   if (CTX_ADDR_LEN > 1) {
     va_list ap;
@@ -256,12 +261,15 @@ void UContext::wrapper(int first, ...)
       ctx_addr[i] = va_arg(ap, int);
     va_end(ap);
   }
-  memcpy(&context, ctx_addr, sizeof(UContext*));
+  memcpy(&context, ctx_addr, sizeof(simgrid::simix::UContext*));
 
   (*context)();
   context->stop();
 }
 
+namespace simgrid {
+namespace simix {
+
 void SerialUContext::stop()
 {
   Context::stop();
@@ -306,7 +314,7 @@ void ParallelUContext::stop()
 /** Run one particular simulated process on the current thread. */
 void ParallelUContext::resume()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   // What is my containing body?
   unsigned long worker_id = __sync_fetch_and_add(&sysv_threads_working, 1);
   // Store the number of my containing body in os-thread-specific area :
@@ -347,7 +355,7 @@ void ParallelUContext::resume()
  */
 void ParallelUContext::suspend()
 {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   /* determine the next context */
   // Get the next soul to embody now:
   smx_process_t next_work = (smx_process_t) xbt_parmap_next(sysv_parmap);
index baa0062..e65659a 100644 (file)
@@ -628,7 +628,7 @@ void simcall_process_set_kill_time(smx_process_t process, double kill_time)
  * \brief Get the kill time of a process (or 0 if unset).
  */
 double simcall_process_get_kill_time(smx_process_t process) {
-       return SIMIX_timer_get_date(process->kill_timer);
+  return SIMIX_timer_get_date(process->kill_timer);
 }
 
 /**
@@ -1031,15 +1031,6 @@ smx_mutex_t simcall_mutex_init(void)
   return simcall_BODY_mutex_init();
 }
 
-/**
- * \ingroup simix_synchro_management
- *
- */
-void simcall_mutex_destroy(smx_mutex_t mutex)
-{
-  simcall_BODY_mutex_destroy(mutex);
-}
-
 /**
  * \ingroup simix_synchro_management
  *
@@ -1076,15 +1067,6 @@ smx_cond_t simcall_cond_init(void)
   return simcall_BODY_cond_init();
 }
 
-/**
- * \ingroup simix_synchro_management
- *
- */
-void simcall_cond_destroy(smx_cond_t cond)
-{
-  simcall_BODY_cond_destroy(cond);
-}
-
 /**
  * \ingroup simix_synchro_management
  *
@@ -1133,15 +1115,6 @@ smx_sem_t simcall_sem_init(int capacity)
   return simcall_BODY_sem_init(capacity);
 }
 
-/**
- * \ingroup simix_synchro_management
- *
- */
-void simcall_sem_destroy(smx_sem_t sem)
-{
-  simcall_BODY_sem_destroy(sem);
-}
-
 /**
  * \ingroup simix_synchro_management
  *
index 981ded3..cdd7775 100644 (file)
@@ -941,13 +941,6 @@ static inline void simcall_mutex_init__set__result(smx_simcall_t simcall, void*
     simcall->result.dp = result;
 }
 
-static inline smx_mutex_t simcall_mutex_destroy__get__mutex(smx_simcall_t simcall) {
-  return (smx_mutex_t) simcall->args[0].dp;
-}
-static inline void simcall_mutex_destroy__set__mutex(smx_simcall_t simcall, void* arg) {
-    simcall->args[0].dp = arg;
-}
-
 static inline smx_mutex_t simcall_mutex_lock__get__mutex(smx_simcall_t simcall) {
   return (smx_mutex_t) simcall->args[0].dp;
 }
@@ -982,13 +975,6 @@ static inline void simcall_cond_init__set__result(smx_simcall_t simcall, void* r
     simcall->result.dp = result;
 }
 
-static inline smx_cond_t simcall_cond_destroy__get__cond(smx_simcall_t simcall) {
-  return (smx_cond_t) simcall->args[0].dp;
-}
-static inline void simcall_cond_destroy__set__cond(smx_simcall_t simcall, void* arg) {
-    simcall->args[0].dp = arg;
-}
-
 static inline smx_cond_t simcall_cond_signal__get__cond(smx_simcall_t simcall) {
   return (smx_cond_t) simcall->args[0].dp;
 }
@@ -1048,13 +1034,6 @@ static inline void simcall_sem_init__set__result(smx_simcall_t simcall, void* re
     simcall->result.dp = result;
 }
 
-static inline smx_sem_t simcall_sem_destroy__get__sem(smx_simcall_t simcall) {
-  return (smx_sem_t) simcall->args[0].dp;
-}
-static inline void simcall_sem_destroy__set__sem(smx_simcall_t simcall, void* arg) {
-    simcall->args[0].dp = arg;
-}
-
 static inline smx_sem_t simcall_sem_release__get__sem(smx_simcall_t simcall) {
   return (smx_sem_t) simcall->args[0].dp;
 }
index b6c206a..8f7a880 100644 (file)
@@ -1158,27 +1158,6 @@ inline static smx_mutex_t simcall_BODY_mutex_init() {
     return (smx_mutex_t) self->simcall.result.dp;
   }
   
-inline static void simcall_BODY_mutex_destroy(smx_mutex_t mutex) {
-    smx_process_t self = SIMIX_process_self();
-
-    /* Go to that function to follow the code flow through the simcall barrier */
-    if (0) SIMIX_mutex_destroy(mutex);
-    /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
-
-    self->simcall.call = SIMCALL_MUTEX_DESTROY;
-    memset(&self->simcall.result, 0, sizeof(self->simcall.result));
-    memset(self->simcall.args, 0, sizeof(self->simcall.args));
-    self->simcall.args[0].dp = (void*) mutex;
-    if (self != simix_global->maestro_process) {
-      XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
-                SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);
-      SIMIX_process_yield(self);
-    } else {
-      SIMIX_simcall_handle(&self->simcall, 0);
-    }    
-    
-  }
-  
 inline static void simcall_BODY_mutex_lock(smx_mutex_t mutex) {
     smx_process_t self = SIMIX_process_self();
 
@@ -1263,27 +1242,6 @@ inline static smx_cond_t simcall_BODY_cond_init() {
     return (smx_cond_t) self->simcall.result.dp;
   }
   
-inline static void simcall_BODY_cond_destroy(smx_cond_t cond) {
-    smx_process_t self = SIMIX_process_self();
-
-    /* Go to that function to follow the code flow through the simcall barrier */
-    if (0) SIMIX_cond_destroy(cond);
-    /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
-
-    self->simcall.call = SIMCALL_COND_DESTROY;
-    memset(&self->simcall.result, 0, sizeof(self->simcall.result));
-    memset(self->simcall.args, 0, sizeof(self->simcall.args));
-    self->simcall.args[0].dp = (void*) cond;
-    if (self != simix_global->maestro_process) {
-      XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
-                SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);
-      SIMIX_process_yield(self);
-    } else {
-      SIMIX_simcall_handle(&self->simcall, 0);
-    }    
-    
-  }
-  
 inline static void simcall_BODY_cond_signal(smx_cond_t cond) {
     smx_process_t self = SIMIX_process_self();
 
@@ -1392,27 +1350,6 @@ inline static smx_sem_t simcall_BODY_sem_init(unsigned int capacity) {
     return (smx_sem_t) self->simcall.result.dp;
   }
   
-inline static void simcall_BODY_sem_destroy(smx_sem_t sem) {
-    smx_process_t self = SIMIX_process_self();
-
-    /* Go to that function to follow the code flow through the simcall barrier */
-    if (0) SIMIX_sem_destroy(sem);
-    /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */
-
-    self->simcall.call = SIMCALL_SEM_DESTROY;
-    memset(&self->simcall.result, 0, sizeof(self->simcall.result));
-    memset(self->simcall.args, 0, sizeof(self->simcall.args));
-    self->simcall.args[0].dp = (void*) sem;
-    if (self != simix_global->maestro_process) {
-      XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name,
-                SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);
-      SIMIX_process_yield(self);
-    } else {
-      SIMIX_simcall_handle(&self->simcall, 0);
-    }    
-    
-  }
-  
 inline static void simcall_BODY_sem_release(smx_sem_t sem) {
     smx_process_t self = SIMIX_process_self();
 
index 9c0b346..a523f45 100644 (file)
@@ -69,18 +69,15 @@ typedef enum {
   SIMCALL_COMM_GET_SRC_PROC,
   SIMCALL_COMM_GET_DST_PROC,
   SIMCALL_MUTEX_INIT,
-  SIMCALL_MUTEX_DESTROY,
   SIMCALL_MUTEX_LOCK,
   SIMCALL_MUTEX_TRYLOCK,
   SIMCALL_MUTEX_UNLOCK,
   SIMCALL_COND_INIT,
-  SIMCALL_COND_DESTROY,
   SIMCALL_COND_SIGNAL,
   SIMCALL_COND_WAIT,
   SIMCALL_COND_WAIT_TIMEOUT,
   SIMCALL_COND_BROADCAST,
   SIMCALL_SEM_INIT,
-  SIMCALL_SEM_DESTROY,
   SIMCALL_SEM_RELEASE,
   SIMCALL_SEM_WOULD_BLOCK,
   SIMCALL_SEM_ACQUIRE,
index 9b9b802..418256c 100644 (file)
@@ -74,18 +74,15 @@ const char* simcall_names[] = {
   "SIMCALL_COMM_GET_SRC_PROC",
   "SIMCALL_COMM_GET_DST_PROC",
   "SIMCALL_MUTEX_INIT",
-  "SIMCALL_MUTEX_DESTROY",
   "SIMCALL_MUTEX_LOCK",
   "SIMCALL_MUTEX_TRYLOCK",
   "SIMCALL_MUTEX_UNLOCK",
   "SIMCALL_COND_INIT",
-  "SIMCALL_COND_DESTROY",
   "SIMCALL_COND_SIGNAL",
   "SIMCALL_COND_WAIT",
   "SIMCALL_COND_WAIT_TIMEOUT",
   "SIMCALL_COND_BROADCAST",
   "SIMCALL_SEM_INIT",
-  "SIMCALL_SEM_DESTROY",
   "SIMCALL_SEM_RELEASE",
   "SIMCALL_SEM_WOULD_BLOCK",
   "SIMCALL_SEM_ACQUIRE",
@@ -375,11 +372,6 @@ case SIMCALL_MUTEX_INIT:
       SIMIX_simcall_answer(simcall);
       break;  
 
-case SIMCALL_MUTEX_DESTROY:
-       SIMIX_mutex_destroy((smx_mutex_t) simcall->args[0].dp);
-      SIMIX_simcall_answer(simcall);
-      break;  
-
 case SIMCALL_MUTEX_LOCK:
        simcall_HANDLER_mutex_lock(simcall , (smx_mutex_t) simcall->args[0].dp);
        break;  
@@ -399,11 +391,6 @@ case SIMCALL_COND_INIT:
       SIMIX_simcall_answer(simcall);
       break;  
 
-case SIMCALL_COND_DESTROY:
-       SIMIX_cond_destroy((smx_cond_t) simcall->args[0].dp);
-      SIMIX_simcall_answer(simcall);
-      break;  
-
 case SIMCALL_COND_SIGNAL:
        SIMIX_cond_signal((smx_cond_t) simcall->args[0].dp);
       SIMIX_simcall_answer(simcall);
@@ -427,11 +414,6 @@ case SIMCALL_SEM_INIT:
       SIMIX_simcall_answer(simcall);
       break;  
 
-case SIMCALL_SEM_DESTROY:
-       SIMIX_sem_destroy((smx_sem_t) simcall->args[0].dp);
-      SIMIX_simcall_answer(simcall);
-      break;  
-
 case SIMCALL_SEM_RELEASE:
        simcall_HANDLER_sem_release(simcall , (smx_sem_t) simcall->args[0].dp);
       SIMIX_simcall_answer(simcall);
index 60b8c72..43299df 100644 (file)
@@ -103,20 +103,17 @@ Func - comm_get_src_proc (void*, smx_process_t) (comm, void*, smx_synchro_t)
 Func - comm_get_dst_proc (void*, smx_process_t) (comm, void*, smx_synchro_t)
 
 Func H mutex_init (void*, smx_mutex_t)
-Proc - mutex_destroy (void) (mutex, void*, smx_mutex_t)
 Blck H mutex_lock (void) (mutex, void*, smx_mutex_t)
 Func H mutex_trylock (int) (mutex, void*, smx_mutex_t)
 Proc H mutex_unlock (void) (mutex, void*, smx_mutex_t)
 
 Func - cond_init (void*, smx_cond_t)
-Proc - cond_destroy (void) (cond, void*, smx_cond_t)
 Proc - cond_signal (void) (cond, void*, smx_cond_t)
 Blck H cond_wait (void) (cond, void*, smx_cond_t) (mutex, void*, smx_mutex_t)
 Blck H cond_wait_timeout (void) (cond, void*, smx_cond_t) (mutex, void*, smx_mutex_t) (timeout, double)
 Proc - cond_broadcast (void) (cond, void*, smx_cond_t)
 
 Func - sem_init (void*, smx_sem_t) (capacity, unsigned int)
-Proc - sem_destroy (void) (sem, void*, smx_sem_t)
 Proc H sem_release (void) (sem, void*, smx_sem_t)
 Func H sem_would_block (int) (sem, void*, smx_sem_t)
 Blck H sem_acquire (void) (sem, void*, smx_sem_t)
index 815bb2f..73c78ce 100755 (executable)
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the license (GNU LGPL) which comes with this package.
 
-import re, glob
-
-types = [('TCHAR', 'char', 'c')
-        ,('TSTRING', 'const char*', 'cc')
-        ,('TINT', 'int', 'i')
-        ,('TLONG', 'long', 'l')
-        ,('TUCHAR', 'unsigned char', 'uc')
-        ,('TUSHORT', 'unsigned short', 'us')
-        ,('TUINT', 'unsigned int', 'ui')
-        ,('TULONG', 'unsigned long', 'ul')
-        ,('TFLOAT', 'float', 'f')
-        ,('TDOUBLE', 'double', 'd')
-        ,('TDPTR', 'void*', 'dp')
-        ,('TFPTR', 'FPtr', 'fp')
-        ,('TCPTR', 'const void*', 'cp')
-        ,('TSIZE', 'size_t', 'sz')
-        ,('TSGSIZE', 'sg_size_t', 'sgsz')
-        ,('TSGOFF', 'sg_offset_t', 'sgoff')
-        ,('TVOID', 'void', '')
-        ,('TDSPEC', 'void*', 'dp')
-        ,('TFSPEC', 'FPtr', 'fp')]
+import re
+import glob
+
+types = [(
+    'TCHAR', 'char', 'c'), ('TSTRING', 'const char*', 'cc'), ('TINT', 'int', 'i'), ('TLONG', 'long', 'l'), ('TUCHAR', 'unsigned char', 'uc'), ('TUSHORT', 'unsigned short', 'us'), ('TUINT', 'unsigned int', 'ui'), ('TULONG', 'unsigned long', 'ul'), ('TFLOAT', 'float', 'f'),
+    ('TDOUBLE', 'double', 'd'), ('TDPTR', 'void*', 'dp'), ('TFPTR', 'FPtr', 'fp'), ('TCPTR', 'const void*', 'cp'), ('TSIZE', 'size_t', 'sz'), ('TSGSIZE', 'sg_size_t', 'sgsz'), ('TSGOFF', 'sg_offset_t', 'sgoff'), ('TVOID', 'void', ''), ('TDSPEC', 'void*', 'dp'), ('TFSPEC', 'FPtr', 'fp')]
+
 
 class Arg(object):
-  simcall_types = {k:v for _,k,v in types}
-  def __init__(self, name, type, casted=None):
-    self.name = name 
-    self.type = type
-    self.casted = casted
-    assert type in self.simcall_types, '%s not in (%s)'%(type, ', '.join(self.simcall_types.keys()))
+    simcall_types = {k: v for _, k, v in types}
+
+    def __init__(self, name, type, casted=None):
+        self.name = name
+        self.type = type
+        self.casted = casted
+        assert type in self.simcall_types, '%s not in (%s)' % (
+            type, ', '.join(self.simcall_types.keys()))
 
-  def field(self):
-    return self.simcall_types[self.type]
+    def field(self):
+        return self.simcall_types[self.type]
 
-  def rettype(self):
-    return '%s'%self.casted if self.casted else self.type
+    def rettype(self):
+        return '%s' % self.casted if self.casted else self.type
+
+    def cast(self):
+        return '(%s)' % self.casted if self.casted else ''
 
-  def cast(self):
-    return '(%s)'%self.casted if self.casted else '' 
 
 class Simcall(object):
-  simcalls_BODY = None
-  simcalls_PRE = None
-  def __init__(self, name, handler, res, args, call_kind):
-    self.name = name
-    self.res = res
-    self.args = args
-    self.need_handler = handler
-    self.call_kind = call_kind
-
-  def check(self):
-      # libsmx.c  simcall_BODY_
-      if self.simcalls_BODY is None:
-          f = open('libsmx.cpp')
-          self.simcalls_BODY = set(re.findall('simcall_BODY_(.*?)\(', f.read()))
-          f.close()
-      if self.name not in self.simcalls_BODY:
-          print '# ERROR: No function calling simcall_BODY_%s'%self.name
-          print '# Add something like this to libsmx.c:'
-          print '%s simcall_%s(%s) {'%(self.res.rettype() ,self.name ,', '.join('%s %s'%(arg.rettype(), arg.name) for arg in self.args))
-          print '  return simcall_BODY_%s(%s);'%(self.name)
-          print '}'
-          return False
-      
-      # smx_*.c void simcall_HANDLER_host_on(smx_simcall_t simcall, smx_host_t h)
-      if self.simcalls_PRE is None:
-        self.simcalls_PRE = set()
-        for fn in glob.glob('smx_*') + glob.glob('../mc/*'):
-            f = open(fn)
-            self.simcalls_PRE |= set(re.findall('simcall_HANDLER_(.*?)\(', f.read()))
+    simcalls_BODY = None
+    simcalls_PRE = None
+
+    def __init__(self, name, handler, res, args, call_kind):
+        self.name = name
+        self.res = res
+        self.args = args
+        self.need_handler = handler
+        self.call_kind = call_kind
+
+    def check(self):
+        # libsmx.c  simcall_BODY_
+        if self.simcalls_BODY is None:
+            f = open('libsmx.cpp')
+            self.simcalls_BODY = set(
+                re.findall('simcall_BODY_(.*?)\(', f.read()))
             f.close()
-      if self.need_handler:
-          if (self.name not in self.simcalls_PRE):
-              print '# ERROR: No function called simcall_HANDLER_%s'%self.name
-              print '# Add something like this to the relevant C file (like smx_io.c if it\'s an IO call):'
-              print '%s simcall_HANDLER_%s(smx_simcall_t simcall%s) {'%(self.res.rettype()
-                                                                        ,self.name                                               
-                                                                        ,''.join(', %s %s'%(arg.rettype(), arg.name)
-                                                                             for arg in self.args))
-              print '  // Your code handling the simcall'
-              print '}'
-              return False
-      else:
-          if (self.name in self.simcalls_PRE):
-              print '# ERROR: You have a function called simcall_HANDLER_%s, but that simcall is not using any handler'%self.name
-              print '# Either change your simcall definition, or kill that function'
-              return False
-      return True
-
-  def enum(self):
-    return '  SIMCALL_%s,'%(self.name.upper())
-
-  def string(self):
-    return '  "SIMCALL_%s",'% self.name.upper()
-
-  def accessors(self):
-    res = []
-    res.append('')
-    # Arguments getter/setters
-    for i in range(len(self.args)):
-        arg = self.args[i]
-        res.append('static inline %s simcall_%s__get__%s(smx_simcall_t simcall) {'%(arg.rettype(), self.name, arg.name))
-        res.append('  return %s simcall->args[%i].%s;'%(arg.cast(), i, arg.field()))
-        res.append('}')
-        res.append('static inline void simcall_%s__set__%s(smx_simcall_t simcall, %s arg) {'%(self.name, arg.name, arg.type))
-        res.append('    simcall->args[%i].%s = arg;'%(i, arg.field()))
-        res.append('}')
-      
-    # Return value getter/setters
-    if self.res.type != 'void':
-        res.append('static inline %s simcall_%s__get__result(smx_simcall_t simcall){'%(self.res.rettype(), self.name))
-        res.append('    return %s simcall->result.%s;'%(self.res.cast(), self.res.field()))
-        res.append('}')
-        res.append('static inline void simcall_%s__set__result(smx_simcall_t simcall, %s result){'%(self.name, self.res.type,))
-        res.append('    simcall->result.%s = result;'%(self.res.field()))
-        res.append('}')
-    return '\n'.join(res)
-
-  def case(self):
-      res = []
-      res.append('case SIMCALL_%s:'%(self.name.upper()))
-      if self.need_handler:
-          res.append('      %ssimcall_HANDLER_%s(simcall %s);'%('simcall->result.%s = '%self.res.field() if self.call_kind == 'Func' else ' ',
-                                                                self.name,
-                                                                ''.join(', %s simcall->args[%d].%s'%(arg.cast(), i, arg.field()) 
-                                                                        for i, arg in enumerate(self.args))))
-      else:
-          res.append('      %sSIMIX_%s(%s);'%('simcall->result.%s = '%self.res.field() if self.call_kind == 'Func' else ' ',
-                                                self.name,  
-                                                ','.join('%s simcall->args[%d].%s'%(arg.cast(), i, arg.field()) 
-                                                         for i, arg in enumerate(self.args))))
-      res.append('      %sbreak;  \n'%('SIMIX_simcall_answer(simcall);\n      ' if self.call_kind != 'Blck' else ' '))  
-      return '\n'.join(res)
-
-  def body(self):
-      res = ['  ']
-      res.append('inline static %s simcall_BODY_%s(%s) {'%(self.res.rettype(),
-                                                           self.name,
-                                                           ', '.join('%s %s'%(arg.rettype(), arg.name) for arg in self.args)))
-      res.append('    smx_process_t self = SIMIX_process_self();')
-      res.append('')
-      res.append('    /* Go to that function to follow the code flow through the simcall barrier */')
-      if self.need_handler:
-          res.append('    if (0) simcall_HANDLER_%s(%s);'%(self.name,
-                                                           ', '.join(["&self->simcall"]+ [arg.name for arg in self.args])))
-      else:
-          res.append('    if (0) SIMIX_%s(%s);'%(self.name,
-                                                   ', '.join(arg.name for arg in self.args)))
-      res.append('    /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */')
-      res.append('')
-      res.append('    self->simcall.call = SIMCALL_%s;'%(self.name.upper()))
-      res.append('    memset(&self->simcall.result, 0, sizeof(self->simcall.result));')
-      res.append('    memset(self->simcall.args, 0, sizeof(self->simcall.args));')
-      res.append('\n'.join('    self->simcall.args[%d].%s = (%s) %s;'%(i, arg.field(), arg.type, arg.name)
-                  for i, arg in enumerate(self.args)))
-      res.append('    if (self != simix_global->maestro_process) {')
-      res.append('      XBT_DEBUG("Yield process \'%s\' on simcall %s (%d)", self->name,')
-      res.append('                SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);')
-      res.append('      SIMIX_process_yield(self);')
-      res.append('    } else {')
-      res.append('      SIMIX_simcall_handle(&self->simcall, 0);')
-      res.append('    }    ')   
-      if self.res.type != 'void':
-          res.append('    return (%s) self->simcall.result.%s;' % 
-              (self.res.rettype(), self.res.field()))
-      else:
-          res.append('    ')
-      res.append('  }')
-      return '\n'.join(res)
-
-      
-  def handler_prototype(self):
-      if self.need_handler:
-          return "XBT_PRIVATE %s simcall_HANDLER_%s(smx_simcall_t simcall%s);"%(self.res.rettype() if self.call_kind == 'Func' else 'void', 
-                                                                    self.name, 
-                                                                    ''.join(', %s %s'%(arg.rettype(), arg.name) 
-                    for i, arg in enumerate(self.args)))
-      else:
-          return ""
+        if self.name not in self.simcalls_BODY:
+            print '# ERROR: No function calling simcall_BODY_%s' % self.name
+            print '# Add something like this to libsmx.c:'
+            print '%s simcall_%s(%s) {' % (self.res.rettype(), self.name, ', '.join('%s %s' % (arg.rettype(), arg.name) for arg in self.args))
+            print '  return simcall_BODY_%s(%s);' % (self.name)
+            print '}'
+            return False
+
+        # smx_*.c void simcall_HANDLER_host_on(smx_simcall_t simcall,
+        # smx_host_t h)
+        if self.simcalls_PRE is None:
+            self.simcalls_PRE = set()
+            for fn in glob.glob('smx_*') + glob.glob('../mc/*'):
+                f = open(fn)
+                self.simcalls_PRE |= set(
+                    re.findall('simcall_HANDLER_(.*?)\(', f.read()))
+                f.close()
+        if self.need_handler:
+            if (self.name not in self.simcalls_PRE):
+                print '# ERROR: No function called simcall_HANDLER_%s' % self.name
+                print '# Add something like this to the relevant C file (like smx_io.c if it\'s an IO call):'
+                print '%s simcall_HANDLER_%s(smx_simcall_t simcall%s) {' % (self.res.rettype(), self.name, ''.join(', %s %s' % (arg.rettype(), arg.name)
+                                                                                                                   for arg in self.args))
+                print '  // Your code handling the simcall'
+                print '}'
+                return False
+        else:
+            if (self.name in self.simcalls_PRE):
+                print '# ERROR: You have a function called simcall_HANDLER_%s, but that simcall is not using any handler' % self.name
+                print '# Either change your simcall definition, or kill that function'
+                return False
+        return True
+
+    def enum(self):
+        return '  SIMCALL_%s,' % (self.name.upper())
+
+    def string(self):
+        return '  "SIMCALL_%s",' % self.name.upper()
+
+    def accessors(self):
+        res = []
+        res.append('')
+        # Arguments getter/setters
+        for i in range(len(self.args)):
+            arg = self.args[i]
+            res.append('static inline %s simcall_%s__get__%s(smx_simcall_t simcall) {' % (
+                arg.rettype(), self.name, arg.name))
+            res.append(
+                '  return %s simcall->args[%i].%s;' % (arg.cast(), i, arg.field()))
+            res.append('}')
+            res.append('static inline void simcall_%s__set__%s(smx_simcall_t simcall, %s arg) {' % (
+                self.name, arg.name, arg.type))
+            res.append('    simcall->args[%i].%s = arg;' % (i, arg.field()))
+            res.append('}')
+
+        # Return value getter/setters
+        if self.res.type != 'void':
+            res.append(
+                'static inline %s simcall_%s__get__result(smx_simcall_t simcall){' % (self.res.rettype(), self.name))
+            res.append('    return %s simcall->result.%s;' %
+                       (self.res.cast(), self.res.field()))
+            res.append('}')
+            res.append(
+                'static inline void simcall_%s__set__result(smx_simcall_t simcall, %s result){' % (self.name, self.res.type,))
+            res.append('    simcall->result.%s = result;' % (self.res.field()))
+            res.append('}')
+        return '\n'.join(res)
+
+    def case(self):
+        res = []
+        res.append('case SIMCALL_%s:' % (self.name.upper()))
+        if self.need_handler:
+            res.append(
+                '      %ssimcall_HANDLER_%s(simcall %s);' % ('simcall->result.%s = ' % self.res.field() if self.call_kind == 'Func' else ' ',
+                                                             self.name,
+                                                             ''.join(', %s simcall->args[%d].%s' % (arg.cast(), i, arg.field())
+                                                                     for i, arg in enumerate(self.args))))
+        else:
+            res.append(
+                '      %sSIMIX_%s(%s);' % ('simcall->result.%s = ' % self.res.field() if self.call_kind == 'Func' else ' ',
+                                           self.name,
+                                           ','.join('%s simcall->args[%d].%s' % (arg.cast(), i, arg.field())
+                                                    for i, arg in enumerate(self.args))))
+        res.append('      %sbreak;  \n' %
+                   ('SIMIX_simcall_answer(simcall);\n      ' if self.call_kind != 'Blck' else ' '))
+        return '\n'.join(res)
+
+    def body(self):
+        res = ['  ']
+        res.append(
+            'inline static %s simcall_BODY_%s(%s) {' % (self.res.rettype(),
+                                                        self.name,
+                                                        ', '.join('%s %s' % (arg.rettype(), arg.name) for arg in self.args)))
+        res.append('    smx_process_t self = SIMIX_process_self();')
+        res.append('')
+        res.append(
+            '    /* Go to that function to follow the code flow through the simcall barrier */')
+        if self.need_handler:
+            res.append('    if (0) simcall_HANDLER_%s(%s);' % (self.name,
+                                                               ', '.join(["&self->simcall"] + [arg.name for arg in self.args])))
+        else:
+            res.append('    if (0) SIMIX_%s(%s);' % (self.name,
+                                                     ', '.join(arg.name for arg in self.args)))
+        res.append(
+            '    /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */')
+        res.append('')
+        res.append('    self->simcall.call = SIMCALL_%s;' %
+                   (self.name.upper()))
+        res.append(
+            '    memset(&self->simcall.result, 0, sizeof(self->simcall.result));')
+        res.append(
+            '    memset(self->simcall.args, 0, sizeof(self->simcall.args));')
+        res.append('\n'.join('    self->simcall.args[%d].%s = (%s) %s;' % (i, arg.field(), arg.type, arg.name)
+                             for i, arg in enumerate(self.args)))
+        res.append('    if (self != simix_global->maestro_process) {')
+        res.append(
+            '      XBT_DEBUG("Yield process \'%s\' on simcall %s (%d)", self->name,')
+        res.append(
+            '                SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call);')
+        res.append('      SIMIX_process_yield(self);')
+        res.append('    } else {')
+        res.append('      SIMIX_simcall_handle(&self->simcall, 0);')
+        res.append('    }    ')
+        if self.res.type != 'void':
+            res.append('    return (%s) self->simcall.result.%s;' %
+                       (self.res.rettype(), self.res.field()))
+        else:
+            res.append('    ')
+        res.append('  }')
+        return '\n'.join(res)
+
+    def handler_prototype(self):
+        if self.need_handler:
+            return "XBT_PRIVATE %s simcall_HANDLER_%s(smx_simcall_t simcall%s);" % (self.res.rettype() if self.call_kind == 'Func' else 'void',
+                                                                                    self.name,
+                                                                                    ''.join(', %s %s' % (arg.rettype(), arg.name)
+                                                                                            for i, arg in enumerate(self.args)))
+        else:
+            return ""
+
 
 def parse(fn):
-  simcalls = []
-  resdi = None
-  simcalls_guarded = {}
-  for line in open(fn).read().split('\n'):
-    if line.startswith('##'):
-      resdi = []
-      simcalls_guarded[re.search(r'## *(.*)', line).group(1)] = resdi
-    if line.startswith('#') or not line:
-      continue
-    match = re.match(r'(\S*?) *(\S*?) *(\S*?) *\((.*?)(?:, *(.*?))?\) *(.*)', line)
-    assert match, line
-    ans, handler, name, rest, resc, args = match.groups()
-    assert (ans == 'Proc' or ans == 'Func' or ans == 'Blck'),"Invalid call type: '%s'. Faulty line:\n%s\n"%(ans,line)
-    assert (handler == 'H' or handler == '-'),"Invalid need_handler indication: '%s'. Faulty line:\n%s\n"%(handler,line)
-    sargs = []
-    for n,t,c in re.findall(r'\((.*?), *(.*?)(?:, *(.*?))?\)', args):
-      sargs.append(Arg(n,t,c))
-    sim = Simcall(name, handler=='H', Arg('result', rest, resc), sargs, ans)
-    if resdi is None:
-      simcalls.append(sim)
-    else:
-      resdi.append(sim)
-  return simcalls, simcalls_guarded
+    simcalls = []
+    resdi = None
+    simcalls_guarded = {}
+    for line in open(fn).read().split('\n'):
+        if line.startswith('##'):
+            resdi = []
+            simcalls_guarded[re.search(r'## *(.*)', line).group(1)] = resdi
+        if line.startswith('#') or not line:
+            continue
+        match = re.match(
+            r'(\S*?) *(\S*?) *(\S*?) *\((.*?)(?:, *(.*?))?\) *(.*)', line)
+        assert match, line
+        ans, handler, name, rest, resc, args = match.groups()
+        assert (ans == 'Proc' or ans == 'Func' or ans == 'Blck'), "Invalid call type: '%s'. Faulty line:\n%s\n" % (
+            ans, line)
+        assert (handler == 'H' or handler == '-'), "Invalid need_handler indication: '%s'. Faulty line:\n%s\n" % (
+            handler, line)
+        sargs = []
+        for n, t, c in re.findall(r'\((.*?), *(.*?)(?:, *(.*?))?\)', args):
+            sargs.append(Arg(n, t, c))
+        sim = Simcall(name, handler == 'H',
+                      Arg('result', rest, resc), sargs, ans)
+        if resdi is None:
+            simcalls.append(sim)
+        else:
+            resdi.append(sim)
+    return simcalls, simcalls_guarded
+
 
 def header(name):
     fd = open(name, 'w')
-    fd.write('/**********************************************************************/\n')
-    fd.write('/* File generated by src/simix/simcalls.py from src/simix/simcalls.in */\n')
-    fd.write('/*                                                                    */\n')
-    fd.write('/*                    DO NOT EVER CHANGE THIS FILE                    */\n')
-    fd.write('/*                                                                    */\n')
-    fd.write('/* change simcalls specification in src/simix/simcalls.in             */\n')  
-    fd.write('/**********************************************************************/\n\n')
+    fd.write(
+        '/**********************************************************************/\n')
+    fd.write(
+        '/* File generated by src/simix/simcalls.py from src/simix/simcalls.in */\n')
+    fd.write(
+        '/*                                                                    */\n')
+    fd.write(
+        '/*                    DO NOT EVER CHANGE THIS FILE                    */\n')
+    fd.write(
+        '/*                                                                    */\n')
+    fd.write(
+        '/* change simcalls specification in src/simix/simcalls.in             */\n')
+    fd.write(
+        '/**********************************************************************/\n\n')
     fd.write('/*\n')
-    fd.write(' * Note that the name comes from http://en.wikipedia.org/wiki/Popping\n') 
-    fd.write(' * Indeed, the control flow is doing a strange dance in there.\n')
+    fd.write(
+        ' * Note that the name comes from http://en.wikipedia.org/wiki/Popping\n')
+    fd.write(
+        ' * Indeed, the control flow is doing a strange dance in there.\n')
     fd.write(' *\n')
-    fd.write(' * That\'s not about http://en.wikipedia.org/wiki/Poop, despite the odor :)\n')
+    fd.write(
+        ' * That\'s not about http://en.wikipedia.org/wiki/Poop, despite the odor :)\n')
     fd.write(' */\n\n')
     return fd
 
-def handle(fd,func, simcalls, guarded_simcalls):
+
+def handle(fd, func, simcalls, guarded_simcalls):
     def nonempty(e): return e != ''
-    fd.write('\n'.join( filter(nonempty, (func(simcall) for simcall in simcalls))))
-    
+    fd.write(
+        '\n'.join(filter(nonempty, (func(simcall) for simcall in simcalls))))
+
     for guard, list in guarded_simcalls.items():
-        fd.write('\n#ifdef %s\n'%(guard))
+        fd.write('\n#ifdef %s\n' % (guard))
         fd.write('\n'.join(func(simcall) for simcall in list))
         fd.write('\n#endif\n')
 
-if __name__=='__main__':
-  import sys
-  simcalls, simcalls_dict = parse('simcalls.in')
-  
-  ok = True
-  ok &= all(map(Simcall.check, simcalls))
-  for k,v in simcalls_dict.items():
-    ok &= all(map(Simcall.check, v))
-  # FIXME: we should not hide it
-  #if not ok:
-  #  print ("Some checks fail!")
-  #  sys.exit(1)
-
-  ###
-  ### smx_popping_accessors.c
-  ###
-  fd = header('popping_accessors.h')
-  handle(fd, Simcall.accessors, simcalls, simcalls_dict)
-  fd.write("\n\n/* The prototype of all simcall handlers, automatically generated for you */\n\n")
-  handle(fd, Simcall.handler_prototype, simcalls, simcalls_dict)
-  fd.close()
-
-  ###
-  ### smx_popping_enum.c
-  ###
-  fd = header("popping_enum.h")
-  fd.write('/**\n')
-  fd.write(' * @brief All possible simcalls.\n')
-  fd.write(' */\n')
-  fd.write('typedef enum {\n')
-  fd.write('  SIMCALL_NONE,\n')
-  
-  handle(fd, Simcall.enum, simcalls, simcalls_dict)
-  
-  fd.write('  NUM_SIMCALLS\n')
-  fd.write('} e_smx_simcall_t;\n')
-  fd.close()
-
-  ###
-  ### smx_popping_generated.cpp
-  ###
-  
-  fd = header("popping_generated.cpp")
-  
-  fd.write('#include <xbt/base.h>\n');
-  fd.write('#include "smx_private.h"\n');
-  fd.write('#ifdef HAVE_MC\n');
-  fd.write('#include "src/mc/mc_forward.h"\n');
-  fd.write('#endif\n');
-  fd.write('\n');
-  fd.write('XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);\n\n');
-  
-  fd.write('/** @brief Simcalls\' names (generated from src/simix/simcalls.in) */\n')
-  fd.write('const char* simcall_names[] = {\n')
-
-  fd.write('   "SIMCALL_NONE",');
-  handle(fd, Simcall.string, simcalls, simcalls_dict)
-
-  fd.write('};\n\n')
-
-
-  fd.write('/**\n');
-  fd.write(' * @brief (in kernel mode) unpack the simcall and activate the handler\n');
-  fd.write(' * \n')
-  fd.write(' * This function is generated from src/simix/simcalls.in\n')
-  fd.write(' */\n');
-  fd.write('void SIMIX_simcall_handle(smx_simcall_t simcall, int value) {\n');
-  fd.write('  XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call));\n');
-  fd.write('  SIMCALL_SET_MC_VALUE(simcall, value);\n');
-  fd.write('  if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)\n');
-  fd.write('    return;\n');
-  fd.write('  switch (simcall->call) {\n');
-
-  handle(fd, Simcall.case, simcalls, simcalls_dict)
-
-  fd.write('    case NUM_SIMCALLS:\n');
-  fd.write('      break;\n');
-  fd.write('    case SIMCALL_NONE:\n');
-  fd.write('      THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s",\n');
-  fd.write('          SIMIX_process_get_name(simcall->issuer),\n');
-  fd.write('          sg_host_get_name(SIMIX_process_get_host(simcall->issuer))\n');
-  fd.write('          );\n');
-  fd.write('      break;\n');
-  fd.write('\n');
-  fd.write('  }\n');
-  fd.write('}\n');
-  
-  fd.close()
-  
-  ###
-  ### smx_popping_bodies.cpp
-  ###
-  fd = header('popping_bodies.cpp')
-  fd.write('#include "smx_private.h"\n')
-  fd.write('#include "src/mc/mc_forward.h"\n')
-  fd.write('#include "xbt/ex.h"\n')
-  fd.write('#include <simgrid/simix.hpp>\n')
-  handle(fd, Simcall.body, simcalls, simcalls_dict)
-  fd.close()
+if __name__ == '__main__':
+    import sys
+    simcalls, simcalls_dict = parse('simcalls.in')
+
+    ok = True
+    ok &= all(map(Simcall.check, simcalls))
+    for k, v in simcalls_dict.items():
+        ok &= all(map(Simcall.check, v))
+    # FIXME: we should not hide it
+    # if not ok:
+    #  print ("Some checks fail!")
+    #  sys.exit(1)
+
+    #
+    # smx_popping_accessors.c
+    #
+    fd = header('popping_accessors.h')
+    handle(fd, Simcall.accessors, simcalls, simcalls_dict)
+    fd.write(
+        "\n\n/* The prototype of all simcall handlers, automatically generated for you */\n\n")
+    handle(fd, Simcall.handler_prototype, simcalls, simcalls_dict)
+    fd.close()
+
+    #
+    # smx_popping_enum.c
+    #
+    fd = header("popping_enum.h")
+    fd.write('/**\n')
+    fd.write(' * @brief All possible simcalls.\n')
+    fd.write(' */\n')
+    fd.write('typedef enum {\n')
+    fd.write('  SIMCALL_NONE,\n')
+
+    handle(fd, Simcall.enum, simcalls, simcalls_dict)
+
+    fd.write('  NUM_SIMCALLS\n')
+    fd.write('} e_smx_simcall_t;\n')
+    fd.close()
+
+    #
+    # smx_popping_generated.cpp
+    #
+
+    fd = header("popping_generated.cpp")
+
+    fd.write('#include <xbt/base.h>\n')
+    fd.write('#include "smx_private.h"\n')
+    fd.write('#ifdef HAVE_MC\n')
+    fd.write('#include "src/mc/mc_forward.h"\n')
+    fd.write('#endif\n')
+    fd.write('\n')
+    fd.write('XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_popping);\n\n')
+
+    fd.write(
+        '/** @brief Simcalls\' names (generated from src/simix/simcalls.in) */\n')
+    fd.write('const char* simcall_names[] = {\n')
+
+    fd.write('   "SIMCALL_NONE",')
+    handle(fd, Simcall.string, simcalls, simcalls_dict)
+
+    fd.write('};\n\n')
+
+    fd.write('/**\n')
+    fd.write(
+        ' * @brief (in kernel mode) unpack the simcall and activate the handler\n')
+    fd.write(' * \n')
+    fd.write(' * This function is generated from src/simix/simcalls.in\n')
+    fd.write(' */\n')
+    fd.write(
+        'void SIMIX_simcall_handle(smx_simcall_t simcall, int value) {\n')
+    fd.write(
+        '  XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call));\n')
+    fd.write('  SIMCALL_SET_MC_VALUE(simcall, value);\n')
+    fd.write(
+        '  if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)\n')
+    fd.write('    return;\n')
+    fd.write('  switch (simcall->call) {\n')
+
+    handle(fd, Simcall.case, simcalls, simcalls_dict)
+
+    fd.write('    case NUM_SIMCALLS:\n')
+    fd.write('      break;\n')
+    fd.write('    case SIMCALL_NONE:\n')
+    fd.write(
+        '      THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s",\n')
+    fd.write('          SIMIX_process_get_name(simcall->issuer),\n')
+    fd.write(
+        '          sg_host_get_name(SIMIX_process_get_host(simcall->issuer))\n')
+    fd.write('          );\n')
+    fd.write('      break;\n')
+    fd.write('\n')
+    fd.write('  }\n')
+    fd.write('}\n')
+
+    fd.close()
+
+    #
+    # smx_popping_bodies.cpp
+    #
+    fd = header('popping_bodies.cpp')
+    fd.write('#include "smx_private.h"\n')
+    fd.write('#include "src/mc/mc_forward.h"\n')
+    fd.write('#include "xbt/ex.h"\n')
+    fd.write('#include <simgrid/simix.hpp>\n')
+    handle(fd, Simcall.body, simcalls, simcalls_dict)
+    fd.close()
index 4a9c6ae..a07051b 100644 (file)
@@ -17,7 +17,7 @@
 #include "simgrid/modelchecker.h"
 
 
-#ifdef _WIN32
+#ifdef _XBT_WIN32
 #include <windows.h>
 #include <malloc.h>
 #else
@@ -56,7 +56,7 @@ static e_xbt_parmap_mode_t smx_parallel_synchronization_mode = XBT_PARMAP_DEFAUL
  */
 void SIMIX_context_mod_init(void)
 {
-#if defined(CONTEXT_THREADS) && !defined(HAVE_THREAD_LOCAL_STORAGE)
+#if defined(HAVE_THREAD_CONTEXTS) && !defined(HAVE_THREAD_LOCAL_STORAGE)
   /* the __thread storage class is not available on this platform:
    * use getspecific/setspecific instead to store the current context in each thread */
   xbt_os_thread_key_create(&smx_current_context_key);
@@ -66,37 +66,37 @@ void SIMIX_context_mod_init(void)
     if (simgrid::simix::factory_initializer)
       simix_global->context_factory = simgrid::simix::factory_initializer();
     else { /* use the factory specified by --cfg=contexts/factory:value */
-#if defined(CONTEXT_THREADS)
+#if defined(HAVE_THREAD_CONTEXTS)
       if (!strcmp(smx_context_factory_name, "thread"))
         simix_global->context_factory = simgrid::simix::thread_factory();
 #else
       if (0);
 #endif
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
       else if (!strcmp(smx_context_factory_name, "ucontext"))
         simix_global->context_factory = simgrid::simix::sysv_factory();
 #endif
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
       else if (!strcmp(smx_context_factory_name, "raw"))
         simix_global->context_factory = simgrid::simix::raw_factory();
 #endif
-#ifdef HAVE_BOOST_CONTEXT
+#ifdef HAVE_BOOST_CONTEXTS
       else if (!strcmp(smx_context_factory_name, "boost"))
         simix_global->context_factory = simgrid::simix::boost_factory();
 #endif
       else {
         XBT_ERROR("Invalid context factory specified. Valid factories on this machine:");
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
         XBT_ERROR("  raw: high performance context factory implemented specifically for SimGrid");
 #else
         XBT_ERROR("  (raw contexts were disabled at compilation time on this machine -- check configure logs for details)");
 #endif
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
         XBT_ERROR("  ucontext: classical system V contexts (implemented with makecontext, swapcontext and friends)");
 #else
         XBT_ERROR("  (ucontext was disabled at compilation time on this machine -- check configure logs for details)");
 #endif
-#ifdef HAVE_BOOST_CONTEXT
+#ifdef HAVE_BOOST_CONTEXTS
         XBT_ERROR("  boost: this uses the boost libraries context implementation");
 #else
         XBT_ERROR("  (boost was disabled at compilation time on this machine -- check configure logs for details. Did you install the libboost-context-dev package?)");
@@ -238,7 +238,7 @@ void SIMIX_context_set_nthreads(int nb_threads) {
   }   
   
   if (nb_threads > 1) {
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
     THROWF(arg_error, 0, "The thread factory cannot be run in parallel");
 #endif
   }
index 1b7be72..08a8727 100644 (file)
@@ -8,7 +8,7 @@
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 #include "xbt/dict.h"
-#include "surf/surfxml_parse.h"
+#include "src/surf/xml/platf_private.hpp" // FIXME: KILLME. There must be a better way than mimicking XML here
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_deployment, simix,
                                 "Logging specific to SIMIX (deployment)");
@@ -17,7 +17,8 @@ extern int surf_parse_lineno;
 
 void SIMIX_init_application(void)
 {
-  surf_parse_reset_callbacks();
+  sg_platf_exit();
+  sg_platf_init();
 }
 
 /**
@@ -63,11 +64,9 @@ void SIMIX_launch_application(const char *file)
  * \param name the reference name of the function.
  * \param code the function
  */
-void SIMIX_function_register(const char *name,
-                                        xbt_main_func_t code)
+void SIMIX_function_register(const char *name, xbt_main_func_t code)
 {
-  xbt_assert(simix_global,
-              "SIMIX_global_init has to be called before SIMIX_function_register."); 
+  xbt_assert(simix_global, "SIMIX_global_init has to be called before SIMIX_function_register.");
   xbt_dict_set(simix_global->registered_functions, name, (void*) code, NULL);
 }
 
index 9b4c6db..279e6ea 100644 (file)
@@ -9,7 +9,6 @@
 #include "xbt/log.h"
 #include "xbt/xbt_os_time.h"
 #include "xbt/config.h"
-#include "surf/surfxml_parse.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_environment, simix,
                                 "Logging specific to SIMIX (environment)");
index 6d2a96d..54cf74d 100644 (file)
@@ -37,7 +37,6 @@
 #endif 
 
 #include "src/mc/mc_record.h"
-#include "src/surf/platform.hpp"
 
 #ifdef HAVE_SMPI
 #include "src/smpi/private.h"
@@ -175,6 +174,24 @@ static void SIMIX_storage_create_(smx_storage_t storage)
   SIMIX_storage_create(key, storage, NULL);
 }
 
+static std::function<void()> maestro_code;
+
+namespace simgrid {
+namespace simix {
+
+XBT_PUBLIC(void) set_maestro(std::function<void()> code)
+{
+  maestro_code = std::move(code);
+}
+
+}
+}
+
+void SIMIX_set_maestro(void (*code)(void*), void* data)
+{
+  maestro_code = std::bind(code, data);
+}
+
 /**
  * \ingroup SIMIX_API
  * \brief Initialize SIMIX internal data.
@@ -218,7 +235,10 @@ void SIMIX_global_init(int *argc, char **argv)
 
     surf_init(argc, argv);      /* Initialize SURF structures */
     SIMIX_context_mod_init();
-    SIMIX_create_maestro_process();
+
+    // Either create a new context with maestro or create
+    // a context object with the current context mestro):
+    simgrid::simix::create_maestro(maestro_code);
 
     /* context exception handlers */
     __xbt_running_ctx_fetch = SIMIX_process_get_running_context;
@@ -230,7 +250,6 @@ void SIMIX_global_init(int *argc, char **argv)
     signal(SIGINT, inthandler);
 
 #ifndef WIN32
-    /* Install SEGV handler */
     install_segvhandler();
 #endif
     /* register a function to be called by SURF after the environment creation */
@@ -277,10 +296,10 @@ void SIMIX_clean(void)
   smx_cleaned = 1;
   XBT_DEBUG("SIMIX_clean called. Simulation's over.");
   if (!xbt_dynar_is_empty(simix_global->process_to_run) && SIMIX_get_clock() == 0.0) {
-         XBT_CRITICAL("   ");
-         XBT_CRITICAL("The time is still 0, and you still have processes ready to run.");
-         XBT_CRITICAL("It seems that you forgot to run the simulation that you setup.");
-         xbt_die("Bailing out to avoid that stop-before-start madness. Please fix your code.");
+    XBT_CRITICAL("   ");
+    XBT_CRITICAL("The time is still 0, and you still have processes ready to run.");
+    XBT_CRITICAL("It seems that you forgot to run the simulation that you setup.");
+    xbt_die("Bailing out to avoid that stop-before-start madness. Please fix your code.");
   }
   /* Kill all processes (but maestro) */
   SIMIX_process_killall(simix_global->maestro_process, 1);
@@ -521,14 +540,12 @@ void SIMIX_run(void)
     }
 
     /* Autorestart all process */
-    if(host_that_restart) {
-      char *hostname = NULL;
-      xbt_dynar_foreach(host_that_restart,iter,hostname) {
-        XBT_INFO("Restart processes on host: %s",hostname);
-        SIMIX_host_autorestart(sg_host_by_name(hostname));
-      }
-      xbt_dynar_reset(host_that_restart);
+    char *hostname = NULL;
+    xbt_dynar_foreach(host_that_restart,iter,hostname) {
+      XBT_INFO("Restart processes on host: %s",hostname);
+      SIMIX_host_autorestart(sg_host_by_name(hostname));
     }
+    xbt_dynar_reset(host_that_restart);
 
     /* Clean processes to destroy */
     SIMIX_process_empty_trash();
@@ -540,7 +557,7 @@ void SIMIX_run(void)
 
   if (xbt_swag_size(simix_global->process_list) != 0) {
 
-       TRACE_end();
+  TRACE_end();
 
     XBT_CRITICAL("Oops ! Deadlock or code not perfectly clean.");
     SIMIX_display_process_status();
@@ -569,12 +586,12 @@ smx_timer_t SIMIX_timer_set(double date, void (*function)(void*), void *arg)
 }
 /** @brief cancels a timer that was added earlier */
 void SIMIX_timer_remove(smx_timer_t timer) {
-       xbt_heap_rm_elm(simix_timers, timer, timer->date);
+  xbt_heap_rm_elm(simix_timers, timer, timer->date);
 }
 
 /** @brief Returns the date at which the timer will trigger (or 0 if NULL timer) */
 double SIMIX_timer_get_date(smx_timer_t timer) {
-       return timer?timer->date:0;
+  return timer?timer->date:0;
 }
 
 /**
index 1844ad7..9b81242 100644 (file)
@@ -10,6 +10,7 @@
 #include "xbt/dict.h"
 #include "mc/mc.h"
 #include "src/mc/mc_replay.h"
+#include "src/surf/virtual_machine.hpp"
 #include "src/surf/host_interface.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_host, simix,
@@ -264,8 +265,8 @@ void SIMIX_host_autorestart(sg_host_t host)
 }
 
 smx_synchro_t simcall_HANDLER_execution_start(smx_simcall_t simcall,
-               const char* name, double flops_amount, double priority, double bound, unsigned long affinity_mask) {
-       return SIMIX_execution_start(simcall->issuer, name,flops_amount,priority,bound,affinity_mask);
+    const char* name, double flops_amount, double priority, double bound, unsigned long affinity_mask) {
+  return SIMIX_execution_start(simcall->issuer, name,flops_amount,priority,bound,affinity_mask);
 }
 smx_synchro_t SIMIX_execution_start(smx_process_t issuer, const char *name,
      double flops_amount, double priority, double bound, unsigned long affinity_mask){
@@ -323,26 +324,19 @@ smx_synchro_t SIMIX_execution_parallel_start(const char *name,
   for (i = 0; i < host_nb; i++)
     host_list_cpy[i] = host_list[i];
 
-
-  /* FIXME: what happens if host_list contains VMs and PMs. If
-   * execute_parallel_task() does not change the state of the model, we can mix
-   * them. */
-  surf_host_model_t ws_model =
-    host_list[0]->extension<simgrid::surf::Host>()->getModel();
+  /* Check that we are not mixing VMs and PMs in the parallel task */
+  simgrid::surf::Host *host = host_list[0]->extension<simgrid::surf::Host>();
+  bool is_a_vm = (nullptr != dynamic_cast<simgrid::surf::VirtualMachine*>(host));
   for (i = 1; i < host_nb; i++) {
-    surf_host_model_t ws_model_tmp =
-      host_list[i]->extension<simgrid::surf::Host>()->getModel();
-    if (ws_model_tmp != ws_model) {
-      XBT_CRITICAL("mixing VMs and PMs is not supported");
-      DIE_IMPOSSIBLE;
-    }
+    bool tmp_is_a_vm = (nullptr != dynamic_cast<simgrid::surf::VirtualMachine*>(host_list[i]->extension<simgrid::surf::Host>()));
+    xbt_assert(is_a_vm == tmp_is_a_vm, "parallel_execute: mixing VMs and PMs is not supported (yet).");
   }
 
   /* set surf's synchro */
   if (!MC_is_active() && !MC_record_replay_is_active()) {
     synchro->execution.surf_exec =
       surf_host_model->executeParallelTask(
-                 host_nb, host_list_cpy, flops_amount, bytes_amount, rate);
+          host_nb, host_list_cpy, flops_amount, bytes_amount, rate);
 
     synchro->execution.surf_exec->setData(synchro);
   }
@@ -376,7 +370,7 @@ double SIMIX_execution_get_remains(smx_synchro_t synchro)
   double result = 0.0;
 
   if (synchro->state == SIMIX_RUNNING)
-    result = surf_action_get_remains(synchro->execution.surf_exec);
+    result = synchro->execution.surf_exec->getRemains();
 
   return result;
 }
index f613c30..83c7107 100644 (file)
@@ -335,10 +335,10 @@ void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_process_t src, smx_rdv
                                   void *src_buff, size_t src_buff_size,
                                   int (*match_fun)(void *, void *,smx_synchro_t),
                                   void (*copy_data_fun)(smx_synchro_t, void*, size_t),
-                                 void *data, double timeout){
+          void *data, double timeout){
   smx_synchro_t comm = simcall_HANDLER_comm_isend(simcall, src, rdv, task_size, rate,
-                                      src_buff, src_buff_size, match_fun, NULL, copy_data_fun,
-                                      data, 0);
+                           src_buff, src_buff_size, match_fun, NULL, copy_data_fun,
+               data, 0);
   SIMCALL_SET_MC_VALUE(simcall, 0);
   simcall_HANDLER_comm_wait(simcall, comm, timeout);
 }
@@ -348,7 +348,7 @@ smx_synchro_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_process_t sr
                                   int (*match_fun)(void *, void *,smx_synchro_t),
                                   void (*clean_fun)(void *), // used to free the synchro in case of problem after a detached send
                                   void (*copy_data_fun)(smx_synchro_t, void*, size_t),// used to copy data if not default one
-                                                 void *data, int detached)
+                          void *data, int detached)
 {
   XBT_DEBUG("send from %p", rdv);
 
@@ -426,7 +426,7 @@ void simcall_HANDLER_comm_recv(smx_simcall_t simcall, smx_process_t receiver, sm
                          void *data, double timeout, double rate)
 {
   smx_synchro_t comm = SIMIX_comm_irecv(receiver, rdv, dst_buff,
-                                      dst_buff_size, match_fun, copy_data_fun, data, rate);
+                           dst_buff_size, match_fun, copy_data_fun, data, rate);
   SIMCALL_SET_MC_VALUE(simcall, 0);
   simcall_HANDLER_comm_wait(simcall, comm, timeout);
 }
@@ -435,10 +435,10 @@ smx_synchro_t simcall_HANDLER_comm_irecv(smx_simcall_t simcall, smx_process_t re
                                   void *dst_buff, size_t *dst_buff_size,
                                   int (*match_fun)(void *, void *, smx_synchro_t),
                                   void (*copy_data_fun)(smx_synchro_t, void*, size_t),
-                                 void *data, double rate)
+          void *data, double rate)
 {
   return SIMIX_comm_irecv(receiver, rdv, dst_buff, dst_buff_size,
-                         match_fun, copy_data_fun, data, rate);
+              match_fun, copy_data_fun, data, rate);
 }
 
 smx_synchro_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
@@ -465,7 +465,7 @@ smx_synchro_t SIMIX_comm_irecv(smx_process_t dst_proc, smx_rdv_t rdv,
       other_synchro = this_synchro;
       SIMIX_rdv_push(rdv, this_synchro);
     }else{
-      if(other_synchro->comm.surf_comm &&      SIMIX_comm_get_remains(other_synchro)==0.0)
+      if(other_synchro->comm.surf_comm &&   SIMIX_comm_get_remains(other_synchro)==0.0)
       {
         XBT_DEBUG("comm %p has been already sent, and is finished, destroy it",&(other_synchro->comm));
         other_synchro->state = SIMIX_DONE;
@@ -727,8 +727,8 @@ static inline void SIMIX_comm_start(smx_synchro_t synchro)
               sg_host_get_name(sender), sg_host_get_name(receiver));
 
     synchro->comm.surf_comm = surf_network_model_communicate(surf_network_model,
-                                                                   sender, receiver,
-                                                                   synchro->comm.task_size, synchro->comm.rate);
+                                                            sender, receiver,
+                                                            synchro->comm.task_size, synchro->comm.rate);
 
     synchro->comm.surf_comm->setData(synchro);
 
@@ -906,16 +906,16 @@ void SIMIX_post_comm(smx_synchro_t synchro)
       synchro->comm.src_timeout->getState() == SURF_ACTION_DONE)
     synchro->state = SIMIX_SRC_TIMEOUT;
   else if (synchro->comm.dst_timeout &&
-         synchro->comm.dst_timeout->getState() == SURF_ACTION_DONE)
+    synchro->comm.dst_timeout->getState() == SURF_ACTION_DONE)
     synchro->state = SIMIX_DST_TIMEOUT;
   else if (synchro->comm.src_timeout &&
-         synchro->comm.src_timeout->getState() == SURF_ACTION_FAILED)
+    synchro->comm.src_timeout->getState() == SURF_ACTION_FAILED)
     synchro->state = SIMIX_SRC_HOST_FAILURE;
   else if (synchro->comm.dst_timeout &&
       synchro->comm.dst_timeout->getState() == SURF_ACTION_FAILED)
     synchro->state = SIMIX_DST_HOST_FAILURE;
   else if (synchro->comm.surf_comm &&
-         synchro->comm.surf_comm->getState() == SURF_ACTION_FAILED) {
+    synchro->comm.surf_comm->getState() == SURF_ACTION_FAILED) {
     XBT_DEBUG("Puta madre. Surf says that the link broke");
     synchro->state = SIMIX_LINK_FAILURE;
   } else
@@ -983,7 +983,7 @@ double SIMIX_comm_get_remains(smx_synchro_t synchro)
   switch (synchro->state) {
 
   case SIMIX_RUNNING:
-    remains = surf_action_get_remains(synchro->comm.surf_comm);
+    remains = synchro->comm.surf_comm->getRemains();
     break;
 
   case SIMIX_WAITING:
index b194599..e1bfefe 100644 (file)
@@ -213,7 +213,7 @@ typedef struct s_smx_synchro {
 XBT_PRIVATE void SIMIX_context_mod_init(void);
 XBT_PRIVATE void SIMIX_context_mod_exit(void);
 
-smx_context_t SIMIX_context_new(
+XBT_PRIVATE smx_context_t SIMIX_context_new(
   xbt_main_func_t code, int argc, char **argv,
   void_pfn_smxprocess_t cleanup_func,
   smx_process_t simix_process);
index 6078923..46007fb 100644 (file)
@@ -103,7 +103,8 @@ void SIMIX_process_cleanup(smx_process_t process)
 
   XBT_DEBUG("%p should not be run anymore",process);
   xbt_swag_remove(process, simix_global->process_list);
-  xbt_swag_remove(process, sg_host_simix(process->host)->process_list);
+  if (process->host)
+    xbt_swag_remove(process, sg_host_simix(process->host)->process_list);
   xbt_swag_insert(process, simix_global->process_to_destroy);
   process->context->iwannadie = 0;
 
@@ -138,25 +139,45 @@ void SIMIX_process_empty_trash(void)
   }
 }
 
-/**
- * \brief Creates and runs the maestro process
- */
-void SIMIX_create_maestro_process()
+namespace simgrid {
+namespace simix {
+
+void create_maestro(std::function<void()> code)
 {
   smx_process_t maestro = NULL;
-
   /* Create maestro process and intilialize it */
   maestro = xbt_new0(s_smx_process_t, 1);
   maestro->pid = simix_process_maxpid++;
   maestro->ppid = -1;
-  maestro->name = (char *) "";
+  maestro->name = (char*) "";
+  maestro->data = nullptr;
   maestro->running_ctx = (xbt_running_ctx_t*) xbt_malloc0(sizeof(xbt_running_ctx_t));
   XBT_RUNNING_CTX_INITIALIZE(maestro->running_ctx);
-  maestro->context = SIMIX_context_new(NULL, 0, NULL, NULL, maestro);
+
+  if (!code) {
+    maestro->context = SIMIX_context_new(NULL, 0, nullptr, NULL, maestro);
+  } else {
+    if (!simix_global)
+      xbt_die("simix is not initialized, please call MSG_init first");
+    maestro->context =
+      simix_global->context_factory->create_maestro(code, maestro);
+  }
+
   maestro->simcall.issuer = maestro;
   simix_global->maestro_process = maestro;
-  return;
 }
+
+}
+}
+
+/**
+ * \brief Creates and runs the maestro process
+ */
+void SIMIX_maestro_create(void (*code)(void*), void* data)
+{
+  simgrid::simix::create_maestro(std::bind(code, data));
+}
+
 /**
  * \brief Stops a process.
  *
@@ -328,6 +349,110 @@ smx_process_t SIMIX_process_create(
   return process;
 }
 
+smx_process_t SIMIX_process_attach(
+  const char* name,
+  void *data,
+  const char* hostname,
+  xbt_dict_t properties,
+  smx_process_t parent_process)
+{
+  // This is mostly a copy/paste from SIMIX_process_new(),
+  // it'd be nice to share some code between those two functions.
+
+  sg_host_t host = sg_host_by_name(hostname);
+  XBT_DEBUG("Attach process %s on host '%s'", name, hostname);
+
+  if (host->is_off()) {
+    XBT_WARN("Cannot launch process '%s' on failed host '%s'",
+      name, hostname);
+    return nullptr;
+  }
+
+  smx_process_t process = xbt_new0(s_smx_process_t, 1);
+  /* Process data */
+  process->pid = simix_process_maxpid++;
+  process->name = xbt_strdup(name);
+  process->host = host;
+  process->data = data;
+  process->comms = xbt_fifo_new();
+  process->simcall.issuer = process;
+  process->ppid = -1;
+  /* Initiliaze data segment to default value */
+  SIMIX_segment_index_set(process, -1);
+  if (parent_process != NULL) {
+    process->ppid = SIMIX_process_get_PID(parent_process);
+   /* SMPI process have their own data segment and
+      each other inherit from their father */
+  #ifdef HAVE_SMPI
+    if(smpi_privatize_global_variables){
+      if(parent_process->pid != 0){
+        SIMIX_segment_index_set(process, parent_process->segment_index);
+      } else {
+        SIMIX_segment_index_set(process, process->pid - 1);
+      }
+    }
+  #endif
+  }
+
+  /* Process data for auto-restart */
+  process->auto_restart = false;
+  process->code = nullptr;
+  process->argc = 0;
+  process->argv = nullptr;
+
+  XBT_VERB("Create context %s", process->name);
+  if (!simix_global)
+    xbt_die("simix is not initialized, please call MSG_init first");
+  process->context = simix_global->context_factory->attach(
+    simix_global->cleanup_process_function, process);
+
+  process->running_ctx = (xbt_running_ctx_t*) xbt_malloc0(sizeof(xbt_running_ctx_t));
+  XBT_RUNNING_CTX_INITIALIZE(process->running_ctx);
+
+  if(MC_is_active()){
+    MC_ignore_heap(process->running_ctx, sizeof(*process->running_ctx));
+  }
+
+  /* Add properties */
+  process->properties = properties;
+
+  /* Add the process to it's host process list */
+  xbt_swag_insert(process, sg_host_simix(host)->process_list);
+
+  /* Now insert it in the global process list and in the process to run list */
+  xbt_swag_insert(process, simix_global->process_list);
+  XBT_DEBUG("Inserting %s(%s) in the to_run list", process->name, sg_host_get_name(host));
+  xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
+
+  /* Tracing the process creation */
+  TRACE_msg_process_create(process->name, process->pid, process->host);
+
+  auto context = dynamic_cast<simgrid::simix::AttachContext*>(process->context);
+  if (!context)
+    xbt_die("Not a suitable context");
+
+  context->attach_start();
+  return process;
+}
+
+void SIMIX_process_detach(void)
+{
+  auto context = dynamic_cast<simgrid::simix::AttachContext*>(SIMIX_context_self());
+  if (!context)
+    xbt_die("Not a suitable context");
+
+  simix_global->cleanup_process_function(context->process());
+
+  // Let maestro ignore we are still alive:
+  // xbt_swag_remove(context->process(), simix_global->process_list);
+
+  // TODDO, Remove from proces list:
+  //   xbt_swag_remove(process, sg_host_simix(host)->process_list);
+
+  context->attach_stop();
+  // delete context;
+}
+
 /**
  * \brief Executes the processes from simix_global->process_to_run.
  *
@@ -907,7 +1032,11 @@ void SIMIX_process_yield(smx_process_t self)
 /* callback: context fetching */
 xbt_running_ctx_t *SIMIX_process_get_running_context(void)
 {
-  return SIMIX_process_self()->running_ctx;
+  smx_process_t process = SIMIX_process_self();
+  if (process)
+    return process->running_ctx;
+  else
+    return nullptr;
 }
 
 /* callback: termination */
index febf7a5..76653dc 100644 (file)
@@ -75,11 +75,11 @@ XBT_PRIVATE smx_process_t SIMIX_process_create(
                           xbt_dict_t properties,
                           int auto_restart,
                           smx_process_t parent_process);
+
 XBT_PRIVATE void SIMIX_process_runall(void);
 XBT_PRIVATE void SIMIX_process_kill(smx_process_t process, smx_process_t issuer);
 XBT_PRIVATE void SIMIX_process_killall(smx_process_t issuer, int reset_pid);
 XBT_PRIVATE smx_process_t SIMIX_process_create_from_wrapper(smx_process_arg_t args);
-XBT_PRIVATE void SIMIX_create_maestro_process(void);
 XBT_PRIVATE void SIMIX_process_stop(smx_process_t arg);
 XBT_PRIVATE void SIMIX_process_cleanup(smx_process_t arg);
 XBT_PRIVATE void SIMIX_process_empty_trash(void);
index ff7f7e7..b8eff39 100644 (file)
@@ -212,8 +212,8 @@ void SIMIX_mutex_unlock(smx_mutex_t mutex, smx_process_t issuer)
 
   /* If the mutex is not owned by the issuer, that's not good */
   if (issuer != mutex->owner)
-         THROWF(mismatch_error, 0, "Cannot release that mutex: it was locked by %s (pid:%d), not by you.",
-                         SIMIX_process_get_name(mutex->owner),SIMIX_process_get_PID(mutex->owner));
+    THROWF(mismatch_error, 0, "Cannot release that mutex: it was locked by %s (pid:%d), not by you.",
+        SIMIX_process_get_name(mutex->owner),SIMIX_process_get_PID(mutex->owner));
 
   if (xbt_swag_size(mutex->sleeping) > 0) {
     /*process to wake up */
@@ -284,7 +284,7 @@ void simcall_HANDLER_cond_wait(smx_simcall_t simcall, smx_cond_t cond, smx_mutex
  * \param simcall the simcall
  */
 void simcall_HANDLER_cond_wait_timeout(smx_simcall_t simcall, smx_cond_t cond,
-                                smx_mutex_t mutex, double timeout)
+                     smx_mutex_t mutex, double timeout)
 {
   XBT_IN("(%p)",simcall);
   smx_process_t issuer = simcall->issuer;
index d6da804..9cf2592 100644 (file)
@@ -32,16 +32,13 @@ XBT_PRIVATE void SIMIX_synchro_stop_waiting(smx_process_t process, smx_simcall_t
 XBT_PRIVATE void SIMIX_synchro_destroy(smx_synchro_t synchro);
 
 XBT_PRIVATE smx_mutex_t SIMIX_mutex_init(void);
-XBT_PRIVATE void SIMIX_mutex_destroy(smx_mutex_t mutex);
 XBT_PRIVATE int SIMIX_mutex_trylock(smx_mutex_t mutex, smx_process_t issuer);
 XBT_PRIVATE void SIMIX_mutex_unlock(smx_mutex_t mutex, smx_process_t issuer);
 
 XBT_PRIVATE smx_cond_t SIMIX_cond_init(void);
-XBT_PRIVATE void SIMIX_cond_destroy(smx_cond_t cond);
 XBT_PRIVATE void SIMIX_cond_broadcast(smx_cond_t cond);
 XBT_PRIVATE void SIMIX_cond_signal(smx_cond_t cond);
 
-XBT_PRIVATE void SIMIX_sem_destroy(smx_sem_t sem);
 XBT_PRIVATE XBT_PRIVATE smx_sem_t SIMIX_sem_init(unsigned int value);
 XBT_PRIVATE void SIMIX_sem_release(smx_sem_t sem);
 XBT_PRIVATE int SIMIX_sem_would_block(smx_sem_t sem);
index 6b32988..fe32215 100644 (file)
@@ -40,7 +40,7 @@ sg_host_t SIMIX_vm_create(const char *name, sg_host_t ind_phys_host)
 static long host_get_ramsize(sg_host_t vm, int *overcommit)
 {
   s_vm_params_t params;
-  surf_host_get_params(vm, &params);
+  vm->extension<simgrid::surf::Host>()->getParams(&params);
 
   if (overcommit)
     *overcommit = params.overcommit;
@@ -68,7 +68,7 @@ static int __can_be_started(sg_host_t vm)
   }
 
   long total_ramsize_of_vms = 0;
-  xbt_dynar_t dyn_vms = surf_host_get_vms(pm);
+  xbt_dynar_t dyn_vms = pm->extension<simgrid::surf::Host>()->getVms();
   {
     unsigned int cursor = 0;
     sg_host_t another_vm;
@@ -86,8 +86,7 @@ static int __can_be_started(sg_host_t vm)
     return 0;
   }
 
-  xbt_dynar_free(&dyn_vms);
-       return 1;
+  return 1;
 }
 
 void SIMIX_vm_start(sg_host_t ind_vm)
index ffd791a..be58707 100644 (file)
 #include "xbt/ex.h"
 #include "xbt.h"
 
+SG_BEGIN_DECL()
+
 #define COLL_DESCRIPTION(cat, ret, args, name) \
   {# name,\
    # cat " " # name " collective",\
-   smpi_coll_tuned_ ## cat ## _ ## name}
+   (void*)smpi_coll_tuned_ ## cat ## _ ## name}
 
 #define COLL_PROTO(cat, ret, args, name) \
   ret smpi_coll_tuned_ ## cat ## _ ## name(COLL_UNPAREN args);
@@ -333,5 +335,6 @@ COLL_APPLY(action, COLL_BARRIER_SIG, automatic)
 
 COLL_BARRIERS(COLL_PROTO, COLL_NOsep)
 
+SG_END_DECL()
 
 #endif
diff --git a/src/smpi/fixsrc.pl b/src/smpi/fixsrc.pl
deleted file mode 100755 (executable)
index 8844d20..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env perl
-
-# Copyright (c) 2011, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-# Add include for mandatory header file
-print "#include <smpi_cocci.h>\n";
-
-# FIXME: here we make the assumption that people don't do things like put
-# multiple statements on the same line after a declaration, but separated by
-# semicolons. It's a reasonable assumption for the time being, but technically
-# it could cause problems for some code.
-
-OUTER: while ($line = <STDIN>) {
-    if ($line =~ /SMPI_VARINIT/) {
-        do {
-            chomp $line;         # kill carriage return
-            $line =~ s/\s+/ /g;  # remove excessive whitespace added by spatch
-            while ($line =~ s/(SMPI_VARINIT[A-Z0-9_]*?\(.*?\))//) {
-                print "$1\n";
-            } 
-
-            # if varinit continues on to next line
-            if ($line =~ /SMPI_VARINIT/) {
-                # should only happen for bad code...
-                if (!($nextline = <STDIN>)) {
-                    last OUTER;
-                }
-                $line .= $nextline;
-
-            }
-        } while ($line =~ /SMPI_VARINIT/);
-    } else {
-        print $line;
-    }
-}
similarity index 98%
rename from src/smpi/instr_smpi.c
rename to src/smpi/instr_smpi.cpp
index 101de29..9c8448d 100644 (file)
@@ -97,7 +97,7 @@ static char *TRACE_smpi_put_key(int src, int dst, char *key, int n)
   //get the dynar for src#dst
   char aux[INSTR_DEFAULT_STR_SIZE];
   snprintf(aux, INSTR_DEFAULT_STR_SIZE, "%d#%d", src, dst);
-  xbt_dynar_t d = xbt_dict_get_or_null(keys, aux);
+  xbt_dynar_t d = static_cast<xbt_dynar_t>(xbt_dict_get_or_null(keys, aux));
 
 
   if(!xbt_dynar_is_empty(d)){
@@ -127,7 +127,7 @@ static char *TRACE_smpi_get_key(int src, int dst, char *key, int n)
 {
   char aux[INSTR_DEFAULT_STR_SIZE];
   snprintf(aux, INSTR_DEFAULT_STR_SIZE, "%d#%d", src, dst);
-  xbt_dynar_t d = xbt_dict_get_or_null(keys, aux);
+  xbt_dynar_t d = static_cast<xbt_dynar_t>(xbt_dict_get_or_null(keys, aux));
 
  // xbt_assert(!xbt_dynar_is_empty(d),
  //     "Trying to get a link key (for message reception) that has no corresponding send (%s).", __FUNCTION__);
@@ -177,7 +177,7 @@ const char *TRACE_internal_smpi_get_category (void)
 
   char processid[INSTR_DEFAULT_STR_SIZE];
   snprintf (processid, INSTR_DEFAULT_STR_SIZE, "%p", SIMIX_process_self());
-  return xbt_dict_get_or_null (process_category, processid);
+  return static_cast<char*>(xbt_dict_get_or_null (process_category, processid));
 }
 
 void TRACE_smpi_alloc()
diff --git a/src/smpi/myprintloc.cocci b/src/smpi/myprintloc.cocci
deleted file mode 100644 (file)
index bea1b79..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-
-@r@
-/* Matching a declaration, ie rewriting site candidate 
-   Disqualify the candidate
-   ----------------- */
-type T;
-position p1;
-identifier id;
-@@
-
-T id@p1;
-
-
-
-
-@funcdecl@
-# Matching a /function/ declaration. 
-# Disqualify the candidate
-#-----------------
-type T;
-position r.p1;
-identifier id;
-@@
- T id@p1(...) {...}
-
-
-
-
-@funcproto@
-# Matching a function prototype w/o body. 
-# Disqualify the candidate
-#-----------------
-type T;
-position r.p1;
-identifier id;
-@@
- T id@p1(...);
-
-@localdeclaration@
-# Matching a declaration at the top level of a function. 
-# Disqualify the candidate
-#-----------------
-type T1,T2;
-position r.p1;
-identifier id1,id2;
-@@
-
-T1 id1(...) {
-  ...
-  T2 id2@p1;
-  ...
-}
-
-@localinnerdeclaration@
-# The next rule is there to make sure that we are not speaking of a
-# local variable declared in an inner block. I don't like it at all:
-# It is redundent and gives false negative on the foreach macros that
-# get often declared in the code. Example in examples/gras/spawn.c:
-# 
-# int server() {
-#   ...
-#   xbt_dynar_foreach(chunk->primes,cursor,data) {
-#     char number[100];
-#     ...
-#   }
-#   ...
-# } 
-#
-# Do I really need to complicate this rule further to add every macro
-# that we use in our C, or can it be merged with the previous one by
-# saying something like "in a function, at whatever level of nesting"?
-
-type T1,T2;
-position r.p1;
-identifier id1,id2;
-expression e1,e2,e3;
-@@
-
-T1 id1(...) {
-  ...
-( 
-  for (e1;e2;e3) { ... T2 id2@p1; ... }
-| 
-  for (;e2;e3) { ... T2 id2@p1; ... }
-| 
-  for (e1;;e3) { ... T2 id2@p1; ... }
-| 
-  for (e1;e2;) { ... T2 id2@p1; ... }
-| 
-  for (e1;;) { ... T2 id2@p1; ... }
-| 
-  for (;e2;) { ... T2 id2@p1; ... }
-| 
-  for (;;e3) { ... T2 id2@p1; ... }
-| 
-  for (;;) { ... T2 id2@p1; ... }
-| 
-  while (e1) { ... T2 id2@p1; ... }
-| 
-  do { ... T2 id2@p1; ... } while (e1);
-)
-  ...
-}
-
-
-
-@script:python depends on r 
-                          && !funcdecl 
-                         && !funcproto 
-                         && !localdeclaration 
-                         && !localinnerdeclaration@
-
-# This rule is only a debugging rule, to print the sites where the
-# change must be applied
-
-p1 << r.p1;
-T  << r.T;
-id << r.id;
-@@
-
-c1 = cocci.combine(id,p1)
-print "1. symbol %s of type \"%s\" at %s:%s" % (id,T,c1.location.line,c1.location.column)
diff --git a/src/smpi/patch_source.sh b/src/smpi/patch_source.sh
deleted file mode 100755 (executable)
index 38fd745..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# Copyright (c) 2011, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-INFILE="$1"
-OUTFILE="$2"
-SPFILE="replace_globals.cocci"
-TMPFILE=`mktemp ${OUTFILE}.XXXX`
-
-trap "rm -f ${TMPFILE}" EXIT
-spatch -sp_file ${SPFILE} ${INFILE} -o ${TMPFILE} >/dev/null 2>/dev/null
-./fixsrc.pl < ${TMPFILE} > ${OUTFILE}
index 6f65720..b6ab1a6 100644 (file)
@@ -15,7 +15,6 @@
 #include "simgrid/simix.h"
 #include "src/include/smpi/smpi_interface.h"
 #include "smpi/smpi.h"
-#include "smpi/smpi_cocci.h"
 #include "src/instr/instr_private.h"
 
 SG_BEGIN_DECL()
@@ -739,7 +738,7 @@ void mpi_comm_get_parent_ ( int*parent, int* ierr);
 
 
 /********** Tracing **********/
-/* from smpi_instr.c */
+/* from instr_smpi.c */
 XBT_PRIVATE void TRACE_internal_smpi_set_category (const char *category);
 XBT_PRIVATE const char *TRACE_internal_smpi_get_category (void);
 XBT_PRIVATE void TRACE_smpi_collective_in(int rank, int root, const char *operation, instr_extra_data extra);
diff --git a/src/smpi/replace_globals.cocci b/src/smpi/replace_globals.cocci
deleted file mode 100644 (file)
index 00a6ca5..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-// FIXME: seems like cocci has problems manipulating the declarations, at least
-// when there is more than one on the same line. We already need perl to split
-// up the declarations after the fact, is there another tool we can use to patch
-// up and match the declarations? In that case we could consider dropping cocci,
-// or just using it to alter global variable accesses.
-//
-// FIXME: problems
-//   - array declarations not properly matched...can fix, but then can't have
-//   multiple declarations on one line
-//   - does not match array initializers
-//   - probably won't fix structure declarations with initialization either
-
-// Function prototype looks like variable dec, but has parentheses
-@funcproto@
-type T;
-identifier func;
-position p;
-@@
-T@p func(...);
-
-// define a local variable declaration as one at some level of nesting
-@localvardecl@
-type T;
-identifier var;
-position p;
-expression E;
-@@
-<...
-( // default case
-T@p
-var
-;
-| // variable has initializer
-T@p
-var = E
-;
-)
-...>
-
-// define a global variable declaration as one that is neither a function
-// prototype nor a local variable declaration
-@globalvardecl@
-type T;
-identifier var;
-position p != { funcproto.p, localvardecl.p };
-expression value;
-// expression size;
-@@
-( // default case
-T@p 
-- var
-+ *var = SMPI_VARINIT_GLOBAL(var, T)
-;
-| // variable has initializer (not a struct or array)
-T@p
-- var = value 
-+ *var = SMPI_VARINIT_GLOBAL_AND_SET(var, T, value)
-;
-//| // array of specified size
-//T@p // FIXME: matches, but complains if more than one decl on a line...
-//- var[size]
-//+ *var[size] = SMPI_VARINIT_GLOBAL_ARRAY(T, size)
-//;
-//| // array of specified size with initializer
-//T@p // FIXME: how to match initializer?
-//- var[size] = { ... }
-//+ *var[] = SMPI_VARINIT_GLOBAL_ARRAY_AND_SET(T, size, { ... })
-//;
-//| // array without specified size, but with initializer
-//T@p // FIXME: how to match initializer? how to figure out size?
-//- var[] = { ... }
-//+ *var[] = SMPI_VARINIT_GLOBAL_ARRAY_AND_SET(T, size, { ... }) // size = ?
-//;
-//| struct with initializer?
-)
-
-// rewrite access to global variables based on name, but avoid the declaration
-// and local variables that might have the same name
-@rewriteglobalaccess@
-type T;
-local idexpression lvar;
-identifier globalvardecl.var;
-@@
-<...
-( // local variable
-lvar
-| // rewrite access
-+SMPI_VARGET_GLOBAL(
-var
-+)
-)
-...>
-
-// define a local static variable declaration as one at some level of nesting
-// starting with the word static (exceptions?)
-@staticvardecl@
-type T;
-identifier func, var;
-expression value;
-@@
-func(...) {
-...
-( // default case
-static T
-- var
-+ *var = SMPI_VARINIT_STATIC(T, var)
-;
-| // variable has initializer (not a struct or array)
-T
-- var = value 
-+ *var = SMPI_VARINIT_STATIC_AND_SET(var, T, value)
-;
-)
-...
-}
-
-// 
-@rewritestaticaccess@
-type T;
-identifier staticvardecl.func, staticvardecl.var;
-@@
-func(...) {
-<...
-( // declaration
-T
-var
-;
-| // rewrite access
-+SMPI_VARGET_STATIC(
-var
-+)
-)
-...>
-}
diff --git a/src/smpi/replace_static.cocci b/src/smpi/replace_static.cocci
deleted file mode 100644 (file)
index cda1de2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// FIXME: why can't I just define a static local vardecl the same way as a
-// normal local vardecl?
-
-// Function prototype looks like variable dec, but has parentheses
-@funcproto@
-type T;
-identifier func;
-position p;
-@@
-T@p func(...);
-
-// Define a local variable as one whose declaration is encased in brackets
-@localvardecl@
-type T;
-identifier var;
-position p;
-expression E;
-@@
-{
-<...
-(
-T@p
-var
-;
-|
-T@p
-var = E
-;
-)
-...>
-}
-
-// global variable is one whose declaration is neither local nor a function
-// prototype
-@globalvardecl@
-type T;
-identifier var;
-position p != { localvardecl.p, funcproto.p };
-expression value;
-// expression size;
-@@
-(
-T@p var;
-|
-T@p var = value;
-)
-
-// local static decl is a nonglobal static decl...
-@localstaticvardecl@
-type T;
-identifier var;
-position p != globalvardecl.p;
-expression value;
-@@
-(
-static T@p
-- var
-+ *var = SMPI_VARINIT_STATIC(var, T)
-;
-|
-static T@p
-- var = value
-+ *var = SMPI_VARINIT_STATIC_AND_SET(var, T, value)
-;
-)
-
-// FIXME: add varaccess...
similarity index 95%
rename from src/smpi/smpi_base.c
rename to src/smpi/smpi_base.cpp
index 21a8356..f539078 100644 (file)
@@ -62,12 +62,14 @@ static int match_send(void* a, void* b,smx_synchro_t ignored) {
 }
 
 
-typedef struct s_smpi_factor *smpi_factor_t;
-typedef struct s_smpi_factor {
+// Methods used to parse and store the values for timing injections in smpi
+// These are taken from surf/network.c and generalized to have more values for each factor
+typedef struct s_smpi_factor_multival *smpi_os_factor_multival_t;
+typedef struct s_smpi_factor_multival { // FIXME: this should be merged (deduplicated) with s_smpi_factor defined in network_smpi.c
   long factor;
   int nb_values;
   double values[4];//arbitrary set to 4
-} s_smpi_factor_t;
+} s_smpi_factor_multival_t;
 xbt_dynar_t smpi_os_values = NULL;
 xbt_dynar_t smpi_or_values = NULL;
 xbt_dynar_t smpi_ois_values = NULL;
@@ -76,15 +78,10 @@ double smpi_wtime_sleep = 0.0;
 double smpi_iprobe_sleep = 1e-4;
 double smpi_test_sleep = 1e-4;
 
-
-// Methods used to parse and store the values for timing injections in smpi
-// These are taken from surf/network.c and generalized to have more factors
-// These methods should be merged with those in surf/network.c (moved somewhere in xbt ?)
-
 static int factor_cmp(const void *pa, const void *pb)
 {
-  return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 :
-         (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0;
+  return (((s_smpi_factor_multival_t*)pa)->factor > ((s_smpi_factor_multival_t*)pb)->factor) ? 1 :
+         (((s_smpi_factor_multival_t*)pa)->factor < ((s_smpi_factor_multival_t*)pb)->factor) ? -1 : 0;
 }
 
 
@@ -92,33 +89,36 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string)
 {
   char *value = NULL;
   unsigned int iter = 0;
-  s_smpi_factor_t fact;
+  s_smpi_factor_multival_t fact;
   fact.nb_values=0;
-  int i=0;
+  unsigned int i=0;
   xbt_dynar_t smpi_factor, radical_elements, radical_elements2 = NULL;
 
-  smpi_factor = xbt_dynar_new(sizeof(s_smpi_factor_t), NULL);
+  smpi_factor = xbt_dynar_new(sizeof(s_smpi_factor_multival_t), NULL);
   radical_elements = xbt_str_split(smpi_coef_string, ";");
   xbt_dynar_foreach(radical_elements, iter, value) {
-    memset(&fact, 0, sizeof(s_smpi_factor_t));
+    memset(&fact, 0, sizeof(s_smpi_factor_multival_t));
     radical_elements2 = xbt_str_split(value, ":");
     if (xbt_dynar_length(radical_elements2) <2 || xbt_dynar_length(radical_elements2) > 5)
-      xbt_die("Malformed radical for smpi factor!");
+      xbt_die("Malformed radical for smpi factor: '%s'", smpi_coef_string);
     for(i =0; i<xbt_dynar_length(radical_elements2);i++ ){
-        if (i==0){
-           fact.factor = atol(xbt_dynar_get_as(radical_elements2, i, char *));
-        }else{
-           fact.values[fact.nb_values] = atof(xbt_dynar_get_as(radical_elements2, i, char *));
-           fact.nb_values++;
-        }
+      char *errmsg;
+      if (i==0) {
+        errmsg = bprintf("Invalid factor in chunk #%d: %%s", iter+1);
+        fact.factor = xbt_str_parse_int(xbt_dynar_get_as(radical_elements2, i, char *), errmsg);
+      } else {
+        errmsg = bprintf("Invalid factor value %d in chunk #%d: %%s", i, iter+1);
+        fact.values[fact.nb_values] = xbt_str_parse_double(xbt_dynar_get_as(radical_elements2, i, char *), errmsg);
+        fact.nb_values++;
+      }
+      xbt_free(errmsg);
     }
 
-    xbt_dynar_push_as(smpi_factor, s_smpi_factor_t, fact);
+    xbt_dynar_push_as(smpi_factor, s_smpi_factor_multival_t, fact);
     XBT_DEBUG("smpi_factor:\t%ld : %d values, first: %f", fact.factor, fact.nb_values ,fact.values[0]);
     xbt_dynar_free(&radical_elements2);
   }
   xbt_dynar_free(&radical_elements);
-  iter=0;
   xbt_dynar_sort(smpi_factor, &factor_cmp);
   xbt_dynar_foreach(smpi_factor, iter, fact) {
     XBT_DEBUG("smpi_factor:\t%ld : %d values, first: %f", fact.factor, fact.nb_values ,fact.values[0]);
@@ -133,7 +133,7 @@ static double smpi_os(double size)
     smpi_register_static(smpi_os_values, xbt_dynar_free_voidp);
   }
   unsigned int iter = 0;
-  s_smpi_factor_t fact;
+  s_smpi_factor_multival_t fact;
   double current=0.0;
   // Iterate over all the sections that were specified and find the right
   // value. (fact.factor represents the interval sizes; we want to find the
@@ -162,7 +162,7 @@ static double smpi_ois(double size)
     smpi_register_static(smpi_ois_values, xbt_dynar_free_voidp);
   }
   unsigned int iter = 0;
-  s_smpi_factor_t fact;
+  s_smpi_factor_multival_t fact;
   double current=0.0;
   // Iterate over all the sections that were specified and find the right
   // value. (fact.factor represents the interval sizes; we want to find the
@@ -191,7 +191,7 @@ static double smpi_or(double size)
     smpi_register_static(smpi_or_values, xbt_dynar_free_voidp);
   }
   unsigned int iter = 0;
-  s_smpi_factor_t fact;
+  s_smpi_factor_multival_t fact;
   double current=0.0;
   // Iterate over all the sections that were specified and find the right
   // value. (fact.factor represents the interval sizes; we want to find the
@@ -242,7 +242,7 @@ static MPI_Request build_request(void *buf, int count,
 
   request = xbt_new(s_smpi_mpi_request_t, 1);
 
-  s_smpi_subtype_t *subtype = datatype->substruct;
+  s_smpi_subtype_t *subtype = static_cast<s_smpi_subtype_t*>(datatype->substruct);
 
   if(((flags & RECV) && (flags & ACCUMULATE)) || (datatype->has_subtype == 1)){
     // This part handles the problem of non-contiguous memory
@@ -298,7 +298,7 @@ void smpi_empty_status(MPI_Status * status)
 
 static void smpi_mpi_request_free_voidp(void* request)
 {
-  MPI_Request req = request;
+  MPI_Request req = static_cast<MPI_Request>(request);
   smpi_mpi_request_free(&req);
 }
 
@@ -351,7 +351,7 @@ void smpi_mpi_start(MPI_Request request)
     if (async_small_thresh == 0 && !(request->flags & RMA)) {
       mailbox = smpi_process_mailbox();
     }
-    else if (request->flags & RMA || request->size < async_small_thresh){
+    else if (request->flags & RMA || static_cast<int>(request->size) < async_small_thresh){
     //We have to check both mailboxes (because SSEND messages are sent to the large mbox). begin with the more appropriate one : the small one.
       mailbox = smpi_process_mailbox_small();
       XBT_DEBUG("Is there a corresponding send already posted in the small mailbox %p (in case of SSEND)?", mailbox);
@@ -399,7 +399,7 @@ void smpi_mpi_start(MPI_Request request)
                                          request, -1.0);
         XBT_DEBUG("recv simcall posted");
 
-    if (async_small_thresh != 0 || request->flags & RMA)
+    if (async_small_thresh != 0 || (request->flags & RMA))
       xbt_mutex_release(mut);
   } else {
 
@@ -408,7 +408,7 @@ void smpi_mpi_start(MPI_Request request)
 
     int rank = request->src;
     if (TRACE_smpi_view_internals()) {
-       TRACE_smpi_send(rank, rank, receiver,request->size);
+      TRACE_smpi_send(rank, rank, receiver,request->size);
     }
     print_request("New send", request);
     
@@ -428,13 +428,13 @@ void smpi_mpi_start(MPI_Request request)
 
     xbt_mutex_t mut=smpi_process_remote_mailboxes_mutex(receiver);
 
-    if (async_small_thresh != 0 || request->flags & RMA)
+    if (async_small_thresh != 0 || (request->flags & RMA))
       xbt_mutex_acquire(mut);
 
-    if (!(async_small_thresh != 0 || request->flags & RMA)) {
+    if (!(async_small_thresh != 0 || (request->flags & RMA))) {
       mailbox = smpi_process_remote_mailbox(receiver);
     }
-    else if (request->flags & RMA || request->size < async_small_thresh) { // eager mode
+    else if (request->flags & RMA || static_cast<int>(request->size) < async_small_thresh) { // eager mode
       mailbox = smpi_process_remote_mailbox(receiver);
       XBT_DEBUG("Is there a corresponding recv already posted in the large mailbox %p?", mailbox);
       smx_synchro_t action = simcall_comm_iprobe(mailbox, 1,request->dst, request->tag, &match_send, (void*)request);
@@ -460,7 +460,7 @@ void smpi_mpi_start(MPI_Request request)
     }
 
     void* buf = request->buf;
-    if ( (! (request->flags & SSEND)) && (request->size < sg_cfg_get_int("smpi/send_is_detached_thres"))) {
+    if ( (! (request->flags & SSEND)) && (static_cast<int>(request->size) < sg_cfg_get_int("smpi/send_is_detached_thresh"))) {
       void *oldbuf = NULL;
       request->detached = 1;
       XBT_DEBUG("Send request %p is detached", request);
@@ -501,7 +501,7 @@ void smpi_mpi_start(MPI_Request request)
 
     /* FIXME: detached sends are not traceable (request->action == NULL) */
     if (request->action)
-       simcall_set_category(request->action, TRACE_internal_smpi_get_category());
+      simcall_set_category(request->action, TRACE_internal_smpi_get_category());
 
     if (async_small_thresh != 0 || request->flags & RMA)
       xbt_mutex_release(mut);
@@ -719,7 +719,7 @@ static void finish_wait(MPI_Request * request, MPI_Status * status)
       if(datatype->has_subtype == 1){
         // This part handles the problem of non-contignous memory
         // the unserialization at the reception
-        s_smpi_subtype_t *subtype = datatype->substruct;
+        s_smpi_subtype_t *subtype = static_cast<s_smpi_subtype_t*>(datatype->substruct);
         if(req->flags & RECV)
           subtype->unserialize(req->buf, req->old_buf, req->real_size/smpi_datatype_size(datatype) , datatype->substruct, req->op);
         if(req->detached == 0) free(req->buf);
@@ -1419,10 +1419,10 @@ void smpi_mpi_reduce(void *sendbuf, void *recvbuf, int count,
       if(src != root) {
         // FIXME: possibly overkill we we have contiguous/noncontiguous data
         //  mapping...
-           if (!smpi_process_get_replaying())
+         if (!smpi_process_get_replaying())
           tmpbufs[index] = xbt_malloc(count * dataext);
-           else
-             tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext);
+         else
+           tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext);
         requests[index] =
           smpi_irecv_init(tmpbufs[index], count, datatype, src,
                           system_tag, comm);
similarity index 96%
rename from src/smpi/smpi_bench.c
rename to src/smpi/smpi_bench.cpp
index fcf9a6e..695615d 100644 (file)
@@ -139,13 +139,13 @@ void smpi_bench_destroy(void)
   xbt_dict_free(&calls);
 }
 
-XBT_PUBLIC(void) smpi_execute_flops_(double *flops);
+extern "C" XBT_PUBLIC(void) smpi_execute_flops_(double *flops);
 void smpi_execute_flops_(double *flops)
 {
   smpi_execute_flops(*flops);
 }
 
-XBT_PUBLIC(void) smpi_execute_(double *duration);
+extern "C" XBT_PUBLIC(void) smpi_execute_(double *duration);
 void smpi_execute_(double *duration)
 {
   smpi_execute(*duration);
@@ -184,7 +184,9 @@ void smpi_switch_data_segment(int dest);
 
 void smpi_bench_begin(void)
 {
-  smpi_switch_data_segment(smpi_process_index());
+  if (smpi_privatize_global_variables) {
+    smpi_switch_data_segment(smpi_process_index());
+  }
 
   if (MC_is_active() || MC_record_replay_is_active())
     return;
@@ -327,7 +329,7 @@ void smpi_sample_1(int global, const char *file, int line, int iters, double thr
   if (!samples)
     samples = xbt_dict_new_homogeneous(free);
 
-  data = xbt_dict_get_or_null(samples, loc);
+  data = static_cast<local_data_t *>(xbt_dict_get_or_null(samples, loc));
   if (!data) {
     xbt_assert(threshold>0 || iters>0,
         "You should provide either a positive amount of iterations to bench, or a positive maximal stderr (or both)");
@@ -362,7 +364,7 @@ int smpi_sample_2(int global, const char *file, int line)
   int res;
 
   xbt_assert(samples, "Y U NO use SMPI_SAMPLE_* macros? Stop messing directly with smpi_sample_* functions!");
-  data = xbt_dict_get(samples, loc);
+  data = static_cast<local_data_t *>(xbt_dict_get(samples, loc));
   XBT_DEBUG("sample2 %s",loc);
   xbt_free(loc);
 
@@ -391,7 +393,7 @@ void smpi_sample_3(int global, const char *file, int line)
   local_data_t *data;
 
   xbt_assert(samples, "Y U NO use SMPI_SAMPLE_* macros? Stop messing directly with smpi_sample_* functions!");
-  data = xbt_dict_get(samples, loc);
+  data = static_cast<local_data_t *>(xbt_dict_get(samples, loc));
   XBT_DEBUG("sample3 %s",loc);
   xbt_free(loc);
 
@@ -424,7 +426,7 @@ void smpi_sample_3(int global, const char *file, int line)
 #ifndef WIN32
 static void smpi_shared_alloc_free(void *p)
 {
-  shared_data_t *data = p;
+  shared_data_t *data = static_cast<shared_data_t *>(p);
   xbt_free(data->loc);
   xbt_free(data);
 }
@@ -439,7 +441,7 @@ static char *smpi_shared_alloc_hash(char *loc)
   xbt_sha(loc, hash);
   hash[41] = '\0';
   s[6] = '\0';
-  loc = xbt_realloc(loc, 30);
+  loc = static_cast<char *>(xbt_realloc(loc, 30));
   loc[0] = '/';
   for (i = 0; i < 40; i += 6) { /* base64 encode */
     memcpy(s, hash + i, 6);
@@ -466,7 +468,7 @@ void *smpi_shared_malloc(size_t size, const char *file, int line)
     if (!allocs) {
       allocs = xbt_dict_new_homogeneous(smpi_shared_alloc_free);
     }
-    data = xbt_dict_get_or_null(allocs, loc);
+    data = static_cast<shared_data_t *>(xbt_dict_get_or_null(allocs, loc));
     if (!data) {
       fd = shm_open(loc, O_RDWR | O_CREAT | O_EXCL,
                     S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
@@ -652,7 +654,7 @@ void smpi_initialize_global_memory_segments(){
   return;
 #else
 
-  unsigned int i = 0;
+  int i = 0;
   smpi_get_executable_global_size();
 
   XBT_DEBUG ("bss+data segment found : size %d starting at %p",
@@ -674,8 +676,8 @@ void smpi_initialize_global_memory_segments(){
 
       int file_descriptor= mkstemp (path);
       if (file_descriptor < 0) {
-         if (errno==EMFILE) {
-                 xbt_die("Impossible to create temporary file for memory mapping: %s\n\
+        if (errno==EMFILE) {
+          xbt_die("Impossible to create temporary file for memory mapping: %s\n\
 The open() system call failed with the EMFILE error code (too many files). \n\n\
 This means that you reached the system limits concerning the amount of files per process. \
 This is not a surprise if you are trying to virtualize many processes on top of SMPI. \
@@ -688,9 +690,9 @@ First, check what your limits are:\n\
 If one of these values is less than the amount of MPI processes that you try to run, then you got the explanation of this error. \
 Ask the Internet about tutorials on how to increase the files limit such as: https://rtcamp.com/tutorials/linux/increase-open-files-limit/",
              strerror(errno));
-         }
+        }
         xbt_die("Impossible to create temporary file for memory mapping: %s",
-                       strerror(errno));
+            strerror(errno));
       }
 
       status = unlink (path);
similarity index 100%
rename from src/smpi/smpi_c99.c
rename to src/smpi/smpi_c99.cpp
similarity index 95%
rename from src/smpi/smpi_coll.c
rename to src/smpi/smpi_coll.cpp
index e685e31..faa8d3c 100644 (file)
@@ -20,7 +20,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_coll, smpi,
 s_mpi_coll_description_t mpi_coll_gather_description[] = {
   {"default",
    "gather default collective",
-   smpi_mpi_gather},
+   (void*)smpi_mpi_gather},
 COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -29,7 +29,7 @@ COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_allgather_description[] = {
   {"default",
    "allgather default collective",
-   smpi_mpi_allgather},
+   (void*)smpi_mpi_allgather},
 COLL_ALLGATHERS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -37,7 +37,7 @@ COLL_ALLGATHERS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_allgatherv_description[] = {
   {"default",
    "allgatherv default collective",
-   smpi_mpi_allgatherv},
+   (void*)smpi_mpi_allgatherv},
 COLL_ALLGATHERVS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -45,7 +45,7 @@ COLL_ALLGATHERVS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_allreduce_description[] = {
   {"default",
    "allreduce default collective",
-   smpi_mpi_allreduce},
+   (void*)smpi_mpi_allreduce},
 COLL_ALLREDUCES(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -53,7 +53,7 @@ COLL_ALLREDUCES(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_reduce_scatter_description[] = {
   {"default",
    "reduce_scatter default collective",
-   smpi_mpi_reduce_scatter},
+   (void*)smpi_mpi_reduce_scatter},
 COLL_REDUCE_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -61,7 +61,7 @@ COLL_REDUCE_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_scatter_description[] = {
   {"default",
    "scatter default collective",
-   smpi_mpi_scatter},
+   (void*)smpi_mpi_scatter},
 COLL_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -69,28 +69,28 @@ COLL_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_barrier_description[] = {
   {"default",
    "barrier default collective",
-   smpi_mpi_barrier},
+   (void*)smpi_mpi_barrier},
 COLL_BARRIERS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
 s_mpi_coll_description_t mpi_coll_alltoall_description[] = {
   {"default",
    "Ompi alltoall default collective",
-   smpi_coll_tuned_alltoall_ompi2},
+   (void*)smpi_coll_tuned_alltoall_ompi2},
 COLL_ALLTOALLS(COLL_DESCRIPTION, COLL_COMMA),
   {"bruck",
    "Alltoall Bruck (SG) collective",
-   smpi_coll_tuned_alltoall_bruck},
+   (void*)smpi_coll_tuned_alltoall_bruck},
   {"basic_linear",
    "Alltoall basic linear (SG) collective",
-   smpi_coll_tuned_alltoall_basic_linear},
+   (void*)smpi_coll_tuned_alltoall_basic_linear},
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
 
 s_mpi_coll_description_t mpi_coll_alltoallv_description[] = {
   {"default",
    "Ompi alltoallv default collective",
-   smpi_coll_basic_alltoallv},
+   (void*)smpi_coll_basic_alltoallv},
 COLL_ALLTOALLVS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -98,7 +98,7 @@ COLL_ALLTOALLVS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_bcast_description[] = {
   {"default",
    "bcast default collective ",
-   smpi_mpi_bcast},
+   (void*)smpi_mpi_bcast},
 COLL_BCASTS(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -106,7 +106,7 @@ COLL_BCASTS(COLL_DESCRIPTION, COLL_COMMA),
 s_mpi_coll_description_t mpi_coll_reduce_description[] = {
   {"default",
    "reduce default collective",
-   smpi_mpi_reduce},
+   (void*)smpi_mpi_reduce},
 COLL_REDUCES(COLL_DESCRIPTION, COLL_COMMA),
   {NULL, NULL, NULL}      /* this array must be NULL terminated */
 };
@@ -152,9 +152,8 @@ int find_coll_description(s_mpi_coll_description_t * table,
     xbt_die("No collective is valid for '%s'! This is a bug.",name);
   name_list = xbt_strdup(table[0].name);
   for (i = 1; table[i].name; i++) {
-    name_list =
-        xbt_realloc(name_list,
-                    strlen(name_list) + strlen(table[i].name) + 3);
+    name_list = static_cast<char*>(xbt_realloc(name_list,
+                    strlen(name_list) + strlen(table[i].name) + 3));
     strcat(name_list, ", ");
     strcat(name_list, table[i].name);
   }
@@ -180,9 +179,9 @@ int smpi_coll_tuned_alltoall_ompi2(void *sendbuf, int sendcount,
                                    int recvcount, MPI_Datatype recvtype,
                                    MPI_Comm comm)
 {
-  int size, sendsize;  
-  size = smpi_comm_size(comm); 
-  sendsize = smpi_datatype_size(sendtype) * sendcount; 
+  int size, sendsize;  
+  size = smpi_comm_size(comm);  
+  sendsize = smpi_datatype_size(sendtype) * sendcount;  
   if (sendsize < 200 && size > 12) {
     return
         smpi_coll_tuned_alltoall_bruck(sendbuf, sendcount, sendtype,
similarity index 94%
rename from src/smpi/smpi_comm.c
rename to src/smpi/smpi_comm.cpp
index 9f38c44..c3937c2 100644 (file)
@@ -67,7 +67,7 @@ MPI_Comm smpi_comm_new(MPI_Group group, MPI_Topology topo)
   comm->group = group;
   smpi_group_use(comm->group);
   comm->refcount=1;
-  comm->topoType = -1;
+  comm->topoType = MPI_INVALID_TOPO;
   comm->topo = topo;
   comm->intra_comm = MPI_COMM_NULL;
   comm->leaders_comm = MPI_COMM_NULL;
@@ -121,7 +121,7 @@ int smpi_comm_dup(MPI_Comm comm, MPI_Comm* newcomm){
       void* value_in;
       void* value_out;
       xbt_dict_foreach(comm->attributes, cursor, key, value_in){
-        smpi_comm_key_elem elem = xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)key, sizeof(int));
+        smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)key, sizeof(int)));
         if(elem && elem->copy_fn!=MPI_NULL_COPY_FN){
           ret = elem->copy_fn(comm, *key, NULL, value_in, &value_out, &flag );
           if(ret!=MPI_SUCCESS){
@@ -333,7 +333,7 @@ void smpi_comm_unuse(MPI_Comm comm){
       void * value;
       int flag;
       xbt_dict_foreach(comm->attributes, cursor, key, value){
-        smpi_comm_key_elem elem = xbt_dict_get_or_null(smpi_comm_keyvals, (const char*)key);
+        smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null(smpi_comm_keyvals, (const char*)key));
         if(elem &&  elem->delete_fn)
           elem->delete_fn(comm, *key, value, &flag);
       }
@@ -483,7 +483,7 @@ void smpi_comm_init_smp(MPI_Comm comm){
   // Are the nodes uniform ? = same number of process/node
   int my_local_size=smpi_comm_size(comm_intra);
   if(smpi_comm_rank(comm_intra)==0) {
-    int* non_uniform_map = xbt_malloc0(sizeof(int)*leader_group_size);
+    int* non_uniform_map = xbt_new0(int,leader_group_size);
     smpi_coll_tuned_allgather_mpich(&my_local_size, 1, MPI_INT,
         non_uniform_map, 1, MPI_INT, leader_comm);
     for(i=0; i < leader_group_size; i++) {
@@ -508,19 +508,19 @@ void smpi_comm_init_smp(MPI_Comm comm){
   int is_blocked=1;
   int prev=smpi_group_rank(smpi_comm_group(comm), smpi_group_index(smpi_comm_group(comm_intra), 0));
     for (i=1; i<my_local_size; i++){
-      int this=smpi_group_rank(smpi_comm_group(comm),smpi_group_index(smpi_comm_group(comm_intra), i));
-      if(this!=prev+1){
+      int that=smpi_group_rank(smpi_comm_group(comm),smpi_group_index(smpi_comm_group(comm_intra), i));
+      if(that!=prev+1){
         is_blocked=0;
         break;
       }
-      prev = this;
+      prev = that;
   }
 
   int global_blocked;
   smpi_mpi_allreduce(&is_blocked, &(global_blocked), 1,
             MPI_INT, MPI_LAND, comm);
 
-  if(MPI_COMM_WORLD==SMPI_UNINITIALIZED || comm==MPI_COMM_WORLD){
+  if(MPI_COMM_WORLD==MPI_COMM_UNINITIALIZED || comm==MPI_COMM_WORLD){
     if(smpi_comm_rank(comm)==0){
         comm->is_blocked=global_blocked;
     }
@@ -534,7 +534,7 @@ void smpi_comm_init_smp(MPI_Comm comm){
 }
 
 int smpi_comm_attr_delete(MPI_Comm comm, int keyval){
-  smpi_comm_key_elem elem = xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)&keyval, sizeof(int));
+  smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)&keyval, sizeof(int)));
   if(!elem)
     return MPI_ERR_ARG;
   if(elem->delete_fn!=MPI_NULL_DELETE_FN){
@@ -553,7 +553,7 @@ int smpi_comm_attr_delete(MPI_Comm comm, int keyval){
 }
 
 int smpi_comm_attr_get(MPI_Comm comm, int keyval, void* attr_value, int* flag){
-  smpi_comm_key_elem elem = xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)&keyval, sizeof(int));
+  smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null_ext(smpi_comm_keyvals, (const char*)&keyval, sizeof(int)));
   if(!elem)
     return MPI_ERR_ARG;
   xbt_ex_t ex;
@@ -575,7 +575,7 @@ int smpi_comm_attr_get(MPI_Comm comm, int keyval, void* attr_value, int* flag){
 int smpi_comm_attr_put(MPI_Comm comm, int keyval, void* attr_value){
   if(!smpi_comm_keyvals)
   smpi_comm_keyvals = xbt_dict_new();
-  smpi_comm_key_elem elem = xbt_dict_get_or_null_ext(smpi_comm_keyvals,  (const char*)&keyval, sizeof(int));
+  smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null_ext(smpi_comm_keyvals,  (const char*)&keyval, sizeof(int)));
   if(!elem )
     return MPI_ERR_ARG;
   int flag;
@@ -609,7 +609,7 @@ int smpi_comm_keyval_create(MPI_Comm_copy_attr_function* copy_fn, MPI_Comm_delet
 }
 
 int smpi_comm_keyval_free(int* keyval){
-  smpi_comm_key_elem elem = xbt_dict_get_or_null_ext(smpi_comm_keyvals,  (const char*)keyval, sizeof(int));
+  smpi_comm_key_elem elem = static_cast<smpi_comm_key_elem>(xbt_dict_get_or_null_ext(smpi_comm_keyvals,  (const char*)keyval, sizeof(int)));
   if(!elem){
     return MPI_ERR_ARG;
   }
similarity index 93%
rename from src/smpi/smpi_deployment.c
rename to src/smpi/smpi_deployment.cpp
index 30df611..e832caa 100644 (file)
@@ -67,9 +67,8 @@ void smpi_deployment_register_process(const char* instance_id, int rank, int ind
     return;
   }
 
-  s_smpi_mpi_instance_t* instance = xbt_dict_get_or_null(smpi_instances, instance_id);
-  if (!instance)
-    xbt_die("Error, unknown instance %s", instance_id);
+  s_smpi_mpi_instance_t* instance = static_cast<s_smpi_mpi_instance_t*>(xbt_dict_get_or_null(smpi_instances, instance_id));
+  xbt_assert(instance, "Error, unknown instance %s", instance_id);
 
   if(instance->comm_world == MPI_COMM_NULL){
     MPI_Group group = smpi_group_new(instance->size);
similarity index 88%
rename from src/smpi/smpi_dvfs.c
rename to src/smpi/smpi_dvfs.cpp
index 6b8d99e..c0b01ac 100644 (file)
@@ -86,31 +86,31 @@ typedef double doublereal;
 typedef struct { real r, i; } complex;
 typedef struct { doublereal r, i; } doublecomplex;
 
-XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index);
+extern "C" XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index);
 doublereal smpi_get_host_power_peak_at_(integer *pstate_index)
 {
   return (doublereal)smpi_get_host_power_peak_at((int)*pstate_index);
 }
 
-XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(void);
+extern "C" XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(void);
 doublereal smpi_get_host_current_power_peak_(void)
 {
   return smpi_get_host_current_power_peak();
 }
 
-XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(void);
+extern "C" XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(void);
 integer smpi_get_host_nb_pstates_(void)
 {
   return (integer)smpi_get_host_nb_pstates();
 }
 
-XBT_PUBLIC(void) smpi_set_host_pstate_(integer *pstate_index);
+extern "C" XBT_PUBLIC(void) smpi_set_host_pstate_(integer *pstate_index);
 void smpi_set_host_pstate_(integer *pstate_index)
 {
   smpi_set_host_pstate((int)*pstate_index);
 }
 
-XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void);
+extern "C" XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void);
 doublereal smpi_get_host_consumed_energy_(void)
 {
   return (doublereal)smpi_get_host_consumed_energy();
similarity index 99%
rename from src/smpi/smpi_f77.c
rename to src/smpi/smpi_f77.cpp
index 03e1f24..f946d5c 100644 (file)
@@ -45,8 +45,8 @@ typedef unsigned long int uinteger;
    ? (val) : (void *)(addr))
 #define FORT_BOTTOM(addr)          FORT_ADDR(addr, MPI_BOTTOM)
 #define FORT_IN_PLACE(addr)        FORT_ADDR(addr, MPI_IN_PLACE)
-#define FORT_STATUS_IGNORE(addr)   FORT_ADDR(addr, MPI_STATUS_IGNORE)
-#define FORT_STATUSES_IGNORE(addr) FORT_ADDR(addr, MPI_STATUSES_IGNORE)
+#define FORT_STATUS_IGNORE(addr)   static_cast<MPI_Status*>(FORT_ADDR(addr, MPI_STATUS_IGNORE))
+#define FORT_STATUSES_IGNORE(addr) static_cast<MPI_Status*>(FORT_ADDR(addr, MPI_STATUSES_IGNORE))
 
 #define KEY_SIZE (sizeof(int) * 2 + 1)
 
@@ -786,7 +786,7 @@ void mpi_win_set_name_ (int*  win, char * name, int* ierr, int size){
    size --;
    name++;
  }
- char* tname = xbt_malloc((size+1)*sizeof(char));
+ char* tname = xbt_new(char,size+1);
  strncpy(tname, name, size);
  tname[size]='\0';
  *ierr = MPI_Win_set_name(smpi_win_f2c(*win), tname);
@@ -813,7 +813,7 @@ void mpi_info_set_( int *info, char *key, char *value, int* ierr, unsigned int k
    keylen --;
    key++;
  }
- char* tkey = xbt_malloc((keylen+1)*sizeof(char));
+ char* tkey = xbt_new(char,keylen+1);
  strncpy(tkey, key, keylen);
  tkey[keylen]='\0';  
  
@@ -822,7 +822,7 @@ void mpi_info_set_( int *info, char *key, char *value, int* ierr, unsigned int k
    valuelen --;
    value++;
  }
- char* tvalue = xbt_malloc((valuelen+1)*sizeof(char));
+ char* tvalue = xbt_new(char,valuelen+1);
  strncpy(tvalue, value, valuelen);
  
  tvalue[valuelen]='\0'; 
@@ -835,7 +835,7 @@ void mpi_info_get_ (int* info,char *key,int* valuelen, char *value, int *flag, i
  while(*key==' '){//handle leading blanks
    keylen --;
    key++;
- }  char* tkey = xbt_malloc((keylen+1)*sizeof(char));
+ }  char* tkey = xbt_new(char,keylen+1);
  strncpy(tkey, key, keylen);
  tkey[keylen]='\0';
  *ierr = MPI_Info_get(smpi_info_f2c(*info),tkey,*valuelen, value, flag);
@@ -913,7 +913,7 @@ void mpi_type_dup_ (int*  datatype, int* newdatatype, int* ierr){
 }
 
 void mpi_type_set_name_ (int*  datatype, char * name, int* ierr, int size){
- char* tname = xbt_malloc((size+1)*sizeof(char));
+ char* tname = xbt_new(char, size+1);
  strncpy(tname, name, size);
  tname[size]='\0';
  *ierr = MPI_Type_set_name(smpi_type_f2c(*datatype), tname);
@@ -1570,7 +1570,7 @@ void mpi_exscan_ (void *sendbuf, void *recvbuf, int* count, int* datatype, int*
 }
 
 void mpi_comm_set_name_ (int* comm, char* name, int* ierr, int size){
- char* tname = xbt_malloc((size+1)*sizeof(char));
+ char* tname = xbt_new(char, size+1);
  strncpy(tname, name, size);
  tname[size]='\0';
  *ierr = MPI_Comm_set_name (smpi_comm_f2c(*comm), tname);
@@ -1640,7 +1640,7 @@ void mpi_info_get_valuelen_ ( int* info, char *key, int *valuelen, int *flag, in
    keylen --;
    key++;
  }
- char* tkey = xbt_malloc((keylen+1)*sizeof(char));
+ char* tkey = xbt_new(char, keylen+1);
  strncpy(tkey, key, keylen);
  tkey[keylen]='\0';
  *ierr = MPI_Info_get_valuelen( smpi_info_f2c(*info), tkey, valuelen, flag);
@@ -1653,7 +1653,7 @@ void mpi_info_delete_ (int* info, char *key, int* ierr, unsigned int keylen){
    keylen --;
    key++;
  }
- char* tkey = xbt_malloc((keylen+1)*sizeof(char));
+ char* tkey = xbt_new(char, keylen+1);
  strncpy(tkey, key, keylen);
  tkey[keylen]='\0';
  *ierr = MPI_Info_delete(smpi_info_f2c(*info), tkey);
@@ -1666,7 +1666,7 @@ void mpi_info_get_nkeys_ ( int* info, int *nkeys, int* ierr){
 
 void mpi_info_get_nthkey_ ( int* info, int* n, char *key, int* ierr, unsigned int keylen){
  *ierr = MPI_Info_get_nthkey( smpi_info_f2c(*info), *n, key);
- int i = 0;
unsigned int i = 0;
  for (i=strlen(key); i<keylen; i++)
  key[i]=' ';
 }
similarity index 93%
rename from src/smpi/smpi_global.c
rename to src/smpi/smpi_global.cpp
index 7b47526..e9ef952 100644 (file)
@@ -82,7 +82,7 @@ void smpi_process_init(int *argc, char ***argv)
     //FIXME: dirty cleanup method to avoid using msg cleanup functions on these processes when using MSG+SMPI
     SIMIX_process_set_cleanup_function(proc, SIMIX_process_cleanup);
     char* instance_id = (*argv)[1];
-    int rank = atoi((*argv)[2]);
+    int rank = xbt_str_parse_int((*argv)[2], "Invalid rank: %s");
     index = smpi_process_index_of_smx_process(proc);
 
     if(!index_to_process_data){
@@ -98,17 +98,17 @@ void smpi_process_init(int *argc, char ***argv)
 
     MPI_Comm* temp_comm_world;
     xbt_bar_t temp_bar;
-    smpi_deployment_register_process(instance_id, rank, index, &temp_comm_world ,&temp_bar);
-    data = smpi_process_remote_data(index);
-    data->comm_world = temp_comm_world;
+    smpi_deployment_register_process(instance_id, rank, index, &temp_comm_world&temp_bar);
+    data              = smpi_process_remote_data(index);
+    data->comm_world  = temp_comm_world;
     if(temp_bar != NULL) data->finalization_barrier = temp_bar;
-    data->index = index;
+    data->index       = index;
     data->instance_id = instance_id;
-    data->replaying = 0;
+    data->replaying   = 0;
     //xbt_free(simcall_process_get_data(proc));
 
-  simdata_process_t simdata = simcall_process_get_data(proc);
-  simdata->data = data;
+    simdata_process_t simdata = static_cast<simdata_process_t>(simcall_process_get_data(proc));
+    simdata->data             = data;
 
     if (*argc > 3) {
       free((*argv)[1]);
@@ -124,8 +124,8 @@ void smpi_process_init(int *argc, char ***argv)
     XBT_DEBUG("<%d> New process in the game: %p", index, proc);
 
   }
-  if (smpi_process_data() == NULL)
-    xbt_die("smpi_process_data() returned NULL. You probably gave a NULL parameter to MPI_Init. Although it's required by MPI-2, this is currently not supported by SMPI.");
+  xbt_assert(smpi_process_data(),
+      "smpi_process_data() returned NULL. You probably gave a NULL parameter to MPI_Init. Although it's required by MPI-2, this is currently not supported by SMPI.");
 }
 
 void smpi_process_destroy(void)
@@ -207,19 +207,15 @@ int smpi_process_get_replaying(){
 int smpi_global_size(void)
 {
   char *value = getenv("SMPI_GLOBAL_SIZE");
+  xbt_assert(value,"Please set env var SMPI_GLOBAL_SIZE to the expected number of processes.");
 
-  if (!value) {
-    fprintf(stderr,
-            "Please set env var SMPI_GLOBAL_SIZE to expected number of processes.\n");
-    xbt_abort();
-  }
-  return atoi(value);
+  return xbt_str_parse_int(value, "SMPI_GLOBAL_SIZE contains a non-numerical value: %s");
 }
 
 smpi_process_data_t smpi_process_data(void)
 {
-  simdata_process_t simdata = SIMIX_process_self_get_data(SIMIX_process_self());
-  return simdata->data;
+  simdata_process_t simdata = static_cast<simdata_process_t>(SIMIX_process_self_get_data(SIMIX_process_self()));
+  return static_cast<smpi_process_data_t>(simdata->data);
 }
 
 smpi_process_data_t smpi_process_remote_data(int index)
@@ -411,7 +407,7 @@ static void smpi_check_options(){
   //check correctness of MPI parameters
 
    xbt_assert(sg_cfg_get_int("smpi/async_small_thresh") <=
-              sg_cfg_get_int("smpi/send_is_detached_thres"));
+              sg_cfg_get_int("smpi/send_is_detached_thresh"));
 
    if (sg_cfg_is_default_value("smpi/running_power")) {
      XBT_INFO("You did not set the power of the host running the simulation.  "
@@ -443,15 +439,15 @@ void smpi_global_init(void)
   smpi_universe_size = process_count;
   process_data = xbt_new0(smpi_process_data_t, process_count);
   for (i = 0; i < process_count; i++) {
-    process_data[i] = xbt_new(s_smpi_process_data_t, 1);
-    //process_data[i]->index = i;
-    process_data[i]->argc    = NULL;
-    process_data[i]->argv    = NULL;
-    process_data[i]->mailbox = simcall_rdv_create(get_mailbox_name(name, i));
-    process_data[i]->mailbox_small =
+    process_data[i]                       = xbt_new(s_smpi_process_data_t, 1);
+    //process_data[i]->index              = i;
+    process_data[i]->argc                 = NULL;
+    process_data[i]->argv                 = NULL;
+    process_data[i]->mailbox              = simcall_rdv_create(get_mailbox_name(name, i));
+    process_data[i]->mailbox_small        =
         simcall_rdv_create(get_mailbox_name_small(name, i));
-    process_data[i]->mailboxes_mutex = xbt_mutex_init();
-    process_data[i]->timer           = xbt_os_timer_new();
+    process_data[i]->mailboxes_mutex      = xbt_mutex_init();
+    process_data[i]->timer                = xbt_os_timer_new();
     if (MC_is_active())
       MC_ignore_heap(process_data[i]->timer, xbt_os_timer_size());
     process_data[i]->comm_self            = MPI_COMM_NULL;
@@ -537,13 +533,16 @@ int __attribute__ ((weak)) main(int argc, char **argv)
 
 #endif
 
+extern "C" {
 static void smpi_init_logs(){
 
   /* Connect log categories.  See xbt/log.c */
+
   XBT_LOG_CONNECT(smpi);        /* Keep this line as soon as possible in this
                                    function: xbt_log_appender_file.c depends on it
                                    DO NOT connect this in XBT or so, or it will be
                                    useless to xbt_log_appender_file.c */
+
   XBT_LOG_CONNECT(instr_smpi);
   XBT_LOG_CONNECT(smpi_base);
   XBT_LOG_CONNECT(smpi_bench);
@@ -558,9 +557,8 @@ static void smpi_init_logs(){
   XBT_LOG_CONNECT(smpi_pmpi);
   XBT_LOG_CONNECT(smpi_replay);
   XBT_LOG_CONNECT(smpi_rma);
-
 }
-
+}
 
 static void smpi_init_options(){
   int gather_id = find_coll_description(mpi_coll_gather_description,
similarity index 98%
rename from src/smpi/smpi_group.c
rename to src/smpi/smpi_group.cpp
index 33f9902..22fd814 100644 (file)
@@ -119,7 +119,7 @@ int smpi_group_rank(MPI_Group group, int index)
   char * key;
   int size = asprintf(&key, "%d", index);
   if (size!=-1){
-    ptr_rank = xbt_dict_get_or_null(group->index_to_rank_map, key);
+    ptr_rank = static_cast<int*>(xbt_dict_get_or_null(group->index_to_rank_map, key));
     xbt_free(key);
   }else
     xbt_die("could not allocate memory for asprintf");
similarity index 100%
rename from src/smpi/smpi_mpi.c
rename to src/smpi/smpi_mpi.cpp
similarity index 96%
rename from src/smpi/smpi_mpi_dt.c
rename to src/smpi/smpi_mpi_dt.cpp
index bb63c6b..bee1d73 100644 (file)
@@ -108,7 +108,7 @@ CREATE_MPI_DATATYPE(MPI_FLOAT, float);
 CREATE_MPI_DATATYPE(MPI_DOUBLE, double);
 CREATE_MPI_DATATYPE(MPI_LONG_DOUBLE, long double);
 CREATE_MPI_DATATYPE(MPI_WCHAR, wchar_t);
-CREATE_MPI_DATATYPE(MPI_C_BOOL, _Bool);
+CREATE_MPI_DATATYPE(MPI_C_BOOL, bool);
 CREATE_MPI_DATATYPE(MPI_BYTE, int8_t);
 CREATE_MPI_DATATYPE(MPI_INT8_T, int8_t);
 CREATE_MPI_DATATYPE(MPI_INT16_T, int16_t);
@@ -183,7 +183,7 @@ int smpi_datatype_dup(MPI_Datatype datatype, MPI_Datatype* new_t)
   memcpy(*new_t, datatype, sizeof(s_smpi_mpi_datatype_t));
   if (datatype->has_subtype){
     //FIXME: may copy too much information.
-    (*new_t)->substruct=xbt_malloc(sizeof(s_smpi_mpi_struct_t));
+    (*new_t)->substruct=xbt_new(s_smpi_mpi_struct_t,1);
     memcpy((*new_t)->substruct, datatype->substruct, sizeof(s_smpi_mpi_struct_t));
   }
   if(datatype->name)
@@ -196,7 +196,7 @@ int smpi_datatype_dup(MPI_Datatype datatype, MPI_Datatype* new_t)
       void* value_in;
       void* value_out;
       xbt_dict_foreach(datatype->attributes, cursor, key, value_in){
-        smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals,  (const char*)key, sizeof(int));
+        smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals,  (const char*)key, sizeof(int)));
         if(elem && elem->copy_fn!=MPI_NULL_COPY_FN){
           ret = elem->copy_fn(datatype, *key, NULL, value_in, &value_out, &flag );
           if(ret!=MPI_SUCCESS){
@@ -259,21 +259,21 @@ int smpi_datatype_copy(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     }
     else if (sendtype->has_subtype == 0)
     {
-      s_smpi_subtype_t *subtype =  recvtype->substruct;
+      s_smpi_subtype_t *subtype =  static_cast<s_smpi_subtype_t*>(recvtype->substruct);
       subtype->unserialize( sendbuf, recvbuf, recvcount/smpi_datatype_size(recvtype), subtype, MPI_REPLACE);
     }
     else if (recvtype->has_subtype == 0)
     {
-      s_smpi_subtype_t *subtype =  sendtype->substruct;
+      s_smpi_subtype_t *subtype =  static_cast<s_smpi_subtype_t*>(sendtype->substruct);
       subtype->serialize(sendbuf, recvbuf, sendcount/smpi_datatype_size(sendtype), subtype);
     }else{
-      s_smpi_subtype_t *subtype =  sendtype->substruct;
+      s_smpi_subtype_t *subtype =  static_cast<s_smpi_subtype_t*>(sendtype->substruct);
 
 
       void * buf_tmp = xbt_malloc(count);
 
       subtype->serialize( sendbuf, buf_tmp,count/smpi_datatype_size(sendtype), subtype);
-      subtype =  recvtype->substruct;
+      subtype =  static_cast<s_smpi_subtype_t*>(recvtype->substruct);
       subtype->unserialize( buf_tmp, recvbuf,count/smpi_datatype_size(recvtype), subtype, MPI_REPLACE);
 
       free(buf_tmp);
@@ -386,7 +386,7 @@ s_smpi_mpi_vector_t* smpi_datatype_vector_create( int block_stride,
 }
 
 void smpi_datatype_create(MPI_Datatype* new_type, int size,int lb, int ub, int has_subtype,
-                          void *struct_type, int flags){
+    void *struct_type, int flags){
   MPI_Datatype new_t= xbt_new(s_smpi_mpi_datatype_t,1);
   new_t->name = NULL;
   new_t->size = size;
@@ -413,7 +413,7 @@ void smpi_datatype_free(MPI_Datatype* type){
       void * value;
       int flag;
       xbt_dict_foreach((*type)->attributes, cursor, key, value){
-        smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)key, sizeof(int));
+        smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)key, sizeof(int)));
         if(elem &&  elem->delete_fn)
           elem->delete_fn(*type,*key, value, &flag);
       }
@@ -547,8 +547,8 @@ int smpi_datatype_contiguous(int count, MPI_Datatype old_type, MPI_Datatype* new
 {
   int retval;
   if(old_type->has_subtype){
-         //handle this case as a hvector with stride equals to the extent of the datatype
-         return smpi_datatype_hvector(count, 1, smpi_datatype_get_extent(old_type), old_type, new_type);
+    //handle this case as a hvector with stride equals to the extent of the datatype
+    return smpi_datatype_hvector(count, 1, smpi_datatype_get_extent(old_type), old_type, new_type);
   }
   
   s_smpi_mpi_contiguous_t* subtype = smpi_datatype_contiguous_create( lb,
@@ -557,9 +557,9 @@ int smpi_datatype_contiguous(int count, MPI_Datatype old_type, MPI_Datatype* new
                                                                 smpi_datatype_size(old_type));
                                                                 
   smpi_datatype_create(new_type,
-                                         count * smpi_datatype_size(old_type),
-                                         lb,lb + count * smpi_datatype_size(old_type),
-                                         1,subtype, DT_FLAG_CONTIGUOUS);
+            count * smpi_datatype_size(old_type),
+            lb,lb + count * smpi_datatype_size(old_type),
+            1,subtype, DT_FLAG_CONTIGUOUS);
   retval=MPI_SUCCESS;
   return retval;
 }
@@ -736,7 +736,7 @@ int smpi_datatype_hvector(int count, int blocklen, MPI_Aint stride, MPI_Datatype
                                                                   smpi_datatype_size(old_type));
 
     smpi_datatype_create(new_type, count * blocklen * smpi_datatype_size(old_type),
-                                                lb,ub,
+             lb,ub,
                          1,
                          subtype,
                          DT_FLAG_VECTOR);
@@ -893,9 +893,9 @@ int smpi_datatype_indexed(int count, int* blocklens, int* indices, MPI_Datatype
     size += blocklens[i];
 
     if(indices[i]*smpi_datatype_get_extent(old_type)+smpi_datatype_lb(old_type)<lb)
-       lb = indices[i]*smpi_datatype_get_extent(old_type)+smpi_datatype_lb(old_type);
+      lb = indices[i]*smpi_datatype_get_extent(old_type)+smpi_datatype_lb(old_type);
     if(indices[i]*smpi_datatype_get_extent(old_type)+blocklens[i]*smpi_datatype_ub(old_type)>ub)
-       ub = indices[i]*smpi_datatype_get_extent(old_type)+blocklens[i]*smpi_datatype_ub(old_type);
+      ub = indices[i]*smpi_datatype_get_extent(old_type)+blocklens[i]*smpi_datatype_ub(old_type);
 
     if ( (i< count -1) && (indices[i]+blocklens[i] != indices[i+1]) )contiguous=0;
   }
@@ -1060,7 +1060,8 @@ int smpi_datatype_hindexed(int count, int* blocklens, MPI_Aint* indices, MPI_Dat
     if(indices[i]+smpi_datatype_lb(old_type)<lb) lb = indices[i]+smpi_datatype_lb(old_type);
     if(indices[i]+blocklens[i]*smpi_datatype_ub(old_type)>ub) ub = indices[i]+blocklens[i]*smpi_datatype_ub(old_type);
 
-    if ( (i< count -1) && (indices[i]+blocklens[i]*smpi_datatype_size(old_type) != indices[i+1]) )contiguous=0;
+    if ( (i< count -1) && (indices[i]+blocklens[i]*static_cast<int>(smpi_datatype_size(old_type)) != indices[i+1]) )
+      contiguous=0;
   }
   if (old_type->has_subtype == 1 || lb!=0)
     contiguous=0;
@@ -1072,7 +1073,7 @@ int smpi_datatype_hindexed(int count, int* blocklens, MPI_Aint* indices, MPI_Dat
                                                                   old_type,
                                                                   smpi_datatype_size(old_type));
     smpi_datatype_create(new_type,  size * smpi_datatype_size(old_type),
-                                                lb,
+             lb,
                          ub
                          ,1, subtype, DT_FLAG_DATA);
   }else{
@@ -1081,8 +1082,8 @@ int smpi_datatype_hindexed(int count, int* blocklens, MPI_Aint* indices, MPI_Dat
                                                                   old_type,
                                                                   smpi_datatype_size(old_type));
     smpi_datatype_create(new_type,  size * smpi_datatype_size(old_type),
-                                            0,size * smpi_datatype_size(old_type),
-                                            1, subtype, DT_FLAG_DATA|DT_FLAG_CONTIGUOUS);
+               0,size * smpi_datatype_size(old_type),
+               1, subtype, DT_FLAG_DATA|DT_FLAG_CONTIGUOUS);
   }
   retval=MPI_SUCCESS;
   return retval;
@@ -1247,7 +1248,8 @@ int smpi_datatype_struct(int count, int* blocklens, MPI_Aint* indices, MPI_Datat
     if(!forced_lb && indices[i]+smpi_datatype_lb(old_types[i])<lb) lb = indices[i];
     if(!forced_ub && indices[i]+blocklens[i]*smpi_datatype_ub(old_types[i])>ub) ub = indices[i]+blocklens[i]*smpi_datatype_ub(old_types[i]);
 
-    if ( (i< count -1) && (indices[i]+blocklens[i]*smpi_datatype_size(old_types[i]) != indices[i+1]) )contiguous=0;
+    if ( (i< count -1) && (indices[i]+blocklens[i]*static_cast<int>(smpi_datatype_size(old_types[i])) != indices[i+1]) )
+      contiguous=0;
   }
 
   if(!contiguous){
@@ -1444,7 +1446,7 @@ static void land_func(void *a, void *b, int *length,
   } else if (*datatype == MPI_UNSIGNED_CHAR) {
     APPLY_FUNC(a, b, length, unsigned char, LAND_OP);
   } else if (*datatype == MPI_C_BOOL) {
-    APPLY_FUNC(a, b, length, _Bool, LAND_OP);
+    APPLY_FUNC(a, b, length, bool, LAND_OP);
   }
 }
 
@@ -1468,7 +1470,7 @@ static void lor_func(void *a, void *b, int *length,
   } else if (*datatype == MPI_UNSIGNED_CHAR) {
     APPLY_FUNC(a, b, length, unsigned char, LOR_OP);
   } else if (*datatype == MPI_C_BOOL) {
-    APPLY_FUNC(a, b, length, _Bool, LOR_OP);
+    APPLY_FUNC(a, b, length, bool, LOR_OP);
   }
 }
 
@@ -1492,7 +1494,7 @@ static void lxor_func(void *a, void *b, int *length,
   } else if (*datatype == MPI_UNSIGNED_CHAR) {
     APPLY_FUNC(a, b, length, unsigned char, LXOR_OP);
   } else if (*datatype == MPI_C_BOOL) {
-    APPLY_FUNC(a, b, length, _Bool, LXOR_OP);
+    APPLY_FUNC(a, b, length, bool, LXOR_OP);
   }
 }
 
@@ -1676,7 +1678,7 @@ void smpi_op_apply(MPI_Op op, void *invec, void *inoutvec, int *len,
 }
 
 int smpi_type_attr_delete(MPI_Datatype type, int keyval){
-  smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int));
+  smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int)));
   if(!elem)
     return MPI_ERR_ARG;
   if(elem->delete_fn!=MPI_NULL_DELETE_FN){
@@ -1695,7 +1697,7 @@ int smpi_type_attr_delete(MPI_Datatype type, int keyval){
 }
 
 int smpi_type_attr_get(MPI_Datatype type, int keyval, void* attr_value, int* flag){
-  smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int));
+  smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int)));
   if(!elem)
     return MPI_ERR_ARG;
   xbt_ex_t ex;
@@ -1717,7 +1719,7 @@ int smpi_type_attr_get(MPI_Datatype type, int keyval, void* attr_value, int* fla
 int smpi_type_attr_put(MPI_Datatype type, int keyval, void* attr_value){
   if(!smpi_type_keyvals)
   smpi_type_keyvals = xbt_dict_new();
-  smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int));
+  smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)&keyval, sizeof(int)));
   if(!elem )
     return MPI_ERR_ARG;
   int flag;
@@ -1751,7 +1753,7 @@ int smpi_type_keyval_create(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delet
 }
 
 int smpi_type_keyval_free(int* keyval){
-  smpi_type_key_elem elem = xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)keyval, sizeof(int));
+  smpi_type_key_elem elem = static_cast<smpi_type_key_elem>(xbt_dict_get_or_null_ext(smpi_type_keyvals, (const char*)keyval, sizeof(int)));
   if(!elem){
     return MPI_ERR_ARG;
   }
@@ -1762,7 +1764,7 @@ int smpi_type_keyval_free(int* keyval){
 
 int smpi_mpi_pack(void* inbuf, int incount, MPI_Datatype type, void* outbuf, int outcount, int* position, MPI_Comm comm){
   size_t size = smpi_datatype_size(type);
-  if (outcount - *position < incount*size)
+  if (outcount - *position < incount*static_cast<int>(size))
     return MPI_ERR_BUFFER;
   smpi_datatype_copy(inbuf, incount, type,
                    (char*)outbuf + *position, outcount, MPI_CHAR);
@@ -1771,7 +1773,7 @@ int smpi_mpi_pack(void* inbuf, int incount, MPI_Datatype type, void* outbuf, int
 }
 
 int smpi_mpi_unpack(void* inbuf, int insize, int* position, void* outbuf, int outcount, MPI_Datatype type, MPI_Comm comm){
-  size_t size = smpi_datatype_size(type);
+  int size = static_cast<int>(smpi_datatype_size(type));
   if (outcount*size> insize)
     return MPI_ERR_BUFFER;
   smpi_datatype_copy((char*)inbuf + *position, insize, MPI_CHAR,
index 79822ef..ef5f86e 100644 (file)
@@ -13,6 +13,8 @@
 
 #include "private.h"
 
+SG_BEGIN_DECL()
+
 #define DT_FLAG_DESTROYED     0x0001  /**< user destroyed but some other layers still have a reference */
 #define DT_FLAG_COMMITED      0x0002  /**< ready to be used for a send/recv operation */
 #define DT_FLAG_CONTIGUOUS    0x0004  /**< contiguous datatype */
@@ -213,4 +215,6 @@ XBT_PRIVATE s_smpi_mpi_struct_t* smpi_datatype_struct_create(int* block_lengths,
                                                   int block_count,
                                                   MPI_Datatype* old_types);
 
+SG_END_DECL()
+
 #endif
similarity index 99%
rename from src/smpi/smpi_pmpi.c
rename to src/smpi/smpi_pmpi.cpp
index 09bb17c..c4b0a3d 100644 (file)
@@ -556,13 +556,13 @@ int PMPI_Group_range_incl(MPI_Group group, int n, int ranges[][3],
             break;
           }
           rank += ranges[i][2]; /* Stride */
-         if (ranges[i][0]<ranges[i][1]){
-             if(rank > ranges[i][1])
-               break;
-         }else{
-             if(rank < ranges[i][1])
-               break;
-         }
+    if (ranges[i][0]<ranges[i][1]){
+        if(rank > ranges[i][1])
+          break;
+    }else{
+        if(rank < ranges[i][1])
+          break;
+    }
         }
       }
 
@@ -579,13 +579,13 @@ int PMPI_Group_range_incl(MPI_Group group, int n, int ranges[][3],
             break;
           }
           rank += ranges[i][2]; /* Stride */
-         if (ranges[i][0]<ranges[i][1]){
-           if(rank > ranges[i][1])
-             break;
-         }else{
-           if(rank < ranges[i][1])
-             break;
-         }
+    if (ranges[i][0]<ranges[i][1]){
+      if(rank > ranges[i][1])
+        break;
+    }else{
+      if(rank < ranges[i][1])
+        break;
+    }
         }
       }
     }
@@ -622,13 +622,13 @@ int PMPI_Group_range_excl(MPI_Group group, int n, int ranges[][3],
             break;
           }
           rank += ranges[i][2]; /* Stride */
-         if (ranges[i][0]<ranges[i][1]){
-             if(rank > ranges[i][1])
-               break;
-         }else{
-             if(rank < ranges[i][1])
-               break;
-         }
+    if (ranges[i][0]<ranges[i][1]){
+        if(rank > ranges[i][1])
+          break;
+    }else{
+        if(rank < ranges[i][1])
+          break;
+    }
         }
       }
       if (size == 0) {
@@ -1826,7 +1826,7 @@ int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
   if(!known)
     dt_size_recv = smpi_datatype_size(recvtype);
   if((smpi_comm_rank(comm)==root)){
-  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  extra->recvcounts= xbt_new(int,size);
   for(i=0; i< size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i]*dt_size_recv;
   }
@@ -1930,7 +1930,7 @@ int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
   int dt_size_recv = 1;
   if(!known)
     dt_size_recv = smpi_datatype_size(recvtype);
-  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  extra->recvcounts= xbt_new(int, size);
   for(i=0; i< size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i]*dt_size_recv;
 
@@ -2030,7 +2030,7 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs,
   if(!known)
     dt_size_send = smpi_datatype_size(sendtype);
   if((smpi_comm_rank(comm)==root)){
-  extra->sendcounts= xbt_malloc(size*sizeof(int));
+  extra->sendcounts= xbt_new(int, size);
   for(i=0; i< size; i++)//copy data to avoid bad free
     extra->sendcounts[i] = sendcounts[i]*dt_size_send;
   }
@@ -2244,7 +2244,7 @@ int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
   if(!known)
     dt_size_send = smpi_datatype_size(datatype);
   extra->send_size = 0;
-  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  extra->recvcounts= xbt_new(int, size);
   for(i=0; i< size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i]*dt_size_send;
   TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
@@ -2290,7 +2290,7 @@ int PMPI_Reduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount,
   if(!known)
     dt_size_send = smpi_datatype_size(datatype);
   extra->send_size = 0;
-  extra->recvcounts= xbt_malloc(count*sizeof(int));
+  extra->recvcounts= xbt_new(int, count);
   for(i=0; i< count; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcount*dt_size_send;
 
@@ -2373,8 +2373,8 @@ int PMPI_Alltoallv(void *sendbuf, int *sendcounts, int *senddisps,
   extra->type = TRACING_ALLTOALLV;
   extra->send_size = 0;
   extra->recv_size = 0;
-  extra->recvcounts= xbt_malloc(size*sizeof(int));
-  extra->sendcounts= xbt_malloc(size*sizeof(int));
+  extra->recvcounts= xbt_new(int, size);
+  extra->sendcounts= xbt_new(int, size);
   int known=0;
   extra->datatype1 = encode_datatype(sendtype, &known);
   int dt_size_send = 1;
@@ -3248,14 +3248,14 @@ int PMPI_Info_free( MPI_Info *info){
 }
 
 int PMPI_Info_get(MPI_Info info,char *key,int valuelen, char *value, int *flag){
+  *flag=FALSE;
   if (info == NULL || key == NULL || valuelen <0)
     return MPI_ERR_ARG;
   if (value == NULL)
     return MPI_ERR_INFO_VALUE;
-  *flag=FALSE;
   char* tmpvalue=(char*)xbt_dict_get_or_null(info->info_dict, key);
   if(tmpvalue){
-    memcpy(value,tmpvalue, (strlen(tmpvalue) + 1 < valuelen) ?
+    memcpy(value,tmpvalue, (strlen(tmpvalue) + 1 < static_cast<size_t>(valuelen)) ?
                          strlen(tmpvalue) + 1 : valuelen);
     *flag=TRUE;
   }
@@ -3281,7 +3281,7 @@ int PMPI_Info_delete(MPI_Info info, char *key){
   if (info == NULL || key==NULL)
     return MPI_ERR_ARG;
   TRY {
-  xbt_dict_remove(info->info_dict, key);
+    xbt_dict_remove(info->info_dict, key);
   }CATCH(e){
     xbt_ex_free(e);
     return MPI_ERR_INFO_NOKEY;
@@ -3315,9 +3315,9 @@ int PMPI_Info_get_nthkey( MPI_Info info, int n, char *key){
 }
 
 int PMPI_Info_get_valuelen( MPI_Info info, char *key, int *valuelen, int *flag){
-  if (info == NULL || key == NULL || valuelen <0)
-    return MPI_ERR_ARG;
   *flag=FALSE;
+  if (info == NULL || key == NULL || valuelen==NULL || *valuelen <0)
+    return MPI_ERR_ARG;
   char* tmpvalue=(char*)xbt_dict_get_or_null(info->info_dict, key);
   if(tmpvalue){
     *valuelen=strlen(tmpvalue);
similarity index 97%
rename from src/smpi/smpi_replay.c
rename to src/smpi/smpi_replay.cpp
index d92975d..4648703 100644 (file)
@@ -60,9 +60,9 @@ static void set_reqq_self(xbt_dynar_t mpi_request){
 //allocate a single buffer for all sends, growing it if needed
 void* smpi_get_tmp_sendbuffer(int size){
   if (!smpi_process_get_replaying())
-       return xbt_malloc(size);
+  return xbt_malloc(size);
   if (sendbuffer_size<size){
-    sendbuffer=xbt_realloc(sendbuffer,size);
+    sendbuffer=static_cast<char*>(xbt_realloc(sendbuffer,size));
     sendbuffer_size=size;
   }
   return sendbuffer;
@@ -70,9 +70,9 @@ void* smpi_get_tmp_sendbuffer(int size){
 //allocate a single buffer for all recv
 void* smpi_get_tmp_recvbuffer(int size){
   if (!smpi_process_get_replaying())
-       return xbt_malloc(size);
+  return xbt_malloc(size);
   if (recvbuffer_size<size){
-    recvbuffer=xbt_realloc(recvbuffer,size);
+    recvbuffer=static_cast<char*>(xbt_realloc(recvbuffer,size));
     recvbuffer_size=size;
   }
   return recvbuffer;
@@ -393,20 +393,20 @@ static void action_test(const char *const *action){
   //Different times in traced application and replayed version may lead to this 
   //In this case, ignore the extra calls.
   if(request){
-         int rank = smpi_process_index();
-         instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
-         extra->type=TRACING_TEST;
-         TRACE_smpi_testing_in(rank, extra);
+    int rank = smpi_process_index();
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type=TRACING_TEST;
+    TRACE_smpi_testing_in(rank, extra);
 
-         flag = smpi_mpi_test(&request, &status);
+    flag = smpi_mpi_test(&request, &status);
 
-         XBT_DEBUG("MPI_Test result: %d", flag);
-         /* push back request in dynar to be caught by a subsequent wait. if the test
-          * did succeed, the request is now NULL.
-          */
-         xbt_dynar_push_as(get_reqq_self(),MPI_Request, request);
+    XBT_DEBUG("MPI_Test result: %d", flag);
+    /* push back request in dynar to be caught by a subsequent wait. if the test
+     * did succeed, the request is now NULL.
+     */
+    xbt_dynar_push_as(get_reqq_self(),MPI_Request, request);
 
-         TRACE_smpi_testing_out(rank);
+    TRACE_smpi_testing_out(rank);
   }
   log_timed_action (action, clock);
 }
@@ -470,7 +470,7 @@ static void action_waitall(const char *const *action){
    xbt_dynar_t srcs = xbt_dynar_new(sizeof(int), NULL);
    xbt_dynar_t dsts = xbt_dynar_new(sizeof(int), NULL);
    xbt_dynar_t recvs = xbt_dynar_new(sizeof(int), NULL);
-   for (i = 0; i < count_requests; i++) {
+   for (i = 0; (int)i < count_requests; i++) {
     if(requests[i]){
       int *asrc = xbt_new(int, 1);
       int *adst = xbt_new(int, 1);
@@ -500,7 +500,7 @@ static void action_waitall(const char *const *action){
 
    smpi_mpi_waitall(count_requests, requests, status);
 
-   for (i = 0; i < count_requests; i++) {
+   for (i = 0; (int)i < count_requests; i++) {
     int src_traced, dst_traced, is_wait_for_receive;
     xbt_dynar_get_cpy(srcs, i, &src_traced);
     xbt_dynar_get_cpy(dsts, i, &dst_traced);
@@ -776,7 +776,7 @@ static void action_gatherv(const char *const *action) {
   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
   extra->type = TRACING_GATHERV;
   extra->send_size = send_size;
-  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->recvcounts= xbt_new(int,comm_size);
   for(i=0; i< comm_size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i];
   extra->root = root;
@@ -835,7 +835,7 @@ static void action_reducescatter(const char *const *action) {
   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
   extra->type = TRACING_REDUCE_SCATTER;
   extra->send_size = 0;
-  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->recvcounts= xbt_new(int, comm_size);
   for(i=0; i< comm_size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i];
   extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE, NULL);
@@ -952,7 +952,7 @@ static void action_allgatherv(const char *const *action) {
   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
   extra->type = TRACING_ALLGATHERV;
   extra->send_size = sendcount;
-  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->recvcounts= xbt_new(int, comm_size);
   for(i=0; i< comm_size; i++)//copy data to avoid bad free
     extra->recvcounts[i] = recvcounts[i];
   extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE, NULL);
@@ -1019,8 +1019,8 @@ static void action_allToAllv(const char *const *action) {
   int rank = smpi_process_index();
   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
   extra->type = TRACING_ALLTOALLV;
-  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
-  extra->sendcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->recvcounts= xbt_new(int, comm_size);
+  extra->sendcounts= xbt_new(int, comm_size);
   extra->num_processes = comm_size;
 
   for(i=0; i< comm_size; i++){//copy data to avoid bad free
similarity index 97%
rename from src/smpi/smpi_rma.c
rename to src/smpi/smpi_rma.cpp
index 859bd91..c03f2b0 100644 (file)
@@ -50,7 +50,7 @@ MPI_Win smpi_mpi_win_create( void *base, MPI_Aint size, int disp_unit, MPI_Info
   win->opened = 0;
   win->group = MPI_GROUP_NULL;
   win->requests = xbt_dynar_new(sizeof(MPI_Request), NULL);
-  win->connected_wins = xbt_malloc0(comm_size*sizeof(MPI_Win));
+  win->connected_wins = xbt_new0(MPI_Win, comm_size);
   win->connected_wins[rank] = win;
   
   if(rank==0){
@@ -132,7 +132,7 @@ int smpi_mpi_win_fence( int assert,  MPI_Win win){
       if (req->flags & PREPARED) smpi_mpi_start(req);
     }
 
-    MPI_Request* treqs = xbt_dynar_to_array(reqs);
+    MPI_Request* treqs = static_cast<MPI_Request*>(xbt_dynar_to_array(reqs));
     smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE);
     xbt_free(treqs);
     win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL);
@@ -382,7 +382,7 @@ int smpi_mpi_win_complete(MPI_Win win){
     if (req->flags & PREPARED) smpi_mpi_start(req);
   }
 
-  MPI_Request* treqs = xbt_dynar_to_array(reqqs);
+  MPI_Request* treqs = static_cast<MPI_Request*>(xbt_dynar_to_array(reqqs));
   smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE);
   xbt_free(treqs);
   win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL);
@@ -433,7 +433,7 @@ int smpi_mpi_win_wait(MPI_Win win){
     if (req->flags & PREPARED) smpi_mpi_start(req);
   }
 
-  MPI_Request* treqs = xbt_dynar_to_array(reqqs);
+  MPI_Request* treqs = static_cast<MPI_Request*>(xbt_dynar_to_array(reqqs));
   smpi_mpi_waitall(size,treqs,MPI_STATUSES_IGNORE);
   xbt_free(treqs);
   win->requests=xbt_dynar_new(sizeof(MPI_Request), NULL);
similarity index 96%
rename from src/smpi/smpi_topo.c
rename to src/smpi/smpi_topo.cpp
index 55ba2b8..cf596ca 100644 (file)
@@ -67,7 +67,7 @@ void smpi_topo_destroy(MPI_Topology topo) {
 }
 
 MPI_Topology smpi_topo_create(MPIR_Topo_type kind) {
-    MPI_Topology newTopo = xbt_malloc(sizeof(*newTopo));
+    MPI_Topology newTopo = static_cast<MPI_Topology>(xbt_malloc(sizeof(*newTopo)));
     newTopo->kind = kind;
     // Allocate and initialize the right topo should be done by the caller
     return newTopo;
@@ -93,12 +93,12 @@ void smpi_cart_topo_destroy(MPIR_Cart_Topology cart) {
 
 MPI_Topology smpi_cart_topo_create(int ndims) {
     MPI_Topology newTopo = smpi_topo_create(MPI_CART);
-    MPIR_Cart_Topology newCart = xbt_malloc(sizeof(*newCart));
+    MPIR_Cart_Topology newCart = static_cast<MPIR_Cart_Topology>(xbt_malloc(sizeof(*newCart)));
     newCart->nnodes = 0;
     newCart->ndims = ndims;
-    newCart->dims = xbt_malloc(ndims * sizeof(*newCart->dims));
-    newCart->periodic = xbt_malloc(ndims * sizeof(*newCart->periodic));
-    newCart->position = xbt_malloc(ndims * sizeof(*newCart->position));
+    newCart->dims = xbt_new(int, ndims);
+    newCart->periodic = xbt_new(int, ndims);
+    newCart->position = xbt_new(int, ndims);
     newTopo->topo.cart = newCart;
     return newTopo;
 }
@@ -178,8 +178,8 @@ int smpi_mpi_cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm)
     }
   
     if (newNDims > 0) {
-        newDims = xbt_malloc(newNDims * sizeof(*newDims));
-        newPeriodic = xbt_malloc(newNDims * sizeof(*newPeriodic));
+        newDims = xbt_new(int, newNDims);
+        newPeriodic = xbt_new(int, newNDims);
 
         // that should not segfault
         for (i = 0 ; j < newNDims ; i++) {
index fb1754a..0067427 100755 (executable)
 SIMGRID_VERSION="@SIMGRID_VERSION_STRING@"
 SIMGRID_GITHASH="@SIMGRID_GITHASH@"
 
-DEFAULT_LOOPBACK_BANDWIDTH="498000000"
-DEFAULT_LOOPBACK_LATENCY="0.000004"
-DEFAULT_NETWORK_BANDWIDTH="$((26 * 1024 * 1024))"
-DEFAULT_NETWORK_LATENCY="0.000005"
+DEFAULT_LOOPBACK_BANDWIDTH="498000000Bps"
+DEFAULT_LOOPBACK_LATENCY="0.000004s"
+DEFAULT_NETWORK_BANDWIDTH="$((26 * 1024 * 1024))Bps"
+DEFAULT_NETWORK_LATENCY="0.000005s"
 DEFAULT_NUMPROCS="4"
-DEFAULT_POWER="100"
+DEFAULT_SPEED="100flops"
 
 LOOPBACK_BANDWIDTH="${DEFAULT_LOOPBACK_BANDWIDTH}"
 LOOPBACK_LATENCY="${DEFAULT_LOOPBACK_LATENCY}"
 NETWORK_BANDWIDTH="${DEFAULT_NETWORK_BANDWIDTH}"
 NETWORK_LATENCY="${DEFAULT_NETWORK_LATENCY}"
-POWER="${DEFAULT_POWER}"
+SPEED="${DEFAULT_SPEED}"
 
 SIMOPTS="--cfg=surf/precision:1e-9 --cfg=network/model:SMPI --cfg=network/TCP_gamma:4194304"
 
@@ -45,10 +45,6 @@ Options:
   -trace-viva                # generate configuration for Viva's GraphView
   -trace-file <tracefile>    # name of the tracefile (simgrid_smpi.trace)
   -ext <value>               # additional parameter (reserved)
-  -foreground                # run the child process in the foreground:
-                             # - it can access the terminal;
-                             # - but we cannot stop it when we receive a signal.
-                             # This is useful with -wrapper "gdb --args".
 
   -version                   # Displays the SimGrid version (human readable)
   -git-version               # Displays the git hash of SimGrid
@@ -72,7 +68,6 @@ HOSTFILE=""
 HOSTFILETMP=0
 
 unset pid
-unset foreground ; foreground=0
 
 trapped_signals="HUP INT QUIT ILL ABRT SEGV FPE ALRM TERM USR1 USR2 BUS"
 
@@ -246,7 +241,7 @@ while true; do
             shift 1
             ;;
         "-foreground")
-            foreground=1
+            # Nothing to do, compatibility.
             shift 1
             ;;
         *)
@@ -347,14 +342,14 @@ if [ -z "${PLATFORM}" ]; then
 
     cat > ${PLATFORMTMP} <<PLATFORMHEAD
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
 PLATFORMHEAD
 
     i=${NUMPROCS}
     while [ $i -gt 0 ]; do
-        echo "  <host id=\"host$i\" power=\"${POWER}\"/>" >> ${PLATFORMTMP}
+        echo "  <host id=\"host$i\" speed=\"${SPEED}\"/>" >> ${PLATFORMTMP}
         echo "  <link id=\"loop$i\" bandwidth=\"${LOOPBACK_BANDWIDTH}\" latency=\"${LOOPBACK_LATENCY}\"/>" >> ${PLATFORMTMP}
         echo "  <link id=\"link$i\" bandwidth=\"${NETWORK_BANDWIDTH}\" latency=\"${NETWORK_LATENCY}\"/>" >> ${PLATFORMTMP}
         i=$((i - 1))
@@ -391,8 +386,8 @@ APPLICATIONTMP="$(mktemp smpitmp-appXXXXXX)"
 
 cat > ${APPLICATIONTMP} <<APPLICATIONHEAD
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 APPLICATIONHEAD
 
 ##---- cache hostnames of hostfile---------------
@@ -517,16 +512,28 @@ if [ -n "${KEEP}" ] ; then
         echo "Generated unrolled hostfile ${UNROLLEDHOSTFILE} kept." 
     fi
 fi
-if [ "$foreground" = 1 ]; then
-  ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
-  status=$?
-else
-  ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP} &
-  pid=$!
-  wait $pid
-  status=$?
-  pid=""
-fi
+
+# Execute the process
+#
+# The shell still need to be alive for the duration in order to do some cleanup
+# after the process.
+#
+# We are going through great lengths in order to both keep stdin and be able
+# to handle signals:
+#
+# * The job is launched in the background in order to be able to handle
+#   signals.
+#
+# * The FD 3 is used to temporarily store FD 1. This is because the shell
+#   connects FD 1 to /dev/null when the command is launched in the
+#   background: this can be overriden in bash but not in standard bourne shell.
+exec 3<&0
+${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP} <&3 3>&- &
+pid=$!
+exec 3>&-
+wait $pid
+status=$?
+pid=""
 
 smpirun_cleanup
 
index cdd87be..4458b2d 100644 (file)
@@ -15,28 +15,28 @@ PropertyHolder::PropertyHolder(xbt_dict_t props)
 }
 
 PropertyHolder::~PropertyHolder() {
-       xbt_dict_free(&p_properties);
+  xbt_dict_free(&p_properties);
 }
 
 /** @brief Return the property associated to the provided key (or NULL if not existing) */
 const char *PropertyHolder::getProperty(const char*key) {
-       if (p_properties == NULL)
-               return NULL;
-       return (const char*) xbt_dict_get_or_null(p_properties,key);
+  if (p_properties == NULL)
+    return NULL;
+  return (const char*) xbt_dict_get_or_null(p_properties,key);
 }
 
 /** @brief Change the value of a given key in the property set */
 void PropertyHolder::setProperty(const char*key, const char*value) {
-       if (!p_properties)
-               p_properties = xbt_dict_new();
-       xbt_dict_set(p_properties, key, xbt_strdup(value), &xbt_free_f);
+  if (!p_properties)
+    p_properties = xbt_dict_new();
+  xbt_dict_set(p_properties, key, xbt_strdup(value), &xbt_free_f);
 }
 
 /** @brief Return the whole set of properties. Don't mess with it, dude! */
 xbt_dict_t PropertyHolder::getProperties() {
-       if (!p_properties)
-               p_properties = xbt_dict_new();
-       return p_properties;
+  if (!p_properties)
+    p_properties = xbt_dict_new();
+  return p_properties;
 }
 
 } /* namespace surf */
index 2f95563..0684173 100644 (file)
@@ -17,18 +17,18 @@ namespace surf {
 class PropertyHolder { // DO NOT DERIVE THIS CLASS, or the diamond inheritance mayhem will get you
 
 public:
-       PropertyHolder(xbt_dict_t props);
-       ~PropertyHolder();
+  PropertyHolder(xbt_dict_t props);
+  ~PropertyHolder();
 
-       const char *getProperty(const char*id);
-       void setProperty(const char*id, const char*value);
+  const char *getProperty(const char*id);
+  void setProperty(const char*id, const char*value);
 
-       /* FIXME: This should not be exposed, as users may do bad things with the dict they got (it's not a copy).
-        * But some user API expose this call so removing it is not so easy.
-        */
-       xbt_dict_t getProperties();
+  /* FIXME: This should not be exposed, as users may do bad things with the dict they got (it's not a copy).
+   * But some user API expose this call so removing it is not so easy.
+   */
+  xbt_dict_t getProperties();
 private:
-       xbt_dict_t p_properties = NULL;
+  xbt_dict_t p_properties = NULL;
 };
 
 } /* namespace surf */
index 79d0c91..3f1ab84 100644 (file)
@@ -8,7 +8,6 @@
 #include "cpu_ti.hpp"
 #include "maxmin_private.hpp"
 #include "simgrid/sg_config.h"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu,
                                 "Logging specific to the SURF CPU IMPROVED module");
@@ -32,10 +31,6 @@ void surf_cpu_model_init_Cas01()
 
   surf_cpu_model_vm  = new simgrid::surf::CpuCas01Model();
   xbt_dynar_push(all_existing_models, &surf_cpu_model_vm);
-
-  simgrid::surf::on_postparse.connect([]() {
-    surf_cpu_model_pm->addTraces();
-  });
 }
 
 namespace simgrid {
@@ -88,7 +83,7 @@ CpuCas01Model::~CpuCas01Model()
 }
 
 Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
-                                 int pstate, double speedScale,
+                      int pstate, double speedScale,
                           tmgr_trace_t speedTrace, int core,
                           int initiallyOn,
                           tmgr_trace_t state_trace)
@@ -100,31 +95,9 @@ Cpu *CpuCas01Model::createCpu(simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
   return cpu;
 }
 
-double CpuCas01Model::shareResourcesFull(double /*now*/)
-{
-  return Model::shareResourcesMaxMin(getRunningActionSet(),
-                             p_maxminSystem, lmm_solve);
-}
-
-void CpuCas01Model::addTraces()
+double CpuCas01Model::next_occuring_event_full(double /*now*/)
 {
-  xbt_dict_cursor_t cursor = NULL;
-  char *trace_name, *elm;
-  static int called = 0;
-  if (called)
-    return;
-  called = 1;
-
-  /* connect host speed traces */
-  xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
-
-    xbt_assert(cpu, "Host %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    cpu->set_speed_trace(trace);
-  }
+  return Model::shareResourcesMaxMin(getRunningActionSet(), p_maxminSystem, lmm_solve);
 }
 
 /************
@@ -134,16 +107,16 @@ CpuCas01::CpuCas01(CpuCas01Model *model, simgrid::s4u::Host *host, xbt_dynar_t s
                          int pstate, double speedScale, tmgr_trace_t speedTrace, int core,
                          int initiallyOn, tmgr_trace_t stateTrace)
 : Cpu(model, host,
-       lmm_constraint_new(model->getMaxminSystem(), this, core * speedScale * xbt_dynar_get_as(speedPeak, pstate, double)),
-       speedPeak, pstate,
-       core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale,
+  lmm_constraint_new(model->getMaxminSystem(), this, core * speedScale * xbt_dynar_get_as(speedPeak, pstate, double)),
+  speedPeak, pstate,
+  core, xbt_dynar_get_as(speedPeak, pstate, double), speedScale,
     initiallyOn) {
 
-  XBT_DEBUG("CPU create: peak=%f, pstate=%d", m_speedPeak, m_pstate);
+  XBT_DEBUG("CPU create: peak=%f, pstate=%d", p_speed.peak, m_pstate);
 
   m_core = core;
   if (speedTrace)
-    p_speedEvent = future_evt_set->add_trace(speedTrace, 0.0, this);
+    p_speed.event = future_evt_set->add_trace(speedTrace, 0.0, this);
 
   if (stateTrace)
     p_stateEvent = future_evt_set->add_trace(stateTrace, 0.0, this);
@@ -166,37 +139,34 @@ bool CpuCas01::isUsed()
 
 /** @brief take into account changes of speed (either load or max) */
 void CpuCas01::onSpeedChange() {
-       lmm_variable_t var = NULL;
-       lmm_element_t elem = NULL;
+  lmm_variable_t var = NULL;
+  lmm_element_t elem = NULL;
 
     lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(),
-                                m_core * m_speedScale * m_speedPeak);
+                                m_core * p_speed.scale * p_speed.peak);
     while ((var = lmm_get_var_from_cnst
             (getModel()->getMaxminSystem(), getConstraint(), &elem))) {
       CpuCas01Action *action = static_cast<CpuCas01Action*>(lmm_variable_id(var));
 
       lmm_update_variable_bound(getModel()->getMaxminSystem(),
                                 action->getVariable(),
-                                m_speedScale * m_speedPeak);
+                                p_speed.scale * p_speed.peak);
     }
 
-       Cpu::onSpeedChange();
+  Cpu::onSpeedChange();
 }
 
-void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, double date)
+void CpuCas01::apply_event(tmgr_trace_iterator_t event, double value)
 {
-  lmm_variable_t var = NULL;
-  lmm_element_t elem = NULL;
-
-  if (event_type == p_speedEvent) {
+  if (event == p_speed.event) {
     /* TODO (Hypervisor): do the same thing for constraint_core[i] */
     xbt_assert(m_core == 1, "FIXME: add speed scaling code also for constraint_core[i]");
 
-    m_speedScale = value;
+    p_speed.scale = value;
     onSpeedChange();
 
-    tmgr_trace_event_unref(&p_speedEvent);
-  } else if (event_type == p_stateEvent) {
+    tmgr_trace_event_unref(&p_speed.event);
+  } else if (event == p_stateEvent) {
     /* TODO (Hypervisor): do the same thing for constraint_core[i] */
     xbt_assert(m_core == 1, "FIXME: add state change code also for constraint_core[i]");
 
@@ -206,6 +176,9 @@ void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, doubl
       turnOn();
     } else {
       lmm_constraint_t cnst = getConstraint();
+      lmm_variable_t var = NULL;
+      lmm_element_t elem = NULL;
+      double date = surf_get_clock();
 
       turnOff();
 
@@ -221,11 +194,10 @@ void CpuCas01::updateState(tmgr_trace_iterator_t event_type, double value, doubl
       }
     }
     tmgr_trace_event_unref(&p_stateEvent);
+
   } else {
     xbt_die("Unknown event!\n");
   }
-
-  return;
 }
 
 CpuAction *CpuCas01::execution_start(double size)
@@ -233,7 +205,7 @@ CpuAction *CpuCas01::execution_start(double size)
 
   XBT_IN("(%s,%g)", getName(), size);
   CpuCas01Action *action = new CpuCas01Action(getModel(), size, isOff(),
-      m_speedScale * m_speedPeak, getConstraint());
+      p_speed.scale * p_speed.peak, getConstraint());
 
   XBT_OUT();
   return action;
@@ -246,7 +218,7 @@ CpuAction *CpuCas01::sleep(double duration)
 
   XBT_IN("(%s,%g)", getName(), duration);
   CpuCas01Action *action = new CpuCas01Action(getModel(), 1.0, isOff(),
-      m_speedScale * m_speedPeak, getConstraint());
+      p_speed.scale * p_speed.peak, getConstraint());
 
 
   // FIXME: sleep variables should not consume 1.0 in lmm_expand
@@ -280,8 +252,8 @@ CpuAction *CpuCas01::sleep(double duration)
 
 CpuCas01Action::CpuCas01Action(Model *model, double cost, bool failed, double speed, lmm_constraint_t constraint)
  : CpuAction(model, cost, failed,
-                    lmm_variable_new(model->getMaxminSystem(), this,
-                    1.0, speed, 1))
+         lmm_variable_new(model->getMaxminSystem(), this,
+         1.0, speed, 1))
 {
   if (model->getUpdateMechanism() == UM_LAZY) {
     m_indexHeap = -1;
index 59d9930..d2022aa 100644 (file)
@@ -32,8 +32,7 @@ public:
                           tmgr_trace_t speedTrace, int core,
                           int initiallyOn,
                           tmgr_trace_t state_trace) override;
-  double shareResourcesFull(double now) override;
-  void addTraces() override;
+  double next_occuring_event_full(double now) override;
   ActionList *p_cpuRunningActionSetThatDoesNotNeedBeingChecked;
 };
 
@@ -47,7 +46,7 @@ public:
         int pstate, double speedScale, tmgr_trace_t speedTrace, int core,
         int initiallyOn, tmgr_trace_t stateTrace) ;
   ~CpuCas01();
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
   CpuAction *execution_start(double size) override;
   CpuAction *sleep(double duration) override;
 
index 475e236..50b4ee1 100644 (file)
@@ -27,8 +27,8 @@ namespace surf {
 
 Cpu *getActionCpu(CpuAction *action) {
   return static_cast<Cpu*>(lmm_constraint_id(lmm_get_cnst_from_var
-                                        (action->getModel()->getMaxminSystem(),
-                                        action->getVariable(), 0)));
+                       (action->getModel()->getMaxminSystem(),
+                       action->getVariable(), 0)));
 }
 
 simgrid::xbt::signal<void(CpuAction*, e_surf_action_state_t, e_surf_action_state_t)> cpuActionStateChangedCallbacks;
@@ -90,7 +90,7 @@ void CpuModel::updateActionsStateFull(double now, double delta)
 
   for(ActionList::iterator it(running_actions->begin()), itNext=it, itend(running_actions->end())
      ; it != itend ; it=itNext) {
-       ++itNext;
+  ++itNext;
     action = static_cast<CpuAction*>(&*it);
     if (TRACE_is_enabled()) {
       Cpu *x = static_cast<Cpu*> (lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0)) );
@@ -128,25 +128,25 @@ void CpuModel::updateActionsStateFull(double now, double delta)
  * Resource *
  ************/
 Cpu::Cpu(Model *model, simgrid::s4u::Host *host,
-            xbt_dynar_t speedPeakList, int pstate,
-                int core, double speedPeak, double speedScale,
-                int initiallyOn)
+       xbt_dynar_t speedPeakList, int pstate,
+     int core, double speedPeak, double speedScale,
+     int initiallyOn)
  : Cpu(model, host, NULL/*constraint*/, speedPeakList, pstate, core, speedPeak, speedScale, initiallyOn)
 {
 }
 
 Cpu::Cpu(Model *model, simgrid::s4u::Host *host, lmm_constraint_t constraint,
-             xbt_dynar_t speedPeakList, int pstate,
-                 int core, double speedPeak,
+        xbt_dynar_t speedPeakList, int pstate,
+      int core, double speedPeak,
         double speedScale, int initiallyOn)
  : Resource(model, host->name().c_str(), constraint, initiallyOn)
  , m_core(core)
- , m_speedPeak(speedPeak)
- , m_speedScale(speedScale)
  , m_host(host)
 {
+  p_speed.peak = speedPeak;
+  p_speed.scale = speedScale;
   host->pimpl_cpu = this;
-  xbt_assert(m_speedScale > 0, "Available speed has to be >0");
+  xbt_assert(p_speed.scale > 0, "Available speed has to be >0");
 
   // Copy the power peak array:
   p_speedPeakList = xbt_dynar_new(sizeof(double), nullptr);
@@ -163,14 +163,14 @@ Cpu::Cpu(Model *model, simgrid::s4u::Host *host, lmm_constraint_t constraint,
     xbt_assert(model == surf_cpu_model_pm);
 
   if (model->getUpdateMechanism() != UM_UNDEFINED) {
-       p_constraintCore = xbt_new(lmm_constraint_t, core);
-       p_constraintCoreId = xbt_new(void*, core);
+  p_constraintCore = xbt_new(lmm_constraint_t, core);
+  p_constraintCoreId = xbt_new(void*, core);
 
     int i;
     for (i = 0; i < core; i++) {
       /* just for a unique id, never used as a string. */
       p_constraintCoreId[i] = bprintf("%s:%i", host->name().c_str(), i);
-      p_constraintCore[i] = lmm_constraint_new(model->getMaxminSystem(), p_constraintCoreId[i], m_speedScale * m_speedPeak);
+      p_constraintCore[i] = lmm_constraint_new(model->getMaxminSystem(), p_constraintCoreId[i], p_speed.scale * p_speed.peak);
     }
   }
 }
@@ -179,17 +179,19 @@ Cpu::~Cpu()
 {
   if (p_constraintCoreId){
     for (int i = 0; i < m_core; i++) {
-         xbt_free(p_constraintCoreId[i]);
+    xbt_free(p_constraintCoreId[i]);
     }
     xbt_free(p_constraintCore);
   }
   if (p_constraintCoreId)
     xbt_free(p_constraintCoreId);
+  if (p_speedPeakList)
+    xbt_dynar_free(&p_speedPeakList);
 }
 
 double Cpu::getCurrentPowerPeak()
 {
-  return m_speedPeak;
+  return p_speed.peak;
 }
 
 int Cpu::getNbPStates()
@@ -201,11 +203,11 @@ void Cpu::setPState(int pstate_index)
 {
   xbt_dynar_t plist = p_speedPeakList;
   xbt_assert(pstate_index <= (int)xbt_dynar_length(plist),
-                 "Invalid parameters for CPU %s (pstate %d > length of pstates %d)", getName(), pstate_index, (int)xbt_dynar_length(plist));
+      "Invalid parameters for CPU %s (pstate %d > length of pstates %d)", getName(), pstate_index, (int)xbt_dynar_length(plist));
 
   double new_peak_speed = xbt_dynar_get_as(plist, pstate_index, double);
   m_pstate = pstate_index;
-  m_speedPeak = new_peak_speed;
+  p_speed.peak = new_peak_speed;
 
   onSpeedChange();
 }
@@ -225,18 +227,18 @@ double Cpu::getPowerPeakAt(int pstate_index)
 
 double Cpu::getSpeed(double load)
 {
-  return load * m_speedPeak;
+  return load * p_speed.peak;
 }
 
 double Cpu::getAvailableSpeed()
 {
 /* number between 0 and 1 */
-  return m_speedScale;
+  return p_speed.scale;
 }
 
 void Cpu::onSpeedChange() {
-       TRACE_surf_host_set_speed(surf_get_clock(), getName(),
-                       m_core * m_speedScale * m_speedPeak);
+  TRACE_surf_host_set_speed(surf_get_clock(), getName(),
+      m_core * p_speed.scale * p_speed.peak);
 }
 
 
@@ -253,9 +255,9 @@ void Cpu::set_state_trace(tmgr_trace_t trace)
 }
 void Cpu::set_speed_trace(tmgr_trace_t trace)
 {
-  xbt_assert(p_speedEvent==NULL,"Cannot set a second speed trace to Host %s", m_host->name().c_str());
+  xbt_assert(p_speed.event==NULL,"Cannot set a second speed trace to Host %s", m_host->name().c_str());
 
-  p_speedEvent = future_evt_set->add_trace(trace, 0.0, this);
+  p_speed.event = future_evt_set->add_trace(trace, 0.0, this);
 }
 
 
index 27bcee0..6e8e71a 100644 (file)
@@ -59,7 +59,7 @@ public:
 
   void updateActionsStateLazy(double now, double delta);
   void updateActionsStateFull(double now, double delta);
-  bool shareResourcesIsIdempotent() {return true;}
+  bool next_occuring_event_isIdempotent() {return true;}
 };
 
 /************
@@ -87,9 +87,9 @@ public:
    */
   Cpu(simgrid::surf::Model *model, simgrid::s4u::Host *host,
     lmm_constraint_t constraint,
-         xbt_dynar_t speedPeakList, int pstate,
-         int core, double speedPeak, double speedScale,
-         int initiallyOn);
+    xbt_dynar_t speedPeakList, int pstate,
+    int core, double speedPeak, double speedScale,
+    int initiallyOn);
 
   /**
    * @brief Cpu constructor
@@ -105,8 +105,8 @@ public:
    */
   Cpu(simgrid::surf::Model *model, simgrid::s4u::Host *host,
       xbt_dynar_t speedPeakList, int pstate,
-         int core, double speedPeak, double speedScale,
-         int initiallyOn);
+    int core, double speedPeak, double speedScale,
+    int initiallyOn);
 
   ~Cpu();
 
@@ -153,8 +153,6 @@ public:
 
 public:
   int m_core = 1;                /* Amount of cores */
-  double m_speedPeak;            /*< CPU speed peak, ie max value */
-  double m_speedScale;           /*< Percentage of CPU available according to the trace, in [O,1] */
   simgrid::s4u::Host* m_host;
 
   xbt_dynar_t p_speedPeakList = NULL; /*< List of supported CPU capacities (pstate related) */
@@ -165,11 +163,11 @@ public:
   void **p_constraintCoreId=NULL;
 
 public:
-  void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF) */
-  void set_speed_trace(tmgr_trace_t trace); /*< setup the trace file with availability events (peak speed changes due to external load) */
-protected:
+  virtual void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). Trace must contain boolean values (0 or 1). */
+  virtual void set_speed_trace(tmgr_trace_t trace); /*< setup the trace file with availability events (peak speed changes due to external load). Trace must contain relative values (ratio between 0 and 1) */
+
   tmgr_trace_iterator_t p_stateEvent = nullptr;
-  tmgr_trace_iterator_t p_speedEvent = nullptr;
+  s_surf_metric_t p_speed = {1.0, 0, nullptr};
 };
 
 /**********
index 63701e2..2cc517e 100644 (file)
@@ -7,7 +7,6 @@
 #include "cpu_ti.hpp"
 #include "xbt/heap.h"
 #include "src/surf/trace_mgr.hpp"
-#include "src/surf/platform.hpp"
 
 #ifndef SURF_MODEL_CPUTI_H_
 #define SURF_MODEL_CPUTI_H_
@@ -35,32 +34,32 @@ CpuTiTrace::CpuTiTrace(tmgr_trace_t speedTrace)
   double integral = 0;
   double time = 0;
   int i = 0;
-  p_timePoints = (double*) xbt_malloc0(sizeof(double) *
-                  (xbt_dynar_length(speedTrace->s_list.event_list) + 1));
-  p_integral = (double*) xbt_malloc0(sizeof(double) *
-                  (xbt_dynar_length(speedTrace->s_list.event_list) + 1));
-  m_nbPoints = xbt_dynar_length(speedTrace->s_list.event_list) + 1;
-  xbt_dynar_foreach(speedTrace->s_list.event_list, cpt, val) {
-    p_timePoints[i] = time;
-    p_integral[i] = integral;
+  timePoints_ = (double*) xbt_malloc0(sizeof(double) *
+                  (xbt_dynar_length(speedTrace->event_list) + 1));
+  integral_ = (double*) xbt_malloc0(sizeof(double) *
+                  (xbt_dynar_length(speedTrace->event_list) + 1));
+  nbPoints_ = xbt_dynar_length(speedTrace->event_list) + 1;
+  xbt_dynar_foreach(speedTrace->event_list, cpt, val) {
+    timePoints_[i] = time;
+    integral_[i] = integral;
     integral += val.delta * val.value;
     time += val.delta;
     i++;
   }
-  p_timePoints[i] = time;
-  p_integral[i] = integral;
+  timePoints_[i] = time;
+  integral_[i] = integral;
 }
 
 CpuTiTrace::~CpuTiTrace()
 {
-  xbt_free(p_timePoints);
-  xbt_free(p_integral);
+  xbt_free(timePoints_);
+  xbt_free(integral_);
 }
 
 CpuTiTgmr::~CpuTiTgmr()
 {
-  if (p_trace)
-    delete p_trace;
+  if (trace_)
+    delete trace_;
 }
 
 /**
@@ -90,34 +89,34 @@ double CpuTiTgmr::integrate(double a, double b)
   if (a == b)
     return 0.0;
 
-  if (m_type == TRACE_FIXED) {
-    return ((b - a) * m_value);
+  if (type_ == TRACE_FIXED) {
+    return ((b - a) * value_);
   }
 
-  if (ceil(a / m_lastTime) == a / m_lastTime)
-    a_index = 1 + (int) (ceil(a / m_lastTime));
+  if (ceil(a / lastTime_) == a / lastTime_)
+    a_index = 1 + (int) (ceil(a / lastTime_));
   else
-    a_index = (int) (ceil(a / m_lastTime));
+    a_index = (int) (ceil(a / lastTime_));
 
-  b_index = (int) (floor(b / m_lastTime));
+  b_index = (int) (floor(b / lastTime_));
 
   if (a_index > b_index) {      /* Same chunk */
-    return p_trace->integrateSimple(a - (a_index -
-                                              1) * m_lastTime,
+    return trace_->integrateSimple(a - (a_index -
+                                              1) * lastTime_,
                                          b -
                                          (b_index) *
-                                         m_lastTime);
+                                         lastTime_);
   }
 
-  first_chunk = p_trace->integrateSimple(a - (a_index -
+  first_chunk = trace_->integrateSimple(a - (a_index -
                                                    1) *
-                                              m_lastTime,
-                                              m_lastTime);
-  middle_chunk = (b_index - a_index) * m_total;
-  last_chunk = p_trace->integrateSimple(0.0,
+                                              lastTime_,
+                                              lastTime_);
+  middle_chunk = (b_index - a_index) * total_;
+  last_chunk = trace_->integrateSimple(0.0,
                                              b -
                                              (b_index) *
-                                             m_lastTime);
+                                             lastTime_);
 
   XBT_DEBUG("first_chunk=%.2f  middle_chunk=%.2f  last_chunk=%.2f\n",
          first_chunk, middle_chunk, last_chunk);
@@ -128,10 +127,8 @@ double CpuTiTgmr::integrate(double a, double b)
 /**
  * \brief Auxiliary function to compute the integral between a and b.
  *     It simply computes the integrals at point a and b and returns the difference between them.
- * \param trace    Trace structure
- * \param a        Initial point
+ * \param a  Initial point
  * \param b  Final point
- * \return  Integral
 */
 double CpuTiTrace::integrateSimple(double a, double b)
 {
@@ -140,27 +137,22 @@ double CpuTiTrace::integrateSimple(double a, double b)
 
 /**
  * \brief Auxiliary function to compute the integral at point a.
- * \param trace    Trace structure
  * \param a        point
- * \return  Integral
-*/
+ */
 double CpuTiTrace::integrateSimplePoint(double a)
 {
   double integral = 0;
   int ind;
   double a_aux = a;
-  ind = binarySearch(p_timePoints, a, 0, m_nbPoints - 1);
-  integral += p_integral[ind];
-  XBT_DEBUG
-      ("a %f ind %d integral %f ind + 1 %f ind %f time +1 %f time %f",
-       a, ind, integral, p_integral[ind + 1], p_integral[ind],
-       p_timePoints[ind + 1], p_timePoints[ind]);
-  double_update(&a_aux, p_timePoints[ind], sg_maxmin_precision*sg_surf_precision);
+  ind = binarySearch(timePoints_, a, 0, nbPoints_ - 1);
+  integral += integral_[ind];
+  XBT_DEBUG("a %f ind %d integral %f ind + 1 %f ind %f time +1 %f time %f",
+       a, ind, integral, integral_[ind + 1], integral_[ind],
+       timePoints_[ind + 1], timePoints_[ind]);
+  double_update(&a_aux, timePoints_[ind], sg_maxmin_precision*sg_surf_precision);
   if (a_aux > 0)
-    integral +=
-        ((p_integral[ind + 1] -
-          p_integral[ind]) / (p_timePoints[ind + 1] -
-                              p_timePoints[ind])) * (a - p_timePoints[ind]);
+    integral +=((integral_[ind + 1] -
+          integral_[ind]) / (timePoints_[ind + 1] - timePoints_[ind])) * (a - timePoints_[ind]);
   XBT_DEBUG("Integral a %f = %f", a, integral);
 
   return integral;
@@ -171,7 +163,6 @@ double CpuTiTrace::integrateSimplePoint(double a)
 *
 * Here, amount can span multiple trace periods
 *
-* \param trace   CPU trace structure
 * \param a        Initial time
 * \param amount  Amount to be executed
 * \return  End time
@@ -206,16 +197,16 @@ double CpuTiTgmr::solve(double a, double amount)
     return a;
 
 /* Is the trace fixed ? */
-  if (m_type == TRACE_FIXED) {
-    return (a + (amount / m_value));
+  if (type_ == TRACE_FIXED) {
+    return (a + (amount / value_));
   }
 
-  XBT_DEBUG("amount %f total %f", amount, m_total);
+  XBT_DEBUG("amount %f total %f", amount, total_);
 /* Reduce the problem to one where amount <= trace_total */
-  quotient = (int) (floor(amount / m_total));
-  reduced_amount = (m_total) * ((amount / m_total) -
-                                     floor(amount / m_total));
-  reduced_a = a - (m_lastTime) * (int) (floor(a / m_lastTime));
+  quotient = (int) (floor(amount / total_));
+  reduced_amount = (total_) * ((amount / total_) -
+                                     floor(amount / total_));
+  reduced_a = a - (lastTime_) * (int) (floor(a / lastTime_));
 
   XBT_DEBUG("Quotient: %d reduced_amount: %f reduced_a: %f", quotient,
          reduced_amount, reduced_a);
@@ -228,8 +219,8 @@ double CpuTiTgmr::solve(double a, double amount)
   reduced_b = solveSomewhatSimple(reduced_a, reduced_amount);
 
 /* Re-map to the original b and amount */
-  b = (m_lastTime) * (int) (floor(a / m_lastTime)) +
-      (quotient * m_lastTime) + reduced_b;
+  b = (lastTime_) * (int) (floor(a / lastTime_)) +
+      (quotient * lastTime_) + reduced_b;
   return b;
 }
 
@@ -246,15 +237,15 @@ double CpuTiTgmr::solveSomewhatSimple(double a, double amount)
   double b;
 
   XBT_DEBUG("Solve integral: [%.2f, amount=%.2f]", a, amount);
-  amount_till_end = integrate(a, m_lastTime);
+  amount_till_end = integrate(a, lastTime_);
 /*
    fprintf(stderr,"amount_till_end=%.2f\n",amount_till_end);
  */
 
   if (amount_till_end > amount) {
-    b = p_trace->solveSimple(a, amount);
+    b = trace_->solveSimple(a, amount);
   } else {
-    b = m_lastTime + p_trace->solveSimple(0.0, amount - amount_till_end);
+    b = lastTime_ + trace_->solveSimple(0.0, amount - amount_till_end);
   }
   return b;
 }
@@ -273,14 +264,14 @@ double CpuTiTrace::solveSimple(double a, double amount)
   int ind;
   double time;
   integral_a = integrateSimplePoint(a);
-  ind = binarySearch(p_integral, integral_a + amount, 0, m_nbPoints - 1);
-  time = p_timePoints[ind];
+  ind = binarySearch(integral_, integral_a + amount, 0, nbPoints_ - 1);
+  time = timePoints_[ind];
   time +=
       (integral_a + amount -
-       p_integral[ind]) / ((p_integral[ind + 1] -
-                                 p_integral[ind]) /
-                                (p_timePoints[ind + 1] -
-                                 p_timePoints[ind]));
+       integral_[ind]) / ((integral_[ind + 1] -
+                                 integral_[ind]) /
+                                (timePoints_[ind + 1] -
+                                 timePoints_[ind]));
 
   return time;
 }
@@ -299,10 +290,10 @@ double CpuTiTgmr::getPowerScale(double a)
   int point;
   s_tmgr_event_t val;
 
-  reduced_a = a - floor(a / m_lastTime) * m_lastTime;
-  point = p_trace->binarySearch(p_trace->p_timePoints, reduced_a, 0,
-                                p_trace->m_nbPoints - 1);
-  xbt_dynar_get_cpy(p_speedTrace->s_list.event_list, point, &val);
+  reduced_a = a - floor(a / lastTime_) * lastTime_;
+  point = trace_->binarySearch(trace_->timePoints_, reduced_a, 0,
+                                trace_->nbPoints_ - 1);
+  xbt_dynar_get_cpy(speedTrace_->event_list, point, &val);
   return val.value;
 }
 
@@ -319,37 +310,37 @@ CpuTiTgmr::CpuTiTgmr(tmgr_trace_t speedTrace, double value)
   double total_time = 0.0;
   s_tmgr_event_t val;
   unsigned int cpt;
-  p_trace = 0;
+  trace_ = 0;
 
 /* no availability file, fixed trace */
   if (!speedTrace) {
-    m_type = TRACE_FIXED;
-    m_value = value;
+    type_ = TRACE_FIXED;
+    value_ = value;
     XBT_DEBUG("No availability trace. Constant value = %f", value);
     return;
   }
 
   /* only one point available, fixed trace */
-  if (xbt_dynar_length(speedTrace->s_list.event_list) == 1) {
-    xbt_dynar_get_cpy(speedTrace->s_list.event_list, 0, &val);
-    m_type = TRACE_FIXED;
-    m_value = val.value;
+  if (xbt_dynar_length(speedTrace->event_list) == 1) {
+    xbt_dynar_get_cpy(speedTrace->event_list, 0, &val);
+    type_ = TRACE_FIXED;
+    value_ = val.value;
     return;
   }
 
-  m_type = TRACE_DYNAMIC;
-  p_speedTrace = speedTrace;
+  type_ = TRACE_DYNAMIC;
+  speedTrace_ = speedTrace;
 
   /* count the total time of trace file */
-  xbt_dynar_foreach(speedTrace->s_list.event_list, cpt, val) {
+  xbt_dynar_foreach(speedTrace->event_list, cpt, val) {
     total_time += val.delta;
   }
-  p_trace = new CpuTiTrace(speedTrace);
-  m_lastTime = total_time;
-  m_total = p_trace->integrateSimple(0, total_time);
+  trace_ = new CpuTiTrace(speedTrace);
+  lastTime_ = total_time;
+  total_ = trace_->integrateSimple(0, total_time);
 
   XBT_DEBUG("Total integral %f, last_time %f ",
-            m_total, m_lastTime);
+            total_, lastTime_);
 }
 
 /**
@@ -399,10 +390,6 @@ void surf_cpu_model_init_ti()
 
   surf_cpu_model_vm = new simgrid::surf::CpuTiModel();
   xbt_dynar_push(all_existing_models, &surf_cpu_model_vm);
-
-  simgrid::surf::on_postparse.connect([]() {
-    surf_cpu_model_pm->addTraces();
-  });
 }
 
 namespace simgrid {
@@ -410,26 +397,26 @@ namespace surf {
 
 CpuTiModel::CpuTiModel() : CpuModel()
 {
-  p_runningActionSetThatDoesNotNeedBeingChecked = new ActionList();
+  runningActionSetThatDoesNotNeedBeingChecked_ = new ActionList();
 
-  p_modifiedCpu = new CpuTiList();
+  modifiedCpu_ = new CpuTiList();
 
-  p_tiActionHeap = xbt_heap_new(8, NULL);
-  xbt_heap_set_update_callback(p_tiActionHeap,
+  tiActionHeap_ = xbt_heap_new(8, NULL);
+  xbt_heap_set_update_callback(tiActionHeap_,
                                cpu_ti_action_update_index_heap);
 }
 
 CpuTiModel::~CpuTiModel()
 {
   surf_cpu_model_pm = NULL;
-  delete p_runningActionSetThatDoesNotNeedBeingChecked;
-  delete p_modifiedCpu;
-  xbt_heap_free(p_tiActionHeap);
+  delete runningActionSetThatDoesNotNeedBeingChecked_;
+  delete modifiedCpu_;
+  xbt_heap_free(tiActionHeap_);
 }
 
 Cpu *CpuTiModel::createCpu(simgrid::s4u::Host *host,
-                              xbt_dynar_t speedPeak,
-                              int pstate,
+                         xbt_dynar_t speedPeak,
+                         int pstate,
                            double speedScale,
                            tmgr_trace_t speedTrace,
                            int core,
@@ -440,16 +427,16 @@ Cpu *CpuTiModel::createCpu(simgrid::s4u::Host *host,
   xbt_assert(xbt_dynar_getfirst_as(speedPeak, double) > 0.0,
       "Speed has to be >0.0. Did you forget to specify the mandatory speed attribute?");
   CpuTi *cpu = new CpuTi(this, host, speedPeak, pstate, speedScale, speedTrace,
-                          core, initiallyOn, stateTrace);
+               core, initiallyOn, stateTrace);
   return cpu;
 }
 
-double CpuTiModel::shareResources(double now)
+double CpuTiModel::next_occuring_event(double now)
 {
   double min_action_duration = -1;
 
 /* iterates over modified cpus to update share resources */
-  for(CpuTiList::iterator it(p_modifiedCpu->begin()), itend(p_modifiedCpu->end())
+  for(CpuTiList::iterator it(modifiedCpu_->begin()), itend(modifiedCpu_->end())
      ; it != itend ;) {
     CpuTi *ti = &*it;
     ++it;
@@ -457,8 +444,8 @@ double CpuTiModel::shareResources(double now)
   }
 
 /* get the min next event if heap not empty */
-  if (xbt_heap_size(p_tiActionHeap) > 0)
-    min_action_duration = xbt_heap_maxkey(p_tiActionHeap) - now;
+  if (xbt_heap_size(tiActionHeap_) > 0)
+    min_action_duration = xbt_heap_maxkey(tiActionHeap_) - now;
 
   XBT_DEBUG("Share resources, min next event date: %f", min_action_duration);
 
@@ -467,53 +454,16 @@ double CpuTiModel::shareResources(double now)
 
 void CpuTiModel::updateActionsState(double now, double /*delta*/)
 {
-  while ((xbt_heap_size(p_tiActionHeap) > 0)
-         && (xbt_heap_maxkey(p_tiActionHeap) <= now)) {
-    CpuTiAction *action = (CpuTiAction*) xbt_heap_pop(p_tiActionHeap);
+  while ((xbt_heap_size(tiActionHeap_) > 0)
+         && (xbt_heap_maxkey(tiActionHeap_) <= now)) {
+    CpuTiAction *action = (CpuTiAction*) xbt_heap_pop(tiActionHeap_);
     XBT_DEBUG("Action %p: finish", action);
     action->finish();
     /* set the remains to 0 due to precision problems when updating the remaining amount */
     action->setRemains(0);
     action->setState(SURF_ACTION_DONE);
     /* update remaining amount of all actions */
-    action->p_cpu->updateRemainingAmount(surf_get_clock());
-  }
-}
-
-void CpuTiModel::addTraces()
-{
-  xbt_dict_cursor_t cursor = NULL;
-  char *trace_name, *elm;
-
-  static int called = 0;
-
-  if (called)
-    return;
-  called = 1;
-
-/* connect all traces relative to hosts */
-  xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    CpuTi *cpu = static_cast<CpuTi*>(sg_host_by_name(elm)->pimpl_cpu);
-
-    xbt_assert(cpu, "Host %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    XBT_DEBUG("Add speed trace: %s to CPU(%s)", trace_name, elm);
-    if (cpu->p_availTrace)
-      delete cpu->p_availTrace;
-
-    cpu->p_availTrace = new CpuTiTgmr(trace, cpu->m_speedScale);
-
-    /* add a fake trace event if periodicity == 0 */
-    if (trace && xbt_dynar_length(trace->s_list.event_list) > 1) {
-      s_tmgr_event_t val;
-      xbt_dynar_get_cpy(trace->s_list.event_list,
-                        xbt_dynar_length(trace->s_list.event_list) - 1, &val);
-      if (val.delta == 0) {
-        cpu->set_speed_trace(tmgr_empty_trace_new());
-      }
-    }
+    action->cpu_->updateRemainingAmount(surf_get_clock());
   }
 }
 
@@ -528,25 +478,25 @@ CpuTi::CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
   xbt_assert(core==1,"Multi-core not handled by this model yet");
   m_core = core;
 
-  m_speedScale = speedScale;
-  p_availTrace = new CpuTiTgmr(speedTrace, speedScale);
+  p_speed.scale = speedScale;
+  availTrace_ = new CpuTiTgmr(speedTrace, speedScale);
 
-  p_actionSet = new ActionTiList();
+  actionSet_ = new ActionTiList();
 
-  xbt_dynar_get_cpy(speedPeak, 0, &m_speedPeak);
-  XBT_DEBUG("CPU create: peak=%f", m_speedPeak);
+  xbt_dynar_get_cpy(speedPeak, 0, &p_speed.peak);
+  XBT_DEBUG("CPU create: peak=%f", p_speed.peak);
 
   if (stateTrace)
     p_stateEvent = future_evt_set->add_trace(stateTrace, 0.0, this);
 
-  if (speedTrace && xbt_dynar_length(speedTrace->s_list.event_list) > 1) {
-       s_tmgr_event_t val;
+  if (speedTrace && xbt_dynar_length(speedTrace->event_list) > 1) {
+  s_tmgr_event_t val;
     // add a fake trace event if periodicity == 0
-    xbt_dynar_get_cpy(speedTrace->s_list.event_list,
-                      xbt_dynar_length(speedTrace->s_list.event_list) - 1, &val);
+    xbt_dynar_get_cpy(speedTrace->event_list,
+                      xbt_dynar_length(speedTrace->event_list) - 1, &val);
     if (val.delta == 0) {
-      p_speedEvent =
-          future_evt_set->add_trace(tmgr_empty_trace_new(), p_availTrace->m_lastTime, this);
+      p_speed.event =
+          future_evt_set->add_trace(tmgr_empty_trace_new(), availTrace_->lastTime_, this);
     }
   }
 }
@@ -554,61 +504,72 @@ CpuTi::CpuTi(CpuTiModel *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeak,
 CpuTi::~CpuTi()
 {
   modified(false);
-  delete p_availTrace;
-  delete p_actionSet;
+  delete availTrace_;
+  delete actionSet_;
 }
-
-void CpuTi::updateState(tmgr_trace_iterator_t event_type,
-                        double value, double date)
+void CpuTi::set_speed_trace(tmgr_trace_t trace)
 {
-  CpuTiAction *action;
+  if (availTrace_)
+    delete availTrace_;
+
+  availTrace_ = new CpuTiTgmr(trace, p_speed.scale);
+
+  /* add a fake trace event if periodicity == 0 */
+  if (trace && xbt_dynar_length(trace->event_list) > 1) {
+    s_tmgr_event_t val;
+    xbt_dynar_get_cpy(trace->event_list, xbt_dynar_length(trace->event_list) - 1, &val);
+    if (val.delta == 0)
+      p_speed.event = future_evt_set->add_trace(tmgr_empty_trace_new(), 0.0, this);
+  }
+}
 
-  if (event_type == p_speedEvent) {
+void CpuTi::apply_event(tmgr_trace_iterator_t event, double value)
+{
+  if (event == p_speed.event) {
     tmgr_trace_t speedTrace;
     CpuTiTgmr *trace;
     s_tmgr_event_t val;
 
-    XBT_DEBUG("Finish trace date: %f value %f date %f", surf_get_clock(),
-           value, date);
+    XBT_DEBUG("Finish trace date: value %f", value);
     /* update remaining of actions and put in modified cpu swag */
-    updateRemainingAmount(date);
+    updateRemainingAmount(surf_get_clock());
 
     modified(true);
 
-    speedTrace = p_availTrace->p_speedTrace;
-    xbt_dynar_get_cpy(speedTrace->s_list.event_list,
-                      xbt_dynar_length(speedTrace->s_list.event_list) - 1, &val);
-    /* free old trace */
-    delete p_availTrace;
-    m_speedScale = val.value;
+    speedTrace = availTrace_->speedTrace_;
+    xbt_dynar_get_cpy(speedTrace->event_list, xbt_dynar_length(speedTrace->event_list) - 1, &val);
+    delete availTrace_;
+    p_speed.scale = val.value;
 
     trace = new CpuTiTgmr(TRACE_FIXED, val.value);
     XBT_DEBUG("value %f", val.value);
 
-    p_availTrace = trace;
+    availTrace_ = trace;
 
-    tmgr_trace_event_unref(&p_speedEvent);
+    tmgr_trace_event_unref(&p_speed.event);
 
-  } else if (event_type == p_stateEvent) {
+  } else if (event == p_stateEvent) {
     if (value > 0) {
       if(isOff())
         xbt_dynar_push_as(host_that_restart, char*, (char *)getName());
       turnOn();
     } else {
       turnOff();
+      double date = surf_get_clock();
 
       /* put all action running on cpu to failed */
-      for(ActionTiList::iterator it(p_actionSet->begin()), itend(p_actionSet->end())
+      for(ActionTiList::iterator it(actionSet_->begin()), itend(actionSet_->end())
           ; it != itend ; ++it) {
-             action = &*it;
+
+        CpuTiAction *action = &*it;
         if (action->getState() == SURF_ACTION_RUNNING
          || action->getState() == SURF_ACTION_READY
          || action->getState() == SURF_ACTION_NOT_IN_THE_SYSTEM) {
           action->setFinishTime(date);
           action->setState(SURF_ACTION_FAILED);
-          if (action->m_indexHeap >= 0) {
+          if (action->indexHeap_ >= 0) {
             CpuTiAction *heap_act = (CpuTiAction*)
-                xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, action->m_indexHeap);
+                xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->tiActionHeap_, action->indexHeap_);
             if (heap_act != action)
               DIE_IMPOSSIBLE;
           }
@@ -616,6 +577,7 @@ void CpuTi::updateState(tmgr_trace_iterator_t event_type,
       }
     }
     tmgr_trace_event_unref(&p_stateEvent);
+
   } else {
     xbt_die("Unknown event!\n");
   }
@@ -629,12 +591,10 @@ void CpuTi::updateActionsFinishTime(double now)
   /* update remaining amount of actions */
   updateRemainingAmount(now);
 
-  for(ActionTiList::iterator it(p_actionSet->begin()), itend(p_actionSet->end())
-      ; it != itend ; ++it) {
+  for(ActionTiList::iterator it(actionSet_->begin()), itend(actionSet_->end()) ; it != itend ; ++it) {
     action = &*it;
     /* action not running, skip it */
-    if (action->getStateSet() !=
-        surf_cpu_model_pm->getRunningActionSet())
+    if (action->getStateSet() != surf_cpu_model_pm->getRunningActionSet())
       continue;
 
     /* bogus priority, skip it */
@@ -642,15 +602,14 @@ void CpuTi::updateActionsFinishTime(double now)
       continue;
 
     /* action suspended, skip it */
-    if (action->m_suspended != 0)
+    if (action->suspended_ != 0)
       continue;
 
     sum_priority += 1.0 / action->getPriority();
   }
-  m_sumPriority = sum_priority;
+  sumPriority_ = sum_priority;
 
-  for(ActionTiList::iterator it(p_actionSet->begin()), itend(p_actionSet->end())
-     ; it != itend ; ++it) {
+  for(ActionTiList::iterator it(actionSet_->begin()), itend(actionSet_->end()) ; it != itend ; ++it) {
     action = &*it;
     min_finish = -1;
     /* action not running, skip it */
@@ -659,15 +618,15 @@ void CpuTi::updateActionsFinishTime(double now)
       continue;
 
     /* verify if the action is really running on cpu */
-    if (action->m_suspended == 0 && action->getPriority() > 0) {
+    if (action->suspended_ == 0 && action->getPriority() > 0) {
       /* total area needed to finish the action. Used in trace integration */
       total_area =
           (action->getRemains()) * sum_priority *
            action->getPriority();
 
-      total_area /= m_speedPeak;
+      total_area /= p_speed.peak;
 
-      action->setFinishTime(p_availTrace->solve(now, total_area));
+      action->setFinishTime(availTrace_->solve(now, total_area));
       /* verify which event will happen before (max_duration or finish time) */
       if (action->getMaxDuration() != NO_MAX_DURATION &&
           action->getStartTime() + action->getMaxDuration() < action->m_finish)
@@ -680,15 +639,15 @@ void CpuTi::updateActionsFinishTime(double now)
         min_finish = action->getStartTime() + action->getMaxDuration();
     }
     /* add in action heap */
-    XBT_DEBUG("action(%p) index %d", action, action->m_indexHeap);
-    if (action->m_indexHeap >= 0) {
+    XBT_DEBUG("action(%p) index %d", action, action->indexHeap_);
+    if (action->indexHeap_ >= 0) {
       CpuTiAction *heap_act = (CpuTiAction*)
-          xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, action->m_indexHeap);
+          xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->tiActionHeap_, action->indexHeap_);
       if (heap_act != action)
         DIE_IMPOSSIBLE;
     }
     if (min_finish != NO_MAX_DURATION)
-      xbt_heap_push(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, action, min_finish);
+      xbt_heap_push(static_cast<CpuTiModel*>(getModel())->tiActionHeap_, action, min_finish);
 
     XBT_DEBUG
         ("Update finish time: Cpu(%s) Action: %p, Start Time: %f Finish Time: %f Max duration %f",
@@ -702,36 +661,31 @@ void CpuTi::updateActionsFinishTime(double now)
 
 bool CpuTi::isUsed()
 {
-  return !p_actionSet->empty();
+  return !actionSet_->empty();
 }
 
 double CpuTi::getAvailableSpeed()
 {
-  m_speedScale = p_availTrace->getPowerScale(surf_get_clock());
+  p_speed.scale = availTrace_->getPowerScale(surf_get_clock());
   return Cpu::getAvailableSpeed();
 }
 
 /** @brief Update the remaining amount of actions */
 void CpuTi::updateRemainingAmount(double now)
 {
-  double area_total;
-  CpuTiAction *action;
 
   /* already updated */
-  if (m_lastUpdate >= now)
+  if (lastUpdate_ >= now)
     return;
 
   /* compute the integration area */
-  area_total = p_availTrace->integrate(m_lastUpdate, now) * m_speedPeak;
-  XBT_DEBUG("Flops total: %f, Last update %f", area_total,
-         m_lastUpdate);
+  double area_total = availTrace_->integrate(lastUpdate_, now) * p_speed.peak;
+  XBT_DEBUG("Flops total: %f, Last update %f", area_total, lastUpdate_);
 
-  for(ActionTiList::iterator it(p_actionSet->begin()), itend(p_actionSet->end())
-     ; it != itend ; ++it) {
-    action = &*it;
+  for(ActionTiList::iterator it(actionSet_->begin()), itend(actionSet_->end()) ; it != itend ; ++it) {
+    CpuTiAction *action = &*it;
     /* action not running, skip it */
-    if (action->getStateSet() !=
-        getModel()->getRunningActionSet())
+    if (action->getStateSet() != getModel()->getRunningActionSet())
       continue;
 
     /* bogus priority, skip it */
@@ -739,7 +693,7 @@ void CpuTi::updateRemainingAmount(double now)
       continue;
 
     /* action suspended, skip it */
-    if (action->m_suspended != 0)
+    if (action->suspended_ != 0)
       continue;
 
     /* action don't need update */
@@ -747,16 +701,14 @@ void CpuTi::updateRemainingAmount(double now)
       continue;
 
     /* skip action that are finishing now */
-    if (action->m_finish >= 0
-        && action->m_finish <= now)
+    if (action->m_finish >= 0 && action->m_finish <= now)
       continue;
 
     /* update remaining */
-    action->updateRemains(area_total / (m_sumPriority * action->getPriority()));
-    XBT_DEBUG("Update remaining action(%p) remaining %f", action,
-           action->m_remains);
+    action->updateRemains(area_total / (sumPriority_ * action->getPriority()));
+    XBT_DEBUG("Update remaining action(%p) remaining %f", action, action->m_remains);
   }
-  m_lastUpdate = now;
+  lastUpdate_ = now;
 }
 
 CpuAction *CpuTi::execution_start(double size)
@@ -764,7 +716,7 @@ CpuAction *CpuTi::execution_start(double size)
   XBT_IN("(%s,%g)", getName(), size);
   CpuTiAction *action = new CpuTiAction(static_cast<CpuTiModel*>(getModel()), size, isOff(), this);
 
-  p_actionSet->push_back(*action);
+  actionSet_->push_back(*action);
 
   XBT_OUT();
   return action;
@@ -780,23 +732,23 @@ CpuAction *CpuTi::sleep(double duration)
   CpuTiAction *action = new CpuTiAction(static_cast<CpuTiModel*>(getModel()), 1.0, isOff(), this);
 
   action->m_maxDuration = duration;
-  action->m_suspended = 2;
+  action->suspended_ = 2;
   if (duration == NO_MAX_DURATION) {
    /* Move to the *end* of the corresponding action set. This convention
       is used to speed up update_resource_state  */
-       action->getStateSet()->erase(action->getStateSet()->iterator_to(*action));
-    action->p_stateSet = static_cast<CpuTiModel*>(getModel())->p_runningActionSetThatDoesNotNeedBeingChecked;
+  action->getStateSet()->erase(action->getStateSet()->iterator_to(*action));
+    action->p_stateSet = static_cast<CpuTiModel*>(getModel())->runningActionSetThatDoesNotNeedBeingChecked_;
     action->getStateSet()->push_back(*action);
   }
 
-  p_actionSet->push_back(*action);
+  actionSet_->push_back(*action);
 
   XBT_OUT();
   return action;
 }
 
 void CpuTi::modified(bool modified){
-  CpuTiList *modifiedCpu = static_cast<CpuTiModel*>(getModel())->p_modifiedCpu;
+  CpuTiList *modifiedCpu = static_cast<CpuTiModel*>(getModel())->modifiedCpu_;
   if (modified) {
     if (!cpu_ti_hook.is_linked()) {
       modifiedCpu->push_back(*this);
@@ -812,38 +764,37 @@ void CpuTi::modified(bool modified){
  * Action *
  **********/
 
-CpuTiAction::CpuTiAction(CpuTiModel *model_, double cost, bool failed,
-                                CpuTi *cpu)
+CpuTiAction::CpuTiAction(CpuTiModel *model_, double cost, bool failed, CpuTi *cpu)
  : CpuAction(model_, cost, failed)
 {
-  p_cpu = cpu;
-  m_indexHeap = -1;
-  p_cpu->modified(true);
+  cpu_ = cpu;
+  indexHeap_ = -1;
+  cpu_->modified(true);
 }
 
 void CpuTiAction::updateIndexHeap(int i)
 {
-  m_indexHeap = i;
+  indexHeap_ = i;
 }
 
 void CpuTiAction::setState(e_surf_action_state_t state)
 {
   CpuAction::setState(state);
-  p_cpu->modified(true);
+  cpu_->modified(true);
 }
 
 int CpuTiAction::unref()
 {
   m_refcount--;
   if (!m_refcount) {
-       if (action_hook.is_linked())
-         getStateSet()->erase(getStateSet()->iterator_to(*this));
+    if (action_hook.is_linked())
+      getStateSet()->erase(getStateSet()->iterator_to(*this));
     /* remove from action_set */
     if (action_ti_hook.is_linked())
-      p_cpu->p_actionSet->erase(p_cpu->p_actionSet->iterator_to(*this));
+      cpu_->actionSet_->erase(cpu_->actionSet_->iterator_to(*this));
     /* remove from heap */
-    xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->p_tiActionHeap, this->m_indexHeap);
-    p_cpu->modified(true);
+    xbt_heap_remove(static_cast<CpuTiModel*>(getModel())->tiActionHeap_, this->indexHeap_);
+    cpu_->modified(true);
     delete this;
     return 1;
   }
@@ -853,18 +804,18 @@ int CpuTiAction::unref()
 void CpuTiAction::cancel()
 {
   this->setState(SURF_ACTION_FAILED);
-  xbt_heap_remove(getModel()->getActionHeap(), this->m_indexHeap);
-  p_cpu->modified(true);
+  xbt_heap_remove(getModel()->getActionHeap(), this->indexHeap_);
+  cpu_->modified(true);
   return;
 }
 
 void CpuTiAction::suspend()
 {
   XBT_IN("(%p)", this);
-  if (m_suspended != 2) {
-    m_suspended = 1;
-    xbt_heap_remove(getModel()->getActionHeap(), m_indexHeap);
-    p_cpu->modified(true);
+  if (suspended_ != 2) {
+    suspended_ = 1;
+    xbt_heap_remove(getModel()->getActionHeap(), indexHeap_);
+    cpu_->modified(true);
   }
   XBT_OUT();
 }
@@ -872,9 +823,9 @@ void CpuTiAction::suspend()
 void CpuTiAction::resume()
 {
   XBT_IN("(%p)", this);
-  if (m_suspended != 2) {
-    m_suspended = 0;
-    p_cpu->modified(true);
+  if (suspended_ != 2) {
+    suspended_ = 0;
+    cpu_->modified(true);
   }
   XBT_OUT();
 }
@@ -894,9 +845,9 @@ void CpuTiAction::setMaxDuration(double duration)
     min_finish = getFinishTime();
 
 /* add in action heap */
-  if (m_indexHeap >= 0) {
+  if (indexHeap_ >= 0) {
     CpuTiAction *heap_act = (CpuTiAction*)
-        xbt_heap_remove(getModel()->getActionHeap(), m_indexHeap);
+        xbt_heap_remove(getModel()->getActionHeap(), indexHeap_);
     if (heap_act != this)
       DIE_IMPOSSIBLE;
   }
@@ -909,14 +860,14 @@ void CpuTiAction::setPriority(double priority)
 {
   XBT_IN("(%p,%g)", this, priority);
   m_priority = priority;
-  p_cpu->modified(true);
+  cpu_->modified(true);
   XBT_OUT();
 }
 
 double CpuTiAction::getRemains()
 {
   XBT_IN("(%p)", this);
-  p_cpu->updateRemainingAmount(surf_get_clock());
+  cpu_->updateRemainingAmount(surf_get_clock());
   XBT_OUT();
   return m_remains;
 }
index 9c46c46..1c5d3ec 100644 (file)
@@ -39,9 +39,9 @@ public:
   double integrateSimplePoint(double a);
   double solveSimple(double a, double amount);
 
-  double *p_timePoints;
-  double *p_integral;
-  int m_nbPoints;
+  double *timePoints_;
+  double *integral_;
+  int nbPoints_;
   int binarySearch(double *array, double a, int low, int high);
 };
 
@@ -54,8 +54,8 @@ enum trace_type {
 class CpuTiTgmr {
 public:
   CpuTiTgmr(trace_type type, double value)
-    : m_type(type), m_value(value)
-       {};
+    : type_(type), value_(value)
+  {};
   CpuTiTgmr(tmgr_trace_t speedTrace, double value);
   ~CpuTiTgmr();
 
@@ -64,15 +64,15 @@ public:
   double solveSomewhatSimple(double a, double amount);
   double getPowerScale(double a);
 
-  trace_type m_type;
-  double m_value;                 /*< Percentage of cpu speed available. Value fixed between 0 and 1 */
+  trace_type type_;
+  double value_;                 /*< Percentage of cpu speed available. Value fixed between 0 and 1 */
 
   /* Dynamic */
-  double m_lastTime = 0.0;             /*< Integral interval last point (discrete time) */
-  double m_total = 0.0;                 /*< Integral total between 0 and last_pointn */
+  double lastTime_ = 0.0;             /*< Integral interval last point (discrete time) */
+  double total_    = 0.0;             /*< Integral total between 0 and last_pointn */
 
-  CpuTiTrace *p_trace = nullptr;
-  tmgr_trace_t p_speedTrace = nullptr;
+  CpuTiTrace *trace_ = nullptr;
+  tmgr_trace_t speedTrace_ = nullptr;
 };
 
 /**********
@@ -82,8 +82,7 @@ public:
 class CpuTiAction: public CpuAction {
   friend class CpuTi;
 public:
-  CpuTiAction(CpuTiModel *model, double cost, bool failed,
-                   CpuTi *cpu);
+  CpuTiAction(CpuTiModel *model, double cost, bool failed, CpuTi *cpu);
 
   void setState(e_surf_action_state_t state) override;
   int unref() override;
@@ -96,17 +95,15 @@ public:
   double getRemains() override;
   void setAffinity(Cpu * /*cpu*/, unsigned long /*mask*/) override {};
 
-  CpuTi *p_cpu;
-  int m_indexHeap;
-  int m_suspended = 0;
+  CpuTi *cpu_;
+  int indexHeap_;
+  int suspended_ = 0;
 public:
   boost::intrusive::list_member_hook<> action_ti_hook;
 };
 
-typedef boost::intrusive::member_hook<
-  CpuTiAction, boost::intrusive::list_member_hook<>, &CpuTiAction::action_ti_hook> ActionTiListOptions;
-typedef boost::intrusive::list<
-  CpuTiAction, ActionTiListOptions > ActionTiList;
+typedef boost::intrusive::member_hook<CpuTiAction, boost::intrusive::list_member_hook<>, &CpuTiAction::action_ti_hook> ActionTiListOptions;
+typedef boost::intrusive::list<CpuTiAction, ActionTiListOptions > ActionTiList;
 
 /************
  * Resource *
@@ -118,8 +115,12 @@ public:
         int initiallyOn, tmgr_trace_t stateTrace) ;
   ~CpuTi();
 
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
+  void set_speed_trace(tmgr_trace_t trace) override;
+
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
   void updateActionsFinishTime(double now);
+  void updateRemainingAmount(double now);
+
   bool isUsed() override;
   CpuAction *execution_start(double size) override;
   CpuAction *sleep(double duration) override;
@@ -127,20 +128,18 @@ public:
 
   void modified(bool modified);
 
-  CpuTiTgmr *p_availTrace;       /*< Structure with data needed to integrate trace file */
-  ActionTiList *p_actionSet;        /*< set with all actions running on cpu */
-  double m_sumPriority;          /*< the sum of actions' priority that are running on cpu */
-  double m_lastUpdate = 0;       /*< last update of actions' remaining amount done */
+  CpuTiTgmr *availTrace_;       /*< Structure with data needed to integrate trace file */
+  ActionTiList *actionSet_;        /*< set with all actions running on cpu */
+  double sumPriority_;          /*< the sum of actions' priority that are running on cpu */
+  double lastUpdate_ = 0;       /*< last update of actions' remaining amount done */
 
-  double current_frequency;
+  double currentFrequency_;
 
-  void updateRemainingAmount(double now);
 public:
   boost::intrusive::list_member_hook<> cpu_ti_hook;
 };
 
-typedef boost::intrusive::member_hook<
-  CpuTi, boost::intrusive::list_member_hook<>, &CpuTi::cpu_ti_hook> CpuTiListOptions;
+typedef boost::intrusive::member_hook<CpuTi, boost::intrusive::list_member_hook<>, &CpuTi::cpu_ti_hook> CpuTiListOptions;
 typedef boost::intrusive::list<CpuTi, CpuTiListOptions> CpuTiList;
 
 /*********
@@ -153,15 +152,13 @@ public:
   Cpu *createCpu(simgrid::s4u::Host *host,  xbt_dynar_t speedPeak,
                           int pstate, double speedScale,
                           tmgr_trace_t speedTrace, int core,
-                          int initiallyOn,
-                          tmgr_trace_t state_trace) override;
-  double shareResources(double now) override;
+                          int initiallyOn, tmgr_trace_t state_trace) override;
+  double next_occuring_event(double now) override;
   void updateActionsState(double now, double delta) override;
-  void addTraces() override;
 
-  ActionList *p_runningActionSetThatDoesNotNeedBeingChecked;
-  CpuTiList *p_modifiedCpu;
-  xbt_heap_t p_tiActionHeap;
+  ActionList *runningActionSetThatDoesNotNeedBeingChecked_;
+  CpuTiList *modifiedCpu_;
+  xbt_heap_t tiActionHeap_;
 
 protected:
   void NotifyResourceTurnedOn(simgrid::surf::Resource*){};
index 684a8cb..7694c4c 100644 (file)
@@ -39,7 +39,7 @@ void bottleneck_solve(lmm_system_t sys)
   var_list = &(sys->variable_set);
   XBT_DEBUG("Variable set : %d", xbt_swag_size(var_list));
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     int nb = 0;
     var->value = 0.0;
     XBT_DEBUG("Handling variable %p", var);
@@ -65,12 +65,12 @@ void bottleneck_solve(lmm_system_t sys)
   cnst_list = &(sys->active_constraint_set);
   XBT_DEBUG("Active constraints : %d", xbt_swag_size(cnst_list));
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     xbt_swag_insert(cnst, &(sys->saturated_constraint_set));
   }
   cnst_list = &(sys->saturated_constraint_set);
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     cnst->remaining = cnst->bound;
     cnst->usage = 0.0;
   }
@@ -94,7 +94,7 @@ void bottleneck_solve(lmm_system_t sys)
       elem_list = &(cnst->enabled_element_set);
       cnst->usage = 0.0;
       xbt_swag_foreach(_elem, elem_list) {
-       elem = (lmm_element_t)_elem;
+      elem = (lmm_element_t)_elem;
         xbt_assert(elem->variable->weight > 0);
         if ((elem->value > 0)
             && xbt_swag_belongs(elem->variable, var_list))
index 0bfbc87..c240e0e 100644 (file)
@@ -46,12 +46,12 @@ void surf_host_model_init_compound()
 namespace simgrid {
 namespace surf {
 
-double HostCLM03Model::shareResources(double now){
+double HostCLM03Model::next_occuring_event(double now){
   adjustWeightOfDummyCpuActions();
 
-  double min_by_cpu = surf_cpu_model_pm->shareResources(now);
-  double min_by_net = surf_network_model->shareResourcesIsIdempotent() ? surf_network_model->shareResources(now) : -1;
-  double min_by_sto = surf_storage_model->shareResources(now);
+  double min_by_cpu = surf_cpu_model_pm->next_occuring_event(now);
+  double min_by_net = surf_network_model->next_occuring_event_isIdempotent() ? surf_network_model->next_occuring_event(now) : -1;
+  double min_by_sto = surf_storage_model->next_occuring_event(now);
 
   XBT_DEBUG("model %p, %s min_by_cpu %f, %s min_by_net %f, %s min_by_sto %f",
       this, typeid(surf_cpu_model_pm).name(), min_by_cpu,
index 74bff01..4c66fc7 100644 (file)
@@ -31,7 +31,7 @@ class HostCLM03Model : public HostModel {
 public:
   HostCLM03Model(): HostModel(){}
   ~HostCLM03Model() {}
-  double shareResources(double now) override;
+  double next_occuring_event(double now) override;
 
   void updateActionsState(double now, double delta) override;
 };
index 5b9a6f0..bda8a18 100644 (file)
@@ -125,7 +125,7 @@ void Host::classInit()
 }
 
 Host::Host(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props,
-                                xbt_dynar_t storage, Cpu *cpu)
+                     xbt_dynar_t storage, Cpu *cpu)
  : Resource(model, name)
  , PropertyHolder(props)
  , p_storage(storage), p_cpu(cpu)
@@ -134,7 +134,7 @@ Host::Host(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props,
 }
 
 Host::Host(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint,
-                                        xbt_dynar_t storage, Cpu *cpu)
+                 xbt_dynar_t storage, Cpu *cpu)
  : Resource(model, name, constraint)
  , PropertyHolder(props)
  , p_storage(storage), p_cpu(cpu)
@@ -215,11 +215,11 @@ xbt_dynar_t Host::getAttachedStorageList()
   xbt_dynar_t result = xbt_dynar_new(sizeof(void*), NULL);
   xbt_lib_foreach(storage_lib, cursor, key, data) {
     if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != NULL) {
-         simgrid::surf::Storage *storage = static_cast<simgrid::surf::Storage*>(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
-         if(!strcmp((const char*)storage->p_attach,this->getName())){
-           xbt_dynar_push_as(result, void *, (void*)storage->getName());
-         }
-       }
+    simgrid::surf::Storage *storage = static_cast<simgrid::surf::Storage*>(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
+    if(!strcmp((const char*)storage->p_attach,this->getName())){
+      xbt_dynar_push_as(result, void *, (void*)storage->getName());
+    }
+  }
   }
   return result;
 }
@@ -251,12 +251,12 @@ Action *Host::open(const char* fullpath) {
   }
   if(longest_prefix_length>0)
   { /* Mount point found, split fullpath into mount_name and path+filename*/
-       path = (char *) xbt_malloc ((strlen(fullpath)-longest_prefix_length+1));
-       mount_name = (char *) xbt_malloc ((longest_prefix_length+1));
-       strncpy(mount_name, fullpath, longest_prefix_length+1);
-       strncpy(path, fullpath+longest_prefix_length, strlen(fullpath)-longest_prefix_length+1);
-       path[strlen(fullpath)-longest_prefix_length] = '\0';
-       mount_name[longest_prefix_length] = '\0';
+  path = (char *) xbt_malloc ((strlen(fullpath)-longest_prefix_length+1));
+  mount_name = (char *) xbt_malloc ((longest_prefix_length+1));
+  strncpy(mount_name, fullpath, longest_prefix_length+1);
+  strncpy(path, fullpath+longest_prefix_length, strlen(fullpath)-longest_prefix_length+1);
+  path[strlen(fullpath)-longest_prefix_length] = '\0';
+  mount_name[longest_prefix_length] = '\0';
   }
   else
     xbt_die("Can't find mount point for '%s' on '%s'", fullpath, getName());
index 7766807..f1c199d 100644 (file)
@@ -53,7 +53,6 @@ public:
   ~HostModel() override {}
 
   Host *createHost(const char *name, NetCard *net, Cpu *cpu, xbt_dict_t props);
-  void addTraces() override {DIE_IMPOSSIBLE;}
 
   virtual void adjustWeightOfDummyCpuActions();
   virtual Action *executeParallelTask(int host_nb,
@@ -62,7 +61,7 @@ public:
       double *bytes_amount,
       double rate);
 
-  bool shareResourcesIsIdempotent() override {return true;}
+  bool next_occuring_event_isIdempotent() override {return true;}
 };
 
 /************
@@ -73,8 +72,8 @@ public:
  * @details An host represents a machine with a aggregation of a Cpu, a RoutingEdge and a Storage
  */
 class Host :
-        public simgrid::surf::Resource,
-        public simgrid::surf::PropertyHolder {
+    public simgrid::surf::Resource,
+   public simgrid::surf::PropertyHolder {
 public:
   static simgrid::xbt::Extension<simgrid::s4u::Host, Host> EXTENSION_ID;
 
@@ -90,7 +89,7 @@ public:
    * @param cpu The Cpu associated to this Host
    */
   Host(HostModel *model, const char *name, xbt_dict_t props,
-                     xbt_dynar_t storage, Cpu *cpu);
+          xbt_dynar_t storage, Cpu *cpu);
 
   /**
    * @brief Host constructor
@@ -229,7 +228,7 @@ public:
   virtual int fileMove(surf_file_t fd, const char* fullpath);
 
   bool isUsed() override {DIE_IMPOSSIBLE;} // FIXME: Host should not be a Resource
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override
+  void apply_event(tmgr_trace_iterator_t event, double value) override
     {THROW_IMPOSSIBLE;} // FIXME: Host should not be a Resource
 
 public:
index 9f992f3..e79947a 100644 (file)
@@ -8,7 +8,6 @@
 
 #include "src/surf/surf_private.h"
 #include "xbt/graph.h"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_routing, instr, "Tracing platform hierarchy");
 
@@ -331,7 +330,7 @@ static void instr_routing_parse_end_platform ()
   currentContainer = NULL;
   xbt_dict_t filter = xbt_dict_new_homogeneous(xbt_free_f);
   XBT_DEBUG ("Starting graph extraction.");
-  recursiveGraphExtraction (surf_platf_get_root(routing_platf), PJ_container_get_root(), filter);
+  recursiveGraphExtraction (surf_AS_get_routing_root(), PJ_container_get_root(), filter);
   XBT_DEBUG ("Graph extraction finished.");
   xbt_dict_free(&filter);
   platform_created = 1;
@@ -466,7 +465,7 @@ xbt_graph_t instr_routing_platform_graph (void)
   xbt_graph_t ret = xbt_graph_new_graph (0, NULL);
   xbt_dict_t nodes = xbt_dict_new_homogeneous(NULL);
   xbt_dict_t edges = xbt_dict_new_homogeneous(NULL);
-  recursiveXBTGraphExtraction (ret, nodes, edges, surf_platf_get_root(routing_platf), PJ_container_get_root());
+  recursiveXBTGraphExtraction (ret, nodes, edges, surf_AS_get_routing_root(), PJ_container_get_root());
   xbt_dict_free (&nodes);
   xbt_dict_free (&edges);
   return ret;
similarity index 94%
rename from src/surf/instr_surf.c
rename to src/surf/instr_surf.cpp
index b0003d6..230805a 100644 (file)
@@ -5,7 +5,7 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "src/instr/instr_private.h"
-#include "src/surf/surf_private.h"
+#include "src/surf/surf_interface.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_surf, instr, "Tracing Surf");
 
@@ -46,5 +46,5 @@ void TRACE_surf_action(surf_action_t surf_action, const char *category)
   if (!category)
     return;
 
-  surf_action_set_category(surf_action, category);
+  surf_action->setCategory(category);
 }
index 1c126b4..9257a84 100644 (file)
@@ -52,7 +52,7 @@ static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
   double tmp;
 
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     tmp = 0;
     elem_list = &(cnst->enabled_element_set);
     xbt_swag_foreach(_elem, elem_list) {
@@ -75,7 +75,7 @@ static int __check_feasible(xbt_swag_t cnst_list, xbt_swag_t var_list,
   }
 
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     if (!var->weight)
       break;
     if (var->bound < 0)
@@ -134,7 +134,7 @@ static double dual_objective(xbt_swag_t var_list, xbt_swag_t cnst_list)
   double obj = 0.0;
 
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     double sigma_i = 0.0;
     int j;
 
@@ -214,7 +214,7 @@ void lagrange_solve(lmm_system_t sys)
    */
   cnst_list = &(sys->active_constraint_set);
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     cnst->lambda = 1.0;
     cnst->new_lambda = 2.0;
     XBT_DEBUG("#### cnst(%p)->lambda :  %e", cnst, cnst->lambda);
@@ -227,7 +227,7 @@ void lagrange_solve(lmm_system_t sys)
   var_list = &(sys->variable_set);
   i = 0;
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     if (!var->weight)
       var->value = 0.0;
     else {
@@ -505,7 +505,7 @@ static double partial_diff_lambda(double lambda, void *param_cnst)
   XBT_CDEBUG(surf_lagrange_dichotomy, "Computing diff of cnst (%p)", cnst);
 
   xbt_swag_foreach(_elem, elem_list) {
-       elem = (lmm_element_t)_elem;
+  elem = (lmm_element_t)_elem;
     var = elem->variable;
     xbt_assert(var->weight > 0);
     XBT_CDEBUG(surf_lagrange_dichotomy, "Computing sigma_i for var (%p)",
index fc470a5..5e74410 100644 (file)
@@ -488,7 +488,7 @@ lmm_variable_t lmm_get_var_from_cnst(lmm_system_t /*sys*/,
       //Look at enabled_element_set, and jump to disabled_element_set when finished
       *elem = (lmm_element_t) xbt_swag_getNext(*elem, cnst->enabled_element_set.offset);
       if (!(*elem))
-       *elem = (lmm_element_t) xbt_swag_getFirst(&(cnst->disabled_element_set));
+  *elem = (lmm_element_t) xbt_swag_getFirst(&(cnst->disabled_element_set));
     } else {
       *elem = (lmm_element_t) xbt_swag_getNext(*elem, cnst->disabled_element_set.offset);      
     }
@@ -525,7 +525,7 @@ lmm_variable_t lmm_get_var_from_cnst_safe(lmm_system_t /*sys*/,
       //Look at enabled_element_set, and jump to disabled_element_set when finished
       *nextelem = (lmm_element_t) xbt_swag_getNext(*elem, cnst->enabled_element_set.offset);
       if (!(*nextelem))
-       *nextelem = (lmm_element_t) xbt_swag_getFirst(&(cnst->disabled_element_set));
+  *nextelem = (lmm_element_t) xbt_swag_getFirst(&(cnst->disabled_element_set));
     } else {
       *nextelem = (lmm_element_t) xbt_swag_getNext(*elem, cnst->disabled_element_set.offset);      
     }
@@ -610,7 +610,7 @@ void lmm_print(lmm_system_t sys)
       xbt_realloc(trace_buf, strlen(trace_buf) + strlen(print_buf) + 1);
   strcat(trace_buf, print_buf);
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     sprintf(print_buf, "'%d'(%f) ", var->id_int, var->weight);
     trace_buf = (char*)
         xbt_realloc(trace_buf, strlen(trace_buf) + strlen(print_buf) + 1);
@@ -627,7 +627,7 @@ void lmm_print(lmm_system_t sys)
   /* Printing Constraints */
   cnst_list = &(sys->active_constraint_set);
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     sum = 0.0;
     //Show  the enabled variables
     elem_list = &(cnst->enabled_element_set);
@@ -649,9 +649,9 @@ void lmm_print(lmm_system_t sys)
                       strlen(trace_buf) + strlen(print_buf) + 1);
       strcat(trace_buf, print_buf);
       if(cnst->sharing_policy)
-         sum += elem->value * elem->variable->value;
+        sum += elem->value * elem->variable->value;
       else 
-         sum = MAX(sum,elem->value * elem->variable->value);
+        sum = MAX(sum,elem->value * elem->variable->value);
     }
     //TODO: Adding disabled elements only for test compatibility, but do we really want them to be printed?
     elem_list = &(cnst->disabled_element_set);
@@ -664,9 +664,9 @@ void lmm_print(lmm_system_t sys)
                       strlen(trace_buf) + strlen(print_buf) + 1);
       strcat(trace_buf, print_buf);
       if(cnst->sharing_policy)
-         sum += elem->value * elem->variable->value;
+        sum += elem->value * elem->variable->value;
       else 
-         sum = MAX(sum,elem->value * elem->variable->value);
+        sum = MAX(sum,elem->value * elem->variable->value);
     }
     
     sprintf(print_buf, "0) <= %f ('%d')", cnst->bound, cnst->id_int);
@@ -691,7 +691,7 @@ void lmm_print(lmm_system_t sys)
   XBT_DEBUG("Variables");
   /* Printing Result */
   xbt_swag_foreach(_var, var_list) {
-       var = (lmm_variable_t)_var;
+  var = (lmm_variable_t)_var;
     if (var->bound > 0) {
       XBT_DEBUG("'%d'(%f) : %f (<=%f)", var->id_int, var->weight, var->value,
              var->bound);
@@ -734,7 +734,7 @@ void lmm_solve(lmm_system_t sys)
   XBT_DEBUG("Active constraints : %d", xbt_swag_size(cnst_list));
   /* Init: Only modified code portions: reset the value of active variables */
   xbt_swag_foreach(_cnst, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     elem_list = &(cnst->enabled_element_set);
     //XBT_DEBUG("Variable set : %d", xbt_swag_size(elem_list));
     xbt_swag_foreach(_elem, elem_list) {
@@ -751,7 +751,7 @@ void lmm_solve(lmm_system_t sys)
   saturated_constraint_set->data = xbt_new0(int, saturated_constraint_set->size);
 
   xbt_swag_foreach_safe(_cnst, _cnst_next, cnst_list) {
-       cnst = (lmm_constraint_t)_cnst;
+  cnst = (lmm_constraint_t)_cnst;
     /* INIT: Collect constraints that actually need to be saturated (i.e remaining  and usage are strictly positive) into cnst_light_tab. */
     cnst->remaining = cnst->bound;
     if (!double_positive(cnst->remaining, cnst->bound*sg_maxmin_precision))
@@ -821,17 +821,17 @@ void lmm_solve(lmm_system_t sys)
       int i;
 
       if (min_bound < 0) {
-       //If no variable could reach its bound, deal iteratively the constraints usage ( at worst one constraint is saturated at each cycle) 
+  //If no variable could reach its bound, deal iteratively the constraints usage ( at worst one constraint is saturated at each cycle) 
         var->value = min_usage / var->weight;
         XBT_DEBUG("Setting %p (%d) value to %f\n", var, var->id_int, var->value);
       } else {
-       //If there exist a variable that can reach its bound, only update it (and other with the same bound) for now.
-           if (double_equals(min_bound, var->bound*var->weight, sg_maxmin_precision)){
+  //If there exist a variable that can reach its bound, only update it (and other with the same bound) for now.
+      if (double_equals(min_bound, var->bound*var->weight, sg_maxmin_precision)){
           var->value = var->bound;
           XBT_DEBUG("Setting %p (%d) value to %f\n", var, var->id_int, var->value);
         }
         else {
-         // Variables which bound is different are not considered for this cycle, but they will be afterwards.  
+    // Variables which bound is different are not considered for this cycle, but they will be afterwards.  
           XBT_DEBUG("Do not consider %p (%d) \n", var, var->id_int);
           xbt_swag_remove(var, var_list);
           continue;
@@ -846,15 +846,15 @@ void lmm_solve(lmm_system_t sys)
         elem = &var->cnsts[i];
         cnst = elem->constraint;
         if (cnst->sharing_policy) {
-         //Remember: shared constraints require that sum(elem->value * var->value) < cnst->bound
+    //Remember: shared constraints require that sum(elem->value * var->value) < cnst->bound
           double_update(&(cnst->remaining),  elem->value * var->value, cnst->bound*sg_maxmin_precision);
           double_update(&(cnst->usage), elem->value / var->weight, sg_maxmin_precision);
-         //If the constraint is saturated, remove it from the set of active constraints (light_tab)
+    //If the constraint is saturated, remove it from the set of active constraints (light_tab)
           if(!double_positive(cnst->usage,sg_maxmin_precision) || !double_positive(cnst->remaining,cnst->bound*sg_maxmin_precision)) {
             if (cnst->cnst_light) {
               int index = (cnst->cnst_light-cnst_light_tab);
               XBT_DEBUG("index: %d \t cnst_light_num: %d \t || \t cnst: %p \t cnst->cnst_light: %p \t cnst_light_tab: %p usage: %f remaining: %f bound: %f  ",
-                       index,cnst_light_num, cnst, cnst->cnst_light, cnst_light_tab, cnst->usage, cnst->remaining, cnst->bound);
+      index,cnst_light_num, cnst, cnst->cnst_light, cnst_light_tab, cnst->usage, cnst->remaining, cnst->bound);
               cnst_light_tab[index]=cnst_light_tab[cnst_light_num-1];
               cnst_light_tab[index].cnst->cnst_light = &cnst_light_tab[index];
               cnst_light_num--;
@@ -865,23 +865,23 @@ void lmm_solve(lmm_system_t sys)
           }
           make_elem_inactive(elem);
         } else {
-         //Remember: non-shared constraints only require that max(elem->value * var->value) < cnst->bound
+    //Remember: non-shared constraints only require that max(elem->value * var->value) < cnst->bound
           cnst->usage = 0.0;
           make_elem_inactive(elem);
           elem_list = &(cnst->enabled_element_set);
           xbt_swag_foreach(_elem, elem_list) {
-           elem = (lmm_element_t)_elem;
-           xbt_assert(elem->variable->weight > 0);
-           if (elem->variable->value > 0) continue;
-           if (elem->value > 0)
-             cnst->usage = MAX(cnst->usage, elem->value / elem->variable->weight);
+      elem = (lmm_element_t)_elem;
+      xbt_assert(elem->variable->weight > 0);
+      if (elem->variable->value > 0) continue;
+      if (elem->value > 0)
+        cnst->usage = MAX(cnst->usage, elem->value / elem->variable->weight);
           }
-         //If the constraint is saturated, remove it from the set of active constraints (light_tab)
+    //If the constraint is saturated, remove it from the set of active constraints (light_tab)
           if(!double_positive(cnst->usage,sg_maxmin_precision) || !double_positive(cnst->remaining,cnst->bound*sg_maxmin_precision)) {
             if(cnst->cnst_light) {
               int index = (cnst->cnst_light-cnst_light_tab);
               XBT_DEBUG("index: %d \t cnst_light_num: %d \t || \t cnst: %p \t cnst->cnst_light: %p \t cnst_light_tab: %p usage: %f remaining: %f bound: %f  ",
-                       index,cnst_light_num, cnst, cnst->cnst_light, cnst_light_tab, cnst->usage, cnst->remaining, cnst->bound);
+      index,cnst_light_num, cnst, cnst->cnst_light, cnst_light_tab, cnst->usage, cnst->remaining, cnst->bound);
               cnst_light_tab[index]=cnst_light_tab[cnst_light_num-1];
               cnst_light_tab[index].cnst->cnst_light = &cnst_light_tab[index];
               cnst_light_num--;
@@ -908,7 +908,7 @@ void lmm_solve(lmm_system_t sys)
           pos,
           saturated_constraint_set,
           &min_usage);
-       }
+  }
 
     saturated_variable_set_update(  cnst_light_tab,
                                     saturated_constraint_set,
@@ -1072,12 +1072,12 @@ void lmm_on_disabled_var(lmm_system_t sys, lmm_constraint_t cnstr){
 
     if (elem->variable->staged_weight>0 )
       {
-       //Found a staged variable
-       //TODOLATER: Add random timing function to model reservation protocol fuzziness? Then how to make sure that staged variables will eventually be called?
-       if(lmm_can_enable_var(elem->variable)){
-         lmm_enable_var(sys,elem->variable);
-         concurrency++;
-       }             
+  //Found a staged variable
+  //TODOLATER: Add random timing function to model reservation protocol fuzziness? Then how to make sure that staged variables will eventually be called?
+  if(lmm_can_enable_var(elem->variable)){
+    lmm_enable_var(sys,elem->variable);
+    concurrency++;
+  }        
       }
 
     xbt_assert(concurrency<=cnstr->concurrency_limit,"Concurrency overflow!");
@@ -1093,7 +1093,7 @@ void lmm_on_disabled_var(lmm_system_t sys, lmm_constraint_t cnstr){
  * @return Returns whether a change was made
  */
 void lmm_update_variable_weight(lmm_system_t sys, lmm_variable_t var,
-                              double weight)
+             double weight)
 {
   int minslack;
   
@@ -1166,7 +1166,7 @@ XBT_INLINE lmm_constraint_t lmm_get_next_active_constraint(lmm_system_t
 }
 
 #ifdef HAVE_LATENCY_BOUND_TRACKING
-XBT_INLINE int lmm_is_variable_limited_by_latency(lmm_variable_t var)
+XBT_PUBLIC(int) lmm_is_variable_limited_by_latency(lmm_variable_t var)
 {
   return (double_equals(var->bound, var->value, var->bound*sg_maxmin_precision));
 }
@@ -1232,7 +1232,7 @@ static void lmm_remove_all_modified_set(lmm_system_t sys)
   //To be clean, when visited counter has wrapped around, we force these var->visited values so that variables that were in the modified a long (long long) time ago are not wrongly skipped here, which would lead to very nasty bugs (i.e. not readibily reproducible, and requiring a lot of run time before happening).  
   if (++sys->visited_counter == 1) {
     /* the counter wrapped around, reset each variable->visited */
-       void *_var;
+  void *_var;
     xbt_swag_foreach(_var, &sys->variable_set)
       ((lmm_variable_t)_var)->visited = 0;
   }
@@ -1254,7 +1254,7 @@ double lmm_constraint_get_usage(lmm_constraint_t cnst) {
    lmm_element_t elem = NULL;
 
    xbt_swag_foreach(_elem, elem_list) {
-        elem = (lmm_element_t)_elem;
+   elem = (lmm_element_t)_elem;
      if ((elem->value > 0)) {
        if (cnst->sharing_policy)
          usage += elem->value * elem->variable->value;
@@ -1280,15 +1280,15 @@ void lmm_check_concurrency(lmm_system_t sys){
       concurrency=0;
      
       xbt_swag_foreach(_elem, &(cnst->enabled_element_set)) {
-       elem = (lmm_element_t)_elem;
-       xbt_assert(elem->variable->weight > 0);
-         concurrency++;
+  elem = (lmm_element_t)_elem;
+  xbt_assert(elem->variable->weight > 0);
+    concurrency++;
       }
 
       xbt_swag_foreach(_elem, &(cnst->disabled_element_set)) {
-       elem = (lmm_element_t)_elem;
-       //We should have staged variables only if conccurency is reached in some constraint
-       xbt_assert(cnst->concurrency_limit<0 || elem->variable->staged_weight==0 || lmm_cnstrs_min_concurrency_slack(elem->variable) < elem->variable->concurrency_share,"should not have staged variable!");
+  elem = (lmm_element_t)_elem;
+  //We should have staged variables only if conccurency is reached in some constraint
+  xbt_assert(cnst->concurrency_limit<0 || elem->variable->staged_weight==0 || lmm_cnstrs_min_concurrency_slack(elem->variable) < elem->variable->concurrency_share,"should not have staged variable!");
       }
       
       xbt_assert(cnst->concurrency_limit<0 || cnst->concurrency_limit >= concurrency,"concurrency check failed!");
index 3f7a944..62c2f41 100644 (file)
@@ -9,7 +9,6 @@
 #include "network_cm02.hpp"
 #include "maxmin_private.hpp"
 #include "simgrid/sg_config.h"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
 
@@ -21,23 +20,6 @@ double sg_weight_S_parameter = 0.0;     /* default value; can be set by model or
 double sg_tcp_gamma = 0.0;
 int sg_network_crosstraffic = 0;
 
-/*************
- * CallBacks *
- *************/
-
-void net_define_callbacks(void)
-{
-  /* Figuring out the network links */
-  simgrid::surf::on_link.connect(netlink_parse_init);
-  simgrid::surf::on_postparse.connect([]() {
-    surf_network_model->addTraces();
-  });
-}
-
-/*********
- * Model *
- *********/
-
 /************************************************************************/
 /* New model based on optimizations discussed during Pedro Velho's thesis*/
 /************************************************************************/
@@ -57,16 +39,13 @@ void surf_network_model_init_LegrandVelho(void)
   if (surf_network_model)
     return;
 
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkCm02Model();
-  net_define_callbacks();
-  simgrid::surf::Model *model = surf_network_model;
-  xbt_dynar_push(all_existing_models, &model);
-
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",
-                            13.01);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",
-                            0.97);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 20537);
+  xbt_dynar_push(all_existing_models, &surf_network_model);
+
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",      13.01);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",     0.97);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",         20537);
 }
 
 /***************************************************************************/
@@ -86,13 +65,13 @@ void surf_network_model_init_CM02(void)
   if (surf_network_model)
     return;
 
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkCm02Model();
   xbt_dynar_push(all_existing_models, &surf_network_model);
-  net_define_callbacks();
 
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 1.0);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",   1.0);
   xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 1.0);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 0.0);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",         0.0);
 }
 
 /***************************************************************************/
@@ -110,15 +89,16 @@ void surf_network_model_init_Reno(void)
   if (surf_network_model)
     return;
 
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkCm02Model();
   xbt_dynar_push(all_existing_models, &surf_network_model);
-  net_define_callbacks();
+
   lmm_set_default_protocol_function(func_reno_f, func_reno_fp, func_reno_fpi);
   surf_network_model->f_networkSolve = lagrange_solve;
 
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",     10.4);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",    0.92);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",         8775);
 }
 
 
@@ -127,15 +107,16 @@ void surf_network_model_init_Reno2(void)
   if (surf_network_model)
     return;
 
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkCm02Model();
   xbt_dynar_push(all_existing_models, &surf_network_model);
-  net_define_callbacks();
+
   lmm_set_default_protocol_function(func_reno2_f, func_reno2_fp, func_reno2_fpi);
   surf_network_model->f_networkSolve = lagrange_solve;
 
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",    10.4);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",   0.92);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",        8775);
 }
 
 void surf_network_model_init_Vegas(void)
@@ -143,26 +124,26 @@ void surf_network_model_init_Vegas(void)
   if (surf_network_model)
     return;
 
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkCm02Model();
   xbt_dynar_push(all_existing_models, &surf_network_model);
-  net_define_callbacks();
+
   lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, func_vegas_fpi);
   surf_network_model->f_networkSolve = lagrange_solve;
 
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
-  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",    10.4);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",   0.92);
+  xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",        8775);
 }
 
 namespace simgrid {
 namespace surf {
 
 NetworkCm02Model::NetworkCm02Model()
-       :NetworkModel()
+  :NetworkModel()
 {
   char *optim = xbt_cfg_get_string(_sg_cfg_set, "network/optim");
-  int select =
-      xbt_cfg_get_boolean(_sg_cfg_set, "network/maxmin_selective_update");
+  int select = xbt_cfg_get_boolean(_sg_cfg_set, "network/maxmin_selective_update");
 
   if (!strcmp(optim, "Full")) {
     p_updateMechanism = UM_FULL;
@@ -170,47 +151,40 @@ NetworkCm02Model::NetworkCm02Model()
   } else if (!strcmp(optim, "Lazy")) {
     p_updateMechanism = UM_LAZY;
     m_selectiveUpdate = 1;
-    xbt_assert((select == 1)
-               ||
-               (xbt_cfg_is_default_value
-                (_sg_cfg_set, "network/maxmin_selective_update")),
+    xbt_assert((select == 1) || (xbt_cfg_is_default_value(_sg_cfg_set, "network/maxmin_selective_update")),
                "Disabling selective update while using the lazy update mechanism is dumb!");
   } else {
     xbt_die("Unsupported optimization (%s) for this model", optim);
   }
 
   if (!p_maxminSystem)
-       p_maxminSystem = lmm_system_new(m_selectiveUpdate);
+    p_maxminSystem = lmm_system_new(m_selectiveUpdate);
 
   routing_model_create(createLink("__loopback__",
-                                     498000000, NULL, 0.000015, NULL,
-                                     1 /*SURF_RESOURCE_ON*/, NULL,
-                                     SURF_LINK_FATPIPE, NULL));
+                                498000000, NULL, 0.000015, NULL,
+                                1 /*SURF_RESOURCE_ON*/, NULL,
+                                SURF_LINK_FATPIPE, NULL));
 
   if (p_updateMechanism == UM_LAZY) {
-       p_actionHeap = xbt_heap_new(8, NULL);
-       xbt_heap_set_update_callback(p_actionHeap, surf_action_lmm_update_index_heap);
-       p_modifiedSet = new ActionLmmList();
-       p_maxminSystem->keep_track = p_modifiedSet;
+  p_actionHeap = xbt_heap_new(8, NULL);
+  xbt_heap_set_update_callback(p_actionHeap, surf_action_lmm_update_index_heap);
+  p_modifiedSet = new ActionLmmList();
+  p_maxminSystem->keep_track = p_modifiedSet;
   }
 }
 
 Link* NetworkCm02Model::createLink(const char *name,
-                                 double bw_initial,
-                                 tmgr_trace_t bw_trace,
-                                 double lat_initial,
-                                 tmgr_trace_t lat_trace,
-                                 int initiallyOn,
-                                 tmgr_trace_t state_trace,
-                                 e_surf_link_sharing_policy_t policy,
-                                 xbt_dict_t properties)
+    double bw_initial, tmgr_trace_t bw_trace,
+    double lat_initial, tmgr_trace_t lat_trace,
+    int initiallyOn, tmgr_trace_t state_trace,
+    e_surf_link_sharing_policy_t policy, xbt_dict_t properties)
 {
   xbt_assert(NULL == Link::byName(name),
              "Link '%s' declared several times in the platform",
              name);
 
-  Link* link = new NetworkCm02Link(this, name, properties, p_maxminSystem, sg_bandwidth_factor * bw_initial, future_evt_set,
-                                            initiallyOn, state_trace, bw_initial, bw_trace, lat_initial, lat_trace, policy);
+  Link* link = new NetworkCm02Link(this, name, properties, p_maxminSystem, sg_bandwidth_factor * bw_initial,
+                     initiallyOn, state_trace, bw_initial, bw_trace, lat_initial, lat_trace, policy);
   Link::onCreation(link);
   return link;
 }
@@ -224,11 +198,9 @@ void NetworkCm02Model::updateActionsStateLazy(double now, double /*delta*/)
     XBT_DEBUG("Something happened to action %p", action);
     if (TRACE_is_enabled()) {
       int n = lmm_get_number_of_cnst_from_var(p_maxminSystem, action->getVariable());
-      int i;
-      for (i = 0; i < n; i++){
-        lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem,
-                                                            action->getVariable(),
-                                                            i);
+
+      for (int i = 0; i < n; i++){
+        lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem, action->getVariable(), i);
         NetworkCm02Link *link = static_cast<NetworkCm02Link*>(lmm_constraint_id(constraint));
         TRACE_surf_link_set_utilization(link->getName(),
                                         action->getCategory(),
@@ -273,7 +245,7 @@ void NetworkCm02Model::updateActionsStateFull(double now, double delta)
 
   for(ActionList::iterator it(running_actions->begin()), itNext=it, itend(running_actions->end())
      ; it != itend ; it=itNext) {
-       ++itNext;
+  ++itNext;
 
     action = static_cast<NetworkCm02Action*> (&*it);
     XBT_DEBUG("Something happened to action %p", action);
@@ -292,11 +264,9 @@ void NetworkCm02Model::updateActionsStateFull(double now, double delta)
       }
       if (TRACE_is_enabled()) {
         int n = lmm_get_number_of_cnst_from_var(p_maxminSystem, action->getVariable());
-        int i;
-        for (i = 0; i < n; i++){
-          lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem,
-                                                            action->getVariable(),
-                                                            i);
+        for (int i = 0; i < n; i++){
+          lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem, action->getVariable(), i);
+
           NetworkCm02Link* link = static_cast<NetworkCm02Link*>(lmm_constraint_id(constraint));
           TRACE_surf_link_set_utilization(link->getName(),
                                         action->getCategory(),
@@ -308,8 +278,7 @@ void NetworkCm02Model::updateActionsStateFull(double now, double delta)
                                         now - action->getLastUpdate());
         }
       }
-      if (!lmm_get_number_of_cnst_from_var
-          (p_maxminSystem, action->getVariable())) {
+      if (!lmm_get_number_of_cnst_from_var (p_maxminSystem, action->getVariable())) {
         /* There is actually no link used, hence an infinite bandwidth.
          * This happens often when using models like vivaldi.
          * In such case, just make sure that the action completes immediately.
@@ -333,7 +302,6 @@ void NetworkCm02Model::updateActionsStateFull(double now, double delta)
       action->gapRemove();
     }
   }
-  return;
 }
 
 Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
@@ -351,22 +319,22 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
 
   xbt_dynar_t route = xbt_dynar_new(sizeof(NetCard*), NULL);
 
-  XBT_IN("(%s,%s,%g,%g)", src->getName(), dst->getName(), size, rate);
+  XBT_IN("(%s,%s,%g,%g)", src->name(), dst->name(), size, rate);
 
   routing_platf->getRouteAndLatency(src, dst, &route, &latency);
   xbt_assert(!xbt_dynar_is_empty(route) || latency,
              "You're trying to send data from %s to %s but there is no connecting path between these two hosts.",
-             src->getName(), dst->getName());
+             src->name(), dst->name());
 
   xbt_dynar_foreach(route, i, _link) {
-       link = static_cast<NetworkCm02Link*>(_link);
+  link = static_cast<NetworkCm02Link*>(_link);
     if (link->isOff()) {
       failed = 1;
       break;
     }
   }
   if (sg_network_crosstraffic == 1) {
-         routing_platf->getRouteAndLatency(dst, src, &back_route, NULL);
+    routing_platf->getRouteAndLatency(dst, src, &back_route, NULL);
     xbt_dynar_foreach(back_route, i, _link) {
       link = static_cast<NetworkCm02Link*>(_link);
       if (link->isOff()) {
@@ -397,7 +365,7 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
     }
   }
   xbt_dynar_foreach(route, i, _link) {
-       link = static_cast<NetworkCm02Link*>(_link);
+    link = static_cast<NetworkCm02Link*>(_link);
     double bb = bandwidthFactor(size) * link->getBandwidth();
     bandwidth_bound =
         (bandwidth_bound < 0.0) ? bb : std::min(bandwidth_bound, bb);
@@ -413,7 +381,7 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
     link = *static_cast<NetworkCm02Link **>(xbt_dynar_get_ptr(route, 0));
     gapAppend(size, link, action);
     XBT_DEBUG("Comm %p: %s -> %s gap=%f (lat=%f)",
-              action, src->getName(), dst->getName(), action->m_senderGap,
+              action, src->name(), dst->name(), action->m_senderGap,
               action->m_latency);
   }
 
@@ -440,7 +408,7 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
   }
 
   xbt_dynar_foreach(route, i, _link) {
-       link = static_cast<NetworkCm02Link*>(_link);
+    link = static_cast<NetworkCm02Link*>(_link);
     lmm_expand(p_maxminSystem, link->getConstraint(), action->getVariable(), 1.0);
   }
 
@@ -460,111 +428,60 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
   return action;
 }
 
-void NetworkCm02Model::addTraces(){
-  xbt_dict_cursor_t cursor = NULL;
-  char *trace_name, *elm;
-
-  static int called = 0;
-  if (called)
-    return;
-  called = 1;
-
-  /* connect all traces relative to network */
-  xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02Link *link = static_cast<NetworkCm02Link*>( Link::byName(elm) );
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_stateEvent = future_evt_set->add_trace(trace, 0.0, link);
-  }
-
-  xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02Link *link = static_cast<NetworkCm02Link*>( Link::byName(elm) );
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_speed.event = future_evt_set->add_trace(trace, 0.0, link);
-  }
-
-  xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    NetworkCm02Link *link = static_cast<NetworkCm02Link*>(Link::byName(elm));;
-
-    xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
-               trace_name, elm);
-    xbt_assert(trace,
-               "Cannot connect trace %s to link %s: trace undefined",
-               trace_name, elm);
-
-    link->p_latEvent = future_evt_set->add_trace(trace, 0.0, link);
-  }
-}
-
 /************
  * Resource *
  ************/
 NetworkCm02Link::NetworkCm02Link(NetworkCm02Model *model, const char *name, xbt_dict_t props,
-                                  lmm_system_t system,
-                                  double constraint_value,
-                                  sg_future_evt_set_t fes,
-                                  int initiallyOn,
-                                  tmgr_trace_t state_trace,
-                                  double metric_peak,
-                                  tmgr_trace_t metric_trace,
-                                  double lat_initial,
-                                  tmgr_trace_t lat_trace,
-                                  e_surf_link_sharing_policy_t policy)
-: Link(model, name, props, lmm_constraint_new(system, this, constraint_value), fes, state_trace)
+    lmm_system_t system,
+    double constraint_value,
+    int initiallyOn, tmgr_trace_t state_trace,
+    double bw_peak, tmgr_trace_t bw_trace,
+    double lat_initial, tmgr_trace_t lat_trace,
+    e_surf_link_sharing_policy_t policy)
+: Link(model, name, props, lmm_constraint_new(system, this, constraint_value), state_trace)
 {
   if (initiallyOn)
     turnOn();
   else
     turnOff();
 
-  p_speed.scale = 1.0;
-  p_speed.peak = metric_peak;
-  if (metric_trace)
-    p_speed.event = fes->add_trace(metric_trace, 0.0, this);
+  m_bandwidth.scale = 1.0;
+  m_bandwidth.peak = bw_peak;
+  if (bw_trace)
+    m_bandwidth.event = future_evt_set->add_trace(bw_trace, 0.0, this);
   else
-    p_speed.event = NULL;
+    m_bandwidth.event = NULL;
 
-  m_latCurrent = lat_initial;
+  m_latency.scale = 1.0;
+  m_latency.peak = lat_initial;
   if (lat_trace)
-       p_latEvent = fes->add_trace(lat_trace, 0.0, this);
+    m_latency.event = future_evt_set->add_trace(lat_trace, 0.0, this);
 
   if (policy == SURF_LINK_FATPIPE)
-       lmm_constraint_shared(getConstraint());
+    lmm_constraint_shared(getConstraint());
 }
 
 
 
-void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered,
-                                      double value, double date)
+void NetworkCm02Link::apply_event(tmgr_trace_iterator_t triggered, double value)
 {
 
   /* Find out which of my iterators was triggered, and react accordingly */
-  if (triggered == p_speed.event) {
-    updateBandwidth(value, date);
-    tmgr_trace_event_unref(&p_speed.event);
-  } else if (triggered == p_latEvent) {
-    updateLatency(value, date);
-    tmgr_trace_event_unref(&p_latEvent);
-  } else if (triggered == p_stateEvent) {
+  if (triggered == m_bandwidth.event) {
+    updateBandwidth(value);
+    tmgr_trace_event_unref(&m_bandwidth.event);
+
+  } else if (triggered == m_latency.event) {
+    updateLatency(value);
+    tmgr_trace_event_unref(&m_latency.event);
+
+  } else if (triggered == m_stateEvent) {
     if (value > 0)
       turnOn();
     else {
       lmm_variable_t var = NULL;
       lmm_element_t elem = NULL;
+      double now = surf_get_clock();
 
       turnOff();
       while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), getConstraint(), &elem))) {
@@ -572,40 +489,36 @@ void NetworkCm02Link::updateState(tmgr_trace_iterator_t triggered,
 
         if (action->getState() == SURF_ACTION_RUNNING ||
             action->getState() == SURF_ACTION_READY) {
-          action->setFinishTime(date);
+          action->setFinishTime(now);
           action->setState(SURF_ACTION_FAILED);
         }
       }
     }
-    tmgr_trace_event_unref(&p_stateEvent);
+    tmgr_trace_event_unref(&m_stateEvent);
   } else {
     xbt_die("Unknown event!\n");
   }
 
-  XBT_DEBUG
-      ("There was a resource state event, need to update actions related to the constraint (%p)",
+  XBT_DEBUG("There was a resource state event, need to update actions related to the constraint (%p)",
        getConstraint());
 }
 
-void NetworkCm02Link::updateBandwidth(double value, double date){
-  double delta = sg_weight_S_parameter / value - sg_weight_S_parameter /
-                 (p_speed.peak * p_speed.scale);
-  lmm_variable_t var = NULL;
-  lmm_element_t elem = NULL;
-  lmm_element_t nextelem = NULL;
-  int numelem = 0;
+void NetworkCm02Link::updateBandwidth(double value) {
 
-  NetworkCm02Action *action = NULL;
+  m_bandwidth.peak = value;
+
+  lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(),
+      sg_bandwidth_factor * (m_bandwidth.peak * m_bandwidth.scale));
+  TRACE_surf_link_set_bandwidth(surf_get_clock(), getName(), sg_bandwidth_factor * m_bandwidth.peak * m_bandwidth.scale);
 
-  p_speed.peak = value;
-  lmm_update_constraint_bound(getModel()->getMaxminSystem(),
-                              getConstraint(),
-                              sg_bandwidth_factor *
-                              (p_speed.peak * p_speed.scale));
-  TRACE_surf_link_set_bandwidth(date, getName(), sg_bandwidth_factor * p_speed.peak * p_speed.scale);
   if (sg_weight_S_parameter > 0) {
+    double delta = sg_weight_S_parameter / value - sg_weight_S_parameter / (m_bandwidth.peak * m_bandwidth.scale);
+
+    lmm_variable_t var;
+    lmm_element_t elem = NULL, nextelem = NULL;
+    int numelem = 0;
     while ((var = lmm_get_var_from_cnst_safe(getModel()->getMaxminSystem(), getConstraint(), &elem, &nextelem, &numelem))) {
-      action = (NetworkCm02Action*) lmm_variable_id(var);
+      NetworkCm02Action *action = (NetworkCm02Action*) lmm_variable_id(var);
       action->m_weight += delta;
       if (!action->isSuspended())
         lmm_update_variable_weight(getModel()->getMaxminSystem(), action->getVariable(), action->m_weight);
@@ -613,17 +526,17 @@ void NetworkCm02Link::updateBandwidth(double value, double date){
   }
 }
 
-void NetworkCm02Link::updateLatency(double value, double date){
-  double delta = value - m_latCurrent;
+void NetworkCm02Link::updateLatency(double value){
+  double delta = value - m_latency.peak;
   lmm_variable_t var = NULL;
   lmm_element_t elem = NULL;
   lmm_element_t nextelem = NULL;
   int numelem = 0;
-  NetworkCm02Action *action = NULL;
 
-  m_latCurrent = value;
+  m_latency.peak = value;
+
   while ((var = lmm_get_var_from_cnst_safe(getModel()->getMaxminSystem(), getConstraint(), &elem, &nextelem, &numelem))) {
-    action = (NetworkCm02Action*) lmm_variable_id(var);
+    NetworkCm02Action *action = (NetworkCm02Action*) lmm_variable_id(var);
     action->m_latCurrent += delta;
     action->m_weight += delta;
     if (action->m_rate < 0)
@@ -635,8 +548,7 @@ void NetworkCm02Link::updateLatency(double value, double date){
       if (action->m_rate < sg_tcp_gamma / (2.0 * action->m_latCurrent)) {
         XBT_INFO("Flow is limited BYBANDWIDTH");
       } else {
-        XBT_INFO("Flow is limited BYLATENCY, latency of flow is %f",
-                 action->m_latCurrent);
+        XBT_INFO("Flow is limited BYLATENCY, latency of flow is %f", action->m_latCurrent);
       }
     }
     if (!action->isSuspended())
index a7f479e..7637d0e 100644 (file)
@@ -29,12 +29,6 @@ class XBT_PRIVATE NetworkSmpiModel;
 }
 }
 
-/*********
- * Tools *
- *********/
-
-XBT_PRIVATE void net_define_callbacks(void);
-
 /*********
  * Model *
  *********/
@@ -47,20 +41,15 @@ public:
   NetworkCm02Model();
   ~NetworkCm02Model() { }
   Link* createLink(const char *name,
-                 double bw_initial,
-                 tmgr_trace_t bw_trace,
-                 double lat_initial,
-                 tmgr_trace_t lat_trace,
-                 int initiallyOn,
-                 tmgr_trace_t state_trace,
-                 e_surf_link_sharing_policy_t policy,
-                 xbt_dict_t properties) override;
-  void addTraces() override;
+      double bw_initial, tmgr_trace_t bw_trace,
+      double lat_initial, tmgr_trace_t lat_trace,
+      int initiallyOn, tmgr_trace_t state_trace,
+      e_surf_link_sharing_policy_t policy,
+      xbt_dict_t properties) override;
   void updateActionsStateLazy(double now, double delta) override;
   void updateActionsStateFull(double now, double delta) override;
-  Action *communicate(NetCard *src, NetCard *dst,
-                                          double size, double rate) override;
-  bool shareResourcesIsIdempotent() override {return true;}
+  Action *communicate(NetCard *src, NetCard *dst, double size, double rate) override;
+  bool next_occuring_event_isIdempotent() override {return true;}
   virtual void gapAppend(double /*size*/, const Link* /*link*/, NetworkAction * /*action*/) {};
 protected:
   bool m_haveGap = false;
@@ -73,22 +62,17 @@ protected:
 class NetworkCm02Link : public Link {
 public:
   NetworkCm02Link(NetworkCm02Model *model, const char *name, xbt_dict_t props,
-                                  lmm_system_t system,
-                                  double constraint_value,
-                                  sg_future_evt_set_t fes,
-                                  int initiallyOn,
-                                  tmgr_trace_t state_trace,
-                                  double metric_peak,
-                                  tmgr_trace_t metric_trace,
-                                  double lat_initial,
-                                  tmgr_trace_t lat_trace,
-                               e_surf_link_sharing_policy_t policy);
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
-  void updateBandwidth(double value, double date=surf_get_clock()) override;
-  void updateLatency(double value, double date=surf_get_clock()) override;
+      lmm_system_t system,
+      double constraint_value,
+      int initiallyOn, tmgr_trace_t state_trace,
+      double bw_peak, tmgr_trace_t bw_trace,
+      double lat_initial, tmgr_trace_t lat_trace,
+      e_surf_link_sharing_policy_t policy);
+
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
+  void updateBandwidth(double value) override;
+  void updateLatency(double value) override;
   virtual void gapAppend(double /*size*/, const Link* /*link*/, NetworkAction * /*action*/) {};
-
-
 };
 
 
index 876546d..533be80 100644 (file)
@@ -5,18 +5,8 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "network_constant.hpp"
-#include "surf/random_mgr.h"
-
-#include "host_interface.hpp"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
-static int host_number_int = 0;
-
-static void netcste_parse_nolink(sg_platf_link_cbarg_t link){
-       xbt_die("There is no link in the Constant network model. "
-                       "Please remove any link from your platform (and switch to routing='None')");
-}
 
 /*********
  * Model *
@@ -25,32 +15,30 @@ void surf_network_model_init_Constant()
 {
   xbt_assert(surf_network_model == NULL);
   surf_network_model = new simgrid::surf::NetworkConstantModel();
+  xbt_dynar_push(all_existing_models, &surf_network_model);
 
   routing_model_create(NULL);
 
-  simgrid::s4u::Host::onCreation.connect([](simgrid::s4u::Host&) {
-    host_number_int++;
+  simgrid::surf::on_link.connect([](sg_platf_link_cbarg_t link){
+      xbt_die("There is no link in the Constant network model. "
+          "Please remove any link from your platform (and switch to routing='None')");
   });
-  simgrid::surf::on_link.connect(netcste_parse_nolink);
-
-  simgrid::surf::Model *model = surf_network_model;
-  xbt_dynar_push(all_existing_models, &model);
 }
 
 namespace simgrid {
 namespace surf {
 
-double NetworkConstantModel::shareResources(double /*now*/)
+double NetworkConstantModel::next_occuring_event(double /*now*/)
 {
   NetworkConstantAction *action = NULL;
   double min = -1.0;
 
   ActionList *actionSet = getRunningActionSet();
   for(ActionList::iterator it(actionSet->begin()), itend(actionSet->end())
-        ; it != itend ; ++it) {
-       action = static_cast<NetworkConstantAction*>(&*it);
-        if (action->m_latency > 0 && (min < 0 || action->m_latency < min))
-            min = action->m_latency;
+      ; it != itend ; ++it) {
+    action = static_cast<NetworkConstantAction*>(&*it);
+    if (action->m_latency > 0 && (min < 0 || action->m_latency < min))
+      min = action->m_latency;
   }
 
   return min;
@@ -61,9 +49,9 @@ void NetworkConstantModel::updateActionsState(double /*now*/, double delta)
   NetworkConstantAction *action = NULL;
   ActionList *actionSet = getRunningActionSet();
   for(ActionList::iterator it(actionSet->begin()), itNext=it, itend(actionSet->end())
-     ; it != itend ; it=itNext) {
+      ; it != itend ; it=itNext) {
     ++itNext;
-       action = static_cast<NetworkConstantAction*>(&*it);
+    action = static_cast<NetworkConstantAction*>(&*it);
     if (action->m_latency > 0) {
       if (action->m_latency > delta) {
         double_update(&(action->m_latency), delta, sg_surf_precision);
@@ -79,7 +67,7 @@ void NetworkConstantModel::updateActionsState(double /*now*/, double delta)
       action->finish();
       action->setState(SURF_ACTION_DONE);
     } else if ((action->getMaxDuration() != NO_MAX_DURATION)
-               && (action->getMaxDuration() <= 0)) {
+        && (action->getMaxDuration() <= 0)) {
       action->finish();
       action->setState(SURF_ACTION_DONE);
     }
@@ -87,10 +75,10 @@ void NetworkConstantModel::updateActionsState(double /*now*/, double delta)
 }
 
 Action *NetworkConstantModel::communicate(NetCard *src, NetCard *dst,
-                                        double size, double rate)
+    double size, double rate)
 {
-  char *src_name = src->getName();
-  char *dst_name = dst->getName();
+  char *src_name = src->name();
+  char *dst_name = dst->name();
 
   XBT_IN("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
   NetworkConstantAction *action = new NetworkConstantAction(this, size, sg_latency_factor);
@@ -108,10 +96,10 @@ int NetworkConstantAction::unref()
 {
   m_refcount--;
   if (!m_refcount) {
-       if (action_hook.is_linked())
-         p_stateSet->erase(p_stateSet->iterator_to(*this));
+    if (action_hook.is_linked())
+      p_stateSet->erase(p_stateSet->iterator_to(*this));
     delete this;
-  return 1;
+    return 1;
   }
   return 0;
 }
index bd9b1ee..f428c3a 100644 (file)
@@ -30,21 +30,17 @@ public:
   ~NetworkConstantModel() { }
 
   Action *communicate(NetCard *src, NetCard *dst, double size, double rate) override;
-  double shareResources(double now) override;
+  double next_occuring_event(double now) override;
+  bool next_occuring_event_isIdempotent() override {return true;}
   void updateActionsState(double now, double delta) override;
-  bool shareResourcesIsIdempotent() override {return true;}
 
   Link*
   createLink(const char *name,
-      double bw_initial,
-      tmgr_trace_t bw_trace,
-      double lat_initial,
-      tmgr_trace_t lat_trace,
-      int initiallyOn,
-      tmgr_trace_t state_trace,
+      double bw_initial, tmgr_trace_t bw_trace,
+      double lat_initial, tmgr_trace_t lat_trace,
+      int initiallyOn, tmgr_trace_t state_trace,
       e_surf_link_sharing_policy_t policy,
       xbt_dict_t properties)          override { DIE_IMPOSSIBLE; }
-  void addTraces()                    override { DIE_IMPOSSIBLE; }
 };
 
 /**********
@@ -56,12 +52,12 @@ public:
   : NetworkAction(model_, size, false)
   , m_latInit(latency)
   {
-       m_latency = latency;
-       if (m_latency <= 0.0) {
-         p_stateSet = getModel()->getDoneActionSet();
-         p_stateSet->push_back(*this);
-       }
-       p_variable = NULL;
+  m_latency = latency;
+  if (m_latency <= 0.0) {
+    p_stateSet = getModel()->getDoneActionSet();
+    p_stateSet->push_back(*this);
+  }
+  p_variable = NULL;
   };
   int unref() override;
   void cancel() override;
index 8771a39..43efa04 100644 (file)
@@ -55,12 +55,12 @@ static void IB_action_init_callback(
   if(((NetworkIBModel*)surf_network_model)->active_nodes==NULL)
     xbt_die("IB comm added, without any node connected !");
   
-  IBNode* act_src= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, src->getName());
+  IBNode* act_src= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, src->name());
   if(act_src==NULL)
     xbt_die("could not find src node active comms !");
   //act_src->rate=rate;
   
-  IBNode* act_dst= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, dst->getName());
+  IBNode* act_dst= (IBNode*) xbt_dict_get_or_null(((NetworkIBModel*)surf_network_model)->active_nodes, dst->name());
   if(act_dst==NULL)
     xbt_die("could not find dst node active comms !");  
  // act_dst->rate=rate;
@@ -94,8 +94,9 @@ void surf_network_model_init_IB(void)
 
   if (surf_network_model)
     return;
+
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkIBModel();
-  net_define_callbacks();
   xbt_dynar_push(all_existing_models, &surf_network_model);
   networkActionStateChangedCallbacks.connect(IB_action_state_changed_callback);
   networkCommunicateCallbacks.connect(IB_action_init_callback);
@@ -104,6 +105,8 @@ void surf_network_model_init_IB(void)
   
 }
 
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
+
 namespace simgrid {
 namespace surf {
 
@@ -115,12 +118,12 @@ NetworkIBModel::NetworkIBModel()
   const char* IB_factors_string=sg_cfg_get_string("smpi/IB_penalty_factors");
   xbt_dynar_t radical_elements = xbt_str_split(IB_factors_string, ";");
   
-  if(xbt_dynar_length(radical_elements)!=3)
-    surf_parse_error("smpi/IB_penalty_factors should be provided and contain 3 elements, semi-colon separated : for example 0.965;0.925;1.35");
+  surf_parse_assert(xbt_dynar_length(radical_elements)==3,
+    "smpi/IB_penalty_factors should be provided and contain 3 elements, semi-colon separated : for example 0.965;0.925;1.35");
   
-  Be = atof(xbt_dynar_get_as(radical_elements, 0, char *));
-  Bs = atof(xbt_dynar_get_as(radical_elements, 1, char *));
-  ys = atof(xbt_dynar_get_as(radical_elements, 2, char *));
+  Be = xbt_str_parse_double(xbt_dynar_get_as(radical_elements, 0, char *), "First part of smpi/IB_penalty_factors is not numerical: %s");
+  Bs = xbt_str_parse_double(xbt_dynar_get_as(radical_elements, 1, char *), "Second part of smpi/IB_penalty_factors is not numerical: %s");
+  ys = xbt_str_parse_double(xbt_dynar_get_as(radical_elements, 2, char *), "Third part of smpi/IB_penalty_factors is not numerical: %s");
 
   xbt_dynar_free(&radical_elements);
 }
@@ -145,9 +148,9 @@ void NetworkIBModel::computeIBfactors(IBNode *root) {
 
     if(num_comm_out!=1){
       if((*it)->destination->nbActiveCommsDown > 2)//number of comms sent to the receiving node
-       my_penalty_out = num_comm_out * Bs * ys;
+  my_penalty_out = num_comm_out * Bs * ys;
       else
-       my_penalty_out = num_comm_out * Bs;
+  my_penalty_out = num_comm_out * Bs;
     }
 
     max_penalty_out = std::max(max_penalty_out,my_penalty_out);
@@ -160,8 +163,8 @@ void NetworkIBModel::computeIBfactors(IBNode *root) {
     int nb_comms = (*it)->destination->nbActiveCommsDown;//total number of incoming comms
     if(nb_comms!=1)
       my_penalty_in = ((*it)->destination->ActiveCommsDown)[root] //number of comm sent to dest by root node
-                     * Be 
-                     * (*it)->destination->ActiveCommsDown.size();//number of different nodes sending to dest
+          * Be 
+          * (*it)->destination->ActiveCommsDown.size();//number of different nodes sending to dest
     
     double penalty = std::max(my_penalty_in,max_penalty_out);
     
@@ -214,11 +217,11 @@ void NetworkIBModel::updateIBfactors(NetworkAction *action, IBNode *from, IBNode
 
     to->nbActiveCommsDown--;
     for (std::vector<ActiveComm*>::iterator it= from->ActiveCommsUp.begin(); 
-        it != from->ActiveCommsUp.end(); ++it) {
+   it != from->ActiveCommsUp.end(); ++it) {
       if((*it)->action==action){
-       comm=(*it);
-       from->ActiveCommsUp.erase(it);
-       break;
+  comm=(*it);
+  from->ActiveCommsUp.erase(it);
+  break;
       }
     }
     action->unref();
index 14cde62..547145b 100644 (file)
@@ -38,19 +38,19 @@ double sg_link_latency(Link *link){
   return link->getLatency();
 }
 void* sg_link_data(Link *link) {
-       return link->getData();
+  return link->getData();
 }
 void sg_link_data_set(Link *link,void *data) {
-       link->setData(data);
+  link->setData(data);
 }
 int sg_link_count(void) {
-       return Link::linksCount();
+  return Link::linksCount();
 }
 Link** sg_link_list(void) {
-       return Link::linksList();
+  return Link::linksList();
 }
 void sg_link_exit(void) {
-       Link::linksExit();
+  Link::linksExit();
 }
 
 }
@@ -64,31 +64,31 @@ namespace surf {
 
 boost::unordered_map<std::string,Link *> *Link::links = new boost::unordered_map<std::string,Link *>();
 Link *Link::byName(const char* name) {
-         Link * res = NULL;
-         try {
-                 res = links->at(name);
-         } catch (std::out_of_range& e) {}
+    Link * res = NULL;
+    try {
+      res = links->at(name);
+    } catch (std::out_of_range& e) {}
 
-         return res;
+    return res;
 }
 /** @brief Returns the amount of links in the platform */
 int Link::linksCount() {
-         return links->size();
+    return links->size();
 }
 /** @brief Returns a list of all existing links */
 Link **Link::linksList() {
-         Link **res = xbt_new(Link*, (int)links->size());
-         int i=0;
-         for (auto kv : *links) {
-                 res[i++] = kv.second;
-         }
-         return res;
+    Link **res = xbt_new(Link*, (int)links->size());
+    int i=0;
+    for (auto kv : *links) {
+      res[i++] = kv.second;
+    }
+    return res;
 }
 /** @brief destructor of the static data */
 void Link::linksExit() {
-       for (auto kv : *links)
-               (kv.second)->destroy();
-       delete links;
+  for (auto kv : *links)
+    (kv.second)->destroy();
+  delete links;
 }
 
 /*************
@@ -127,13 +127,13 @@ void netlink_parse_init(sg_platf_link_cbarg_t link){
                       link->state_trace, link->policy, link->properties);
     xbt_free(link_id);
   } else {
-         surf_network_model->createLink(link->id,
-                         link->bandwidth,
-                         link->bandwidth_trace,
-                         link->latency,
-                         link->latency_trace,
-                         link->initiallyOn,
-                         link->state_trace, link->policy, link->properties);
+    surf_network_model->createLink(link->id,
+        link->bandwidth,
+        link->bandwidth_trace,
+        link->latency,
+        link->latency_trace,
+        link->initiallyOn,
+        link->state_trace, link->policy, link->properties);
   }
 }
 
@@ -158,7 +158,7 @@ double NetworkModel::bandwidthConstraint(double rate, double /*bound*/, double /
   return rate;
 }
 
-double NetworkModel::shareResourcesFull(double now)
+double NetworkModel::next_occuring_event_full(double now)
 {
   NetworkAction *action = NULL;
   ActionList *runningActions = surf_network_model->getRunningActionSet();
@@ -196,18 +196,21 @@ Link::Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t prop
 {
   links->insert({name, this});
 
+  m_latency.scale = 1;
+  m_bandwidth.scale = 1;
   XBT_DEBUG("Create link '%s'",name);
 }
 
 Link::Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props,
-                                lmm_constraint_t constraint,
-                          sg_future_evt_set_t fes,
-                            tmgr_trace_t state_trace)
+                     lmm_constraint_t constraint,
+                       tmgr_trace_t state_trace)
 : Resource(model, name, constraint),
   PropertyHolder(props)
 {
+  m_latency.scale = 1;
+  m_bandwidth.scale = 1;
   if (state_trace)
-    p_stateEvent = fes->add_trace(state_trace, 0.0, this);
+    m_stateEvent = future_evt_set->add_trace(state_trace, 0.0, this);
 
   links->insert({name, this});
   XBT_DEBUG("Create link '%s'",name);
@@ -216,7 +219,7 @@ Link::Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t prop
 
 /** @brief use destroy() instead of this destructor */
 Link::~Link() {
-       xbt_assert(currentlyDestroying_, "Don't delete Links directly. Call destroy() instead.");
+  xbt_assert(currentlyDestroying_, "Don't delete Links directly. Call destroy() instead.");
 }
 /** @brief Fire the require callbacks and destroy the object
  *
@@ -224,11 +227,11 @@ Link::~Link() {
  */
 void Link::destroy()
 {
-       if (!currentlyDestroying_) {
-               currentlyDestroying_ = true;
-               onDestruction(this);
-               delete this;
-       }
+  if (!currentlyDestroying_) {
+    currentlyDestroying_ = true;
+    onDestruction(this);
+    delete this;
+  }
 }
 
 bool Link::isUsed()
@@ -238,12 +241,12 @@ bool Link::isUsed()
 
 double Link::getLatency()
 {
-  return m_latCurrent;
+  return m_latency.peak * m_latency.scale;
 }
 
 double Link::getBandwidth()
 {
-  return p_speed.peak * p_speed.scale;
+  return m_bandwidth.peak * m_bandwidth.scale;
 }
 
 int Link::sharingPolicy()
@@ -263,6 +266,25 @@ void Link::turnOff(){
     onStateChange(this);
   }
 }
+void Link::set_state_trace(tmgr_trace_t trace)
+{
+  xbt_assert(m_stateEvent==NULL,"Cannot set a second state trace to Link %s", getName());
+
+  m_stateEvent = future_evt_set->add_trace(trace, 0.0, this);
+}
+void Link::set_bandwidth_trace(tmgr_trace_t trace)
+{
+  xbt_assert(m_bandwidth.event==NULL,"Cannot set a second bandwidth trace to Link %s", getName());
+
+  m_bandwidth.event = future_evt_set->add_trace(trace, 0.0, this);
+}
+void Link::set_latency_trace(tmgr_trace_t trace)
+{
+  xbt_assert(m_latency.event==NULL,"Cannot set a second latency trace to Link %s", getName());
+
+  m_latency.event = future_evt_set->add_trace(trace, 0.0, this);
+}
+
 
 /**********
  * Action *
index 0ead107..ca9f7e1 100644 (file)
@@ -68,12 +68,12 @@ public:
 
   /** @brief Destructor */
   ~NetworkModel() {
-       if (p_maxminSystem)
-         lmm_system_free(p_maxminSystem);
-       if (p_actionHeap)
-         xbt_heap_free(p_actionHeap);
-       if (p_modifiedSet)
-         delete p_modifiedSet;
+  if (p_maxminSystem)
+    lmm_system_free(p_maxminSystem);
+  if (p_actionHeap)
+    xbt_heap_free(p_actionHeap);
+  if (p_modifiedSet)
+    delete p_modifiedSet;
   }
 
   /**
@@ -113,7 +113,7 @@ public:
    * @return The action representing the communication
    */
   virtual Action *communicate(NetCard *src, NetCard *dst,
-                                          double size, double rate)=0;
+                               double size, double rate)=0;
 
   /** @brief Function pointer to the function to use to solve the lmm_system_t
    *
@@ -155,7 +155,7 @@ public:
    * @return The new bandwidth.
    */
   virtual double bandwidthConstraint(double rate, double bound, double size);
-  double shareResourcesFull(double now);
+  double next_occuring_event_full(double now) override;
 };
 
 /************
@@ -166,8 +166,8 @@ public:
   * @details A Link represents the link between two [hosts](\ref Host)
   */
 class Link :
-               public simgrid::surf::Resource,
-               public simgrid::surf::PropertyHolder {
+    public simgrid::surf::Resource,
+    public simgrid::surf::PropertyHolder {
 public:
   /**
    * @brief Link constructor
@@ -185,12 +185,10 @@ public:
    * @param name The name of the Link
    * @param props Dictionary of properties associated to this Link
    * @param constraint The lmm constraint associated to this Cpu if it is part of a LMM component
-   * @param fes Future Event Set in which our events must be registered
    * @param state_trace [TODO]
    */
   Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props,
               lmm_constraint_t constraint,
-              sg_future_evt_set_t fes,
               tmgr_trace_t state_trace);
 
   /* Link destruction logic */
@@ -198,9 +196,9 @@ public:
 protected:
   ~Link();
 public:
-       void destroy(); // Must be called instead of the destructor
+  void destroy(); // Must be called instead of the destructor
 private:
-       bool currentlyDestroying_ = false;
+  bool currentlyDestroying_ = false;
 
 public:
   /** @brief Callback signal fired when a new Link is created.
@@ -220,13 +218,13 @@ public:
   virtual double getBandwidth();
 
   /** @brief Update the bandwidth in bytes per second of current Link */
-  virtual void updateBandwidth(double value, double date=surf_get_clock())=0;
+  virtual void updateBandwidth(double value)=0;
 
   /** @brief Get the latency in seconds of current Link */
   virtual double getLatency();
 
   /** @brief Update the latency in seconds of current Link */
-  virtual void updateLatency(double value, double date=surf_get_clock())=0;
+  virtual void updateLatency(double value)=0;
 
   /** @brief The sharing policy is a @{link e_surf_link_sharing_policy_t::EType} (0: FATPIPE, 1: SHARED, 2: FULLDUPLEX) */
   virtual int sharingPolicy();
@@ -237,14 +235,13 @@ public:
   void turnOn() override;
   void turnOff() override;
 
-  /* Using this object with the public part of
-    model does not make sense */
-  double m_latCurrent = 0;
-  tmgr_trace_iterator_t p_latEvent = NULL;
+  virtual void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). Trace must contain boolean values. */
+  virtual void set_bandwidth_trace(tmgr_trace_t trace); /*< setup the trace file with bandwidth events (peak speed changes due to external load). Trace must contain percentages (value between 0 and 1). */
+  virtual void set_latency_trace(tmgr_trace_t trace); /*< setup the trace file with latency events (peak latency changes due to external load). Trace must contain absolute values */
 
-  /* LMM */
-  tmgr_trace_iterator_t p_stateEvent = NULL;
-  s_surf_metric_t p_speed;
+  tmgr_trace_iterator_t m_stateEvent = NULL;
+  s_surf_metric_t m_latency = {1.0,0,NULL};
+  s_surf_metric_t m_bandwidth = {1.0,0,NULL};
 
   /* User data */
 public:
index fd34a63..a14c184 100644 (file)
@@ -8,7 +8,6 @@
 #include "src/surf/surf_private.h"
 #include "src/surf/host_interface.hpp"
 #include "simgrid/sg_config.h"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ns3);
 
@@ -23,23 +22,6 @@ extern xbt_dict_t dict_socket;
  * Callbacks *
  *************/
 
-static void replace_bdw_ns3(char ** bdw)
-{
-  char *temp = xbt_strdup(*bdw);
-  xbt_free(*bdw);
-  *bdw = bprintf("%fBps",atof(temp));
-  xbt_free(temp);
-
-}
-
-static void replace_lat_ns3(char ** lat)
-{
-  char *temp = xbt_strdup(*lat);
-  xbt_free(*lat);
-  *lat = bprintf("%fs",atof(temp));
-  xbt_free(temp);
-}
-
 static void simgrid_ns3_add_host(simgrid::s4u::Host& host)
 {
   const char* id = host.name().c_str();
@@ -66,7 +48,7 @@ static void parse_ns3_add_link(sg_platf_link_cbarg_t link)
 
 static void simgrid_ns3_add_router(simgrid::surf::NetCard* router)
 {
-  const char* router_id = router->getName();
+  const char* router_id = router->name();
   XBT_DEBUG("NS3_ADD_ROUTER '%s'",router_id);
   xbt_lib_set(as_router_lib,
               router_id,
@@ -77,20 +59,14 @@ static void simgrid_ns3_add_router(simgrid::surf::NetCard* router)
 
 static void parse_ns3_add_AS(simgrid::surf::As* as)
 {
-  const char* as_id = as->p_name;
+  const char* as_id = as->name_;
   XBT_DEBUG("NS3_ADD_AS '%s'", as_id);
   xbt_lib_set(as_router_lib, as_id, NS3_ASR_LEVEL, ns3_add_AS(as_id) );
 }
 
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
 static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
 {
-  const char *cluster_prefix = cluster->prefix;
-  const char *cluster_suffix = cluster->suffix;
-  const char *cluster_radical = cluster->radical;
-  const char *cluster_bb_bw = bprintf("%f",cluster->bb_bw);
-  const char *cluster_bb_lat = bprintf("%f",cluster->bb_lat);
-  const char *cluster_bw = bprintf("%f",cluster->bw);
-  const char *cluster_lat = bprintf("%f",cluster->lat);
   const char *groups = NULL;
 
   int start, end, i;
@@ -102,7 +78,7 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
 
   char *router_id,*host_id;
 
-  radical_elements = xbt_str_split(cluster_radical, ",");
+  radical_elements = xbt_str_split(cluster->radical, ",");
   xbt_dynar_foreach(radical_elements, iter, groups) {
     radical_ends = xbt_str_split(groups, "-");
 
@@ -110,7 +86,7 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
     case 1:
       start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
       xbt_dynar_push_as(tab_elements_num, int, start);
-      router_id = bprintf("ns3_%s%d%s", cluster_prefix, start, cluster_suffix);
+      router_id = bprintf("ns3_%s%d%s", cluster->prefix, start, cluster->suffix);
       simgrid::s4u::Host::by_name_or_create(router_id)
         ->extension_set(NS3_EXTENSION_ID, ns3_add_host_cluster(router_id));
       XBT_DEBUG("NS3_ADD_ROUTER '%s'",router_id);
@@ -122,7 +98,7 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
       end = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
       for (i = start; i <= end; i++){
         xbt_dynar_push_as(tab_elements_num, int, i);
-        router_id = bprintf("ns3_%s%d%s", cluster_prefix, i, cluster_suffix);
+        router_id = bprintf("ns3_%s%d%s", cluster->prefix, i, cluster->suffix);
         simgrid::s4u::Host::by_name_or_create(router_id)
           ->extension_set(NS3_EXTENSION_ID, ns3_add_host_cluster(router_id));
         XBT_DEBUG("NS3_ADD_ROUTER '%s'",router_id);
@@ -138,15 +114,13 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
   //Create links
   unsigned int cpt;
   int elmts;
-  char * lat = xbt_strdup(cluster_lat);
-  char * bw =  xbt_strdup(cluster_bw);
-  replace_lat_ns3(&lat);
-  replace_bdw_ns3(&bw);
+  char * lat = bprintf("%fs", cluster->lat);
+  char * bw =  bprintf("%fBps", cluster->bw);
 
   xbt_dynar_foreach(tab_elements_num,cpt,elmts)
   {
-    host_id   = bprintf("%s%d%s", cluster_prefix, elmts, cluster_suffix);
-    router_id = bprintf("ns3_%s%d%s", cluster_prefix, elmts, cluster_suffix);
+    host_id   = bprintf("%s%d%s", cluster->prefix, elmts, cluster->suffix);
+    router_id = bprintf("ns3_%s%d%s", cluster->prefix, elmts, cluster->suffix);
     XBT_DEBUG("Create link from '%s' to '%s'",host_id,router_id);
 
     ns3_nodes_t host_src = ns3_find_host(host_id);
@@ -162,14 +136,14 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster)
     free(router_id);
     free(host_id);
   }
+  xbt_free(lat);
+  xbt_free(bw);
   xbt_dynar_free(&tab_elements_num);
 
 
   //Create link backbone
-  lat = xbt_strdup(cluster_bb_lat);
-  bw =  xbt_strdup(cluster_bb_bw);
-  replace_lat_ns3(&lat);
-  replace_bdw_ns3(&bw);
+  lat = bprintf("%fs", cluster->bb_lat);
+  bw =  bprintf("%fBps", cluster->bb_bw);
   ns3_add_cluster(bw,lat,cluster->id);
   xbt_free(lat);
   xbt_free(bw);
@@ -191,17 +165,15 @@ static void create_ns3_topology(void)
   simgrid::surf::Onelink *onelink;
   unsigned int iter;
   xbt_dynar_foreach(onelink_routes, iter, onelink) {
-    char *src = onelink->p_src->getName();
-    char *dst = onelink->p_dst->getName();
+    char *src = onelink->src_->name();
+    char *dst = onelink->dst_->name();
     simgrid::surf::NetworkNS3Link *link =
-      static_cast<simgrid::surf::NetworkNS3Link *>(onelink->p_link);
+      static_cast<simgrid::surf::NetworkNS3Link *>(onelink->link_);
 
     if (strcmp(src,dst) && link->m_created){
       XBT_DEBUG("Route from '%s' to '%s' with link '%s'", src, dst, link->getName());
-      char * link_bdw = xbt_strdup(link->p_bdw);
-      char * link_lat = xbt_strdup(link->p_lat);
-      replace_lat_ns3(&link_lat);
-      replace_bdw_ns3(&link_bdw);
+      char * link_bdw = bprintf("%fBps", link->getBandwidth());
+      char * link_lat = bprintf("%fs", link->getLatency());
       link->m_created = 0;
 
       //   XBT_DEBUG("src (%s), dst (%s), src_id = %d, dst_id = %d",src,dst, src_id, dst_id);
@@ -209,12 +181,14 @@ static void create_ns3_topology(void)
 
       //create link ns3
       ns3_nodes_t host_src = ns3_find_host(src);
-      if(!host_src) host_src = static_cast<ns3_nodes_t>(xbt_lib_get_or_null(as_router_lib,src,NS3_ASR_LEVEL));
+      if (!host_src)
+        host_src = static_cast<ns3_nodes_t>(xbt_lib_get_or_null(as_router_lib,src,NS3_ASR_LEVEL));
       ns3_nodes_t host_dst = ns3_find_host(dst);
-      if(!host_dst) host_dst = static_cast<ns3_nodes_t>(xbt_lib_get_or_null(as_router_lib,dst,NS3_ASR_LEVEL));
+      if(!host_dst)
+        host_dst = static_cast<ns3_nodes_t>(xbt_lib_get_or_null(as_router_lib,dst,NS3_ASR_LEVEL));
 
-      if(host_src && host_dst){}
-      else xbt_die("\tns3_add_link from %d to %d",host_src->node_num,host_dst->node_num);
+      if (!host_src || !host_dst)
+          xbt_die("\tns3_add_link from %d to %d",host_src->node_num,host_dst->node_num);
 
       ns3_add_link(host_src->node_num,host_src->type,host_dst->node_num,host_dst->type,link_bdw,link_lat);
 
@@ -285,14 +259,14 @@ NetworkNS3Model::~NetworkNS3Model() {
 }
 
 Link* NetworkNS3Model::createLink(const char *name,
-                                        double bw_initial,
-                                        tmgr_trace_t bw_trace,
-                                        double lat_initial,
-                                        tmgr_trace_t lat_trace,
-                                        int initiallyOn,
-                                        tmgr_trace_t state_trace,
-                                        e_surf_link_sharing_policy_t policy,
-                                        xbt_dict_t properties){
+                                   double bw_initial,
+                                   tmgr_trace_t bw_trace,
+                                   double lat_initial,
+                                   tmgr_trace_t lat_trace,
+                                   int initiallyOn,
+                                   tmgr_trace_t state_trace,
+                                   e_surf_link_sharing_policy_t policy,
+                                   xbt_dict_t properties){
   if (bw_trace)
     XBT_INFO("The NS3 network model doesn't support bandwidth state traces");
   if (lat_trace)
@@ -312,12 +286,12 @@ xbt_dynar_t NetworkNS3Model::getRoute(NetCard *src, NetCard *dst)
 }
 
 Action *NetworkNS3Model::communicate(NetCard *src, NetCard *dst,
-                                              double size, double rate)
+                                   double size, double rate)
 {
-  XBT_DEBUG("Communicate from %s to %s", src->getName(), dst->getName());
+  XBT_DEBUG("Communicate from %s to %s", src->name(), dst->name());
   NetworkNS3Action *action = new NetworkNS3Action(this, size, 0);
 
-  ns3_create_flow(src->getName(), dst->getName(), surf_get_clock(), size, action);
+  ns3_create_flow(src->name(), dst->name(), surf_get_clock(), size, action);
 
   action->m_lastSent = 0;
   action->p_srcElm = src;
@@ -327,9 +301,9 @@ Action *NetworkNS3Model::communicate(NetCard *src, NetCard *dst,
   return (surf_action_t) action;
 }
 
-double NetworkNS3Model::shareResources(double now)
+double NetworkNS3Model::next_occuring_event(double now)
 {
-  XBT_DEBUG("ns3_share_resources");
+  XBT_DEBUG("ns3_next_occuring_event");
 
   //get the first relevant value from the running_actions list
   if (!getRunningActionSet()->size() || now == 0.0)
@@ -372,23 +346,23 @@ void NetworkNS3Model::updateActionsState(double now, double delta)
     action->setRemains(action->getCost() - ns3_get_socket_sent(data));
 
     if (TRACE_is_enabled() &&
-               action->getState() == SURF_ACTION_RUNNING){
-       double data_sent = ns3_get_socket_sent(data);
-       double data_delta_sent = data_sent - action->m_lastSent;
-
-       xbt_dynar_t route = NULL;
-
-       routing_platf->getRouteAndLatency (action->p_srcElm, action->p_dstElm, &route, NULL);
-       unsigned int i;
-       for (i = 0; i < xbt_dynar_length (route); i++){
-               NetworkNS3Link* link = ((NetworkNS3Link*)xbt_dynar_get_ptr(route, i));
-               TRACE_surf_link_set_utilization (link->getName(),
-                               action->getCategory(),
-                                       (data_delta_sent)/delta,
-                                       now-delta,
-                                       delta);
-       }
-       action->m_lastSent = data_sent;
+        action->getState() == SURF_ACTION_RUNNING){
+      double data_sent = ns3_get_socket_sent(data);
+      double data_delta_sent = data_sent - action->m_lastSent;
+
+      xbt_dynar_t route = NULL;
+
+      routing_platf->getRouteAndLatency (action->p_srcElm, action->p_dstElm, &route, NULL);
+      unsigned int i;
+      for (i = 0; i < xbt_dynar_length (route); i++){
+        NetworkNS3Link* link = ((NetworkNS3Link*)xbt_dynar_get_ptr(route, i));
+        TRACE_surf_link_set_utilization (link->getName(),
+            action->getCategory(),
+          (data_delta_sent)/delta,
+          now-delta,
+          delta);
+      }
+      action->m_lastSent = data_sent;
     }
 
     if(ns3_get_socket_is_finished(data) == 1){
@@ -415,21 +389,21 @@ void NetworkNS3Model::updateActionsState(double now, double delta)
  ************/
 
 NetworkNS3Link::NetworkNS3Link(NetworkNS3Model *model, const char *name, xbt_dict_t props,
-                                      double bw_initial, double lat_initial)
+                           double bw_initial, double lat_initial)
  : Link(model, name, props)
- , p_lat(bprintf("%f", lat_initial))
- , p_bdw(bprintf("%f", bw_initial))
  , m_created(1)
 {
+  m_bandwidth.peak = bw_initial;
+  m_latency.peak = lat_initial;
 }
 
 NetworkNS3Link::~NetworkNS3Link()
 {
 }
 
-void NetworkNS3Link::updateState(tmgr_trace_iterator_t event_type, double value, double date)
+void NetworkNS3Link::apply_event(tmgr_trace_iterator_t event, double value)
 {
-
+  THROW_UNIMPLEMENTED;
 }
 
 /**********
@@ -466,10 +440,10 @@ int NetworkNS3Action::unref()
 {
   m_refcount--;
   if (!m_refcount) {
-       if (action_hook.is_linked())
-         p_stateSet->erase(p_stateSet->iterator_to(*this));
+  if (action_hook.is_linked())
+    p_stateSet->erase(p_stateSet->iterator_to(*this));
     XBT_DEBUG ("Removing action %p", this);
-       delete this;
+  delete this;
     return 1;
   }
   return 0;
index 1fea2d7..716dc4c 100644 (file)
@@ -44,21 +44,19 @@ public:
 
   ~NetworkNS3Model();
   Link* createLink(const char *name,
-                                        double bw_initial,
-                                        tmgr_trace_t bw_trace,
-                                        double lat_initial,
-                                        tmgr_trace_t lat_trace,
-                                        int initiallyOn,
-                                        tmgr_trace_t state_trace,
-                                        e_surf_link_sharing_policy_t policy,
-                                        xbt_dict_t properties);
+                                     double bw_initial,
+                                     tmgr_trace_t bw_trace,
+                                     double lat_initial,
+                                     tmgr_trace_t lat_trace,
+                                     int initiallyOn,
+                                     tmgr_trace_t state_trace,
+                                     e_surf_link_sharing_policy_t policy,
+                                     xbt_dict_t properties);
   xbt_dynar_t getRoute(NetCard *src, NetCard *dst);
-  Action *communicate(NetCard *src, NetCard *dst,
-                                          double size, double rate);
-  double shareResources(double now);
-  void updateActionsState(double now, double delta);
-  void addTraces(){DIE_IMPOSSIBLE;}
-  bool shareResourcesIsIdempotent() {return false;}
+  Action *communicate(NetCard *src, NetCard *dst, double size, double rate);
+  double next_occuring_event(double now) override;
+  bool next_occuring_event_isIdempotent() {return false;}
+  void updateActionsState(double now, double delta) override;
 };
 
 /************
@@ -67,19 +65,14 @@ public:
 class NetworkNS3Link : public Link {
 public:
   NetworkNS3Link(NetworkNS3Model *model, const char *name, xbt_dict_t props,
-                        double bw_initial, double lat_initial);
+               double bw_initial, double lat_initial);
   ~NetworkNS3Link();
 
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date);
-  double getLatency(){THROW_UNIMPLEMENTED;}
-  double getBandwidth(){THROW_UNIMPLEMENTED;}
-  void updateBandwidth(double value, double date=surf_get_clock()){THROW_UNIMPLEMENTED;}
-  void updateLatency(double value, double date=surf_get_clock()){THROW_UNIMPLEMENTED;}
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
+  void updateBandwidth(double value) override {THROW_UNIMPLEMENTED;}
+  void updateLatency(double value) override {THROW_UNIMPLEMENTED;}
 
 //private:
- char *p_id;
- char *p_lat;
- char *p_bdw;
  int m_created;
 };
 
index c0d682f..17a09e1 100644 (file)
@@ -19,7 +19,7 @@ xbt_dynar_t smpi_bw_factor = NULL;
 xbt_dynar_t smpi_lat_factor = NULL;
 
 typedef struct s_smpi_factor *smpi_factor_t;
-typedef struct s_smpi_factor {
+typedef struct s_smpi_factor { // FIXME: s_smpi_factor_multival (defined in smpi_base) should be used instead to dedupplicate this code
   long factor;
   double value;
 } s_smpi_factor_t;
@@ -32,7 +32,7 @@ static int factor_cmp(const void *pa, const void *pb)
          (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0;
 }
 
-
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
 static xbt_dynar_t parse_factor(const char *smpi_coef_string)
 {
   char *value = NULL;
@@ -45,16 +45,21 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string)
   xbt_dynar_foreach(radical_elements, iter, value) {
 
     radical_elements2 = xbt_str_split(value, ":");
-    if (xbt_dynar_length(radical_elements2) != 2)
-      surf_parse_error("Malformed radical for smpi factor!");
-    fact.factor = atol(xbt_dynar_get_as(radical_elements2, 0, char *));
-    fact.value = atof(xbt_dynar_get_as(radical_elements2, 1, char *));
+    surf_parse_assert(xbt_dynar_length(radical_elements2) == 2,
+        "Malformed radical '%s' for smpi factor. I was expecting something like 'a:b'", value);
+
+    char *errmsg = bprintf("Invalid factor in chunk #%d: %%s", iter+1);
+    fact.factor = xbt_str_parse_int(xbt_dynar_get_as(radical_elements2, 0, char *), errmsg);
+    xbt_free(errmsg);
+    fact.value = xbt_str_parse_double(xbt_dynar_get_as(radical_elements2, 1, char *), errmsg);
+    errmsg = bprintf("Invalid factor value in chunk #%d: %%s", iter+1);
+    xbt_free(errmsg);
+
     xbt_dynar_push_as(smpi_factor, s_smpi_factor_t, fact);
     XBT_DEBUG("smpi_factor:\t%ld : %f", fact.factor, fact.value);
     xbt_dynar_free(&radical_elements2);
   }
   xbt_dynar_free(&radical_elements);
-  iter=0;
   xbt_dynar_sort(smpi_factor, &factor_cmp);
   xbt_dynar_foreach(smpi_factor, iter, fact) {
     XBT_DEBUG("ordered smpi_factor:\t%ld : %f", fact.factor, fact.value);
@@ -83,8 +88,8 @@ void surf_network_model_init_SMPI(void)
 
   if (surf_network_model)
     return;
+  simgrid::surf::on_link.connect(netlink_parse_init);
   surf_network_model = new simgrid::surf::NetworkSmpiModel();
-  net_define_callbacks();
   xbt_dynar_push(all_existing_models, &surf_network_model);
 
   xbt_cfg_setdefault_double(_sg_cfg_set, "network/sender_gap", 10e-6);
@@ -96,21 +101,13 @@ namespace surf {
 
 NetworkSmpiModel::NetworkSmpiModel()
  : NetworkCm02Model() {
-       m_haveGap=true;
+  m_haveGap=true;
 }
 
 NetworkSmpiModel::~NetworkSmpiModel(){
-  if (gap_lookup) {
-    xbt_dict_free(&gap_lookup);
-  }
-  if (smpi_bw_factor) {
-    xbt_dynar_free(&smpi_bw_factor);
-    smpi_bw_factor = NULL;
-  }
-  if (smpi_lat_factor) {
-    xbt_dynar_free(&smpi_lat_factor);
-    smpi_lat_factor = NULL;
-  }
+  xbt_dict_free(&gap_lookup);
+  xbt_dynar_free(&smpi_bw_factor);
+  xbt_dynar_free(&smpi_lat_factor);
 }
 
 void NetworkSmpiModel::gapAppend(double size, Link* link, NetworkAction *act)
index 3b516ff..4507c9d 100644 (file)
@@ -227,7 +227,7 @@ static char* transformIpv4Address (Ipv4Address from){
 
 void ns3_add_link(int src, e_ns3_network_element_type_t type_src,
                                        int dst, e_ns3_network_element_type_t type_dst,
-                                       char * bw,char * lat)
+                                       char *bw, char *lat)
 {
        if(number_of_links == 1 ) {
                LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
diff --git a/src/surf/platf_generator.c b/src/surf/platf_generator.c
deleted file mode 100644 (file)
index 65c9a3d..0000000
+++ /dev/null
@@ -1,743 +0,0 @@
-/* Copyright (c) 2012, 2014-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/platf_generator.h"
-#include "platf_generator_private.h"
-#include "xbt.h"
-#include "xbt/RngStream.h"
-#include "surf/simgrid_dtd.h"
-#include "surf_private.h"
-#include <math.h>
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(platf_generator, surf, "Platform Generator");
-
-static xbt_graph_t platform_graph = NULL;
-static xbt_dynar_t promoter_dynar = NULL;
-static xbt_dynar_t labeler_dynar = NULL;
-
-static RngStream rng_stream = NULL;
-
-static unsigned long last_link_id = 0;
-
-xbt_graph_t platf_graph_get(void) {
-  // We need some debug, so let's add this function
-  // WARNING : should be removed when it becomes useless
-  return platform_graph;
-}
-
-/**
- * \brief Set the seed of the platform generator RngStream
- *
- * This RngStream is used to generate all the random values needed to
- * generate the platform
- *
- * \param seed A array of six integer; if NULL, the default seed will be used.
- */
-void platf_random_seed(unsigned long seed[6]) {
-
-  if(rng_stream == NULL) {
-    //stream not created yet, we do it now
-    rng_stream = RngStream_CreateStream(NULL);
-  }
-  if(seed != NULL) {
-    RngStream_SetSeed(rng_stream, seed);
-  }
-}
-
-/**
- * \brief Initialize the platform generator
- *
- * This function create the graph and add node_count nodes to it
- * \param node_count The number of nodes of the platform
- */
-void platf_graph_init(unsigned long node_count) {
-  unsigned long i;
-  platform_graph = xbt_graph_new_graph(FALSE, NULL);
-  if(rng_stream == NULL) {
-    rng_stream = RngStream_CreateStream(NULL);
-  }
-
-  for(i=0 ; i<node_count ; i++) {
-    context_node_t node_data = NULL;
-    node_data = xbt_new0(s_context_node_t, 1);
-    node_data->id = i+1;
-    node_data->x = 0;
-    node_data->y = 0;
-    node_data->degree = 0;
-    node_data->kind = ROUTER;
-    node_data->connect_checked = FALSE;
-    xbt_graph_new_node(platform_graph, (void*) node_data);
-  }
-
-  last_link_id = 0;
-
-}
-
-/**
- * \brief Connect two nodes
- * \param node1 The first node to connect
- * \param node2 The second node to connect
- */
-void platf_node_connect(xbt_node_t node1, xbt_node_t node2) {
-  context_node_t node1_data;
-  context_node_t node2_data;
-  node1_data = (context_node_t) xbt_graph_node_get_data(node1);
-  node2_data = (context_node_t) xbt_graph_node_get_data(node2);
-  node1_data->degree++;
-  node2_data->degree++;
-
-  context_edge_t edge_data = NULL;
-  edge_data = xbt_new0(s_context_edge_t, 1);
-  edge_data->id = ++last_link_id;
-  edge_data->length = platf_node_distance(node1, node2);
-  edge_data->labeled = FALSE;
-  xbt_graph_new_edge(platform_graph, node1, node2, (void*)edge_data);
-}
-
-/**
- * \brief Compute the distance between two nodes
- * \param node1 The first node
- * \param node2 The second node
- * \return The distance between node1 and node2
- */
-double platf_node_distance(xbt_node_t node1, xbt_node_t node2) {
-  context_node_t node1_data;
-  context_node_t node2_data;
-  double delta_x;
-  double delta_y;
-  double distance;
-  node1_data = (context_node_t) xbt_graph_node_get_data(node1);
-  node2_data = (context_node_t) xbt_graph_node_get_data(node2);
-  delta_x = node1_data->x - node2_data->x;
-  delta_y = node1_data->y - node2_data->y;
-  distance = sqrt(delta_x*delta_x + delta_y*delta_y);
-  return distance;
-}
-
-/**
- * \brief Initialize the platform, placing nodes uniformly on the unit square
- * \param node_count The number of node
- */
-void platf_graph_uniform(unsigned long node_count) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  context_node_t node_data = NULL;
-  unsigned int i;
-  platf_graph_init(node_count);
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    node_data = (context_node_t) xbt_graph_node_get_data(graph_node);
-    node_data->x = RngStream_RandU01(rng_stream);
-    node_data->y = RngStream_RandU01(rng_stream);
-  }
-}
-
-/**
- * \brief Initialize the platform, placing nodes in little clusters on the unit square
- * \param node_count The number of node
- */
-void platf_graph_heavytailed(unsigned long node_count) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  context_node_t node_data = NULL;
-  unsigned int i;
-  platf_graph_init(node_count);
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    node_data = (context_node_t) xbt_graph_node_get_data(graph_node);
-    node_data->x = random_pareto(0, 1, 1.0/*K*/, 10e9/*P*/, 1.0/*alpha*/);
-    node_data->y = random_pareto(0, 1, 1.0/*K*/, 10e9/*P*/, 1.0/*alpha*/);
-  }
-}
-
-/**
- * \brief Creates a simple topology where all nodes are connected to the first one in a star fashion
- */
-void platf_graph_interconnect_star(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  xbt_node_t first_node = NULL;
-  unsigned int i;
-
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    if(i==0) {
-      //Ok, we get the first node, let's keep it somewhere...
-      first_node = graph_node;
-    } else {
-      //All the other nodes are connected to the first one
-      platf_node_connect(graph_node, first_node);
-    }
-  }
-}
-
-/**
- * \brief Creates a simple topology where all nodes are connected in line
- */
-void platf_graph_interconnect_line(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  xbt_node_t old_node = NULL;
-  unsigned int i;
-
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    if(old_node != NULL) {
-      platf_node_connect(graph_node, old_node);
-    }
-    old_node = graph_node;
-  }
-}
-
-/**
- * \brief Create a simple topology where all nodes are connected along a ring
- */
-void platf_graph_interconnect_ring(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  xbt_node_t old_node = NULL;
-  xbt_node_t first_node = NULL;
-  unsigned int i;
-
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    if(i == 0) {
-      // this is the first node, let's keep it somewhere
-      first_node = graph_node;
-    } else {
-      //connect each node to the previous one
-      platf_node_connect(graph_node, old_node);
-    }
-    old_node = graph_node;
-  }
-  //we still have to connect the first and the last node together
-  platf_node_connect(first_node, graph_node);
-}
-
-/**
- * \brief Create a simple topology where all nodes are connected to each other, in a clique manner
- */
-void platf_graph_interconnect_clique(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  unsigned int i,j;
-
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      platf_node_connect(first_node, second_node);
-    }
-  }
-}
-
-/**
- * \brief Creates a topology where the probability to connect two nodes is uniform (unrealistic, but simple)
- * \param alpha Probability for two nodes to get connected
- */
-void platf_graph_interconnect_uniform(double alpha) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  unsigned int i,j;
-
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      if(RngStream_RandU01(rng_stream) < alpha) {
-        platf_node_connect(first_node, second_node);
-      }
-    }
-  }
-}
-
-/**
- * \brief Create a topology where the probability follows an exponential law
- * \param alpha Number of edges increases with alpha
- */
-void platf_graph_interconnect_exponential(double alpha) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  unsigned int i,j;
-  double L = sqrt(2.0); /*  L = c*sqrt(2); c=side of placement square */
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      double d = platf_node_distance(first_node, second_node);
-      if(RngStream_RandU01(rng_stream) < alpha*exp(-d/(L-d))) {
-        platf_node_connect(first_node, second_node);
-      }
-    }
-  }
-}
-
-/**
- * \brief Create a topology where the probability follows the model of Waxman
- *
- * see Waxman, Routing of Multipoint Connections, IEEE J. on Selected Areas in Comm., 1988
- *
- * \param alpha Number of edges increases with alpha
- * \param beta Edge length heterogeneity increases with beta
- */
-void platf_graph_interconnect_waxman(double alpha, double beta) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  unsigned int i,j;
-  double L = sqrt(2.0); /*  L = c*sqrt(2); c=side of placement square */
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      double d = platf_node_distance(first_node, second_node);
-      if(RngStream_RandU01(rng_stream) < alpha*exp(-d/(L*beta))) {
-        platf_node_connect(first_node, second_node);
-      }
-    }
-  }
-}
-
-/**
- * \brief Create a topology where the probability follows the model of Zegura
- * see Zegura, Calvert, Donahoo, A quantitative comparison of graph-based models
- * for Internet topology, IEEE/ACM Transactions on Networking, 1997.
- *
- * \param alpha Probability of connexion for short edges
- * \param beta Probability of connexion for long edges
- * \param r Limit between long and short edges (between 0 and sqrt(2) since nodes are placed on the unit square)
- */
-void platf_graph_interconnect_zegura(double alpha, double beta, double r) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  unsigned int i,j;
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      double d = platf_node_distance(first_node, second_node);
-      double proba = d < r ? alpha : beta;
-      if(RngStream_RandU01(rng_stream) < proba) {
-        platf_node_connect(first_node, second_node);
-      }
-    }
-  }
-}
-
-/**
- * \brief Create a topology constructed according to the Barabasi-Albert algorithm (follows power laws)
- * see Barabasi and Albert, Emergence of scaling in random networks, Science 1999, num 59, p509­-512.
- */
-void platf_graph_interconnect_barabasi(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_node_t first_node = NULL;
-  xbt_node_t second_node = NULL;
-  context_node_t node_data = NULL;
-  unsigned int i,j;
-  unsigned long sum = 0;
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, first_node) {
-    xbt_dynar_foreach(dynar_nodes, j, second_node) {
-      if(j>=i)
-        break;
-      node_data = xbt_graph_node_get_data(second_node);
-      if(sum==0 || RngStream_RandU01(rng_stream) < ((double)(node_data->degree)/ (double)sum)) {
-        platf_node_connect(first_node, second_node);
-        sum += 2;
-      }
-    }
-  }
-}
-
-/**
- * \brief Check if the produced graph is connected
- *
- * You should check if the produced graph is connected before doing anything
- * on it. You probably don't want any isolated node or group of nodes...
- *
- * \return TRUE if the graph is connected, FALSE otherwise
- */
-int platf_graph_is_connected(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_dynar_t connected_nodes = NULL;
-  xbt_dynar_t outgoing_edges = NULL;
-  xbt_node_t graph_node = NULL;
-  context_node_t node_data = NULL;
-  xbt_edge_t outedge = NULL;
-  unsigned long iterator;
-  unsigned int i;
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  connected_nodes = xbt_dynar_new(sizeof(xbt_node_t), NULL);
-
-  //Let's just check if every nodes are connected to something
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    node_data = xbt_graph_node_get_data(graph_node);
-    if(node_data->degree==0) {
-      return FALSE;
-    }
-  }
-
-  //We still need a real check
-  //Initialize the connected node array with the first node
-  xbt_dynar_get_cpy(dynar_nodes, 0, &graph_node);
-  node_data = xbt_graph_node_get_data(graph_node);
-  node_data->connect_checked = TRUE;
-  xbt_dynar_push(connected_nodes, &graph_node);
-  iterator = 0;
-  do {
-    //Get the next node
-    xbt_dynar_get_cpy(connected_nodes, iterator, &graph_node);
-
-    //add all the linked nodes to the connected node array
-    outgoing_edges = xbt_graph_node_get_outedges(graph_node);
-    xbt_dynar_foreach(outgoing_edges, i, outedge) {
-      xbt_node_t src = xbt_graph_edge_get_source(outedge);
-      xbt_node_t dst = xbt_graph_edge_get_target(outedge);
-      node_data = xbt_graph_node_get_data(src);
-      if(!node_data->connect_checked) {
-        xbt_dynar_push(connected_nodes, &src);
-        node_data->connect_checked = TRUE;
-      }
-      node_data = xbt_graph_node_get_data(dst);
-      if(!node_data->connect_checked) {
-        xbt_dynar_push(connected_nodes, &dst);
-        node_data->connect_checked = TRUE;
-      }
-    }
-  } while(++iterator < xbt_dynar_length(connected_nodes));
-
-  // The graph is connected if the connected node array has the same length
-  // as the graph node array
-  return xbt_dynar_length(connected_nodes) == xbt_dynar_length(dynar_nodes);
-}
-
-
-/**
- * \brief Remove the links in the created topology
- *
- * This is useful when the created topology is not connected, and you want
- * to generate a new one.
- */
-void platf_graph_clear_links(void) {
-  xbt_dynar_t dynar_nodes = NULL;
-  xbt_dynar_t dynar_edges = NULL;
-  xbt_dynar_t dynar_edges_cpy = NULL;
-  xbt_node_t graph_node = NULL;
-  xbt_edge_t graph_edge = NULL;
-  context_node_t node_data = NULL;
-  unsigned int i;
-
-  //The graph edge dynar will be modified directly, so we work on a copy of it
-  dynar_edges = xbt_graph_get_edges(platform_graph);
-  dynar_edges_cpy = xbt_dynar_new(sizeof(xbt_edge_t), NULL);
-  xbt_dynar_foreach(dynar_edges, i, graph_edge) {
-    xbt_dynar_push_as(dynar_edges_cpy, xbt_edge_t, graph_edge);
-  }
-  //Delete edges from the graph
-  xbt_dynar_foreach(dynar_edges_cpy, i, graph_edge) {
-    xbt_graph_free_edge(platform_graph, graph_edge, xbt_free_f);
-  }
-  //remove the dynar copy
-  xbt_dynar_free(&dynar_edges_cpy);
-
-  //All the nodes will be of degree 0, unchecked from connectedness
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    node_data = xbt_graph_node_get_data(graph_node);
-    node_data->degree = 0;
-    node_data->connect_checked = FALSE;
-  }
-}
-
-/**
- * \brief Promote a node to a host
- *
- * This function should be called in callbacks registered with the
- * platf_graph_promoter function.
- *
- * \param node The node to promote
- * \param parameters The parameters needed to build the host
- */
-void platf_graph_promote_to_host(context_node_t node, sg_platf_host_cbarg_t parameters) {
-  node->kind = HOST;
-  memcpy(&(node->host_parameters), parameters, sizeof(s_sg_platf_host_cbarg_t));
-}
-
-/**
- * \brief Promote a node to a cluster
- *
- * This function should be called in callbacks registered with the
- * platf_graph_promoter function.
- *
- * \param node The node to promote
- * \param parameters The parameters needed to build the cluster
- */
-void platf_graph_promote_to_cluster(context_node_t node, sg_platf_cluster_cbarg_t parameters) {
-  node->kind = CLUSTER;
-  memcpy(&(node->cluster_parameters), parameters, sizeof(s_sg_platf_cluster_cbarg_t));
-}
-
-/**
- * \brief Set the parameters of a network link.
- *
- * This function should be called in callbacks registered with the
- * platf_graph_labeler function.
- *
- * \param edge The edge to modify
- * \param parameters The parameters of the network link
- */
-void platf_graph_link_label(context_edge_t edge, sg_platf_link_cbarg_t parameters) {
-  memcpy(&(edge->link_parameters), parameters, sizeof(s_sg_platf_link_cbarg_t));
-  edge->labeled = TRUE;
-}
-
-/**
- * \brief Register a callback to promote nodes
- *
- * The best way to promote nodes into host or cluster is to write a function
- * which takes one parameter, a #context_node_t, make every needed test on
- * it, and call platf_graph_promote_to_host or platf_graph_promote_to_cluster
- * if needed. Then, register the function with this one.
- * You can register several callbacks: the first registered function will be
- * called first. If the node have not been promoted yet, the second function
- * will be called, and so on...
- *
- * \param promoter_callback The callback function
- */
-void platf_graph_promoter(platf_promoter_cb_t promoter_callback) {
-  if(promoter_dynar == NULL) {
-    promoter_dynar = xbt_dynar_new(sizeof(platf_promoter_cb_t), NULL);
-  }
-  xbt_dynar_push(promoter_dynar, &promoter_callback);
-}
-
-/**
- * \brief Register a callback to label links
- *
- * Like the node promotion, it is better, to set links, to write a function
- * which take one parameter, a #context_edge_t, make every needed test on
- * it, and call platf_graph_link_label if needed.
- * You can register several callbacks: the first registered function will be
- * called first. If the link have not been labeled yet, the second function
- * will be called, and so on... All the links must have been labeled after
- * all the calls.
- *
- * \param labeler_callback The callback function
- */
-void platf_graph_labeler(platf_labeler_cb_t labeler_callback) {
-  if(labeler_dynar == NULL) {
-    labeler_dynar = xbt_dynar_new(sizeof(void*), NULL);
-  }
-  xbt_dynar_push(labeler_dynar, &labeler_callback);
-}
-
-/**
- * \brief Call the registered promoters on all nodes
- *
- * The promoters are called on all nodes, in the order of their registration
- * If some nodes are not promoted, they will be routers
- */
-void platf_do_promote(void) {
-  platf_promoter_cb_t promoter_callback;
-  xbt_node_t graph_node = NULL;
-  xbt_dynar_t dynar_nodes = NULL;
-  context_node_t node = NULL;
-  unsigned int i, j;
-  dynar_nodes = xbt_graph_get_nodes(platform_graph);
-  xbt_dynar_foreach(dynar_nodes, i, graph_node) {
-    node = (context_node_t) xbt_graph_node_get_data(graph_node);
-    xbt_dynar_foreach(promoter_dynar, j, promoter_callback) {
-      if(node->kind != ROUTER)
-        break;
-      promoter_callback(node);
-    }
-  }
-}
-
-/**
- * \brief Call the registered labelers on all links
- */
-void platf_do_label(void) {
-  platf_labeler_cb_t labeler_callback;
-  xbt_edge_t graph_edge = NULL;
-  xbt_dynar_t dynar_edges = NULL;
-  context_edge_t edge = NULL;
-  unsigned int i, j;
-  dynar_edges = xbt_graph_get_edges(platform_graph);
-  xbt_dynar_foreach(dynar_edges, i, graph_edge) {
-    edge = (context_edge_t) xbt_graph_edge_get_data(graph_edge);
-    xbt_dynar_foreach(labeler_dynar, j, labeler_callback) {
-      if(edge->labeled)
-        break;
-      labeler_callback(edge);
-    }
-    if(!edge->labeled) {
-      XBT_ERROR("All links of the generated platform are not labeled.");
-      xbt_die("Please check your generation parameters.");
-    }
-  }
-}
-
-/**
- * \brief putting into SURF the generated platform
- *
- * This function should be called when the generation is over and the platform
- * is ready to be put in place in SURF. All the init function, like MSG_init,
- * must have been called before, or this function will not do anything.
- * After that function, it should be possible to list all the available hosts
- * with the provided functions.
- */
-void platf_generate(void) {
-
-  xbt_dynar_t nodes = NULL;
-  xbt_node_t graph_node = NULL;
-  context_node_t node_data = NULL;
-  xbt_dynar_t edges = NULL;
-  xbt_edge_t graph_edge = NULL;
-  context_edge_t edge_data = NULL;
-  unsigned int i;
-
-  unsigned int last_host = 0;
-  unsigned int last_router = 0;
-  unsigned int last_cluster = 0;
-
-  sg_platf_host_cbarg_t host_parameters;
-  sg_platf_cluster_cbarg_t cluster_parameters;
-  sg_platf_link_cbarg_t link_parameters;
-  s_sg_platf_router_cbarg_t router_parameters = SG_PLATF_ROUTER_INITIALIZER; /* This one is not a pointer! */
-  s_sg_platf_route_cbarg_t route_parameters   = SG_PLATF_ROUTE_INITIALIZER; /* neither this one! */
-
-  router_parameters.coord = NULL;
-  route_parameters.symmetrical = FALSE;
-  route_parameters.src = NULL;
-  route_parameters.dst = NULL;
-  route_parameters.gw_dst = NULL;
-  route_parameters.gw_src = NULL;
-  route_parameters.link_list = NULL;
-
-  nodes = xbt_graph_get_nodes(platform_graph);
-  edges = xbt_graph_get_edges(platform_graph);
-
-  sg_platf_begin();
-  surf_parse_init_callbacks();
-  routing_register_callbacks();
-
-  s_sg_platf_AS_cbarg_t AS = SG_PLATF_AS_INITIALIZER;
-  AS.id = "random platform";
-  AS.routing = A_surfxml_AS_routing_Floyd;
-  sg_platf_new_AS_begin(&AS);
-
-  //Generate hosts, clusters and routers
-  xbt_dynar_foreach(nodes, i, graph_node) {
-    node_data = xbt_graph_node_get_data(graph_node);
-    switch(node_data->kind) {
-      case HOST:
-        host_parameters = &node_data->host_parameters;
-        last_host++;
-        if(host_parameters->id == NULL) {
-          host_parameters->id = bprintf("host-%d", last_host);
-        }
-        sg_platf_new_host(host_parameters);
-        break;
-      case CLUSTER:
-        cluster_parameters = &node_data->cluster_parameters;
-        last_cluster++;
-        if(cluster_parameters->prefix == NULL) {
-          cluster_parameters->prefix = "host-";
-        }
-        if(cluster_parameters->suffix == NULL) {
-          cluster_parameters->suffix = bprintf(".cluster-%d", last_cluster);
-        }
-        if(cluster_parameters->id == NULL) {
-          cluster_parameters->id = bprintf("cluster-%d", last_cluster);
-        }
-        sg_platf_new_cluster(cluster_parameters);
-        break;
-      case ROUTER:
-        node_data->router_id = bprintf("router-%d", ++last_router);
-        router_parameters.id = node_data->router_id;
-        sg_platf_new_router(&router_parameters);
-        break;
-    }
-  }
-
-  //Generate links and routes
-  xbt_dynar_foreach(edges, i, graph_edge) {
-    xbt_node_t src = xbt_graph_edge_get_source(graph_edge);
-    xbt_node_t dst = xbt_graph_edge_get_target(graph_edge);
-    context_node_t src_data = xbt_graph_node_get_data(src);
-    context_node_t dst_data = xbt_graph_node_get_data(dst);
-    edge_data = xbt_graph_edge_get_data(graph_edge);
-    const char* temp = NULL;
-
-    //Add a link to the platform
-    link_parameters = &edge_data->link_parameters;
-    if(link_parameters->id == NULL) {
-      link_parameters->id = bprintf("link-%ld", edge_data->id);
-    }
-    sg_platf_new_link(link_parameters);
-
-    //Add a route matching this link
-    switch(src_data->kind) {
-      case ROUTER:
-        route_parameters.src = src_data->router_id;
-        break;
-      case CLUSTER:
-        route_parameters.src = src_data->cluster_parameters.id;
-        break;
-      case HOST:
-        route_parameters.src = src_data->host_parameters.id;
-        break;
-    }
-    switch(dst_data->kind) {
-      case ROUTER:
-        route_parameters.dst = dst_data->router_id;
-        break;
-      case CLUSTER:
-        route_parameters.dst = dst_data->cluster_parameters.id;
-        break;
-      case HOST:
-        route_parameters.dst = dst_data->host_parameters.id;
-        break;
-    }
-    sg_platf_route_begin(&route_parameters);
-    sg_platf_route_add_link(link_parameters->id, &route_parameters);
-    sg_platf_route_end(&route_parameters);
-
-    //Create the symmertical route
-    temp = route_parameters.dst;
-    route_parameters.dst = route_parameters.src;
-    route_parameters.src = temp;
-    sg_platf_route_begin(&route_parameters);
-    sg_platf_route_add_link(link_parameters->id, &route_parameters);
-    sg_platf_route_end(&route_parameters);
-  }
-
-  sg_platf_new_AS_end();
-  sg_platf_end();
-}
-
-/* Functions used to generate interesting random values */
-
-double random_pareto(double min, double max, double K, double P, double ALPHA) {
-  double x = RngStream_RandU01(rng_stream);
-  double den = pow(1.0 - x + x*pow(K/P, ALPHA), 1.0/ALPHA);
-  double res = (1/den);
-  res += min - 1; // pareto is on [1, infinity) by default
-  if (res>max) {
-    return max;
-  }
-  return res;
-}
diff --git a/src/surf/platf_generator_private.h b/src/surf/platf_generator_private.h
deleted file mode 100644 (file)
index ea57365..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (c) 2012, 2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SG_PLATF_GEN_PRIVATE_H
-#define SG_PLATF_GEN_PRIVATE_H
-
-#include <xbt/base.h>
-
-#include "xbt/graph.h"
-#include "simgrid/platf.h"
-
-XBT_PRIVATE void platf_graph_init(unsigned long node_count);
-
-XBT_PRIVATE void platf_node_connect(xbt_node_t node1, xbt_node_t node2);
-
-XBT_PRIVATE double platf_node_distance(xbt_node_t node1, xbt_node_t node2);
-
-XBT_PRIVATE double random_pareto(double min, double max, double K, double P, double ALPHA);
-
-#endif      /* SG_PLATF_GEN_PRIVATE_H */
diff --git a/src/surf/platform.hpp b/src/surf/platform.hpp
deleted file mode 100644 (file)
index 9db38ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (c) 2016. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#ifndef SIMGRID_PLATFORM_HPP
-#define SIMGRID_PLATFORM_HPP
-
-#include <xbt/base.h>
-#include <xbt/signal.hpp>
-#include <simgrid/forward.h>
-
-namespace simgrid {
-namespace surf {
-
-extern XBT_PRIVATE simgrid::xbt::signal<void(sg_platf_link_cbarg_t)> on_link;
-extern XBT_PRIVATE simgrid::xbt::signal<void(sg_platf_cluster_cbarg_t)> on_cluster;
-extern XBT_PRIVATE simgrid::xbt::signal<void(void)> on_postparse;
-
-}
-}
-
-#endif
index a2d14c2..02ffe37 100644 (file)
@@ -66,35 +66,35 @@ simgrid::xbt::Extension<simgrid::s4u::Host, HostEnergy> HostEnergy::EXTENSION_ID
 void HostEnergy::update()
 {
   simgrid::surf::Host* surf_host = host->extension<simgrid::surf::Host>();
-       double start_time = this->last_updated;
-       double finish_time = surf_get_clock();
-       double cpu_load;
-       if (surf_host->p_cpu->m_speedPeak == 0)
-               // Some users declare a pstate of speed 0 flops (eg to model boot time).
-               // We consider that the machine is then fully loaded. That's arbitrary but it avoids a NaN
-               cpu_load = 1;
-       else
-               cpu_load = lmm_constraint_get_usage(surf_host->p_cpu->getConstraint())
-                / surf_host->p_cpu->m_speedPeak;
-
-       if (cpu_load > 1) // A machine with a load > 1 consumes as much as a fully loaded machine, not mores
-         cpu_load = 1;
-
-       double previous_energy = this->total_energy;
-
-       double instantaneous_consumption;
-       if (host->is_off())
-               instantaneous_consumption = this->watts_off;
-       else
-               instantaneous_consumption = this->getCurrentWattsValue(cpu_load);
-
-       double energy_this_step = instantaneous_consumption*(finish_time-start_time);
-
-       this->total_energy = previous_energy + energy_this_step;
-       this->last_updated = finish_time;
-
-       XBT_DEBUG("[update_energy of %s] period=[%.2f-%.2f]; current power peak=%.0E flop/s; consumption change: %.2f J -> %.2f J",
-           surf_host->getName(), start_time, finish_time, surf_host->p_cpu->m_speedPeak, previous_energy, energy_this_step);
+  double start_time = this->last_updated;
+  double finish_time = surf_get_clock();
+  double cpu_load;
+  if (surf_host->p_cpu->p_speed.peak == 0)
+    // Some users declare a pstate of speed 0 flops (eg to model boot time).
+    // We consider that the machine is then fully loaded. That's arbitrary but it avoids a NaN
+    cpu_load = 1;
+  else
+    cpu_load = lmm_constraint_get_usage(surf_host->p_cpu->getConstraint())
+                / surf_host->p_cpu->p_speed.peak;
+
+  if (cpu_load > 1) // A machine with a load > 1 consumes as much as a fully loaded machine, not mores
+    cpu_load = 1;
+
+  double previous_energy = this->total_energy;
+
+  double instantaneous_consumption;
+  if (host->is_off())
+    instantaneous_consumption = this->watts_off;
+  else
+    instantaneous_consumption = this->getCurrentWattsValue(cpu_load);
+
+  double energy_this_step = instantaneous_consumption*(finish_time-start_time);
+
+  this->total_energy = previous_energy + energy_this_step;
+  this->last_updated = finish_time;
+
+  XBT_DEBUG("[update_energy of %s] period=[%.2f-%.2f]; current power peak=%.0E flop/s; consumption change: %.2f J -> %.2f J",
+      surf_host->getName(), start_time, finish_time, surf_host->p_cpu->p_speed.peak, previous_energy, energy_this_step);
 }
 
 HostEnergy::HostEnergy(simgrid::s4u::Host *ptr) :
@@ -103,10 +103,10 @@ HostEnergy::HostEnergy(simgrid::s4u::Host *ptr) :
   initWattsRangeList();
 
   if (host->properties() != NULL) {
-    char* off_power_str = (char*)xbt_dict_get_or_null(
-      host->properties(), "watt_off");
+    char* off_power_str = (char*)xbt_dict_get_or_null(host->properties(), "watt_off");
     if (off_power_str != NULL)
-      watts_off = atof(off_power_str);
+      watts_off = xbt_str_parse_double(off_power_str,
+          bprintf("Invalid value for property watt_off of host %s: %%s",host->name().c_str()));
     else
       watts_off = 0;
   }
@@ -134,7 +134,7 @@ double HostEnergy::getWattMaxAt(int pstate)
 /** @brief Computes the power consumed by the host according to the current pstate and processor load */
 double HostEnergy::getCurrentWattsValue(double cpu_load)
 {
-       xbt_assert(!power_range_watts_list.empty(),
+  xbt_assert(!power_range_watts_list.empty(),
     "No power range properties specified for host %s", host->name().c_str());
 
   /* min_power corresponds to the idle power (cpu load = 0) */
@@ -143,53 +143,55 @@ double HostEnergy::getCurrentWattsValue(double cpu_load)
   double min_power = range.first;
   double max_power = range.second;
   double power_slope = max_power - min_power;
-       double current_power = min_power + cpu_load * power_slope;
+  double current_power = min_power + cpu_load * power_slope;
 
-       XBT_DEBUG("[get_current_watts] min_power=%f, max_power=%f, slope=%f", min_power, max_power, power_slope);
-       XBT_DEBUG("[get_current_watts] Current power (watts) = %f, load = %f", current_power, cpu_load);
+  XBT_DEBUG("[get_current_watts] min_power=%f, max_power=%f, slope=%f", min_power, max_power, power_slope);
+  XBT_DEBUG("[get_current_watts] Current power (watts) = %f, load = %f", current_power, cpu_load);
 
-       return current_power;
+  return current_power;
 }
 
 double HostEnergy::getConsumedEnergy()
 {
-       if (last_updated < surf_get_clock()) // We need to simcall this as it modifies the environment
-         simgrid::simix::kernel(std::bind(&HostEnergy::update, this));
+  if (last_updated < surf_get_clock()) // We need to simcall this as it modifies the environment
+    simgrid::simix::kernel(std::bind(&HostEnergy::update, this));
 
-       return total_energy;
+  return total_energy;
 }
 
 void HostEnergy::initWattsRangeList()
 {
-       if (host->properties() == NULL)
-               return;
-       char* all_power_values_str =
+  if (host->properties() == NULL)
+    return;
+  char* all_power_values_str =
     (char*)xbt_dict_get_or_null(host->properties(), "watt_per_state");
-       if (all_power_values_str == NULL)
-               return;
-
-       xbt_dynar_t all_power_values = xbt_str_split(all_power_values_str, ",");
-       int pstate_nb = xbt_dynar_length(all_power_values);
-
-       for (int i=0; i< pstate_nb; i++)
-       {
-               /* retrieve the power values associated with the current pstate */
-               xbt_dynar_t current_power_values = xbt_str_split(xbt_dynar_get_as(all_power_values, i, char*), ":");
-               xbt_assert(xbt_dynar_length(current_power_values) > 1,
-                               "Power properties incorrectly defined - "
+  if (all_power_values_str == NULL)
+    return;
+
+  xbt_dynar_t all_power_values = xbt_str_split(all_power_values_str, ",");
+  int pstate_nb = xbt_dynar_length(all_power_values);
+
+  for (int i=0; i< pstate_nb; i++)
+  {
+    /* retrieve the power values associated with the current pstate */
+    xbt_dynar_t current_power_values = xbt_str_split(xbt_dynar_get_as(all_power_values, i, char*), ":");
+    xbt_assert(xbt_dynar_length(current_power_values) > 1,
+        "Power properties incorrectly defined - "
         "could not retrieve min and max power values for host %s",
-                               host->name().c_str());
+        host->name().c_str());
 
-               /* min_power corresponds to the idle power (cpu load = 0) */
-               /* max_power is the power consumed at 100% cpu load       */
+    /* min_power corresponds to the idle power (cpu load = 0) */
+    /* max_power is the power consumed at 100% cpu load       */
     power_range_watts_list.push_back(power_range(
-      atof(xbt_dynar_get_as(current_power_values, 0, char*)),
-      atof(xbt_dynar_get_as(current_power_values, 1, char*))
+      xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 0, char*),
+          bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str())),
+      xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 1, char*),
+          bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str()))
     ));
 
     xbt_dynar_free(&current_power_values);
-       }
-       xbt_dynar_free(&all_power_values);
+  }
+  xbt_dynar_free(&all_power_values);
 }
 
 }
similarity index 69%
rename from src/surf/host_ptask_L07.cpp
rename to src/surf/ptask_L07.cpp
index 9197c4d..8754117 100644 (file)
@@ -8,12 +8,11 @@
 
 #include <algorithm>
 
-#include "host_ptask_L07.hpp"
+#include "ptask_L07.hpp"
 
 #include "cpu_interface.hpp"
 #include "surf_routing.hpp"
 #include "xbt/lib.h"
-#include "src/surf/platform.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host);
 XBT_LOG_EXTERNAL_CATEGORY(xbt_cfg);
@@ -36,9 +35,6 @@ void surf_host_model_init_ptask_L07(void)
 
   // Define the callbacks to parse the XML
   simgrid::surf::on_link.connect(ptask_netlink_parse_init);
-  simgrid::surf::on_postparse.connect([](){
-      surf_host_model->addTraces();
-  });
 
   surf_host_model = new simgrid::surf::HostL07Model();
   xbt_dynar_push(all_existing_models, &surf_host_model);
@@ -54,10 +50,10 @@ HostL07Model::HostL07Model() : HostModel() {
   surf_cpu_model_pm = new CpuL07Model(this,p_maxminSystem);
 
   routing_model_create(surf_network_model->createLink("__loopback__",
-                                                         498000000, NULL,
-                                                         0.000015, NULL,
-                                                         1/*ON*/, NULL,
-                                                         SURF_LINK_FATPIPE, NULL));
+                                                    498000000, NULL,
+                                                    0.000015, NULL,
+                                                    1/*ON*/, NULL,
+                                                    SURF_LINK_FATPIPE, NULL));
 }
 
 HostL07Model::~HostL07Model() {
@@ -66,30 +62,30 @@ HostL07Model::~HostL07Model() {
 }
 
 CpuL07Model::CpuL07Model(HostL07Model *hmodel,lmm_system_t sys)
-       : CpuModel()
-       , p_hostModel(hmodel)
-       {
-         p_maxminSystem = sys;
-       }
+  : CpuModel()
+  , p_hostModel(hmodel)
+  {
+    p_maxminSystem = sys;
+  }
 CpuL07Model::~CpuL07Model() {
-       surf_cpu_model_pm = NULL;
-       lmm_system_free(p_maxminSystem);
-       p_maxminSystem = NULL;
+  surf_cpu_model_pm = NULL;
+  lmm_system_free(p_maxminSystem);
+  p_maxminSystem = NULL;
 }
 NetworkL07Model::NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys)
-       : NetworkModel()
-       , p_hostModel(hmodel)
-       {
-         p_maxminSystem = sys;
-       }
+  : NetworkModel()
+  , p_hostModel(hmodel)
+  {
+    p_maxminSystem = sys;
+  }
 NetworkL07Model::~NetworkL07Model()
 {
-       surf_network_model = NULL;
-       p_maxminSystem = NULL; // Avoid multi-free
+  surf_network_model = NULL;
+  p_maxminSystem = NULL; // Avoid multi-free
 }
 
 
-double HostL07Model::shareResources(double /*now*/)
+double HostL07Model::next_occuring_event(double /*now*/)
 {
   L07Action *action;
 
@@ -99,8 +95,8 @@ double HostL07Model::shareResources(double /*now*/)
                                               bottleneck_solve);
 
   for(ActionList::iterator it(running_actions->begin()), itend(running_actions->end())
-        ; it != itend ; ++it) {
-       action = static_cast<L07Action*>(&*it);
+   ; it != itend ; ++it) {
+  action = static_cast<L07Action*>(&*it);
     if (action->m_latency > 0) {
       if (min < 0) {
         min = action->m_latency;
@@ -125,9 +121,9 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) {
   ActionList *actionSet = getRunningActionSet();
 
   for(ActionList::iterator it = actionSet->begin(), itNext = it
-        ; it != actionSet->end()
-        ; it =  itNext) {
-       ++itNext;
+   ; it != actionSet->end()
+   ; it =  itNext) {
+  ++itNext;
     action = static_cast<L07Action*>(&*it);
     if (action->m_latency > 0) {
       if (action->m_latency > delta) {
@@ -184,28 +180,27 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) {
 }
 
 Action *HostL07Model::executeParallelTask(int host_nb, sg_host_t *host_list,
-                 double *flops_amount, double *bytes_amount,
-                 double rate) {
-       return new L07Action(this, host_nb, host_list, flops_amount, bytes_amount, rate);
+      double *flops_amount, double *bytes_amount,
+      double rate) {
+  return new L07Action(this, host_nb, host_list, flops_amount, bytes_amount, rate);
 }
 
 
 L07Action::L07Action(Model *model, int host_nb,
-               sg_host_t*host_list,
-               double *flops_amount,
-               double *bytes_amount,
-               double rate)
-       : CpuAction(model, 1, 0)
+    sg_host_t*host_list,
+    double *flops_amount,
+    double *bytes_amount,
+    double rate)
+  : CpuAction(model, 1, 0)
 {
   unsigned int cpt;
   int nb_link = 0;
   int nb_used_host = 0; /* Only the hosts with something to compute (>0 flops) are counted) */
   double latency = 0.0;
 
-
   this->p_netcardList->reserve(host_nb);
   for (int i = 0; i<host_nb; i++)
-         this->p_netcardList->push_back(host_list[i]->pimpl_netcard);
+    this->p_netcardList->push_back(host_list[i]->pimpl_netcard);
 
   /* Compute the number of affected resources... */
   if(bytes_amount != NULL) {
@@ -213,20 +208,17 @@ L07Action::L07Action(Model *model, int host_nb,
 
     for (int i = 0; i < host_nb; i++) {
       for (int j = 0; j < host_nb; j++) {
-        xbt_dynar_t route=NULL;
 
         if (bytes_amount[i * host_nb + j] > 0) {
           double lat=0.0;
-          unsigned int cpt;
-          void *_link;
-          LinkL07 *link;
+          xbt_dynar_t route=NULL;
 
-          routing_platf->getRouteAndLatency((*this->p_netcardList)[i], (*this->p_netcardList)[j],
-                                                        &route, &lat);
+          routing_platf->getRouteAndLatency((*p_netcardList)[i], (*p_netcardList)[j], &route, &lat);
           latency = MAX(latency, lat);
 
+          void *_link;
           xbt_dynar_foreach(route, cpt, _link) {
-            link = static_cast<LinkL07*>(_link);
+            LinkL07 *link = static_cast<LinkL07*>(_link);
             xbt_dict_set(ptask_parallel_task_link_set, link->getName(), link, NULL);
           }
         }
@@ -261,15 +253,15 @@ L07Action::L07Action(Model *model, int host_nb,
   if(bytes_amount != NULL) {
     for (int i = 0; i < host_nb; i++) {
       for (int j = 0; j < host_nb; j++) {
-        void *_link;
 
         xbt_dynar_t route=NULL;
         if (bytes_amount[i * host_nb + j] == 0.0)
           continue;
 
-        routing_platf->getRouteAndLatency((*this->p_netcardList)[i], (*this->p_netcardList)[j],
+        routing_platf->getRouteAndLatency((*p_netcardList)[i], (*p_netcardList)[j],
                                                     &route, NULL);
 
+        void *_link;
         xbt_dynar_foreach(route, cpt, _link) {
           LinkL07 *link = static_cast<LinkL07*>(_link);
           lmm_expand_add(model->getMaxminSystem(), link->getConstraint(),
@@ -283,6 +275,7 @@ L07Action::L07Action(Model *model, int host_nb,
     this->setCost(1.0);
     this->setRemains(0.0);
   }
+  xbt_free(host_list);
 }
 
 Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst,
@@ -293,8 +286,8 @@ Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst,
   double *bytes_amount = xbt_new0(double, 4);
   Action *res = NULL;
 
-  host_list[0] = sg_host_by_name(src->getName());
-  host_list[1] = sg_host_by_name(dst->getName());
+  host_list[0] = sg_host_by_name(src->name());
+  host_list[1] = sg_host_by_name(dst->name());
   bytes_amount[1] = size;
 
   res = p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate);
@@ -324,83 +317,32 @@ Link* NetworkL07Model::createLink(const char *name,
                                  xbt_dict_t properties)
 {
   xbt_assert(!Link::byName(name),
-                "Link '%s' declared several times in the platform file.", name);
+           "Link '%s' declared several times in the platform file.", name);
 
   Link* link = new LinkL07(this, name, properties,
-                            bw_initial, bw_trace,
-                                        lat_initial, lat_trace,
-                                        initiallyOn, state_trace,
-                                        policy);
+                 bw_initial, bw_trace,
+           lat_initial, lat_trace,
+           initiallyOn, state_trace,
+           policy);
   Link::onCreation(link);
   return link;
 }
 
-void HostL07Model::addTraces()
-{
-  xbt_dict_cursor_t cursor = NULL;
-  char *trace_name, *elm;
-
-  if (!trace_connect_list_host_speed)
-    return;
-
-  /* Connect traces relative to cpu */
-  xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu;
-
-    xbt_assert(cpu, "Host %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    cpu->set_speed_trace(trace);
-  }
-
-  /* Connect traces relative to network */
-  xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    LinkL07 *link = static_cast<LinkL07*>(Link::byName(elm));
-
-    xbt_assert(link, "Link %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    link->p_stateEvent = future_evt_set->add_trace(trace, 0.0, link);
-  }
-
-  xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    LinkL07 *link = static_cast<LinkL07*>(Link::byName(elm));
-
-    xbt_assert(link, "Link %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    link->p_bwEvent = future_evt_set->add_trace(trace, 0.0, link);
-  }
-
-  xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) {
-    tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
-    LinkL07 *link = static_cast<LinkL07*>(Link::byName(elm));
-
-    xbt_assert(link, "Link %s undefined", elm);
-    xbt_assert(trace, "Trace %s undefined", trace_name);
-
-    link->p_latEvent = future_evt_set->add_trace(trace, 0.0, link);
-  }
-}
-
 /************
  * Resource *
  ************/
 
 CpuL07::CpuL07(CpuL07Model *model, simgrid::s4u::Host *host,
-                    xbt_dynar_t speedPeakList, int pstate,
-                                double speedScale, tmgr_trace_t speedTrace,
-                        int core, int initiallyOn, tmgr_trace_t state_trace)
+               xbt_dynar_t speedPeakList, int pstate,
+         double speedScale, tmgr_trace_t speedTrace,
+             int core, int initiallyOn, tmgr_trace_t state_trace)
  : Cpu(model, host, speedPeakList, pstate,
-          core, xbt_dynar_get_as(speedPeakList,pstate,double), speedScale, initiallyOn)
+     core, xbt_dynar_get_as(speedPeakList,pstate,double), speedScale, initiallyOn)
 {
   p_constraint = lmm_constraint_new(model->getMaxminSystem(), this, xbt_dynar_get_as(speedPeakList,pstate,double) * speedScale);
 
   if (speedTrace)
-    p_speedEvent = future_evt_set->add_trace(speedTrace, 0.0, this);
+    p_speed.event = future_evt_set->add_trace(speedTrace, 0.0, this);
 
   if (state_trace)
     p_stateEvent = future_evt_set->add_trace(state_trace, 0.0, this);
@@ -411,30 +353,27 @@ CpuL07::~CpuL07()
 }
 
 LinkL07::LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props,
-                        double bw_initial,
-                        tmgr_trace_t bw_trace,
-                        double lat_initial,
-                        tmgr_trace_t lat_trace,
-                        int initiallyOn,
-                        tmgr_trace_t state_trace,
-                        e_surf_link_sharing_policy_t policy)
- : Link(model, name, props, lmm_constraint_new(model->getMaxminSystem(), this, bw_initial), future_evt_set, state_trace)
+             double bw_initial, tmgr_trace_t bw_trace,
+             double lat_initial, tmgr_trace_t lat_trace,
+             int initiallyOn, tmgr_trace_t state_trace,
+             e_surf_link_sharing_policy_t policy)
+ : Link(model, name, props, lmm_constraint_new(model->getMaxminSystem(), this, bw_initial), state_trace)
 {
-  m_bwCurrent = bw_initial;
+  m_bandwidth.peak = bw_initial;
   if (bw_trace)
-    p_bwEvent = future_evt_set->add_trace(bw_trace, 0.0, this);
+    m_bandwidth.event = future_evt_set->add_trace(bw_trace, 0.0, this);
 
   if (initiallyOn)
     turnOn();
   else
     turnOff();
-  m_latCurrent = lat_initial;
 
+  m_latency.peak = lat_initial;
   if (lat_trace)
-    p_latEvent = future_evt_set->add_trace(lat_trace, 0.0, this);
+    m_latency.event = future_evt_set->add_trace(lat_trace, 0.0, this);
 
   if (policy == SURF_LINK_FATPIPE)
-       lmm_constraint_shared(getConstraint());
+  lmm_constraint_shared(getConstraint());
 }
 
 Action *CpuL07::execution_start(double size)
@@ -465,20 +404,20 @@ bool CpuL07::isUsed(){
 
 /** @brief take into account changes of speed (either load or max) */
 void CpuL07::onSpeedChange() {
-       lmm_variable_t var = NULL;
-       lmm_element_t elem = NULL;
+  lmm_variable_t var = NULL;
+  lmm_element_t elem = NULL;
 
-    lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_speedPeak * m_speedScale);
+    lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), p_speed.peak * p_speed.scale);
     while ((var = lmm_get_var_from_cnst
             (getModel()->getMaxminSystem(), getConstraint(), &elem))) {
       Action *action = static_cast<Action*>(lmm_variable_id(var));
 
       lmm_update_variable_bound(getModel()->getMaxminSystem(),
                                 action->getVariable(),
-                                m_speedScale * m_speedPeak);
+                                p_speed.scale * p_speed.peak);
     }
 
-       Cpu::onSpeedChange();
+  Cpu::onSpeedChange();
 }
 
 
@@ -486,60 +425,60 @@ bool LinkL07::isUsed(){
   return lmm_constraint_used(getModel()->getMaxminSystem(), getConstraint());
 }
 
-void CpuL07::updateState(tmgr_trace_iterator_t triggered, double value, double /*date*/){
+void CpuL07::apply_event(tmgr_trace_iterator_t triggered, double value){
   XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value);
-  if (triggered == p_speedEvent) {
-    m_speedScale = value;
+  if (triggered == p_speed.event) {
+    p_speed.scale = value;
     onSpeedChange();
-    tmgr_trace_event_unref(&p_speedEvent);
+    tmgr_trace_event_unref(&p_speed.event);
+
   } else if (triggered == p_stateEvent) {
     if (value > 0)
       turnOn();
     else
       turnOff();
     tmgr_trace_event_unref(&p_stateEvent);
+
   } else {
     xbt_die("Unknown event!\n");
   }
 }
 
-void LinkL07::updateState(tmgr_trace_iterator_t triggered, double value, double date) {
-  XBT_DEBUG("Updating link %s (%p) with value=%f for date=%g", getName(), this, value, date);
-  if (triggered == p_bwEvent) {
-    updateBandwidth(value, date);
-    tmgr_trace_event_unref(&p_bwEvent);
-  } else if (triggered == p_latEvent) {
-    updateLatency(value, date);
-    tmgr_trace_event_unref(&p_latEvent);
-  } else if (triggered == p_stateEvent) {
+void LinkL07::apply_event(tmgr_trace_iterator_t triggered, double value) {
+  XBT_DEBUG("Updating link %s (%p) with value=%f", getName(), this, value);
+  if (triggered == m_bandwidth.event) {
+    updateBandwidth(value);
+    tmgr_trace_event_unref(&m_bandwidth.event);
+
+  } else if (triggered == m_latency.event) {
+    updateLatency(value);
+    tmgr_trace_event_unref(&m_latency.event);
+
+  } else if (triggered == m_stateEvent) {
     if (value > 0)
       turnOn();
     else
       turnOff();
-    tmgr_trace_event_unref(&p_stateEvent);
+    tmgr_trace_event_unref(&m_stateEvent);
+
   } else {
     xbt_die("Unknown event ! \n");
   }
 }
 
-double LinkL07::getBandwidth()
-{
-  return m_bwCurrent;
-}
-
-void LinkL07::updateBandwidth(double value, double date)
+void LinkL07::updateBandwidth(double value)
 {
-  m_bwCurrent = value;
-  lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_bwCurrent);
+  m_bandwidth.peak = value;
+  lmm_update_constraint_bound(getModel()->getMaxminSystem(), getConstraint(), m_bandwidth.peak * m_bandwidth.scale);
 }
 
-void LinkL07::updateLatency(double value, double date)
+void LinkL07::updateLatency(double value)
 {
   lmm_variable_t var = NULL;
   L07Action *action;
   lmm_element_t elem = NULL;
 
-  m_latCurrent = value;
+  m_latency.peak = value;
   while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), getConstraint(), &elem))) {
     action = static_cast<L07Action*>(lmm_variable_id(var));
     action->updateBound();
@@ -551,6 +490,7 @@ void LinkL07::updateLatency(double value, double date)
  **********/
 
 L07Action::~L07Action(){
+  delete p_netcardList;
   free(p_communicationAmount);
   free(p_computationAmount);
 }
@@ -594,7 +534,7 @@ int L07Action::unref()
   m_refcount--;
   if (!m_refcount) {
     if (action_hook.is_linked())
-         p_stateSet->erase(p_stateSet->iterator_to(*this));
+      p_stateSet->erase(p_stateSet->iterator_to(*this));
     if (getVariable())
       lmm_variable_free(getModel()->getMaxminSystem(), getVariable());
     delete this;
similarity index 75%
rename from src/surf/host_ptask_L07.hpp
rename to src/surf/ptask_L07.hpp
index d811ddf..1476127 100644 (file)
@@ -26,7 +26,6 @@ class XBT_PRIVATE HostL07Model;
 class XBT_PRIVATE CpuL07Model;
 class XBT_PRIVATE NetworkL07Model;
 
-class XBT_PRIVATE HostL07;
 class XBT_PRIVATE CpuL07;
 class XBT_PRIVATE LinkL07;
 
@@ -43,13 +42,11 @@ public:
   HostL07Model();
   ~HostL07Model();
 
-  double shareResources(double now) override;
+  double next_occuring_event(double now) override;
   void updateActionsState(double now, double delta) override;
   Action *executeParallelTask(int host_nb, sg_host_t *host_list,
-                                                         double *flops_amount, double *bytes_amount,
-                                                         double rate) override;
-
-  void addTraces() override;
+                double *flops_amount, double *bytes_amount,
+                double rate) override;
 };
 
 class CpuL07Model : public CpuModel {
@@ -62,8 +59,6 @@ public:
                           tmgr_trace_t speedTrace, int core,
                           int initiallyOn,
                           tmgr_trace_t state_trace) override;
-  void addTraces() override {DIE_IMPOSSIBLE;};
-
   HostL07Model *p_hostModel;
 };
 
@@ -72,18 +67,17 @@ public:
   NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys);
   ~NetworkL07Model();
   Link* createLink(const char *name,
-                 double bw_initial,
-                 tmgr_trace_t bw_trace,
-                 double lat_initial,
-                 tmgr_trace_t lat_trace,
-                 int initiallyOn,
-                 tmgr_trace_t state_trace,
-                 e_surf_link_sharing_policy_t policy,
-                 xbt_dict_t properties) override;
+      double bw_initial,
+      tmgr_trace_t bw_trace,
+      double lat_initial,
+      tmgr_trace_t lat_trace,
+      int initiallyOn,
+      tmgr_trace_t state_trace,
+      e_surf_link_sharing_policy_t policy,
+      xbt_dict_t properties) override;
 
   Action *communicate(NetCard *src, NetCard *dst, double size, double rate) override;
-  void addTraces() override {DIE_IMPOSSIBLE;};
-  bool shareResourcesIsIdempotent() override {return true;}
+  bool next_occuring_event_isIdempotent() override {return true;}
 
   HostL07Model *p_hostModel;
 };
@@ -95,11 +89,11 @@ public:
 class CpuL07 : public Cpu {
 public:
   CpuL07(CpuL07Model *model, simgrid::s4u::Host *host, xbt_dynar_t speedPeakList, int pstate,
-                double power_scale, tmgr_trace_t power_trace,
+     double power_scale, tmgr_trace_t power_trace,
      int core, int initiallyOn, tmgr_trace_t state_trace);
   ~CpuL07();
   bool isUsed() override;
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
   Action *execution_start(double size) override;
   Action *sleep(double duration) override;
 protected:
@@ -109,7 +103,7 @@ protected:
 class LinkL07 : public Link {
 public:
   LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props,
-                 double bw_initial,
+      double bw_initial,
           tmgr_trace_t bw_trace,
           double lat_initial,
           tmgr_trace_t lat_trace,
@@ -118,13 +112,9 @@ public:
           e_surf_link_sharing_policy_t policy);
   ~LinkL07(){ };
   bool isUsed() override;
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
-  double getBandwidth() override;
-  void updateBandwidth(double value, double date=surf_get_clock()) override;
-  void updateLatency(double value, double date=surf_get_clock()) override;
-
-  double m_bwCurrent;
-  tmgr_trace_iterator_t p_bwEvent;
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
+  void updateBandwidth(double value) override;
+  void updateLatency(double value) override;
 };
 
 /**********
@@ -142,7 +132,7 @@ public:
   L07Action(Model *model, int host_nb,
           sg_host_t*host_list,
           double *flops_amount,
-                  double *bytes_amount,
+       double *bytes_amount,
           double rate);
  ~L07Action();
 
diff --git a/src/surf/random_mgr.c b/src/surf/random_mgr.c
deleted file mode 100644 (file)
index 39fe6e2..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-/* Copyright (c) 2007-2014. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "surf/random_mgr.h"
-#include "xbt/sysdep.h"
-#include "src/internal_config.h" /*_XBT_WIN32*/
-#include <math.h>
-#include <stdlib.h>
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(random, surf, "Random part of surf");
-
-#ifdef _XBT_WIN32
-
-static unsigned int _seed = 2147483647;
-
-#ifdef __VISUALC__
-typedef unsigned __int64 uint64_t;
-typedef unsigned int uint32_t;
-#endif
-
-struct drand48_data {
-  unsigned short int __x[3];    /* Current state.  */
-  unsigned short int __old_x[3];        /* Old state.  */
-  unsigned short int __c;       /* Additive const. in congruential formula.  */
-  unsigned short int __init;    /* Flag for initializing.  */
-  unsigned long long int __a;   /* Factor in congruential formula.  */
-};
-
-static struct drand48_data __libc_drand48_data = { 0 };
-
-union ieee754_double {
-  double d;
-
-  /* This is the IEEE 754 double-precision format.  */
-  struct {
-    /* Together these comprise the mantissa.  */
-    unsigned int mantissa1:32;
-    unsigned int mantissa0:20;
-    unsigned int exponent:11;
-    unsigned int negative:1;
-    /* Little endian.  */
-  } ieee;
-
-  /* This format makes it easier to see if a NaN is a signalling NaN.  */
-  struct {
-    /* Together these comprise the mantissa.  */
-    unsigned int mantissa1:32;
-    unsigned int mantissa0:19;
-    unsigned int quiet_nan:1;
-    unsigned int exponent:11;
-    unsigned int negative:1;
-
-  } ieee_nan;
-};
-
-#define IEEE754_DOUBLE_BIAS  0x3ff   /* Added to exponent.  */
-
-double drand48(void);
-
-int
-_drand48_iterate(unsigned short int xsubi[3], struct drand48_data *buffer);
-
-int
-_erand48_r(unsigned short int xsubi[3], struct drand48_data *buffer,
-           double *result);
-
-
-int
-_erand48_r(unsigned short int xsubi[3], struct drand48_data *buffer,
-           double *result)
-{
-  union ieee754_double temp;
-
-  /* Compute next state.  */
-  if (_drand48_iterate(xsubi, buffer) < 0)
-    return -1;
-
-  /* Construct a positive double with the 48 random bits distributed over
-     its fractional part so the resulting FP number is [0.0,1.0).  */
-
-  temp.ieee.negative = 0;
-  temp.ieee.exponent = IEEE754_DOUBLE_BIAS;
-  temp.ieee.mantissa0 = (xsubi[2] << 4) | (xsubi[1] >> 12);
-  temp.ieee.mantissa1 = ((xsubi[1] & 0xfff) << 20) | (xsubi[0] << 4);
-
-  /* Please note the lower 4 bits of mantissa1 are always 0.  */
-  *result = temp.d - 1.0;
-
-  return 0;
-}
-
-int _drand48_iterate(unsigned short int xsubi[3],
-                     struct drand48_data *buffer)
-{
-  uint64_t X;
-  uint64_t result;
-
-  /* Initialize buffer, if not yet done.  */
-
-  if (buffer->__init == 0) {
-    buffer->__a = 0x5deece66dull;
-    buffer->__c = 0xb;
-    buffer->__init = 1;
-  }
-
-  /* Do the real work.  We choose a data type which contains at least
-     48 bits.  Because we compute the modulus it does not care how
-     many bits really are computed.  */
-
-  X = (uint64_t) xsubi[2] << 32 | (uint32_t) xsubi[1] << 16 | xsubi[0];
-
-  result = X * buffer->__a + buffer->__c;
-
-
-  xsubi[0] = result & 0xffff;
-  xsubi[1] = (result >> 16) & 0xffff;
-  xsubi[2] = (result >> 32) & 0xffff;
-
-  return 0;
-}
-
-double _drand48(void);
-void _srand(unsigned int seed);
-int _rand(void);
-int _rand_r(unsigned int *pseed);
-
-double _drand48(void)
-{
-  double result;
-
-  (void) _erand48_r(__libc_drand48_data.__x, &__libc_drand48_data,
-                    &result);
-
-  return result;
-}
-
-void _srand(unsigned int seed)
-{
-  _seed = seed;
-}
-
-int _rand(void)
-{
-  const long a = 16807;
-  const long m = 2147483647;
-  const long q = 127773;        /* (m/a) */
-  const long r = 2836;          /* (m%a) */
-
-  long lo, k, s;
-
-  s = (long) _seed;
-
-  k = (long) (s / q);
-
-  lo = (s - q * k);
-
-  s = a * lo - r * k;
-
-  if (s <= 0)
-    s += m;
-
-  _seed = (int) (s & RAND_MAX);
-
-  return _seed;
-}
-
-int _rand_r(unsigned int *pseed)
-{
-  const long a = 16807;
-  const long m = 2147483647;
-  const long q = 127773;        /* (m/a) */
-  const long r = 2836;          /* (m%a) */
-
-  long lo, k, s;
-
-  s = (long) *pseed;
-
-  k = (long) (s / q);
-
-  lo = (s - q * k);
-
-  s = a * lo - r * k;
-
-  if (s <= 0)
-    s += m;
-
-  return (int) (s & RAND_MAX);
-
-}
-
-
-#define rand_r _rand_r
-#define drand48 _drand48
-
-#endif
-
-static double custom_random(e_random_generator_t generator, long int *seed)
-{
-  switch (generator) {
-
-  case DRAND48:
-    return drand48();
-  case RAND:
-    return (double) rand_r((unsigned int *) seed) / RAND_MAX;
-  case RNGSTREAM :
-    XBT_INFO("Seen RNGSTREAM");
-    return 0.0;
-  default:
-    return drand48();
-  }
-}
-
-/* Generate numbers between min and max with a given mean and standard deviation */
-double random_generate(random_data_t random)
-{
-  double a, b;
-  double alpha, beta, gamma;
-  double U1, U2, V, W, X;
-
-  if (random == NULL)
-    return 0.0f;
-
-  if (random->std == 0)
-    return random->mean * (random->max - random->min) + random->min;
-
-  a = random->mean * (random->mean * (1 - random->mean) /
-                      (random->std * random->std) - 1);
-  b = (1 -
-       random->mean) * (random->mean * (1 -
-                                        random->mean) / (random->std *
-                                                         random->std) - 1);
-
-  alpha = a + b;
-  if (a <= 1. || b <= 1.)
-    beta = ((1. / a) > (1. / b)) ? (1. / a) : (1. / b);
-  else
-    beta = sqrt((alpha - 2.) / (2. * a * b - alpha));
-  gamma = a + 1. / beta;
-
-  do {
-    /* Random generation for the Beta distribution based on
-     *   R. C. H. Cheng (1978). Generating beta variates with nonintegral shape parameters. _Communications of the ACM_, *21*, 317-322.
-     *   It is good for speed because it does not call math functions many times and respect the 4 given constraints
-     */
-    U1 = custom_random(random->generator, &(random->seed));
-    U2 = custom_random(random->generator, &(random->seed));
-
-    V = beta * log(U1 / (1 - U1));
-    W = a * exp(V);
-  } while (alpha * log(alpha / (b + W)) + gamma * V - log(4) <
-           log(U1 * U1 * U2));
-
-  X = W / (b + W);
-
-  return X * (random->max - random->min) + random->min;
-}
-
-random_data_t random_new(e_random_generator_t generator, long int seed,
-                         double min, double max, double mean, double std)
-{
-  random_data_t random = xbt_new0(s_random_data_t, 1);
-
-  random->generator = generator;
-  random->seed = seed;
-  random->min = min;
-  random->max = max;
-
-  /* Check user stupidities */
-  if (max < min)
-    THROWF(arg_error, 0, "random->max < random->min (%f < %f)", max, min);
-  if (mean < min)
-    THROWF(arg_error, 0, "random->mean < random->min (%f < %f)", mean,
-           min);
-  if (mean > max)
-    THROWF(arg_error, 0, "random->mean > random->max (%f > %f)", mean,
-           max);
-
-  /* normalize the mean and standard deviation before storing */
-  random->mean = (mean - min) / (max - min);
-  random->std = std / (max - min);
-
-  if (random->mean * (1 - random->mean) < random->std * random->std)
-    THROWF(arg_error, 0, "Invalid mean and standard deviation (%f and %f)",
-           random->mean, random->std);
-
-  return random;
-}
index c55dd85..a3ae7d8 100644 (file)
 #include "xbt/dict.h"
 #include "xbt/RngStream.h"
 #include <xbt/signal.hpp>
-#include "simgrid/platf_interface.h"
-#include "surf/surf_routing.h"
 #include "surf/surf.h"
 
 #include "src/simix/smx_private.h"
-#include "src/surf/platform.hpp"
 
-#include "cpu_interface.hpp"
-#include "host_interface.hpp"
+#include "src/include/simgrid/sg_config.h"
+#include "src/surf/xml/platf_private.hpp"
+
+#include "src/surf/cpu_interface.hpp"
+#include "src/surf/host_interface.hpp"
+#include "src/surf/network_interface.hpp"
+#include "surf/surf_routing.h" // FIXME: brain dead public header
+#include "src/surf/surf_routing_cluster.hpp"
+#include "src/surf/surf_routing_cluster_torus.hpp"
+#include "src/surf/surf_routing_cluster_fat_tree.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_parse);
 
+XBT_PRIVATE xbt_dynar_t mount_list = NULL;
+
 namespace simgrid {
 namespace surf {
 
@@ -34,9 +41,6 @@ simgrid::xbt::signal<void(void)> on_postparse;
 
 static int surf_parse_models_setup_already_called = 0;
 
-/* one RngStream for the platform, to respect some statistic rules */
-static RngStream sg_platf_rng_stream = NULL;
-
 /** Module management function: creates all internal data structures */
 void sg_platf_init(void) {
 }
@@ -49,29 +53,59 @@ void sg_platf_exit(void) {
 
   /* make sure that we will reinit the models while loading the platf once reinited */
   surf_parse_models_setup_already_called = 0;
+  surf_parse_lex_destroy();
 }
 
+/** @brief Add an "host" to the current AS */
 void sg_platf_new_host(sg_platf_host_cbarg_t host)
 {
   xbt_assert(! sg_host_by_name(host->id),
-                    "Refusing to create a second host named '%s'.", host->id);
+      "Refusing to create a second host named '%s'.", host->id);
 
-  simgrid::surf::NetCard *net = NULL;
   simgrid::surf::As* current_routing = routing_get_current();
-  if (current_routing)
-    net = routing_add_host(current_routing, host);
+  if (current_routing->hierarchy_ == SURF_ROUTING_NULL)
+    current_routing->hierarchy_ = SURF_ROUTING_BASE;
 
+  simgrid::surf::NetCard *netcard =
+      new simgrid::surf::NetCardImpl(host->id, SURF_NETWORK_ELEMENT_HOST, current_routing);
+
+  netcard->setId(current_routing->addComponent(netcard));
   sg_host_t h = simgrid::s4u::Host::by_name_or_create(host->id);
-  simgrid::surf::Cpu *cpu = surf_cpu_model_pm->createCpu(
-               h,
-        host->speed_peak,
-        host->pstate,
-        host->speed_scale,
-        host->speed_trace,
-        host->core_amount,
-        host->initiallyOn,
-        host->state_trace);
-  surf_host_model->createHost(host->id, net, cpu, host->properties)->attach(h);
+  h->pimpl_netcard = netcard;
+  simgrid::surf::netcardCreatedCallbacks(netcard);
+
+  if(mount_list){
+    xbt_lib_set(storage_lib, host->id, ROUTING_STORAGE_HOST_LEVEL, (void *) mount_list);
+    mount_list = NULL;
+  }
+
+  if (host->coord && strcmp(host->coord, "")) {
+    unsigned int cursor;
+    char*str;
+
+    if (!COORD_HOST_LEVEL)
+      xbt_die ("To use host coordinates, please add --cfg=network/coordinates:yes to your command line");
+    /* Pre-parse the host coordinates -- FIXME factorize with routers by overloading the routing->parse_PU function*/
+    xbt_dynar_t ctn_str = xbt_str_split_str(host->coord, " ");
+    xbt_dynar_t ctn = xbt_dynar_new(sizeof(double),NULL);
+    xbt_dynar_foreach(ctn_str,cursor, str) {
+      double val = xbt_str_parse_double(str, "Invalid coordinate: %s");
+      xbt_dynar_push(ctn,&val);
+    }
+    xbt_dynar_shrink(ctn, 0);
+    xbt_dynar_free(&ctn_str);
+    h->extension_set(COORD_HOST_LEVEL, (void *) ctn);
+    XBT_DEBUG("Having set host coordinates for '%s'",host->id);
+  }
+
+
+  simgrid::surf::Cpu *cpu = surf_cpu_model_pm->createCpu( h,
+      host->speed_peak,
+      host->pstate,
+      host->speed_scale, host->speed_trace,
+      host->core_amount,
+      host->initiallyOn, host->state_trace);
+  surf_host_model->createHost(host->id, netcard, cpu, host->properties)->attach(h);
   simgrid::s4u::Host::onCreation(*h);
 
   if (TRACE_is_enabled() && TRACE_needs_platform())
@@ -85,18 +119,16 @@ void sg_platf_new_router(sg_platf_router_cbarg_t router)
 {
   simgrid::surf::As* current_routing = routing_get_current();
 
-  if (current_routing->p_hierarchy == SURF_ROUTING_NULL)
-    current_routing->p_hierarchy = SURF_ROUTING_BASE;
-  xbt_assert(!xbt_lib_get_or_null(as_router_lib, router->id, ROUTING_ASR_LEVEL),
-             "Reading a router, processing unit \"%s\" already exists",
-             router->id);
+  if (current_routing->hierarchy_ == SURF_ROUTING_NULL)
+    current_routing->hierarchy_ = SURF_ROUTING_BASE;
+  xbt_assert(nullptr == xbt_lib_get_or_null(as_router_lib, router->id, ROUTING_ASR_LEVEL),
+             "Refusing to create a router named '%s': this name already describes a node.", router->id);
 
-  simgrid::surf::NetCard *info = new simgrid::surf::NetCardImpl(
-    xbt_strdup(router->id), -1, SURF_NETWORK_ELEMENT_ROUTER, current_routing);
-  info->setId(current_routing->parsePU(info));
-  xbt_lib_set(as_router_lib, router->id, ROUTING_ASR_LEVEL, (void *) info);
-  XBT_DEBUG("Having set name '%s' id '%d'", router->id, info->getId());
-  simgrid::surf::netcardCreatedCallbacks(info);
+  simgrid::surf::NetCard *netcard = new simgrid::surf::NetCardImpl(router->id, SURF_NETWORK_ELEMENT_ROUTER, current_routing);
+  netcard->setId(current_routing->addComponent(netcard));
+  xbt_lib_set(as_router_lib, router->id, ROUTING_ASR_LEVEL, (void *) netcard);
+  XBT_DEBUG("Having set name '%s' id '%d'", router->id, netcard->id());
+  simgrid::surf::netcardCreatedCallbacks(netcard);
 
   if (router->coord && strcmp(router->coord, "")) {
     unsigned int cursor;
@@ -108,7 +140,7 @@ void sg_platf_new_router(sg_platf_router_cbarg_t router)
     xbt_dynar_t ctn_str = xbt_str_split_str(router->coord, " ");
     xbt_dynar_t ctn = xbt_dynar_new(sizeof(double),NULL);
     xbt_dynar_foreach(ctn_str,cursor, str) {
-      double val = atof(str);
+      double val = xbt_str_parse_double(str, "Invalid coordinate: %s");
       xbt_dynar_push(ctn,&val);
     }
     xbt_dynar_shrink(ctn, 0);
@@ -127,7 +159,251 @@ void sg_platf_new_link(sg_platf_link_cbarg_t link){
 
 void sg_platf_new_cluster(sg_platf_cluster_cbarg_t cluster)
 {
-  routing_new_cluster(cluster);
+  using simgrid::surf::AsCluster;
+  using simgrid::surf::AsClusterTorus;
+  using simgrid::surf::AsClusterFatTree;
+
+  char *host_id, *groups, *link_id = NULL;
+  xbt_dict_t patterns = NULL;
+  int rankId=0;
+
+  s_sg_platf_host_cbarg_t host = SG_PLATF_HOST_INITIALIZER;
+  s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
+
+  unsigned int iter;
+
+  if ((cluster->availability_trace && strcmp(cluster->availability_trace, ""))
+      || (cluster->state_trace && strcmp(cluster->state_trace, ""))) {
+    patterns = xbt_dict_new_homogeneous(xbt_free_f);
+    xbt_dict_set(patterns, "id", xbt_strdup(cluster->id), NULL);
+    xbt_dict_set(patterns, "prefix", xbt_strdup(cluster->prefix), NULL);
+    xbt_dict_set(patterns, "suffix", xbt_strdup(cluster->suffix), NULL);
+  }
+
+  /* Parse the topology attributes.
+   * Nothing to do in a vanilla cluster, but that's another story for torus and flat_trees */
+  s_sg_platf_AS_cbarg_t AS = SG_PLATF_AS_INITIALIZER;
+  AS.id = cluster->id;
+
+  switch (cluster->topology) {
+  case SURF_CLUSTER_TORUS:
+    AS.routing = A_surfxml_AS_routing_ClusterTorus;
+    break;
+  case SURF_CLUSTER_FAT_TREE:
+    AS.routing = A_surfxml_AS_routing_ClusterFatTree;
+    break;
+  default:
+    AS.routing = A_surfxml_AS_routing_Cluster;
+    break;
+  }
+
+  // What an inventive way of initializing the AS that I have as ancestor :-(
+  sg_platf_new_AS_begin(&AS);
+  simgrid::surf::As *current_routing = routing_get_current();
+  static_cast<AsCluster*>(current_routing)->parse_specific_arguments(cluster);
+
+  if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
+      ((AsCluster*)current_routing)->nb_links_per_node_++;
+      ((AsCluster*)current_routing)->has_loopback_=1;
+  }
+
+  if(cluster->limiter_link!=0){
+      ((AsCluster*)current_routing)->nb_links_per_node_++;
+      ((AsCluster*)current_routing)->has_limiter_=1;
+  }
+
+
+  //Make all hosts
+  xbt_dynar_t radical_elements = xbt_str_split(cluster->radical, ",");
+  xbt_dynar_foreach(radical_elements, iter, groups) {
+
+    xbt_dynar_t radical_ends = xbt_str_split(groups, "-");
+    int start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+    int end;
+
+    switch (xbt_dynar_length(radical_ends)) {
+    case 1:
+      end = start;
+      break;
+    case 2:
+      end = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
+      break;
+    default:
+      surf_parse_error("Malformed radical");
+      break;
+    }
+    for (int i = start; i <= end; i++) {
+      host_id = bprintf("%s%d%s", cluster->prefix, i, cluster->suffix);
+      link_id = bprintf("%s_link_%d", cluster->id, i);
+
+      XBT_DEBUG("<host\tid=\"%s\"\tpower=\"%f\">", host_id, cluster->speed);
+
+      memset(&host, 0, sizeof(host));
+      host.id = host_id;
+      if ((cluster->properties != NULL) && (!xbt_dict_is_empty(cluster->properties))) {
+        xbt_dict_cursor_t cursor=NULL;
+        char *key,*data;
+        host.properties = xbt_dict_new();
+
+        xbt_dict_foreach(cluster->properties,cursor,key,data) {
+          xbt_dict_set(host.properties, key, xbt_strdup(data),free);
+        }
+      }
+      if (cluster->availability_trace && strcmp(cluster->availability_trace, "")) {
+        xbt_dict_set(patterns, "radical", bprintf("%d", i), NULL);
+        char *avail_file = xbt_str_varsubst(cluster->availability_trace, patterns);
+        XBT_DEBUG("\tavailability_file=\"%s\"", avail_file);
+        host.speed_trace = tmgr_trace_new_from_file(avail_file);
+        xbt_free(avail_file);
+      } else {
+        XBT_DEBUG("\tavailability_file=\"\"");
+      }
+
+      if (cluster->state_trace && strcmp(cluster->state_trace, "")) {
+        char *avail_file = xbt_str_varsubst(cluster->state_trace, patterns);
+        XBT_DEBUG("\tstate_file=\"%s\"", avail_file);
+        host.state_trace = tmgr_trace_new_from_file(avail_file);
+        xbt_free(avail_file);
+      } else {
+        XBT_DEBUG("\tstate_file=\"\"");
+      }
+
+      host.speed_peak = xbt_dynar_new(sizeof(double), NULL);
+      xbt_dynar_push(host.speed_peak,&cluster->speed);
+      host.pstate = 0;
+
+      //host.power_peak = cluster->power;
+      host.speed_scale = 1.0;
+      host.core_amount = cluster->core_amount;
+      host.initiallyOn = 1;
+      host.coord = "";
+      sg_platf_new_host(&host);
+      xbt_dynar_free(&host.speed_peak);
+      XBT_DEBUG("</host>");
+
+      XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%f\"\tlat=\"%f\"/>", link_id,
+                cluster->bw, cluster->lat);
+
+
+      s_surf_parsing_link_up_down_t info_lim, info_loop;
+      // All links are saved in a matrix;
+      // every row describes a single node; every node
+      // may have multiple links.
+      // the first column may store a link from x to x if p_has_loopback is set
+      // the second column may store a limiter link if p_has_limiter is set
+      // other columns are to store one or more link for the node
+
+      //add a loopback link
+      if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
+        char *tmp_link = bprintf("%s_loopback", link_id);
+        XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", tmp_link,
+                cluster->limiter_link);
+
+
+        memset(&link, 0, sizeof(link));
+        link.id        = tmp_link;
+        link.bandwidth = cluster->loopback_bw;
+        link.latency   = cluster->loopback_lat;
+        link.initiallyOn = 1;
+        link.policy    = SURF_LINK_FATPIPE;
+        sg_platf_new_link(&link);
+        info_loop.link_up   = Link::byName(tmp_link);
+        info_loop.link_down = info_loop.link_up;
+        free(tmp_link);
+        xbt_dynar_set(current_routing->upDownLinks,
+          rankId*(static_cast<AsCluster*>(current_routing))->nb_links_per_node_, &info_loop);
+      }
+
+      //add a limiter link (shared link to account for maximal bandwidth of the node)
+      if(cluster->limiter_link!=0){
+        char *tmp_link = bprintf("%s_limiter", link_id);
+        XBT_DEBUG("<limiter\tid=\"%s\"\tbw=\"%f\"/>", tmp_link,
+                cluster->limiter_link);
+
+
+        memset(&link, 0, sizeof(link));
+        link.id = tmp_link;
+        link.bandwidth = cluster->limiter_link;
+        link.latency = 0;
+        link.initiallyOn = 1;
+        link.policy = SURF_LINK_SHARED;
+        sg_platf_new_link(&link);
+        info_lim.link_up = Link::byName(tmp_link);
+        info_lim.link_down = info_lim.link_up;
+        free(tmp_link);
+        auto as_cluster = static_cast<AsCluster*>(current_routing);
+        xbt_dynar_set(current_routing->upDownLinks,
+            rankId*(as_cluster)->nb_links_per_node_ + as_cluster->has_loopback_ ,
+            &info_lim);
+
+      }
+
+
+      //call the cluster function that adds the others links
+      if (cluster->topology == SURF_CLUSTER_FAT_TREE) {
+        ((AsClusterFatTree*) current_routing)->addProcessingNode(i);
+      }
+      else {
+      static_cast<AsCluster*>(current_routing)->create_links_for_node(cluster, i, rankId, rankId*
+          static_cast<AsCluster*>(current_routing)->nb_links_per_node_
+          + static_cast<AsCluster*>(current_routing)->has_loopback_
+          + static_cast<AsCluster*>(current_routing)->has_limiter_ );
+      }
+      xbt_free(link_id);
+      xbt_free(host_id);
+      rankId++;
+    }
+
+    xbt_dynar_free(&radical_ends);
+  }
+  xbt_dynar_free(&radical_elements);
+
+  // For fat trees, the links must be created once all nodes have been added
+  if(cluster->topology == SURF_CLUSTER_FAT_TREE) {
+    static_cast<simgrid::surf::AsClusterFatTree*>(current_routing)->create_links();
+  }
+  // Add a router. It is magically used thanks to the way in which surf_routing_cluster is written,
+  // and it's very useful to connect clusters together
+  XBT_DEBUG(" ");
+  XBT_DEBUG("<router id=\"%s\"/>", cluster->router_id);
+  char *newid = NULL;
+  s_sg_platf_router_cbarg_t router = SG_PLATF_ROUTER_INITIALIZER;
+  memset(&router, 0, sizeof(router));
+  router.id = cluster->router_id;
+  router.coord = "";
+  if (!router.id || !strcmp(router.id, ""))
+    router.id = newid =
+        bprintf("%s%s_router%s", cluster->prefix, cluster->id,
+                cluster->suffix);
+  sg_platf_new_router(&router);
+  ((AsCluster*)current_routing)->router_ = (simgrid::surf::NetCard*) xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL);
+  free(newid);
+
+  //Make the backbone
+  if ((cluster->bb_bw != 0) || (cluster->bb_lat != 0)) {
+    char *link_backbone = bprintf("%s_backbone", cluster->id);
+    XBT_DEBUG("<link\tid=\"%s\" bw=\"%f\" lat=\"%f\"/>", link_backbone,
+              cluster->bb_bw, cluster->bb_lat);
+
+    memset(&link, 0, sizeof(link));
+    link.id        = link_backbone;
+    link.bandwidth = cluster->bb_bw;
+    link.latency   = cluster->bb_lat;
+    link.initiallyOn = 1;
+    link.policy    = cluster->bb_sharing_policy;
+
+    sg_platf_new_link(&link);
+
+    routing_cluster_add_backbone(Link::byName(link_backbone));
+
+    free(link_backbone);
+  }
+
+  XBT_DEBUG("</AS>");
+  sg_platf_new_AS_end();
+  XBT_DEBUG(" ");
+  xbt_dict_free(&patterns); // no op if it were never set
+
   simgrid::surf::on_cluster(cluster);
 }
 
@@ -166,13 +442,13 @@ void sg_platf_new_storage(sg_platf_storage_cbarg_t storage)
       ((storage_type_t) stype)->type_id,
       storage->content,
       storage->content_type,
-         storage->properties);
+    storage->properties);
 
   surf_storage_model->createStorage(storage->id,
                                      ((storage_type_t) stype)->type_id,
                                      storage->content,
                                      storage->content_type,
-                                                                        storage->properties,
+                   storage->properties,
                                      storage->attach);
 }
 void sg_platf_new_storage_type(sg_platf_storage_type_cbarg_t storage_type){
@@ -204,19 +480,6 @@ void sg_platf_new_storage_type(sg_platf_storage_type_cbarg_t storage_type){
 void sg_platf_new_mstorage(sg_platf_mstorage_cbarg_t mstorage)
 {
   THROW_UNIMPLEMENTED;
-//  mount_t mnt = xbt_new0(s_mount_t, 1);
-//  mnt->id = xbt_strdup(mstorage->type_id);
-//  mnt->name = xbt_strdup(mstorage->name);
-//
-//  if(!mount_list){
-//    XBT_DEBUG("Creata a Mount list for %s",A_surfxml_host_id);
-//    mount_list = xbt_dynar_new(sizeof(char *), NULL);
-//  }
-//  xbt_dynar_push(mount_list,(void *) mnt);
-//  free(mnt->id);
-//  free(mnt->name);
-//  xbt_free(mnt);
-//  XBT_DEBUG("ROUTING Mount a storage name '%s' with type_id '%s'",mstorage->name, mstorage->id);
 }
 
 static void mount_free(void *p)
@@ -227,10 +490,8 @@ static void mount_free(void *p)
 
 void sg_platf_new_mount(sg_platf_mount_cbarg_t mount){
   // Verification of an existing storage
-#ifndef NDEBUG
-  void* storage = xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL);
-#endif
-  xbt_assert(storage,"Disk id \"%s\" does not exists", mount->storageId);
+  xbt_assert(xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL),
+      "Cannot mount non-existent disk \"%s\"", mount->storageId);
 
   XBT_DEBUG("ROUTING Mount '%s' on '%s'",mount->storageId, mount->name);
 
@@ -247,32 +508,40 @@ void sg_platf_new_mount(sg_platf_mount_cbarg_t mount){
 
 void sg_platf_new_route(sg_platf_route_cbarg_t route)
 {
-  routing_get_current()->parseRoute(route);
-}
-
-void sg_platf_new_ASroute(sg_platf_route_cbarg_t ASroute)
-{
-  routing_get_current()->parseASroute(ASroute);
+  routing_get_current()->addRoute(route);
 }
 
 void sg_platf_new_bypassRoute(sg_platf_route_cbarg_t bypassRoute)
 {
-  routing_get_current()->parseBypassroute(bypassRoute);
-}
-
-void sg_platf_new_bypassASroute(sg_platf_route_cbarg_t bypassASroute)
-{
-  routing_get_current()->parseBypassroute(bypassASroute);
+  routing_get_current()->addBypassRoute(bypassRoute);
 }
 
 void sg_platf_new_process(sg_platf_process_cbarg_t process)
 {
-  if (!simix_global)
-    xbt_die("Cannot create process without SIMIX.");
+  xbt_assert(simix_global,"Cannot create process without SIMIX.");
 
   sg_host_t host = sg_host_by_name(process->host);
-  if (!host)
-    THROWF(arg_error, 0, "Host '%s' unknown", process->host);
+  if (!host) {
+    // The requested host does not exist. Do a nice message to the user
+    char *tmp = bprintf("Cannot create process '%s': host '%s' does not exist\nExisting hosts: '",process->function, process->host);
+    xbt_strbuff_t msg = xbt_strbuff_new_from(tmp);
+    free(tmp);
+    xbt_dynar_t all_hosts = xbt_dynar_sort_strings(sg_hosts_as_dynar());
+    simgrid::s4u::Host* host;
+    unsigned int cursor;
+    xbt_dynar_foreach(all_hosts,cursor, host) {
+      xbt_strbuff_append(msg,host->name().c_str());
+      xbt_strbuff_append(msg,"', '");
+      if (msg->used > 1024) {
+        msg->data[msg->used-3]='\0';
+        msg->used -= 3;
+
+        xbt_strbuff_append(msg," ...(list truncated)......");// That will be shortened by 3 chars when existing the loop
+      }
+    }
+    msg->data[msg->used-3]='\0';
+    xbt_die("%s", msg->data);
+  }
   xbt_main_func_t parse_code = SIMIX_get_registered_function(process->function);
   xbt_assert(parse_code, "Function '%s' unknown", process->function);
 
@@ -317,11 +586,11 @@ void sg_platf_new_process(sg_platf_process_cbarg_t process)
       SIMIX_process_create_from_wrapper((smx_process_arg_t) arg);
     }, arg);
   } else {                      // start_time <= SIMIX_get_clock()
-    XBT_DEBUG("Starting Process %s(%s) right now", process->argv[0], sg_host_get_name(host));
+    XBT_DEBUG("Starting Process %s(%s) right now", arg->name, sg_host_get_name(host));
 
     if (simix_global->create_process_function)
       process_created = simix_global->create_process_function(
-                                            (char*)(process->argv)[0],
+          arg->name,
                                             parse_code,
                                             NULL,
                                             sg_host_get_name(host),
@@ -331,7 +600,7 @@ void sg_platf_new_process(sg_platf_process_cbarg_t process)
                                             current_property_set,
                                             auto_restart, NULL);
     else
-      process_created = simcall_process_create((char*)(process->argv)[0], parse_code, NULL, sg_host_get_name(host), kill_time, process->argc,
+      process_created = simcall_process_create(arg->name, parse_code, NULL, sg_host_get_name(host), kill_time, process->argc,
           (char**)process->argv, current_property_set,auto_restart);
 
     /* verify if process has been created (won't be the case if the host is currently dead, but that's fine) */
@@ -342,33 +611,79 @@ void sg_platf_new_process(sg_platf_process_cbarg_t process)
   current_property_set = NULL;
 }
 
-void sg_platf_route_begin (sg_platf_route_cbarg_t route){
-  route->link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
-}
-void sg_platf_ASroute_begin (sg_platf_route_cbarg_t ASroute){
-  ASroute->link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
-}
+void sg_platf_begin() { /* Do nothing: just for symmetry of user code */ }
 
-void sg_platf_route_end (sg_platf_route_cbarg_t route){
-  sg_platf_new_route(route);
-}
-void sg_platf_ASroute_end (sg_platf_route_cbarg_t ASroute){
-  sg_platf_new_ASroute(ASroute);
+void sg_platf_end() {
+  simgrid::surf::on_postparse();
 }
 
-void sg_platf_route_add_link (const char* link_id, sg_platf_route_cbarg_t route){
-  char *link_name = xbt_strdup(link_id);
-  xbt_dynar_push(route->link_list, &link_name);
-}
-void sg_platf_ASroute_add_link (const char* link_id, sg_platf_route_cbarg_t ASroute){
-  char *link_name = xbt_strdup(link_id);
-  xbt_dynar_push(ASroute->link_list, &link_name);
-}
+/* Pick the right models for CPU, net and host, and call their model_init_preparse */
+static void surf_config_models_setup()
+{
+  const char *host_model_name;
+  const char *vm_model_name;
+  int host_id = -1;
+  int vm_id = -1;
+  char *network_model_name = NULL;
+  char *cpu_model_name = NULL;
+  int storage_id = -1;
+  char *storage_model_name = NULL;
+
+  host_model_name = xbt_cfg_get_string(_sg_cfg_set, "host/model");
+  vm_model_name = xbt_cfg_get_string(_sg_cfg_set, "vm/model");
+  network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model");
+  cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model");
+  storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/model");
+
+  /* Check whether we use a net/cpu model differing from the default ones, in which case
+   * we should switch to the "compound" host model to correctly dispatch stuff to
+   * the right net/cpu models.
+   */
+
+  if ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") ||
+       !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) &&
+      xbt_cfg_is_default_value(_sg_cfg_set, "host/model")) {
+    host_model_name = "compound";
+    xbt_cfg_set_string(_sg_cfg_set, "host/model", host_model_name);
+  }
 
-void sg_platf_begin() { /* Do nothing: just for symmetry of user code */ }
+  XBT_DEBUG("host model: %s", host_model_name);
+  host_id = find_model_description(surf_host_model_description, host_model_name);
+  if (!strcmp(host_model_name, "compound")) {
+    int network_id = -1;
+    int cpu_id = -1;
+
+    xbt_assert(cpu_model_name,
+                "Set a cpu model to use with the 'compound' host model");
+
+    xbt_assert(network_model_name,
+                "Set a network model to use with the 'compound' host model");
+
+    if(surf_cpu_model_init_preparse){
+      surf_cpu_model_init_preparse();
+    } else {
+      cpu_id =
+          find_model_description(surf_cpu_model_description, cpu_model_name);
+      surf_cpu_model_description[cpu_id].model_init_preparse();
+    }
+
+    network_id =
+        find_model_description(surf_network_model_description,
+                               network_model_name);
+    surf_network_model_description[network_id].model_init_preparse();
+  }
+
+  XBT_DEBUG("Call host_model_init");
+  surf_host_model_description[host_id].model_init_preparse();
+
+  XBT_DEBUG("Call vm_model_init");
+  vm_id = find_model_description(surf_vm_model_description, vm_model_name);
+  surf_vm_model_description[vm_id].model_init_preparse();
+
+  XBT_DEBUG("Call storage_model_init");
+  storage_id = find_model_description(surf_storage_model_description, storage_model_name);
+  surf_storage_model_description[storage_id].model_init_preparse();
 
-void sg_platf_end() {
-  simgrid::surf::on_postparse();
 }
 
 void sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS)
@@ -406,20 +721,3 @@ void sg_platf_new_AS_end()
   if (TRACE_is_enabled())
     sg_instr_AS_end();
 }
-/* ***************************************** */
-
-void sg_platf_rng_stream_init(unsigned long seed[6]) {
-  RngStream_SetPackageSeed(seed);
-  sg_platf_rng_stream = RngStream_CreateStream(NULL);
-}
-
-RngStream sg_platf_rng_stream_get(const char* id) {
-  RngStream stream = NULL;
-  unsigned int id_hash;
-
-  stream = RngStream_CopyStream(sg_platf_rng_stream);
-  id_hash = xbt_str_hash(id);
-  RngStream_AdvanceState(stream, 0, (long)id_hash);
-
-  return stream;
-}
index 62fe89e..026ed9a 100644 (file)
@@ -18,7 +18,6 @@ int ROUTING_STORAGE_HOST_LEVEL;
 int SURF_STORAGE_LEVEL;
 xbt_lib_t storage_type_lib;
 int ROUTING_STORAGE_TYPE_LEVEL; //Routing for storage_type level
-xbt_dynar_t mount_list = NULL;
 simgrid::surf::StorageModel *surf_storage_model = NULL;
 
 namespace simgrid {
@@ -38,7 +37,7 @@ simgrid::xbt::signal<void(simgrid::surf::StorageAction*, e_surf_action_state_t,
  *********/
 
 StorageModel::StorageModel()
-       : Model()
+  : Model()
 {
   p_storageList = NULL;
 }
@@ -104,12 +103,9 @@ xbt_dict_t Storage::parseContent(const char *filename)
     return NULL;
 
   xbt_dict_t parse_content = xbt_dict_new_homogeneous(xbt_free_f);
-  FILE *file = NULL;
 
-  file = surf_fopen(filename, "r");
-  if (file == NULL)
-    xbt_die("Cannot open file '%s' (path=%s)", filename,
-            xbt_str_join(surf_path, ":"));
+  FILE *file =  surf_fopen(filename, "r");
+  xbt_assert(file, "Cannot open file '%s' (path=%s)", filename, xbt_str_join(surf_path, ":"));
 
   char *line = NULL;
   size_t len = 0;
@@ -119,14 +115,12 @@ xbt_dict_t Storage::parseContent(const char *filename)
 
   while ((read = xbt_getline(&line, &len, file)) != -1) {
     if (read){
-      if(sscanf(line,"%s %llu", path, &size) == 2) {
-        m_usedSize += size;
-        sg_size_t *psize = xbt_new(sg_size_t, 1);
-        *psize = size;
-        xbt_dict_set(parse_content,path,psize,NULL);
-      } else {
-        xbt_die("Be sure of passing a good format for content file.\n");
-      }
+      xbt_assert(sscanf(line,"%s %llu", path, &size) == 2, "Parse error in %s: %s",filename,line);
+
+      m_usedSize += size;
+      sg_size_t *psize = xbt_new(sg_size_t, 1);
+      *psize = size;
+      xbt_dict_set(parse_content,path,psize,NULL);
     }
   }
   free(line);
@@ -140,7 +134,7 @@ bool Storage::isUsed()
   return false;
 }
 
-void Storage::updateState(tmgr_trace_iterator_t /*event_type*/, double /*value*/, double /*date*/)
+void Storage::apply_event(tmgr_trace_iterator_t /*event*/, double /*value*/)
 {
   THROW_UNIMPLEMENTED;
 }
index 01bbf94..3ba65bf 100644 (file)
@@ -13,8 +13,6 @@
 #ifndef STORAGE_INTERFACE_HPP_
 #define STORAGE_INTERFACE_HPP_
 
-extern xbt_dynar_t mount_list;
-
 namespace simgrid {
 namespace surf {
 
@@ -83,7 +81,7 @@ public:
                                     xbt_dict_t properties,
                                     const char *attach) = 0;
 
-  bool shareResourcesIsIdempotent() {return true;}
+  bool next_occuring_event_isIdempotent() {return true;}
 
   xbt_dynar_t p_storageList;
 };
@@ -96,7 +94,7 @@ public:
  * @details A Storage represent a storage unit (e.g.: hard drive, usb key)
  */
 class Storage : public simgrid::surf::Resource,
-                               public simgrid::surf::PropertyHolder {
+        public simgrid::surf::PropertyHolder {
 public:
   /**
    * @brief Storage constructor
@@ -140,14 +138,7 @@ public:
   /** @brief Check if the Storage is used (if an action currently uses its resources) */
   bool isUsed() override;
 
-  /**
-   * @brief Update the state of the current Storage
-   *
-   * @param event_type [description]
-   * @param value [description]
-   * @param date [description]
-   */
-  void updateState(tmgr_trace_iterator_t event_type, double value, double date) override;
+  void apply_event(tmgr_trace_iterator_t event, double value) override;
 
   void turnOn() override;
   void turnOff() override;
index c21c670..31002dc 100644 (file)
@@ -80,20 +80,24 @@ StorageN11Model::~StorageN11Model(){
   storage_running_action_set_that_does_not_need_being_checked = NULL;
 }
 
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
 Storage *StorageN11Model::createStorage(const char* id, const char* type_id,
     const char* content_name, const char* content_type, xbt_dict_t properties,
     const char* attach)
 {
 
   xbt_assert(!surf_storage_resource_priv(surf_storage_resource_by_name(id)),
-              "Storage '%s' declared several times in the platform file",
-              id);
+      "Storage '%s' declared several times in the platform file",
+      id);
 
   storage_type_t storage_type = (storage_type_t) xbt_lib_get_or_null(storage_type_lib, type_id,ROUTING_STORAGE_TYPE_LEVEL);
 
-  double Bread  = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bread"));
-  double Bwrite = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bwrite"));
-  double Bconnection   = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bconnection"));
+  double Bread  = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bread"),
+      "property Bread, storage",type_id);
+  double Bwrite = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bwrite"),
+      "property Bwrite, storage",type_id);
+  double Bconnection   = surf_parse_get_bandwidth((char*)xbt_dict_get(storage_type->model_properties, "Bconnection"),
+      "property Bconnection, storage",type_id);
 
   Storage *storage = new StorageN11(this, id, properties, p_maxminSystem,
       Bread, Bwrite, Bconnection, type_id, (char *)content_name,
@@ -114,9 +118,9 @@ Storage *StorageN11Model::createStorage(const char* id, const char* type_id,
   return storage;
 }
 
-double StorageN11Model::shareResources(double now)
+double StorageN11Model::next_occuring_event(double /*now*/)
 {
-  XBT_DEBUG("storage_share_resources %f", now);
+  XBT_DEBUG("storage_share_resources");
   unsigned int i, j;
   Storage *storage;
   void *_write_action;
@@ -149,7 +153,7 @@ void StorageN11Model::updateActionsState(double /*now*/, double delta)
 
   ActionList *actionSet = getRunningActionSet();
   for(ActionList::iterator it(actionSet->begin()), itNext=it, itend(actionSet->end())
-     ; it != itend ; it=itNext) {
+      ; it != itend ; it=itNext) {
     ++itNext;
     action = static_cast<StorageAction*>(&*it);
 
@@ -163,15 +167,15 @@ void StorageN11Model::updateActionsState(double /*now*/, double delta)
       long int incr = current_progress;
 
       XBT_DEBUG("%s:\n\t progress =  %.2f, current_progress = %.2f, "
-                "incr = %ld, lrint(1) = %ld, lrint(2) = %ld",
-                action->p_file->name,
-                action->progress,  current_progress, incr,
-                lrint(action->progress + current_progress),
-                lrint(action->progress)+ incr);
+          "incr = %ld, lrint(1) = %ld, lrint(2) = %ld",
+          action->p_file->name,
+          action->progress,  current_progress, incr,
+          lrint(action->progress + current_progress),
+          lrint(action->progress)+ incr);
 
       /* take care of rounding error accumulation */
       if (lrint(action->progress + current_progress) >
-          lrint(action->progress)+ incr)
+      lrint(action->progress)+ incr)
         incr++;
 
       action->progress +=current_progress;
@@ -204,7 +208,7 @@ void StorageN11Model::updateActionsState(double /*now*/, double delta)
       action->finish();
       action->setState(SURF_ACTION_DONE);
     } else if ((action->getMaxDuration() != NO_MAX_DURATION) &&
-               (action->getMaxDuration() <= 0))
+        (action->getMaxDuration() <= 0))
     {
       action->finish();
       action->setState(SURF_ACTION_DONE);
@@ -221,8 +225,8 @@ StorageN11::StorageN11(StorageModel *model, const char* name,
     xbt_dict_t properties, lmm_system_t maxminSystem, double bread,
     double bwrite, double bconnection, const char* type_id, char *content_name,
     char *content_type, sg_size_t size, char *attach)
- : Storage(model, name, properties,
-          maxminSystem, bread, bwrite, bconnection, type_id, content_name, content_type, size, attach) {
+: Storage(model, name, properties,
+    maxminSystem, bread, bwrite, bconnection, type_id, content_name, content_type, size, attach) {
   XBT_DEBUG("Create resource with Bconnection '%f' Bread '%f' Bwrite '%f' and Size '%llu'", bconnection, bread, bwrite, size);
 }
 
@@ -263,7 +267,7 @@ StorageAction *StorageN11::close(surf_file_t fd)
   StorageAction *write_action;
   unsigned int i;
   xbt_dynar_foreach(p_writeActions, i, _write_action) {
-       write_action = static_cast<StorageAction*>(_write_action);
+    write_action = static_cast<StorageAction*>(_write_action);
     if ((write_action->p_file) == fd) {
       xbt_dynar_cursor_rm(p_writeActions, &i);
       write_action->unref();
@@ -315,9 +319,9 @@ StorageAction *StorageN11::write(surf_file_t fd, sg_size_t size)
  **********/
 
 StorageN11Action::StorageN11Action(Model *model, double cost, bool failed, Storage *storage, e_surf_action_storage_type_t type)
-  : StorageAction(model, cost, failed,
-                     lmm_variable_new(model->getMaxminSystem(), this, 1.0, -1.0 , 3),
-                     storage, type) {
+: StorageAction(model, cost, failed,
+    lmm_variable_new(model->getMaxminSystem(), this, 1.0, -1.0 , 3),
+    storage, type) {
   XBT_IN("(%s,%g", storage->getName(), cost);
 
   // Must be less than the max bandwidth for all actions
@@ -329,16 +333,16 @@ StorageN11Action::StorageN11Action(Model *model, double cost, bool failed, Stora
     break;
   case READ:
     lmm_expand(model->getMaxminSystem(), storage->p_constraintRead,
-               getVariable(), 1.0);
+        getVariable(), 1.0);
     break;
   case WRITE:
     lmm_expand(model->getMaxminSystem(), storage->p_constraintWrite,
-               getVariable(), 1.0);
+        getVariable(), 1.0);
 
-//TODO there is something annoying with what's below. Have to sort it out...
-//    Action *action = this;
-//    xbt_dynar_push(storage->p_writeActions, &action);
-//    ref();
+    //TODO there is something annoying with what's below. Have to sort it out...
+    //    Action *action = this;
+    //    xbt_dynar_push(storage->p_writeActions, &action);
+    //    ref();
     break;
   }
   XBT_OUT();
@@ -348,8 +352,8 @@ int StorageN11Action::unref()
 {
   m_refcount--;
   if (!m_refcount) {
-       if (action_hook.is_linked())
-         p_stateSet->erase(p_stateSet->iterator_to(*this));
+    if (action_hook.is_linked())
+      p_stateSet->erase(p_stateSet->iterator_to(*this));
     if (getVariable())
       lmm_variable_free(getModel()->getMaxminSystem(), getVariable());
     xbt_free(getCategory());
@@ -369,9 +373,7 @@ void StorageN11Action::suspend()
 {
   XBT_IN("(%p)", this);
   if (m_suspended != 2) {
-    lmm_update_variable_weight(getModel()->getMaxminSystem(),
-                               getVariable(),
-                               0.0);
+    lmm_update_variable_weight(getModel()->getMaxminSystem(), getVariable(), 0.0);
     m_suspended = 1;
   }
   XBT_OUT();
index e34e694..6a5eabd 100644 (file)
@@ -31,10 +31,9 @@ public:
   StorageN11Model();
   ~StorageN11Model();
   Storage *createStorage(const char* id, const char* type_id,
-                  const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach);
-  void addTraces(){DIE_IMPOSSIBLE;}
-  double shareResources(double now);
-  void updateActionsState(double now, double delta);
+       const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach) override;
+  double next_occuring_event(double now) override;
+  void updateActionsState(double now, double delta) override;
 };
 
 /************
@@ -44,8 +43,8 @@ public:
 class StorageN11 : public Storage {
 public:
   StorageN11(StorageModel *model, const char* name, xbt_dict_t properties,
-                    lmm_system_t maxminSystem, double bread, double bwrite, double bconnection,
-                    const char* type_id, char *content_name, char *content_type, sg_size_t size, char *attach);
+         lmm_system_t maxminSystem, double bread, double bwrite, double bconnection,
+         const char* type_id, char *content_name, char *content_type, sg_size_t size, char *attach);
 
   StorageAction *open(const char* mount, const char* path);
   StorageAction *close(surf_file_t fd);
index 8d3fe2c..20e209b 100644 (file)
@@ -44,7 +44,7 @@ void surf_presolve(void)
 
     while ((event = future_evt_set->pop_leq(next_event_date, &value, &resource))) {
       if (value >= 0){
-        resource->updateState(event, value, NOW);
+        resource->apply_event(event, value);
       }
     }
   }
@@ -56,7 +56,7 @@ void surf_presolve(void)
 
 double surf_solve(double max_date)
 {
-  double surf_min = -1.0; /* duration */
+  double time_delta = -1.0; /* duration */
   double next_event_date = -1.0;
   double model_next_action_end = -1.0;
   double value = -1.0;
@@ -65,27 +65,26 @@ double surf_solve(double max_date)
   tmgr_trace_iterator_t event = NULL;
   unsigned int iter;
 
-  if(!host_that_restart)
-    host_that_restart = xbt_dynar_new(sizeof(char*), NULL);
+  if (max_date > 0.0) {
+    xbt_assert(max_date > NOW,"You asked to simulate up to %f, but that's in the past already", max_date);
 
-  if (max_date != -1.0 && max_date != NOW) {
-    surf_min = max_date - NOW;
+    time_delta = max_date - NOW;
   }
 
   /* Physical models MUST be resolved first */
   XBT_DEBUG("Looking for next event in physical models");
-  double next_event_phy = surf_host_model->shareResources(NOW);
-  if ((surf_min < 0.0 || next_event_phy < surf_min) && next_event_phy >= 0.0) {
-         surf_min = next_event_phy;
+  double next_event_phy = surf_host_model->next_occuring_event(NOW);
+  if ((time_delta < 0.0 || next_event_phy < time_delta) && next_event_phy >= 0.0) {
+    time_delta = next_event_phy;
   }
   if (surf_vm_model != NULL) {
-         XBT_DEBUG("Looking for next event in virtual models");
-         double next_event_virt = surf_vm_model->shareResources(NOW);
-         if ((surf_min < 0.0 || next_event_virt < surf_min) && next_event_virt >= 0.0)
-                 surf_min = next_event_virt;
+    XBT_DEBUG("Looking for next event in virtual models");
+    double next_event_virt = surf_vm_model->next_occuring_event(NOW);
+    if ((time_delta < 0.0 || next_event_virt < time_delta) && next_event_virt >= 0.0)
+      time_delta = next_event_virt;
   }
 
-  XBT_DEBUG("Min for resources (remember that NS3 don't update that value): %f", surf_min);
+  XBT_DEBUG("Min for resources (remember that NS3 don't update that value): %f", time_delta);
 
   XBT_DEBUG("Looking for next trace event");
 
@@ -93,20 +92,20 @@ double surf_solve(double max_date)
     next_event_date = future_evt_set->next_date();
     XBT_DEBUG("Next TRACE event: %f", next_event_date);
 
-    if(! surf_network_model->shareResourcesIsIdempotent()){ // NS3, I see you
-      if (next_event_date!=-1.0 && surf_min!=-1.0) {
-        surf_min = MIN(next_event_date - NOW, surf_min);
-      } else{
-        surf_min = MAX(next_event_date - NOW, surf_min);
+    if(! surf_network_model->next_occuring_event_isIdempotent()){ // NS3, I see you
+      if (next_event_date!=-1.0 && time_delta!=-1.0) {
+        time_delta = MIN(next_event_date - NOW, time_delta);
+      } else {
+        time_delta = MAX(next_event_date - NOW, time_delta); // Get the positive component
       }
 
-      XBT_DEBUG("Run the NS3 network at most %fs", surf_min);
+      XBT_DEBUG("Run the NS3 network at most %fs", time_delta);
       // run until min or next flow
-      model_next_action_end = surf_network_model->shareResources(surf_min);
+      model_next_action_end = surf_network_model->next_occuring_event(time_delta);
 
       XBT_DEBUG("Min for network : %f", model_next_action_end);
       if(model_next_action_end>=0.0)
-        surf_min = model_next_action_end;
+        time_delta = model_next_action_end;
     }
 
     if (next_event_date < 0.0) {
@@ -114,44 +113,48 @@ double surf_solve(double max_date)
       break;
     }
 
-    if ((surf_min == -1.0) || (next_event_date > NOW + surf_min))
+    if ((time_delta == -1.0) || (next_event_date > NOW + time_delta))
       break; // next event occurs after the next resource change, bail out
 
-    XBT_DEBUG("Updating models (min = %g, NOW = %g, next_event_date = %g)", surf_min, NOW, next_event_date);
+    XBT_DEBUG("Updating models (min = %g, NOW = %g, next_event_date = %g)", time_delta, NOW, next_event_date);
 
     while ((event = future_evt_set->pop_leq(next_event_date, &value, &resource))) {
       if (resource->isUsed() || xbt_dict_get_or_null(watched_hosts_lib, resource->getName())) {
-        surf_min = next_event_date - NOW;
-        XBT_DEBUG("This event will modify model state. Next event set to %f", surf_min);
+        time_delta = next_event_date - NOW;
+        XBT_DEBUG("This event invalidates the next_occuring_event() computation of models. Next event set to %f", time_delta);
       }
+      // FIXME: I'm too lame to update NOW live, so I change it and restore it so that the real update with surf_min will work
+      double round_start = NOW;
+      NOW = next_event_date;
       /* update state of the corresponding resource to the new value. Does not touch lmm.
          It will be modified if needed when updating actions */
-      XBT_DEBUG("Calling update_resource_state for resource %s with min %f", resource->getName(), surf_min);
-      resource->updateState(event, value, next_event_date);
+      XBT_DEBUG("Calling update_resource_state for resource %s", resource->getName());
+      resource->apply_event(event, value);
+      NOW = round_start;
     }
   }
 
   /* FIXME: Moved this test to here to avoid stopping simulation if there are actions running on cpus and all cpus are with availability = 0.
    * This may cause an infinite loop if one cpu has a trace with periodicity = 0 and the other a trace with periodicity > 0.
    * The options are: all traces with same periodicity(0 or >0) or we need to change the way how the events are managed */
-  if (surf_min == -1.0) {
+  if (time_delta == -1.0) {
     XBT_DEBUG("No next event at all. Bail out now.");
     return -1.0;
   }
 
-  XBT_DEBUG("Duration set to %f", surf_min);
+  XBT_DEBUG("Duration set to %f", time_delta);
 
   // Bump the time: jump into the future
-  NOW = NOW + surf_min;
+  NOW = NOW + time_delta;
 
   // Inform the models of the date change
   xbt_dynar_foreach(all_existing_models, iter, model) {
-         model->updateActionsState(NOW, surf_min);
+    model->updateActionsState(NOW, time_delta);
   }
 
   TRACE_paje_dump_buffer (0);
 
-  return surf_min;
+  return time_delta;
 }
 
 /*********
@@ -160,7 +163,7 @@ double surf_solve(double max_date)
 
 surf_action_t surf_model_extract_done_action_set(surf_model_t model){
   if (model->getDoneActionSet()->empty())
-       return NULL;
+  return NULL;
   surf_action_t res = &model->getDoneActionSet()->front();
   model->getDoneActionSet()->pop_front();
   return res;
@@ -168,7 +171,7 @@ surf_action_t surf_model_extract_done_action_set(surf_model_t model){
 
 surf_action_t surf_model_extract_failed_action_set(surf_model_t model){
   if (model->getFailedActionSet()->empty())
-       return NULL;
+  return NULL;
   surf_action_t res = &model->getFailedActionSet()->front();
   model->getFailedActionSet()->pop_front();
   return res;
@@ -178,13 +181,6 @@ int surf_model_running_action_set_size(surf_model_t model){
   return model->getRunningActionSet()->size();
 }
 
-xbt_dynar_t surf_host_model_get_route(surf_host_model_t /*model*/,
-                                             sg_host_t src, sg_host_t dst){
-  xbt_dynar_t route = NULL;
-  routing_platf->getRouteAndLatency(src->pimpl_netcard, dst->pimpl_netcard, &route, NULL);
-  return route;
-}
-
 void surf_vm_model_create(const char *name, sg_host_t ind_phys_host){
   surf_vm_model->createVM(name, ind_phys_host);
 }
@@ -198,7 +194,7 @@ const char *surf_resource_name(surf_cpp_resource_t resource){
 }
 
 surf_action_t surf_host_sleep(sg_host_t host, double duration){
-       return host->pimpl_cpu->sleep(duration);
+  return host->pimpl_cpu->sleep(duration);
 }
 
 
@@ -206,10 +202,6 @@ double surf_host_get_available_speed(sg_host_t host){
   return host->pimpl_cpu->getAvailableSpeed();
 }
 
-xbt_dynar_t surf_host_get_attached_storage_list(sg_host_t host){
-  return get_casted_host(host)->getAttachedStorageList();
-}
-
 surf_action_t surf_host_open(sg_host_t host, const char* fullpath){
   return get_casted_host(host)->open(fullpath);
 }
@@ -251,28 +243,6 @@ int surf_host_file_move(sg_host_t host, surf_file_t fd, const char* fullpath){
   return get_casted_host(host)->fileMove(fd, fullpath);
 }
 
-xbt_dynar_t surf_host_get_vms(sg_host_t host){
-  xbt_dynar_t vms = get_casted_host(host)->getVms();
-  xbt_dynar_t vms_ = xbt_dynar_new(sizeof(sg_host_t), NULL);
-  unsigned int cpt;
-  simgrid::surf::VirtualMachine *vm;
-  xbt_dynar_foreach(vms, cpt, vm) {
-    // TODO, use a backlink from simgrid::surf::Host to simgrid::s4u::Host 
-    sg_host_t vm_ = (sg_host_t) xbt_dict_get_elm_or_null(host_list, vm->getName());
-    xbt_dynar_push(vms_, &vm_);
-  }
-  xbt_dynar_free(&vms);
-  return vms_;
-}
-
-void surf_host_get_params(sg_host_t host, vm_params_t params){
-  get_casted_host(host)->getParams(params);
-}
-
-void surf_host_set_params(sg_host_t host, vm_params_t params){
-  get_casted_host(host)->setParams(params);
-}
-
 void surf_vm_destroy(sg_host_t vm){ // FIXME:DEADCODE
   vm->pimpl_cpu = nullptr;
   vm->pimpl_netcard = nullptr;
@@ -334,42 +304,6 @@ const char* surf_storage_get_host(surf_resource_t resource){
   return static_cast<simgrid::surf::Storage*>(surf_storage_resource_priv(resource))->p_attach;
 }
 
-double surf_action_get_start_time(surf_action_t action){
-  return action->getStartTime();
-}
-
-double surf_action_get_finish_time(surf_action_t action){
-  return action->getFinishTime();
-}
-
-double surf_action_get_remains(surf_action_t action){
-  return action->getRemains();
-}
-
-void surf_action_set_category(surf_action_t action, const char *category){
-  action->setCategory(category);
-}
-
-void *surf_action_get_data(surf_action_t action){
-  return action->getData();
-}
-
-void surf_action_set_data(surf_action_t action, void *data){
-  action->setData(data);
-}
-
-e_surf_action_state_t surf_action_get_state(surf_action_t action){
-  return action->getState();
-}
-
-double surf_action_get_cost(surf_action_t action){
-  return action->getCost();
-}
-
-void surf_cpu_action_set_affinity(surf_action_t action, sg_host_t host, unsigned long mask) {
-  static_cast<simgrid::surf::CpuAction*>(action)->setAffinity(host->pimpl_cpu, mask);
-}
-
 void surf_cpu_action_set_bound(surf_action_t action, double bound) {
   static_cast<simgrid::surf::CpuAction*>(action)->setBound(bound);
 }
index a6a1831..a2624dd 100644 (file)
@@ -29,9 +29,9 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf,
 xbt_dynar_t all_existing_models = NULL; /* to destroy models correctly */
 xbt_dynar_t model_list_invoke = NULL;  /* to invoke callbacks */
 
-sg_future_evt_set_t future_evt_set = nullptr;
+simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr;
 xbt_dynar_t surf_path = NULL;
-xbt_dynar_t host_that_restart = NULL;
+xbt_dynar_t host_that_restart = xbt_dynar_new(sizeof(char*), NULL);
 xbt_dict_t watched_hosts_lib;
 
 namespace simgrid {
@@ -130,7 +130,7 @@ s_surf_model_description_t surf_storage_model_description[] = {
   {NULL, NULL,  NULL}      /* this array must be NULL terminated */
 };
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
 static xbt_parmap_t surf_parmap = NULL; /* parallel map on models */
 #endif
 
@@ -278,18 +278,18 @@ static XBT_INLINE void surf_storage_free(void *r)
 void sg_version_check(int lib_version_major,int lib_version_minor,int lib_version_patch) {
     if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) {
       fprintf(stderr,
-                 "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
-                 "and then linked against SimGrid %d.%d.%d. Please fix this.\n",
+          "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
+          "and then linked against SimGrid %d.%d.%d. Please fix this.\n",
               SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,
-                         lib_version_major,lib_version_minor,lib_version_patch);
+        lib_version_major,lib_version_minor,lib_version_patch);
       abort();
     }
     if (lib_version_patch != SIMGRID_VERSION_PATCH) {
         fprintf(stderr,
-                 "Warning: Your program was compiled with SimGrid version %d.%d.%d, "
-                 "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n",
+            "Warning: Your program was compiled with SimGrid version %d.%d.%d, "
+            "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n",
                 SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,
-                         lib_version_major,lib_version_minor,lib_version_patch);
+          lib_version_major,lib_version_minor,lib_version_patch);
     }
 }
 
@@ -373,13 +373,12 @@ void surf_exit(void)
     future_evt_set = nullptr;
   }
 
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
   xbt_parmap_destroy(surf_parmap);
 #endif
 
   tmgr_finalize();
-  surf_parse_lex_destroy();
-  surf_parse_free_callbacks();
+  sg_platf_exit();
 
   NOW = 0;                      /* Just in case the user plans to restart the simulation afterward */
 }
@@ -412,18 +411,18 @@ Model::~Model(){
   delete p_doneActionSet;
 }
 
-double Model::shareResources(double now)
+double Model::next_occuring_event(double now)
 {
   //FIXME: set the good function once and for all
   if (p_updateMechanism == UM_LAZY)
-    return shareResourcesLazy(now);
+    return next_occuring_event_lazy(now);
   else if (p_updateMechanism == UM_FULL)
-    return shareResourcesFull(now);
+    return next_occuring_event_full(now);
   else
     xbt_die("Invalid cpu update mechanism!");
 }
 
-double Model::shareResourcesLazy(double now)
+double Model::next_occuring_event_lazy(double now)
 {
   Action *action = NULL;
   double min = -1;
@@ -500,7 +499,7 @@ double Model::shareResourcesLazy(double now)
   return min;
 }
 
-double Model::shareResourcesFull(double /*now*/) {
+double Model::next_occuring_event_full(double /*now*/) {
   THROW_UNIMPLEMENTED;
 }
 
@@ -537,7 +536,7 @@ double Model::shareResourcesMaxMin(ActionList *running_actions,
 
 
   for (++it; it != itend; ++it) {
-       action = &*it;
+  action = &*it;
     value = lmm_variable_getvalue(action->getVariable());
     if (value > 0) {
       if (action->getRemains() > 0)
@@ -562,11 +561,11 @@ double Model::shareResourcesMaxMin(ActionList *running_actions,
 void Model::updateActionsState(double now, double delta)
 {
   if (p_updateMechanism == UM_FULL)
-       updateActionsStateFull(now, delta);
+  updateActionsStateFull(now, delta);
   else if (p_updateMechanism == UM_LAZY)
-       updateActionsStateLazy(now, delta);
+  updateActionsStateLazy(now, delta);
   else
-       xbt_die("Invalid cpu update mechanism!");
+  xbt_die("Invalid cpu update mechanism!");
 }
 
 void Model::updateActionsStateLazy(double /*now*/, double /*delta*/)
index 85fc8e0..2719ed6 100644 (file)
 
 #include "xbt/lib.h"
 #include "surf/surf_routing.h"
-#include "simgrid/platf_interface.h"
 #include "surf/surf.h"
 #include "src/surf/surf_private.h"
-#include "src/surf/trace_mgr.hpp"
 #include "src/internal_config.h"
 
-extern XBT_PRIVATE sg_future_evt_set_t future_evt_set;
 #define NO_MAX_DURATION -1.0
 
 /*********
@@ -73,11 +70,6 @@ enum heap_action_type{
  *********/
 /* For the trace and trace:connect tag (store their content till the end of the parsing) */
 XBT_PUBLIC_DATA(xbt_dict_t) traces_set_list;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_avail;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_host_speed;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_avail;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_bw;
-XBT_PUBLIC_DATA(xbt_dict_t) trace_connect_list_link_lat;
 
 /**********
  * Action *
@@ -280,8 +272,6 @@ public:
   Model();
   virtual ~Model();
 
-  virtual void addTraces() =0;
-
   /** @brief Get the set of [actions](@ref Action) in *ready* state */
   virtual ActionList* getReadyActionSet() {return p_readyActionSet;}
 
@@ -315,12 +305,11 @@ public:
    * @param now The current time of the simulation
    * @return The delta of time till the next action will finish
    */
-  virtual double shareResources(double now);
-  virtual double shareResourcesLazy(double now);
-  virtual double shareResourcesFull(double now);
+  virtual double next_occuring_event(double now);
+  virtual double next_occuring_event_lazy(double now);
+  virtual double next_occuring_event_full(double now);
   double shareResourcesMaxMin(ActionList* running_actions,
-                                      lmm_system_t sys,
-                                      void (*solve) (lmm_system_t));
+      lmm_system_t sys, void (*solve) (lmm_system_t));
 
   /**
    * @brief Update action to the current time
@@ -337,7 +326,7 @@ public:
    * The only model that is not is NS3: computing the next timestamp moves the model up to that point,
    * so we need to call it only when the next timestamp of other sources is computed.
    */
-  virtual bool shareResourcesIsIdempotent()=0;
+  virtual bool next_occuring_event_isIdempotent()=0;
 
 protected:
   ActionLmmListPtr p_modifiedSet;
@@ -415,14 +404,12 @@ public:
   const char *getName();
 
   /**
-   * @brief Update the state of the current Resource
-   * @details [TODO]
+   * @brief Apply an event of external load event to that storage
    *
-   * @param event_type [TODO]
+   * @param event What happened
    * @param value [TODO]
-   * @param date [TODO]
    */
-  virtual void updateState(tmgr_trace_iterator_t event_type, double value, double date)=0;
+  virtual void apply_event(tmgr_trace_iterator_t event, double value)=0;
 
   /** @brief Check if the current Resource is used (if it currently serves an action) */
   virtual bool isUsed()=0;
index aaa141e..2cf7e4c 100644 (file)
 #include "surf/surf.h"
 #include "surf/maxmin.h"
 #include "xbt/log.h"
-#include "surf/surfxml_parse.h"
-#include "surf/random_mgr.h"
 #include "src/surf/trace_mgr.hpp"
 #include "src/instr/instr_private.h"
 #include "surf/surfxml_parse_values.h"
+#include "src/surf/xml/platf_private.hpp"
 
 #define NO_MAX_DURATION -1.0
 
@@ -52,40 +51,34 @@ XBT_PRIVATE int __surf_is_absolute_file_path(const char *file_path);
  * Routing logic
  */
 
-typedef struct s_model_type {
-  const char *name;
-  const char *desc;
-  AS_t (*create) ();
-  void (*end) (AS_t as);
-} s_routing_model_description_t, *routing_model_description_t;
-
 /* This enum used in the routing structure helps knowing in which situation we are. */
 typedef enum {
   SURF_ROUTING_NULL = 0,   /**< Undefined type                                   */
   SURF_ROUTING_BASE,       /**< Base case: use simple link lists for routing     */
   SURF_ROUTING_RECURSIVE   /**< Recursive case: also return gateway informations */
 } e_surf_routing_hierarchy_t;
+extern XBT_PRIVATE simgrid::trace_mgr::future_evt_set *future_evt_set;
+
 
 XBT_PUBLIC(void) routing_model_create(void *loopback);
 XBT_PUBLIC(void) routing_exit(void);
 XBT_PUBLIC(void) storage_register_callbacks(void);
 
-XBT_PRIVATE void routing_new_cluster(sg_platf_cluster_cbarg_t cluster);
-
 XBT_PUBLIC(void) routing_register_callbacks(void);
-XBT_PUBLIC(void) generic_free_route(sg_platf_route_cbarg_t route); // FIXME rename to routing_route_free
- // FIXME: make previous function private to routing again?
+XBT_PUBLIC(void) routing_route_free(sg_platf_route_cbarg_t route); // FIXME: make previous function private to routing again?
 
 XBT_PUBLIC(void) generic_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc);
 /**
  * Resource protected methods
  */
-XBT_PUBLIC(void) surfxml_bufferstack_push(int _new);
-XBT_PUBLIC(void) surfxml_bufferstack_pop(int _new);
-XBT_PUBLIC(void) parse_after_config(void);
+XBT_PRIVATE void surfxml_bufferstack_push(int _new);
+XBT_PRIVATE void surfxml_bufferstack_pop(int _new);
+XBT_PRIVATE void parse_after_config(void);
 
 XBT_PUBLIC_DATA(int) surfxml_bufferstack_size;
 
+XBT_PRIVATE void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect);
+
 /********** Tracing **********/
 /* from surf_instr.c */
 void TRACE_surf_host_set_speed(double date, const char *resource, double power);
index 7ce56b2..3028a23 100644 (file)
 #include "surf_routing.hpp"
 #include "surf_routing_private.hpp"
 #include "surf_routing_cluster.hpp"
-#include "surf_routing_cluster_torus.hpp"
-#include "surf_routing_cluster_fat_tree.hpp"
 
-#include "simgrid/platf_interface.h"    // platform creation API internal interface
 #include "simgrid/sg_config.h"
 #include "storage_interface.hpp"
-#include "src/surf/platform.hpp"
 #include "surf/surfxml_parse_values.h"
 
-/*************
- * Callbacks *
- *************/
+#include "src/surf/surf_routing_cluster_torus.hpp"
+#include "src/surf/surf_routing_cluster_fat_tree.hpp"
+#include "src/surf/surf_routing_dijkstra.hpp"
+#include "src/surf/surf_routing_floyd.hpp"
+#include "src/surf/surf_routing_full.hpp"
+#include "src/surf/surf_routing_vivaldi.hpp"
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
+
+#include <vector>
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route, surf, "Routing part of surf");
 
 namespace simgrid {
 namespace surf {
 
-simgrid::xbt::signal<void(simgrid::surf::NetCard*)> netcardCreatedCallbacks;
-simgrid::xbt::signal<void(simgrid::surf::As*)> asCreatedCallbacks;
+  /* Callbacks */
+  simgrid::xbt::signal<void(simgrid::surf::NetCard*)> netcardCreatedCallbacks;
+  simgrid::xbt::signal<void(simgrid::surf::As*)> asCreatedCallbacks;
+
+  As::As(const char*name)
+  : name_(xbt_strdup(name))
+  {}
+  As::~As()
+  {
+    xbt_dict_free(&sons_);
+    xbt_dynar_free(&vertices_);
+    xbt_dynar_free(&upDownLinks);
+    if (nullptr != bypassRoutes_)
+      for (auto &kv : *bypassRoutes_)
+        delete kv.second;
+    delete bypassRoutes_;
+    xbt_free(name_);
+    delete netcard_;
+  }
+  void As::Seal()
+  {
+    sealed_ = true;
+  }
 
-}
-}
+  xbt_dynar_t As::getOneLinkRoutes() {
+    return NULL;
+  }
+
+  int As::addComponent(NetCard *elm) {
+    XBT_DEBUG("Load component \"%s\"", elm->name());
+    xbt_dynar_push_as(vertices_, NetCard*, elm);
+    return xbt_dynar_length(vertices_)-1;
+  }
+
+  void As::addRoute(sg_platf_route_cbarg_t /*route*/){
+    xbt_die("AS %s does not accept new routes (wrong class).",name_);
+  }
+
+  std::vector<Link*> *As::getBypassRoute(NetCard *src, NetCard *dst)
+  {
+    // If never set a bypass route return NULL without any further computations
+    XBT_DEBUG("generic_get_bypassroute from %s to %s", src->name(), dst->name());
+    if (bypassRoutes_ == nullptr)
+      return nullptr;
+
+    std::vector<Link*> *bypassedRoute = nullptr;
+
+    if(dst->containingAS() == this && src->containingAS() == this ){
+      char *route_name = bprintf("%s#%s", src->name(), dst->name());
+      if (bypassRoutes_->find(route_name) != bypassRoutes_->end()) {
+        bypassedRoute = bypassRoutes_->at(route_name);
+        XBT_DEBUG("Found a bypass route with %zu links",bypassedRoute->size());
+      }
+      free(route_name);
+      return bypassedRoute;
+    }
+
+    int index_src, index_dst;
+    As **current_src = NULL;
+    As **current_dst = NULL;
+
+    As *src_as = src->containingAS();
+    As *dst_as = dst->containingAS();
+
+    /* (2) find the path to the root routing component */
+    xbt_dynar_t path_src = xbt_dynar_new(sizeof(As*), NULL);
+    As *current = src_as;
+    while (current != NULL) {
+      xbt_dynar_push(path_src, &current);
+      current = current->father_;
+    }
+    xbt_dynar_t path_dst = xbt_dynar_new(sizeof(As*), NULL);
+    current = dst_as;
+    while (current != NULL) {
+      xbt_dynar_push(path_dst, &current);
+      current = current->father_;
+    }
+
+    /* (3) find the common father */
+    index_src = path_src->used - 1;
+    index_dst = path_dst->used - 1;
+    current_src = (As **) xbt_dynar_get_ptr(path_src, index_src);
+    current_dst = (As **) xbt_dynar_get_ptr(path_dst, index_dst);
+    while (index_src >= 0 && index_dst >= 0 && *current_src == *current_dst) {
+      xbt_dynar_pop_ptr(path_src);
+      xbt_dynar_pop_ptr(path_dst);
+      index_src--;
+      index_dst--;
+      current_src = (As **) xbt_dynar_get_ptr(path_src, index_src);
+      current_dst = (As **) xbt_dynar_get_ptr(path_dst, index_dst);
+    }
+
+    int max_index_src = path_src->used - 1;
+    int max_index_dst = path_dst->used - 1;
+
+    int max_index = std::max(max_index_src, max_index_dst);
+
+    for (int max = 0; max <= max_index; max++) {
+      for (int i = 0; i < max; i++) {
+        if (i <= max_index_src && max <= max_index_dst) {
+          char *route_name = bprintf("%s#%s",
+              (*(As **) (xbt_dynar_get_ptr(path_src, i)))->name_,
+              (*(As **) (xbt_dynar_get_ptr(path_dst, max)))->name_);
+          if (bypassRoutes_->find(route_name) != bypassRoutes_->end())
+            bypassedRoute = bypassRoutes_->at(route_name);
+          xbt_free(route_name);
+        }
+        if (bypassedRoute)
+          break;
+        if (max <= max_index_src && i <= max_index_dst) {
+          char *route_name = bprintf("%s#%s",
+              (*(As **) (xbt_dynar_get_ptr(path_src, max)))->name_,
+              (*(As **) (xbt_dynar_get_ptr(path_dst, i)))->name_);
+          if (bypassRoutes_->find(route_name) != bypassRoutes_->end())
+            bypassedRoute = bypassRoutes_->at(route_name);
+          xbt_free(route_name);
+        }
+        if (bypassedRoute)
+          break;
+      }
+
+      if (bypassedRoute)
+        break;
+
+      if (max <= max_index_src && max <= max_index_dst) {
+        char *route_name = bprintf("%s#%s",
+            (*(As **) (xbt_dynar_get_ptr(path_src, max)))->name_,
+            (*(As **) (xbt_dynar_get_ptr(path_dst, max)))->name_);
+
+        if (bypassRoutes_->find(route_name) != bypassRoutes_->end())
+          bypassedRoute = bypassRoutes_->at(route_name);
+        xbt_free(route_name);
+      }
+      if (bypassedRoute)
+        break;
+    }
+
+    xbt_dynar_free(&path_src);
+    xbt_dynar_free(&path_dst);
+
+    return bypassedRoute;
+  }
+
+  void As::addBypassRoute(sg_platf_route_cbarg_t e_route){
+    const char *src = e_route->src;
+    const char *dst = e_route->dst;
+
+    if(bypassRoutes_ == nullptr)
+      bypassRoutes_ = new std::map<std::string, std::vector<Link*>*>();
+
+    char *route_name = bprintf("%s#%s", src, dst);
+
+    /* Argument validity checks */
+    if (e_route->gw_dst) {
+      XBT_DEBUG("Load bypassASroute from %s@%s to %s@%s",
+          src, e_route->gw_src->name(), dst, e_route->gw_dst->name());
+      xbt_assert(!xbt_dynar_is_empty(e_route->link_list), "Bypass route between %s@%s and %s@%s cannot be empty.",
+          src, e_route->gw_src->name(), dst, e_route->gw_dst->name());
+      xbt_assert(bypassRoutes_->find(route_name) == bypassRoutes_->end(),
+          "The bypass route between %s@%s and %s@%s already exists.",
+          src, e_route->gw_src->name(), dst, e_route->gw_dst->name());
+    } else {
+      XBT_DEBUG("Load bypassRoute from %s to %s", src, dst);
+      xbt_assert(!xbt_dynar_is_empty(e_route->link_list),                 "Bypass route between %s and %s cannot be empty.",    src, dst);
+      xbt_assert(bypassRoutes_->find(route_name) == bypassRoutes_->end(), "The bypass route between %s and %s already exists.", src, dst);
+    }
+
+    /* Build the value that will be stored in the dict */
+    std::vector<Link*> *newRoute = new std::vector<Link*>();
+    char *linkName;
+    unsigned int cpt;
+    xbt_dynar_foreach(e_route->link_list, cpt, linkName) {
+      Link *link = Link::byName(linkName);
+      if (link)
+        newRoute->push_back(link);
+      else
+        THROWF(mismatch_error, 0, "Link '%s' not found", linkName);
+    }
+
+    /* Store it */
+    bypassRoutes_->insert({route_name, newRoute});
+    xbt_free(route_name);
+  }
+
+}} // namespace simgrid::surf
 
 /**
  * @ingroup SURF_build_api
@@ -48,9 +232,6 @@ int COORD_ASR_LEVEL;            //Coordinates level
 int NS3_ASR_LEVEL;              //host node for ns3
 int ROUTING_PROP_ASR_LEVEL;     //Where the properties are stored
 
-static xbt_dict_t random_value = NULL;
-
-
 /** @brief Retrieve a netcard from its name
  *
  * Netcards are the thing that connect host or routers to the network
@@ -58,19 +239,15 @@ static xbt_dict_t random_value = NULL;
 simgrid::surf::NetCard *sg_netcard_by_name_or_null(const char *name)
 {
   sg_host_t h = sg_host_by_name(name);
-  simgrid::surf::NetCard *net_elm = h==NULL?NULL: h->pimpl_netcard;
-  if (!net_elm)
-    net_elm = (simgrid::surf::NetCard*) xbt_lib_get_or_null(as_router_lib, name, ROUTING_ASR_LEVEL);
-  return net_elm;
+  simgrid::surf::NetCard *netcard = h==NULL ? NULL: h->pimpl_netcard;
+  if (!netcard)
+    netcard = (simgrid::surf::NetCard*) xbt_lib_get_or_null(as_router_lib, name, ROUTING_ASR_LEVEL);
+  return netcard;
 }
 
 /* Global vars */
 simgrid::surf::RoutingPlatf *routing_platf = NULL;
 
-/* global parse functions */
-extern xbt_dynar_t mount_list;
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route, surf, "Routing part of surf");
 
 /** The current AS in the parsing */
 static simgrid::surf::As *current_routing = NULL;
@@ -79,125 +256,29 @@ simgrid::surf::As* routing_get_current()
   return current_routing;
 }
 
-static void routing_parse_postparse(void);
-
-/* this lines are only for replace use like index in the model table */
-typedef enum {
-  SURF_MODEL_FULL = 0,
-  SURF_MODEL_FLOYD,
-  SURF_MODEL_DIJKSTRA,
-  SURF_MODEL_DIJKSTRACACHE,
-  SURF_MODEL_NONE,
-  SURF_MODEL_VIVALDI,
-  SURF_MODEL_CLUSTER,
-  SURF_MODEL_TORUS_CLUSTER,
-  SURF_MODEL_FAT_TREE_CLUSTER,
-} e_routing_types;
-
-struct s_model_type routing_models[] = {
-  {"Full",
-   "Full routing data (fast, large memory requirements, fully expressive)",
-   model_full_create, model_full_end},
-  {"Floyd",
-   "Floyd routing data (slow initialization, fast lookup, lesser memory requirements, shortest path routing only)",
-   model_floyd_create, model_floyd_end},
-  {"Dijkstra",
-   "Dijkstra routing data (fast initialization, slow lookup, small memory requirements, shortest path routing only)",
-   model_dijkstra_create, model_dijkstra_both_end},
-  {"DijkstraCache",
-   "Dijkstra routing data (fast initialization, fast lookup, small memory requirements, shortest path routing only)",
-   model_dijkstracache_create, model_dijkstra_both_end},
-  {"none", "No routing (Unless you know what you are doing, avoid using this mode in combination with a non Constant network model).",
-   model_none_create,  NULL},
-  {"Vivaldi", "Vivaldi routing",
-   model_vivaldi_create, NULL},
-  {"Cluster", "Cluster routing",
-   model_cluster_create, NULL},
-  {"Torus_Cluster", "Torus Cluster routing",
-   model_torus_cluster_create, NULL},
-  {"Fat_Tree_Cluster", "Fat Tree Cluster routing",
-   model_fat_tree_cluster_create, NULL},
-  {NULL, NULL, NULL, NULL}
-};
-
-/**
- * \brief Add a netcard connecting an host to the network element list
- * FIXME: integrate into host constructor
- */
-void sg_platf_new_netcard(sg_platf_host_link_cbarg_t netcard)
+/** @brief Add a link connecting an host to the rest of its AS (which must be cluster or vivaldi) */
+void sg_platf_new_hostlink(sg_platf_host_link_cbarg_t netcard_arg)
 {
-  simgrid::surf::NetCard *info = sg_host_by_name(netcard->id)->pimpl_netcard;
-  xbt_assert(info, "Host '%s' not found!", netcard->id);
-  xbt_assert(current_routing->p_modelDesc == &routing_models[SURF_MODEL_CLUSTER] ||
-      current_routing->p_modelDesc == &routing_models[SURF_MODEL_VIVALDI],
-      "You have to be in model Cluster to use tag host_link!");
+  simgrid::surf::NetCard *netcard = sg_host_by_name(netcard_arg->id)->pimpl_netcard;
+  xbt_assert(netcard, "Host '%s' not found!", netcard_arg->id);
+  xbt_assert(dynamic_cast<simgrid::surf::AsCluster*>(current_routing) ||
+             dynamic_cast<simgrid::surf::AsVivaldi*>(current_routing),
+      "Only hosts from Cluster and Vivaldi ASes can get a host_link.");
 
   s_surf_parsing_link_up_down_t link_up_down;
-  link_up_down.link_up = Link::byName(netcard->link_up);
-  link_up_down.link_down = Link::byName(netcard->link_down);
+  link_up_down.link_up = Link::byName(netcard_arg->link_up);
+  link_up_down.link_down = Link::byName(netcard_arg->link_down);
 
-  xbt_assert(link_up_down.link_up, "Link '%s' not found!",netcard->link_up);
-  xbt_assert(link_up_down.link_down, "Link '%s' not found!",netcard->link_down);
-
-  if(!current_routing->p_linkUpDownList)
-    current_routing->p_linkUpDownList = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),NULL);
+  xbt_assert(link_up_down.link_up, "Link '%s' not found!",netcard_arg->link_up);
+  xbt_assert(link_up_down.link_down, "Link '%s' not found!",netcard_arg->link_down);
 
   // If dynar is is greater than netcard id and if the host_link is already defined
-  if((int)xbt_dynar_length(current_routing->p_linkUpDownList) > info->getId() &&
-      xbt_dynar_get_as(current_routing->p_linkUpDownList, info->getId(), void*))
-       surf_parse_error("Host_link for '%s' is already defined!",netcard->id);
-
-  XBT_DEBUG("Push Host_link for host '%s' to position %d", info->getName(), info->getId());
-  xbt_dynar_set_as(current_routing->p_linkUpDownList, info->getId(), s_surf_parsing_link_up_down_t, link_up_down);
-}
-
-/**
- * \brief Add a "host" to the network element list
- */
-simgrid::surf::NetCard *routing_add_host(
-  simgrid::surf::As* current_routing, sg_platf_host_cbarg_t host)
-{
-  if (current_routing->p_hierarchy == SURF_ROUTING_NULL)
-    current_routing->p_hierarchy = SURF_ROUTING_BASE;
-  xbt_assert(!sg_host_by_name(host->id),
-                    "Reading a host, processing unit \"%s\" already exists", host->id);
-
-  simgrid::surf::NetCard *netcard =
-    new simgrid::surf::NetCardImpl(xbt_strdup(host->id),
-                                                   -1,
-                                                   SURF_NETWORK_ELEMENT_HOST,
-                                                   current_routing);
-  netcard->setId(current_routing->parsePU(netcard));
-  sg_host_t h = sg_host_by_name_or_create(host->id);
-  h->pimpl_netcard = netcard;
-  XBT_DEBUG("Having set name '%s' id '%d'", host->id, netcard->getId());
-  simgrid::surf::netcardCreatedCallbacks(netcard);
-
-  if(mount_list){
-    xbt_lib_set(storage_lib, host->id, ROUTING_STORAGE_HOST_LEVEL, (void *) mount_list);
-    mount_list = NULL;
-  }
-
-  if (host->coord && strcmp(host->coord, "")) {
-    unsigned int cursor;
-    char*str;
-
-    if (!COORD_HOST_LEVEL)
-      xbt_die ("To use host coordinates, please add --cfg=network/coordinates:yes to your command line");
-    /* Pre-parse the host coordinates -- FIXME factorize with routers by overloading the routing->parse_PU function*/
-    xbt_dynar_t ctn_str = xbt_str_split_str(host->coord, " ");
-    xbt_dynar_t ctn = xbt_dynar_new(sizeof(double),NULL);
-    xbt_dynar_foreach(ctn_str,cursor, str) {
-      double val = atof(str);
-      xbt_dynar_push(ctn,&val);
-    }
-    xbt_dynar_shrink(ctn, 0);
-    xbt_dynar_free(&ctn_str);
-    h->extension_set(COORD_HOST_LEVEL, (void *) ctn);
-    XBT_DEBUG("Having set host coordinates for '%s'",host->id);
-  }
+  if((int)xbt_dynar_length(current_routing->upDownLinks) > netcard->id() &&
+      xbt_dynar_get_as(current_routing->upDownLinks, netcard->id(), void*))
+  surf_parse_error("Host_link for '%s' is already defined!",netcard_arg->id);
 
-  return netcard;
+  XBT_DEBUG("Push Host_link for host '%s' to position %d", netcard->name(), netcard->id());
+  xbt_dynar_set_as(current_routing->upDownLinks, netcard->id(), s_surf_parsing_link_up_down_t, link_up_down);
 }
 
 void sg_platf_new_trace(sg_platf_trace_cbarg_t trace)
@@ -213,44 +294,6 @@ void sg_platf_new_trace(sg_platf_trace_cbarg_t trace)
   xbt_dict_set(traces_set_list, trace->id, (void *) tmgr_trace, NULL);
 }
 
-void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect)
-{
-  xbt_assert(xbt_dict_get_or_null(traces_set_list, trace_connect->trace),
-              "Cannot connect trace %s to %s: trace unknown",
-              trace_connect->trace,
-              trace_connect->element);
-
-  switch (trace_connect->kind) {
-  case SURF_TRACE_CONNECT_KIND_HOST_AVAIL:
-    xbt_dict_set(trace_connect_list_host_avail,
-        trace_connect->trace,
-        xbt_strdup(trace_connect->element), NULL);
-    break;
-  case SURF_TRACE_CONNECT_KIND_POWER:
-    xbt_dict_set(trace_connect_list_host_speed, trace_connect->trace,
-        xbt_strdup(trace_connect->element), NULL);
-    break;
-  case SURF_TRACE_CONNECT_KIND_LINK_AVAIL:
-    xbt_dict_set(trace_connect_list_link_avail,
-        trace_connect->trace,
-        xbt_strdup(trace_connect->element), NULL);
-    break;
-  case SURF_TRACE_CONNECT_KIND_BANDWIDTH:
-    xbt_dict_set(trace_connect_list_link_bw,
-        trace_connect->trace,
-        xbt_strdup(trace_connect->element), NULL);
-    break;
-  case SURF_TRACE_CONNECT_KIND_LATENCY:
-    xbt_dict_set(trace_connect_list_link_lat, trace_connect->trace,
-        xbt_strdup(trace_connect->element), NULL);
-    break;
-  default:
-       surf_parse_error("Cannot connect trace %s to %s: kind of trace unknown",
-        trace_connect->trace, trace_connect->element);
-    break;
-  }
-}
-
 /**
  * \brief Make a new routing component to the platform
  *
@@ -267,77 +310,63 @@ void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect)
 void routing_AS_begin(sg_platf_AS_cbarg_t AS)
 {
   XBT_DEBUG("routing_AS_begin");
-  routing_model_description_t model = NULL;
 
-  xbt_assert(!xbt_lib_get_or_null
-             (as_router_lib, AS->id, ROUTING_ASR_LEVEL),
-             "The AS \"%s\" already exists", AS->id);
+  xbt_assert(nullptr == xbt_lib_get_or_null(as_router_lib, AS->id, ROUTING_ASR_LEVEL),
+      "Refusing to create a second AS called \"%s\".", AS->id);
+
+  _sg_cfg_init_status = 2; /* HACK: direct access to the global controlling the level of configuration to prevent
+                            * any further config now that we created some real content */
 
-  _sg_cfg_init_status = 2; /* horrible hack: direct access to the global
-                            * controlling the level of configuration to prevent
-                            * any further config */
 
   /* search the routing model */
+  simgrid::surf::As *new_as = NULL;
   switch(AS->routing){
-    case A_surfxml_AS_routing_Cluster:               model = &routing_models[SURF_MODEL_CLUSTER];break;
-    case A_surfxml_AS_routing_Cluster___torus:       model = &routing_models[SURF_MODEL_TORUS_CLUSTER];break;
-    case A_surfxml_AS_routing_Cluster___fat___tree:  model = &routing_models[SURF_MODEL_FAT_TREE_CLUSTER];break;
-    case A_surfxml_AS_routing_Dijkstra:              model = &routing_models[SURF_MODEL_DIJKSTRA];break;
-    case A_surfxml_AS_routing_DijkstraCache:         model = &routing_models[SURF_MODEL_DIJKSTRACACHE];break;
-    case A_surfxml_AS_routing_Floyd:                 model = &routing_models[SURF_MODEL_FLOYD];break;
-    case A_surfxml_AS_routing_Full:                  model = &routing_models[SURF_MODEL_FULL];break;
-    case A_surfxml_AS_routing_None:                  model = &routing_models[SURF_MODEL_NONE];break;
-    case A_surfxml_AS_routing_Vivaldi:               model = &routing_models[SURF_MODEL_VIVALDI];break;
-    default: xbt_die("Not a valid model!!!");
-    break;
+    case A_surfxml_AS_routing_Cluster:        new_as = new simgrid::surf::AsCluster(AS->id);        break;
+    case A_surfxml_AS_routing_ClusterTorus:   new_as = new simgrid::surf::AsClusterTorus(AS->id);   break;
+    case A_surfxml_AS_routing_ClusterFatTree: new_as = new simgrid::surf::AsClusterFatTree(AS->id); break;
+    case A_surfxml_AS_routing_Dijkstra:       new_as = new simgrid::surf::AsDijkstra(AS->id, 0);    break;
+    case A_surfxml_AS_routing_DijkstraCache:  new_as = new simgrid::surf::AsDijkstra(AS->id, 1);    break;
+    case A_surfxml_AS_routing_Floyd:          new_as = new simgrid::surf::AsFloyd(AS->id);          break;
+    case A_surfxml_AS_routing_Full:           new_as = new simgrid::surf::AsFull(AS->id);           break;
+    case A_surfxml_AS_routing_None:           new_as = new simgrid::surf::AsNone(AS->id);           break;
+    case A_surfxml_AS_routing_Vivaldi:        new_as = new simgrid::surf::AsVivaldi(AS->id);        break;
+    default:                                  xbt_die("Not a valid model!");                        break;
   }
 
   /* make a new routing component */
-  simgrid::surf::As *new_as = model->create();
-
-  new_as->p_modelDesc = model;
-  new_as->p_hierarchy = SURF_ROUTING_NULL;
-  new_as->p_name = xbt_strdup(AS->id);
-
-  simgrid::surf::NetCard *info =
-    new simgrid::surf::NetCardImpl(xbt_strdup(new_as->p_name),
-                                            -1,
-                                            SURF_NETWORK_ELEMENT_AS,
-                                            current_routing);
-  if (current_routing == NULL && routing_platf->p_root == NULL) {
+  simgrid::surf::NetCard *netcard = new simgrid::surf::NetCardImpl(new_as->name_, SURF_NETWORK_ELEMENT_AS, current_routing);
 
+  if (current_routing == NULL && routing_platf->root_ == NULL) {
     /* it is the first one */
-    new_as->p_routingFather = NULL;
-    routing_platf->p_root = new_as;
-    info->setId(-1);
-  } else if (current_routing != NULL && routing_platf->p_root != NULL) {
+    new_as->father_ = NULL;
+    routing_platf->root_ = new_as;
+    netcard->setId(-1);
+  } else if (current_routing != NULL && routing_platf->root_ != NULL) {
 
-    xbt_assert(!xbt_dict_get_or_null
-               (current_routing->p_routingSons, AS->id),
+    xbt_assert(!xbt_dict_get_or_null(current_routing->sons_, AS->id),
                "The AS \"%s\" already exists", AS->id);
     /* it is a part of the tree */
-    new_as->p_routingFather = current_routing;
+    new_as->father_ = current_routing;
     /* set the father behavior */
-    if (current_routing->p_hierarchy == SURF_ROUTING_NULL)
-      current_routing->p_hierarchy = SURF_ROUTING_RECURSIVE;
+    if (current_routing->hierarchy_ == SURF_ROUTING_NULL)
+      current_routing->hierarchy_ = SURF_ROUTING_RECURSIVE;
     /* add to the sons dictionary */
-    xbt_dict_set(current_routing->p_routingSons, AS->id,
+    xbt_dict_set(current_routing->sons_, AS->id,
                  (void *) new_as, NULL);
     /* add to the father element list */
-    info->setId(current_routing->parseAS(info));
+    netcard->setId(current_routing->addComponent(netcard));
   } else {
     THROWF(arg_error, 0, "All defined components must belong to a AS");
   }
 
-  xbt_lib_set(as_router_lib, info->getName(), ROUTING_ASR_LEVEL,
-              (void *) info);
-  XBT_DEBUG("Having set name '%s' id '%d'", new_as->p_name, info->getId());
+  xbt_lib_set(as_router_lib, netcard->name(), ROUTING_ASR_LEVEL, (void *) netcard);
+  XBT_DEBUG("Having set name '%s' id '%d'", new_as->name_, netcard->id());
 
   /* set the new current component of the tree */
   current_routing = new_as;
-  current_routing->p_netcard = info;
+  current_routing->netcard_ = netcard;
 
-  simgrid::surf::netcardCreatedCallbacks(info);
+  simgrid::surf::netcardCreatedCallbacks(netcard);
   simgrid::surf::asCreatedCallbacks(new_as);
 }
 
@@ -354,14 +383,9 @@ void routing_AS_begin(sg_platf_AS_cbarg_t AS)
  */
 void routing_AS_end()
 {
-
-  if (current_routing == NULL) {
-    THROWF(arg_error, 0, "Close an AS, but none was under construction");
-  } else {
-    if (current_routing->p_modelDesc->end)
-      current_routing->p_modelDesc->end(current_routing);
-    current_routing = current_routing->p_routingFather;
-  }
+  xbt_assert(current_routing, "Cannot seal the current AS: none under construction");
+  current_routing->Seal();
+  current_routing = current_routing->father_;
 }
 
 /* Aux Business methods */
@@ -381,39 +405,31 @@ static void elements_father(sg_netcard_t src, sg_netcard_t dst,
                             AS_t * res_dst)
 {
   xbt_assert(src && dst, "bad parameters for \"elements_father\" method");
-#define ELEMENTS_FATHER_MAXDEPTH 16     /* increase if it is not enough */
-  simgrid::surf::As *src_as, *dst_as;
-  simgrid::surf::As *path_src[ELEMENTS_FATHER_MAXDEPTH];
-  simgrid::surf::As *path_dst[ELEMENTS_FATHER_MAXDEPTH];
+#define ROUTING_HIERARCHY_MAXDEPTH 16     /* increase if it is not enough */
+  simgrid::surf::As *path_src[ROUTING_HIERARCHY_MAXDEPTH];
+  simgrid::surf::As *path_dst[ROUTING_HIERARCHY_MAXDEPTH];
   int index_src = 0;
   int index_dst = 0;
-  simgrid::surf::As *current;
   simgrid::surf::As *current_src;
   simgrid::surf::As *current_dst;
   simgrid::surf::As *father;
 
-  /* (1) find the as where the src and dst are located */
-  sg_netcard_t src_data = src;
-  sg_netcard_t dst_data = dst;
-  src_as = src_data->getRcComponent();
-  dst_as = dst_data->getRcComponent();
-#ifndef NDEBUG
-  char* src_name = src_data->getName();
-  char* dst_name = dst_data->getName();
-#endif
+  /* (1) find the path to root of src and dst*/
+  simgrid::surf::As *src_as = src->containingAS();
+  simgrid::surf::As *dst_as = dst->containingAS();
 
-  xbt_assert(src_as && dst_as,
-             "Ask for route \"from\"(%s) or \"to\"(%s) no found", src_name, dst_name);
+  xbt_assert(src_as, "Host %s must be in an AS", src->name());
+  xbt_assert(dst_as, "Host %s must be in an AS", dst->name());
 
   /* (2) find the path to the root routing component */
-  for (current = src_as; current != NULL; current = current->p_routingFather) {
-    if (index_src >= ELEMENTS_FATHER_MAXDEPTH)
-      xbt_die("ELEMENTS_FATHER_MAXDEPTH should be increased for path_src");
+  for (simgrid::surf::As *current = src_as; current != NULL; current = current->father_) {
+    if (index_src >= ROUTING_HIERARCHY_MAXDEPTH)
+      xbt_die("ROUTING_HIERARCHY_MAXDEPTH should be increased for element %s", src->name());
     path_src[index_src++] = current;
   }
-  for (current = dst_as; current != NULL; current = current->p_routingFather) {
-    if (index_dst >= ELEMENTS_FATHER_MAXDEPTH)
-      xbt_die("ELEMENTS_FATHER_MAXDEPTH should be increased for path_dst");
+  for (simgrid::surf::As *current = dst_as; current != NULL; current = current->father_) {
+    if (index_dst >= ROUTING_HIERARCHY_MAXDEPTH)
+      xbt_die("ROUTING_HIERARCHY_MAXDEPTH should be increased for path_dst");
     path_dst[index_dst++] = current;
   }
 
@@ -434,48 +450,40 @@ static void elements_father(sg_netcard_t src, sg_netcard_t dst,
   *res_src = current_src;       /* second the first different father of src */
   *res_dst = current_dst;       /* three  the first different father of dst */
 
-#undef ELEMENTS_FATHER_MAXDEPTH
+#undef ROUTING_HIERARCHY_MAXDEPTH
 }
 
-/* Global Business methods */
-
 /**
- * \brief Recursive function for get_route_latency
+ * \brief Recursive function for get_route_and_latency
  *
  * \param src the source host name
  * \param dst the destination host name
  * \param *route the route where the links are stored. It is either NULL or a ready to use dynar
  * \param *latency the latency, if needed
- *
- * This function is called by "get_route" and "get_latency". It allows to walk
- * recursively through the ASes tree.
  */
-static void _get_route_and_latency(
-  simgrid::surf::NetCard *src, simgrid::surf::NetCard *dst,
+static void _get_route_and_latency(simgrid::surf::NetCard *src, simgrid::surf::NetCard *dst,
   xbt_dynar_t * links, double *latency)
 {
   s_sg_platf_route_cbarg_t route = SG_PLATF_ROUTE_INITIALIZER;
   memset(&route,0,sizeof(route));
 
   xbt_assert(src && dst, "bad parameters for \"_get_route_latency\" method");
-  XBT_DEBUG("Solve route/latency  \"%s\" to \"%s\"", src->getName(), dst->getName());
+  XBT_DEBUG("Solve route/latency  \"%s\" to \"%s\"", src->name(), dst->name());
 
   /* Find how src and dst are interconnected */
   simgrid::surf::As *common_father, *src_father, *dst_father;
   elements_father(src, dst, &common_father, &src_father, &dst_father);
   XBT_DEBUG("elements_father: common father '%s' src_father '%s' dst_father '%s'",
-      common_father->p_name, src_father->p_name, dst_father->p_name);
-
-  /* Check whether a direct bypass is defined */
-  sg_platf_route_cbarg_t e_route_bypass = NULL;
-  //FIXME:REMOVE:if (common_father->get_bypass_route)
-
-  e_route_bypass = common_father->getBypassRoute(src, dst, latency);
-
-  /* Common ancestor is kind enough to declare a bypass route from src to dst -- use it and bail out */
-  if (e_route_bypass) {
-    xbt_dynar_merge(links, &e_route_bypass->link_list);
-    generic_free_route(e_route_bypass);
+      common_father->name_, src_father->name_, dst_father->name_);
+
+  /* Check whether a direct bypass is defined. If so, use it and bail out */
+  std::vector<Link*> *bypassed_route = common_father->getBypassRoute(src, dst);
+  if (nullptr != bypassed_route) {
+    for (Link *link : *bypassed_route) {
+      xbt_dynar_push(*links,&link);
+      if (latency)
+        *latency += link->getLatency();
+    }
     return;
   }
 
@@ -483,45 +491,28 @@ static void _get_route_and_latency(
   if (src_father == dst_father) {       /* SURF_ROUTING_BASE */
     route.link_list = *links;
     common_father->getRouteAndLatency(src, dst, &route, latency);
-    // if vivaldi latency+=vivaldi(src,dst)
     return;
   }
 
   /* Not in the same AS, no bypass. We'll have to find our path between the ASes recursively*/
 
-  route.link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-  // Find the net_card corresponding to father
-  simgrid::surf::NetCard *src_father_netcard = src_father->p_netcard;
-  simgrid::surf::NetCard *dst_father_netcard = dst_father->p_netcard;
-
-  common_father->getRouteAndLatency(src_father_netcard, dst_father_netcard,
-                                    &route, latency);
+  route.link_list = xbt_dynar_new(sizeof(Link*), NULL);
 
+  common_father->getRouteAndLatency(src_father->netcard_, dst_father->netcard_, &route, latency);
   xbt_assert((route.gw_src != NULL) && (route.gw_dst != NULL),
-      "bad gateways for route from \"%s\" to \"%s\"", src->getName(), dst->getName());
-
-  sg_netcard_t src_gateway_net_elm = route.gw_src;
-  sg_netcard_t dst_gateway_net_elm = route.gw_dst;
+      "bad gateways for route from \"%s\" to \"%s\"", src->name(), dst->name());
 
   /* If source gateway is not our source, we have to recursively find our way up to this point */
-  if (src != src_gateway_net_elm)
-    _get_route_and_latency(src, src_gateway_net_elm, links, latency);
+  if (src != route.gw_src)
+    _get_route_and_latency(src, route.gw_src, links, latency);
   xbt_dynar_merge(links, &route.link_list);
 
   /* If dest gateway is not our destination, we have to recursively find our way from this point */
-  if (dst_gateway_net_elm != dst)
-    _get_route_and_latency(dst_gateway_net_elm, dst, links, latency);
+  if (route.gw_dst != dst)
+    _get_route_and_latency(route.gw_dst, dst, links, latency);
 
 }
 
-AS_t surf_platf_get_root(routing_platf_t platf){
-  return platf->p_root;
-}
-
-e_surf_network_element_type_t surf_routing_edge_get_rc_type(sg_netcard_t netcard){
-  return netcard->getRcType();
-}
-
 namespace simgrid {
 namespace surf {
 
@@ -541,23 +532,16 @@ namespace surf {
  */
 void RoutingPlatf::getRouteAndLatency(NetCard *src, NetCard *dst, xbt_dynar_t* route, double *latency)
 {
-  XBT_DEBUG("getRouteAndLatency from %s to %s", src->getName(), dst->getName());
+  XBT_DEBUG("getRouteAndLatency from %s to %s", src->name(), dst->name());
   if (NULL == *route) {
-    xbt_dynar_reset(routing_platf->p_lastRoute);
-    *route = routing_platf->p_lastRoute;
+    xbt_dynar_reset(routing_platf->lastRoute_);
+    *route = routing_platf->lastRoute_;
   }
 
   _get_route_and_latency(src, dst, route, latency);
-
-  xbt_assert(!latency || *latency >= 0.0,
-             "negative latency on route between \"%s\" and \"%s\"", src->getName(), dst->getName());
 }
 
-xbt_dynar_t RoutingPlatf::getOneLinkRoutes(){
-  return recursiveGetOneLinkRoutes(p_root);
-}
-
-xbt_dynar_t RoutingPlatf::recursiveGetOneLinkRoutes(As *rc)
+static xbt_dynar_t _recursiveGetOneLinkRoutes(As *rc)
 {
   xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
 
@@ -570,96 +554,38 @@ xbt_dynar_t RoutingPlatf::recursiveGetOneLinkRoutes(As *rc)
   char *key;
   xbt_dict_cursor_t cursor = NULL;
   AS_t rc_child;
-  xbt_dict_foreach(rc->p_routingSons, cursor, key, rc_child) {
-    xbt_dynar_t onelink_child = recursiveGetOneLinkRoutes(rc_child);
+  xbt_dict_foreach(rc->sons_, cursor, key, rc_child) {
+    xbt_dynar_t onelink_child = _recursiveGetOneLinkRoutes(rc_child);
     if (onelink_child)
       xbt_dynar_merge(&ret,&onelink_child);
   }
   return ret;
 }
 
+xbt_dynar_t RoutingPlatf::getOneLinkRoutes(){
+  return _recursiveGetOneLinkRoutes(root_);
 }
-}
-
-e_surf_network_element_type_t routing_get_network_element_type(const char *name)
-{
-  simgrid::surf::NetCard *rc = sg_netcard_by_name_or_null(name);
-  if (rc)
-    return rc->getRcType();
 
-  return SURF_NETWORK_ELEMENT_NULL;
+}
 }
 
-/**
- * \brief Generic method: create the global routing schema
- *
- * Make a global routing structure and set all the parsing functions.
- */
+/** @brief create the root AS */
 void routing_model_create( void *loopback)
 {
-  /* config the uniq global routing */
-  routing_platf = new simgrid::surf::RoutingPlatf();
-  routing_platf->p_root = NULL;
-  routing_platf->p_loopback = loopback;
-  routing_platf->p_lastRoute = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
-  /* no current routing at moment */
-  current_routing = NULL;
+  routing_platf = new simgrid::surf::RoutingPlatf(loopback);
 }
 
-
-/* ************************************************** */
-/* ********** PATERN FOR NEW ROUTING **************** */
-
-/* The minimal configuration of a new routing model need the next functions,
- * also you need to set at the start of the file, the new model in the model
- * list. Remember keep the null ending of the list.
- */
-/*** Routing model structure ***/
-// typedef struct {
-//   s_routing_component_t generic_routing;
-//   /* things that your routing model need */
-// } s_routing_component_NEW_t,*routing_component_NEW_t;
-
-/*** Parse routing model functions ***/
-// static void model_NEW_set_processing_unit(routing_component_t rc, const char* name) {}
-// static void model_NEW_set_autonomous_system(routing_component_t rc, const char* name) {}
-// static void model_NEW_set_route(routing_component_t rc, const char* src, const char* dst, route_t route) {}
-// static void model_NEW_set_ASroute(routing_component_t rc, const char* src, const char* dst, route_extended_t route) {}
-// static void model_NEW_set_bypassroute(routing_component_t rc, const char* src, const char* dst, route_extended_t e_route) {}
-
-/*** Business methods ***/
-// static route_extended_t NEW_get_route(routing_component_t rc, const char* src,const char* dst) {return NULL;}
-// static route_extended_t NEW_get_bypass_route(routing_component_t rc, const char* src,const char* dst) {return NULL;}
-// static void NEW_finalize(routing_component_t rc) { xbt_free(rc);}
-
-/*** Creation routing model functions ***/
-// static void* model_NEW_create(void) {
-//   routing_component_NEW_t new_component =  xbt_new0(s_routing_component_NEW_t,1);
-//   new_component->generic_routing.set_processing_unit = model_NEW_set_processing_unit;
-//   new_component->generic_routing.set_autonomous_system = model_NEW_set_autonomous_system;
-//   new_component->generic_routing.set_route = model_NEW_set_route;
-//   new_component->generic_routing.set_ASroute = model_NEW_set_ASroute;
-//   new_component->generic_routing.set_bypassroute = model_NEW_set_bypassroute;
-//   new_component->generic_routing.get_route = NEW_get_route;
-//   new_component->generic_routing.get_bypass_route = NEW_get_bypass_route;
-//   new_component->generic_routing.finalize = NEW_finalize;
-//   /* initialization of internal structures */
-//   return new_component;
-// } /* mandatory */
-// static void  model_NEW_load(void) {}   /* mandatory */
-// static void  model_NEW_unload(void) {} /* mandatory */
-// static void  model_NEW_end(void) {}    /* mandatory */
-
 /* ************************************************************************** */
 /* ************************* GENERIC PARSE FUNCTIONS ************************ */
 
-void routing_cluster_add_backbone(void* bb) {
-  xbt_assert(current_routing->p_modelDesc == &routing_models[SURF_MODEL_CLUSTER],
-        "You have to be in model Cluster to use tag backbone!");
-  xbt_assert(!static_cast<simgrid::surf::AsCluster*>(current_routing)->p_backbone, "The backbone link is already defined!");
-  static_cast<simgrid::surf::AsCluster*>(current_routing)->p_backbone =
-    static_cast<simgrid::surf::Link*>(bb);
-  XBT_DEBUG("Add a backbone to AS '%s'", current_routing->p_name);
+void routing_cluster_add_backbone(simgrid::surf::Link* bb) {
+  simgrid::surf::AsCluster *cluster = dynamic_cast<simgrid::surf::AsCluster*>(current_routing);
+
+  xbt_assert(cluster, "Only hosts from Cluster can get a backbone.");
+  xbt_assert(nullptr == cluster->backbone_, "Cluster %s already has a backbone link!", cluster->name_);
+
+  cluster->backbone_ = bb;
+  XBT_DEBUG("Add a backbone to AS '%s'", current_routing->name_);
 }
 
 void sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet)
@@ -721,7 +647,7 @@ void sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet)
       host_link.id        = host_id;
       host_link.link_up   = link_up;
       host_link.link_down = link_down;
-      sg_platf_new_netcard(&host_link);
+      sg_platf_new_hostlink(&host_link);
 
       free(host_id);
       free(link_id);
@@ -734,269 +660,6 @@ void sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet)
   xbt_dynar_free(&radical_elements);
 }
 
-void routing_new_cluster(sg_platf_cluster_cbarg_t cluster)
-{
-  using simgrid::surf::AsCluster;
-  using simgrid::surf::AsClusterTorus;
-  using simgrid::surf::AsClusterFatTree;
-
-  char *host_id, *groups, *link_id = NULL;
-  xbt_dict_t patterns = NULL;
-  int rankId=0;
-
-  s_sg_platf_host_cbarg_t host = SG_PLATF_HOST_INITIALIZER;
-  s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
-
-  unsigned int iter;
-  int start, end, i;
-  xbt_dynar_t radical_elements;
-  xbt_dynar_t radical_ends;
-
-  if ((cluster->availability_trace && strcmp(cluster->availability_trace, ""))
-      || (cluster->state_trace && strcmp(cluster->state_trace, ""))) {
-    patterns = xbt_dict_new_homogeneous(xbt_free_f);
-    xbt_dict_set(patterns, "id", xbt_strdup(cluster->id), NULL);
-    xbt_dict_set(patterns, "prefix", xbt_strdup(cluster->prefix), NULL);
-    xbt_dict_set(patterns, "suffix", xbt_strdup(cluster->suffix), NULL);
-  }
-
-  /* parse the topology attribute. If we are not in a flat cluster,
-   * switch to the right mode and initialize the routing with
-   * the parameters in topo_parameters attribute
-   */
-  s_sg_platf_AS_cbarg_t AS = SG_PLATF_AS_INITIALIZER;
-  AS.id = cluster->id;
-
-  if(cluster->topology == SURF_CLUSTER_TORUS){
-    XBT_DEBUG("<AS id=\"%s\"\trouting=\"Torus_Cluster\">", cluster->id);
-    AS.routing = A_surfxml_AS_routing_Cluster___torus;
-    sg_platf_new_AS_begin(&AS);
-    ((AsClusterTorus*)current_routing)->parse_specific_arguments(cluster);
-  }
-  else if (cluster->topology == SURF_CLUSTER_FAT_TREE) {
-    XBT_DEBUG("<AS id=\"%s\"\trouting=\"Fat_Tree_Cluster\">", cluster->id);
-    AS.routing = A_surfxml_AS_routing_Cluster___fat___tree;
-    sg_platf_new_AS_begin(&AS);
-    ((AsClusterFatTree*)current_routing)->parse_specific_arguments(cluster);
-  }
-
-  else{
-    XBT_DEBUG("<AS id=\"%s\"\trouting=\"Cluster\">", cluster->id);
-    AS.routing = A_surfxml_AS_routing_Cluster;
-    sg_platf_new_AS_begin(&AS);
-  }
-
-  if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
-      ((AsCluster*)current_routing)->p_nb_links_per_node++;
-      ((AsCluster*)current_routing)->p_has_loopback=1;
-  }
-
-  if(cluster->limiter_link!=0){
-      ((AsCluster*)current_routing)->p_nb_links_per_node++;
-      ((AsCluster*)current_routing)->p_has_limiter=1;
-  }
-
-
-
-  current_routing->p_linkUpDownList
-            = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),NULL);
-
-  //Make all hosts
-  radical_elements = xbt_str_split(cluster->radical, ",");
-  xbt_dynar_foreach(radical_elements, iter, groups) {
-
-    radical_ends = xbt_str_split(groups, "-");
-    start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
-
-    switch (xbt_dynar_length(radical_ends)) {
-    case 1:
-      end = start;
-      break;
-    case 2:
-      end = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
-      break;
-    default:
-      surf_parse_error("Malformed radical");
-      break;
-    }
-    for (i = start; i <= end; i++) {
-      host_id =
-          bprintf("%s%d%s", cluster->prefix, i, cluster->suffix);
-      link_id = bprintf("%s_link_%d", cluster->id, i);
-
-      XBT_DEBUG("<host\tid=\"%s\"\tpower=\"%f\">", host_id, cluster->speed);
-
-      memset(&host, 0, sizeof(host));
-      host.id = host_id;
-      if ((cluster->properties != NULL) && (!xbt_dict_is_empty(cluster->properties))) {
-         xbt_dict_cursor_t cursor=NULL;
-         char *key,*data;
-         host.properties = xbt_dict_new();
-
-         xbt_dict_foreach(cluster->properties,cursor,key,data) {
-                 xbt_dict_set(host.properties, key, xbt_strdup(data),free);
-         }
-      }
-      if (cluster->availability_trace && strcmp(cluster->availability_trace, "")) {
-        xbt_dict_set(patterns, "radical", bprintf("%d", i), NULL);
-        char *avail_file = xbt_str_varsubst(cluster->availability_trace, patterns);
-        XBT_DEBUG("\tavailability_file=\"%s\"", avail_file);
-        host.speed_trace = tmgr_trace_new_from_file(avail_file);
-        xbt_free(avail_file);
-      } else {
-        XBT_DEBUG("\tavailability_file=\"\"");
-      }
-
-      if (cluster->state_trace && strcmp(cluster->state_trace, "")) {
-        char *avail_file = xbt_str_varsubst(cluster->state_trace, patterns);
-        XBT_DEBUG("\tstate_file=\"%s\"", avail_file);
-        host.state_trace = tmgr_trace_new_from_file(avail_file);
-        xbt_free(avail_file);
-      } else {
-        XBT_DEBUG("\tstate_file=\"\"");
-      }
-
-      host.speed_peak = xbt_dynar_new(sizeof(double), NULL);
-      xbt_dynar_push(host.speed_peak,&cluster->speed);
-      host.pstate = 0;
-
-      //host.power_peak = cluster->power;
-      host.speed_scale = 1.0;
-      host.core_amount = cluster->core_amount;
-      host.initiallyOn = 1;
-      host.coord = "";
-      sg_platf_new_host(&host);
-      xbt_dynar_free(&host.speed_peak);
-      XBT_DEBUG("</host>");
-
-      XBT_DEBUG("<link\tid=\"%s\"\tbw=\"%f\"\tlat=\"%f\"/>", link_id,
-                cluster->bw, cluster->lat);
-
-
-      s_surf_parsing_link_up_down_t info_lim, info_loop;
-      // All links are saved in a matrix;
-      // every row describes a single node; every node
-      // may have multiple links.
-      // the first column may store a link from x to x if p_has_loopback is set
-      // the second column may store a limiter link if p_has_limiter is set
-      // other columns are to store one or more link for the node
-
-      //add a loopback link
-      if(cluster->loopback_bw!=0 || cluster->loopback_lat!=0){
-        char *tmp_link = bprintf("%s_loopback", link_id);
-        XBT_DEBUG("<loopback\tid=\"%s\"\tbw=\"%f\"/>", tmp_link,
-                cluster->limiter_link);
-
-
-        memset(&link, 0, sizeof(link));
-        link.id        = tmp_link;
-        link.bandwidth = cluster->loopback_bw;
-        link.latency   = cluster->loopback_lat;
-        link.initiallyOn = 1;
-        link.policy    = SURF_LINK_FATPIPE;
-        sg_platf_new_link(&link);
-        info_loop.link_up   = Link::byName(tmp_link);
-        info_loop.link_down = info_loop.link_up;
-        free(tmp_link);
-        xbt_dynar_set(current_routing->p_linkUpDownList,
-          rankId*(static_cast<AsCluster*>(current_routing))->p_nb_links_per_node, &info_loop);
-      }
-
-      //add a limiter link (shared link to account for maximal bandwidth of the node)
-      if(cluster->limiter_link!=0){
-        char *tmp_link = bprintf("%s_limiter", link_id);
-        XBT_DEBUG("<limiter\tid=\"%s\"\tbw=\"%f\"/>", tmp_link,
-                cluster->limiter_link);
-
-
-        memset(&link, 0, sizeof(link));
-        link.id = tmp_link;
-        link.bandwidth = cluster->limiter_link;
-        link.latency = 0;
-        link.initiallyOn = 1;
-        link.policy = SURF_LINK_SHARED;
-        sg_platf_new_link(&link);
-        info_lim.link_up = Link::byName(tmp_link);
-        info_lim.link_down = info_lim.link_up;
-        free(tmp_link);
-        auto as_cluster = static_cast<AsCluster*>(current_routing);
-        xbt_dynar_set(current_routing->p_linkUpDownList,
-            rankId*(as_cluster)->p_nb_links_per_node + as_cluster->p_has_loopback ,
-            &info_lim);
-
-      }
-
-
-      //call the cluster function that adds the others links
-      if (cluster->topology == SURF_CLUSTER_FAT_TREE) {
-        ((AsClusterFatTree*) current_routing)->addProcessingNode(i);
-      }
-      else {
-      static_cast<AsCluster*>(current_routing)->create_links_for_node(cluster, i, rankId, rankId*
-                 static_cast<AsCluster*>(current_routing)->p_nb_links_per_node
-          + static_cast<AsCluster*>(current_routing)->p_has_loopback
-          + static_cast<AsCluster*>(current_routing)->p_has_limiter );
-      }
-      xbt_free(link_id);
-      xbt_free(host_id);
-      rankId++;
-    }
-
-    xbt_dynar_free(&radical_ends);
-  }
-  xbt_dynar_free(&radical_elements);
-
-  // For fat trees, the links must be created once all nodes have been added
-  if(cluster->topology == SURF_CLUSTER_FAT_TREE) {
-    static_cast<simgrid::surf::AsClusterFatTree*>(current_routing)->create_links();
-  }
-  // Add a router. It is magically used thanks to the way in which surf_routing_cluster is written,
-  // and it's very useful to connect clusters together
-  XBT_DEBUG(" ");
-  XBT_DEBUG("<router id=\"%s\"/>", cluster->router_id);
-  char *newid = NULL;
-  s_sg_platf_router_cbarg_t router = SG_PLATF_ROUTER_INITIALIZER;
-  memset(&router, 0, sizeof(router));
-  router.id = cluster->router_id;
-  router.coord = "";
-  if (!router.id || !strcmp(router.id, ""))
-    router.id = newid =
-        bprintf("%s%s_router%s", cluster->prefix, cluster->id,
-                cluster->suffix);
-  sg_platf_new_router(&router);
-  ((AsCluster*)current_routing)->p_router = (simgrid::surf::NetCard*) xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL);
-  free(newid);
-
-  //Make the backbone
-  if ((cluster->bb_bw != 0) || (cluster->bb_lat != 0)) {
-    char *link_backbone = bprintf("%s_backbone", cluster->id);
-    XBT_DEBUG("<link\tid=\"%s\" bw=\"%f\" lat=\"%f\"/>", link_backbone,
-              cluster->bb_bw, cluster->bb_lat);
-
-    memset(&link, 0, sizeof(link));
-    link.id        = link_backbone;
-    link.bandwidth = cluster->bb_bw;
-    link.latency   = cluster->bb_lat;
-    link.initiallyOn = 1;
-    link.policy    = cluster->bb_sharing_policy;
-
-    sg_platf_new_link(&link);
-
-    routing_cluster_add_backbone(Link::byName(link_backbone));
-
-    free(link_backbone);
-  }
-
-  XBT_DEBUG("</AS>");
-  sg_platf_new_AS_end();
-  XBT_DEBUG(" ");
-  xbt_dict_free(&patterns); // no op if it were never set
-}
-
-static void routing_parse_postparse(void) {
-  xbt_dict_free(&random_value);
-}
-
 void sg_platf_new_peer(sg_platf_peer_cbarg_t peer)
 {
   using simgrid::surf::NetCard;
@@ -1017,8 +680,6 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer)
   AS.routing               = A_surfxml_AS_routing_Cluster;
   sg_platf_new_AS_begin(&AS);
 
-  current_routing->p_linkUpDownList = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),NULL);
-
   XBT_DEBUG("<host\tid=\"%s\"\tpower=\"%f\"/>", host_id, peer->speed);
   s_sg_platf_host_cbarg_t host = SG_PLATF_HOST_INITIALIZER;
   memset(&host, 0, sizeof(host));
@@ -1062,7 +723,7 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer)
   host_link.id        = host_id;
   host_link.link_up   = link_up;
   host_link.link_down = link_down;
-  sg_platf_new_netcard(&host_link);
+  sg_platf_new_hostlink(&host_link);
 
   XBT_DEBUG("<router id=\"%s\"/>", router_id);
   s_sg_platf_router_cbarg_t router = SG_PLATF_ROUTER_INITIALIZER;
@@ -1070,7 +731,7 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer)
   router.id = router_id;
   router.coord = peer->coord;
   sg_platf_new_router(&router);
-  static_cast<AsCluster*>(current_routing)->p_router = static_cast<NetCard*>(xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL));
+  static_cast<AsCluster*>(current_routing)->router_ = static_cast<NetCard*>(xbt_lib_get_or_null(as_router_lib, router.id, ROUTING_ASR_LEVEL));
 
   XBT_DEBUG("</AS>");
   sg_platf_new_AS_end();
@@ -1212,17 +873,16 @@ static void check_disk_attachment()
   simgrid::surf::NetCard *host_elm;
   xbt_lib_foreach(storage_lib, cursor, key, data) {
     if(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL) != NULL) {
-         simgrid::surf::Storage *storage = static_cast<simgrid::surf::Storage*>(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
-         host_elm = sg_netcard_by_name_or_null(storage->p_attach);
-         if(!host_elm)
-                 surf_parse_error("Unable to attach storage %s: host %s doesn't exist.", storage->getName(), storage->p_attach);
+    simgrid::surf::Storage *storage = static_cast<simgrid::surf::Storage*>(xbt_lib_get_level(xbt_lib_get_elm_or_null(storage_lib, key), SURF_STORAGE_LEVEL));
+    host_elm = sg_netcard_by_name_or_null(storage->p_attach);
+    if(!host_elm)
+      surf_parse_error("Unable to attach storage %s: host %s doesn't exist.", storage->getName(), storage->p_attach);
     }
   }
 }
 
 void routing_register_callbacks()
 {
-  simgrid::surf::on_postparse.connect(routing_parse_postparse);
   simgrid::surf::on_postparse.connect(check_disk_attachment);
 
   instr_routing_define_callbacks();
@@ -1241,7 +901,7 @@ static void finalize_rec(simgrid::surf::As *as) {
   char *key;
   AS_t elem;
 
-  xbt_dict_foreach(as->p_routingSons, cursor, key, elem) {
+  xbt_dict_foreach(as->sons_, cursor, key, elem) {
     finalize_rec(elem);
   }
 
@@ -1256,21 +916,25 @@ void routing_exit(void) {
 namespace simgrid {
 namespace surf {
 
-RoutingPlatf::~RoutingPlatf()
-{
-       xbt_dynar_free(&p_lastRoute);
-       finalize_rec(p_root);
-}
+  RoutingPlatf::RoutingPlatf(void *loopback)
+  : loopback_(loopback)
+  {
+  }
+  RoutingPlatf::~RoutingPlatf()
+  {
+    xbt_dynar_free(&lastRoute_);
+    finalize_rec(root_);
+  }
 
 }
 }
 
 AS_t surf_AS_get_routing_root() {
-  return routing_platf->p_root;
+  return routing_platf->root_;
 }
 
 const char *surf_AS_get_name(simgrid::surf::As *as) {
-  return as->p_name;
+  return as->name_;
 }
 
 static simgrid::surf::As *surf_AS_recursive_get_by_name(
@@ -1281,10 +945,10 @@ static simgrid::surf::As *surf_AS_recursive_get_by_name(
   AS_t elem;
   simgrid::surf::As *tmp = NULL;
 
-  if(!strcmp(current->p_name, name))
+  if(!strcmp(current->name_, name))
     return current;
 
-  xbt_dict_foreach(current->p_routingSons, cursor, key, elem) {
+  xbt_dict_foreach(current->sons_, cursor, key, elem) {
     tmp = surf_AS_recursive_get_by_name(elem, name);
     if(tmp != NULL ) {
         break;
@@ -1295,7 +959,7 @@ static simgrid::surf::As *surf_AS_recursive_get_by_name(
 
 simgrid::surf::As *surf_AS_get_by_name(const char * name)
 {
-  simgrid::surf::As *as = surf_AS_recursive_get_by_name(routing_platf->p_root, name);
+  simgrid::surf::As *as = surf_AS_recursive_get_by_name(routing_platf->root_, name);
   if(as == NULL)
     XBT_WARN("Impossible to find an AS with name %s, please check your input", name);
   return as;
@@ -1303,23 +967,18 @@ simgrid::surf::As *surf_AS_get_by_name(const char * name)
 
 xbt_dict_t surf_AS_get_routing_sons(simgrid::surf::As *as)
 {
-  return as->p_routingSons;
-}
-
-const char *surf_AS_get_model(simgrid::surf::As *as)
-{
-  return as->p_modelDesc->name;
+  return as->sons_;
 }
 
 xbt_dynar_t surf_AS_get_hosts(simgrid::surf::As *as)
 {
-  xbt_dynar_t elms = as->p_indexNetworkElm;
+  xbt_dynar_t elms = as->vertices_;
   int count = xbt_dynar_length(elms);
   xbt_dynar_t res =  xbt_dynar_new(sizeof(sg_host_t), NULL);
   for (int index = 0; index < count; index++) {
      sg_netcard_t relm =
       xbt_dynar_get_as(elms, index, simgrid::surf::NetCard*);
-     sg_host_t delm = simgrid::s4u::Host::by_name_or_null(relm->getName());
+     sg_host_t delm = simgrid::s4u::Host::by_name_or_null(relm->name());
      if (delm!=NULL) {
        xbt_dynar_push(res, &delm);
      }
index c380129..5671de1 100644 (file)
@@ -13,6 +13,9 @@
 #include "surf_interface.hpp"
 #include <float.h>
 
+#include <vector>
+#include <map>
+
 XBT_PUBLIC(void) routing_model_create( void *loopback);
 
 namespace simgrid {
@@ -28,59 +31,58 @@ class XBT_PRIVATE Onelink;
 class RoutingPlatf;
 
 /** @ingroup SURF_routing_interface
- * @brief A network card
+ * @brief Network cards are the vertices in the graph representing the network, used to compute paths between nodes.
+ *
  * @details This represents a position in the network. One can route information between two netcards
  */
 class NetCard {
 public:
   virtual ~NetCard(){};
-  virtual int getId()=0;
-  virtual int *getIdPtr()=0;
+  virtual int id()=0; // Our rank in the vertices_ array of our containing AS.
   virtual void setId(int id)=0;
-  virtual char *getName()=0;
-  virtual As *getRcComponent()=0;
+  virtual char *name()=0;
+  virtual As *containingAS()=0; // This is the AS in which I am
   virtual e_surf_network_element_type_t getRcType()=0;
 };
 
 /** @ingroup SURF_routing_interface
- * @brief The Autonomous System (AS) routing interface
+ * @brief Network Autonomous System (AS)
  * @details [TODO]
  */
 class As {
 public:
-  xbt_dynar_t p_indexNetworkElm = xbt_dynar_new(sizeof(char*),NULL);
-  xbt_dict_t p_bypassRoutes;    /* store bypass routes */
-  routing_model_description_t p_modelDesc;
-  e_surf_routing_hierarchy_t p_hierarchy;
-  char *p_name = nullptr;
-  As *p_routingFather = nullptr;
-  xbt_dict_t p_routingSons = xbt_dict_new_homogeneous(NULL);
-  NetCard *p_netcard;
-  xbt_dynar_t p_linkUpDownList = NULL;
+  As(const char*name);
+  /** @brief Close that AS: no more content can be added to it */
+  virtual void Seal();
+  virtual ~As();
 
-  /**
-   * @brief The As constructor
-   */
-  As(){};
+  e_surf_routing_hierarchy_t hierarchy_ = SURF_ROUTING_NULL;
+  xbt_dynar_t upDownLinks = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),NULL);
 
-  /**
-   * @brief The As destructor
-   */
-  virtual ~As(){
-    xbt_dict_free(&p_routingSons);
-    xbt_dynar_free(&p_indexNetworkElm);
-    xbt_dynar_free(&p_linkUpDownList);
-    xbt_free(p_name);
-    if (p_netcard)
-      delete p_netcard;
-  };
+  char *name_ = nullptr;
+  NetCard *netcard_ = nullptr; // Our representative in the father AS
+  As *father_ = nullptr;
+  xbt_dict_t sons_ = xbt_dict_new_homogeneous(NULL); // sub-ASes
+  xbt_dynar_t vertices_ = xbt_dynar_new(sizeof(char*),NULL); // our content, as known to our graph routing algorithm (maps vertexId -> vertex)
+
+private:
+  bool sealed_ = false; // We cannot add more content when sealed
+  std::map<std::string, std::vector<Link*>*> *bypassRoutes_ = nullptr;
 
+public:
   /**
-   * @brief Get the characteristics of the routing path between two points
+   * @brief Probe the routing path between two points
+   *
+   * The networking model uses this function when creating a communication
+   * to retrieve both the list of links that the create communication will use,
+   * and the summed latency that these links represent.
    *
-   * This function is used by the networking model to find the information it needs when starting a communication.
+   * The network could recompute the latency by itself from the list, but it would
+   * require an additional link set traversal. This operation being on the critical
+   * path of SimGrid, the routing computes the latency in behalf of the network.
    *
-   * The things are not straightforward because the platform can be routed using several routing models.
+   * Things are rather complex here because we have to find the path from ASes to ASes, and within each.
+   * In addition, the different ASes may use differing routing models.
    * Some ASes may be routed in full, others may have only some connection information and use a shortest path on top of that, and so on.
    * Some ASes may even not have any predefined links and use only coordinate informations to compute the latency.
    *
@@ -89,46 +91,42 @@ public:
    * 
    * @param src Initial point of the routing path
    * @param dst Final point of the routing path
-   * @param into Container into which the links should be pushed
-   * @param latency Accumulator in which the latencies should be added
+   * @param into Container into which the traversed links should be pushed
+   * @param latency Accumulator in which the latencies should be added (caller must set it to 0)
    */
-  virtual void getRouteAndLatency(
-      NetCard *src, NetCard *dst,
-      sg_platf_route_cbarg_t into, double *latency)=0;
-  virtual xbt_dynar_t getOneLinkRoutes()=0;
+  virtual void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency)=0;
+  /** @brief retrieves the list of all routes of size 1 (of type src x dst x Link) */
+  virtual xbt_dynar_t getOneLinkRoutes();
+
   virtual void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)=0;
-  virtual sg_platf_route_cbarg_t getBypassRoute(
-      NetCard *src, NetCard *dst,
-      double *lat)=0;
 
-  /* The parser calls the following functions to inform the routing models
-   * that a new element is added to the AS currently built.
-   *
-   * Of course, only the routing model of this AS is informed, not every ones */
-  virtual int parsePU(NetCard *elm)=0; /* A host or a router, whatever */
-  virtual int parseAS(NetCard *elm)=0;
-  virtual void parseRoute(sg_platf_route_cbarg_t route)=0;
-  virtual void parseASroute(sg_platf_route_cbarg_t route)=0;
-  virtual void parseBypassroute(sg_platf_route_cbarg_t e_route)=0;
+  std::vector<Link*> *getBypassRoute(NetCard *src, NetCard *dst);
+
+  /* Add content to the AS, at parsing time. It should be sealed afterward. */
+  virtual int addComponent(NetCard *elm); /* A host, a router or an AS, whatever */
+  virtual void addRoute(sg_platf_route_cbarg_t route);
+  void addBypassRoute(sg_platf_route_cbarg_t e_route);
 };
 
 struct XBT_PRIVATE NetCardImpl : public NetCard {
 public:
-  NetCardImpl(char *name, int id, e_surf_network_element_type_t rcType, As *rcComponent)
-  : p_rcComponent(rcComponent), p_rcType(rcType), m_id(id), p_name(name) {}
-  ~NetCardImpl() { xbt_free(p_name);};
-
-  int getId() {return m_id;}
-  int *getIdPtr() {return &m_id;}
-  void setId(int id) {m_id = id;}
-  char *getName() {return p_name;}
-  As *getRcComponent() {return p_rcComponent;}
-  e_surf_network_element_type_t getRcType() {return p_rcType;}
+  NetCardImpl(const char *name, e_surf_network_element_type_t componentType, As *as)
+  : name_(xbt_strdup(name)),
+    componentType_(componentType),
+    containingAS_(as)
+  {}
+  ~NetCardImpl() { xbt_free(name_);};
+
+  int id()           override {return id_;}
+  void setId(int id) override {id_ = id;}
+  char *name()       override {return name_;}
+  As *containingAS() override {return containingAS_;}
+  e_surf_network_element_type_t getRcType() override {return componentType_;}
 private:
-  As *p_rcComponent;
-  e_surf_network_element_type_t p_rcType;
-  int m_id;
-  char *p_name;
+  int id_ = -1;
+  char *name_;
+  e_surf_network_element_type_t componentType_;
+  As *containingAS_;
 };
 
 /** @ingroup SURF_routing_interface
@@ -137,10 +135,10 @@ private:
 class Onelink {
 public:
   Onelink(void *link, NetCard *src, NetCard *dst)
-    : p_src(src), p_dst(dst), p_link(link) {};
-  NetCard *p_src;
-  NetCard *p_dst;
-  void *p_link;
+    : src_(src), dst_(dst), link_(link) {};
+  NetCard *src_;
+  NetCard *dst_;
+  void *link_;
 };
 
 /** @ingroup SURF_routing_interface
@@ -148,12 +146,12 @@ public:
  */
 XBT_PUBLIC_CLASS RoutingPlatf {
 public:
+  RoutingPlatf(void *loopback);
   ~RoutingPlatf();
-  As *p_root;
-  void *p_loopback;
-  xbt_dynar_t p_lastRoute;
+  As *root_ = nullptr;
+  void *loopback_;
+  xbt_dynar_t lastRoute_ = xbt_dynar_new(sizeof(Link*),NULL);
   xbt_dynar_t getOneLinkRoutes(void);
-  xbt_dynar_t recursiveGetOneLinkRoutes(As *rc);
   void getRouteAndLatency(NetCard *src, NetCard *dst, xbt_dynar_t * links, double *latency);
 };
 
diff --git a/src/surf/surf_routing_RoutedGraph.cpp b/src/surf/surf_routing_RoutedGraph.cpp
new file mode 100644 (file)
index 0000000..c5e1d63
--- /dev/null
@@ -0,0 +1,258 @@
+/* Copyright (c) 2009-2015. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "surf_routing_RoutedGraph.hpp"
+
+#include <cstdlib>
+
+#include <algorithm>
+
+#include "xbt/dict.h"
+#include "xbt/log.h"
+#include "xbt/sysdep.h"
+#include "xbt/dynar.h"
+#include "xbt/graph.h"
+
+#include "surf_routing_private.hpp"
+#include "network_interface.hpp"
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_routing_generic, surf_route, "Generic implementation of the surf routing");
+
+void routing_route_free(sg_platf_route_cbarg_t route)
+{
+  if (route) {
+    xbt_dynar_free(&route->link_list);
+    xbt_free(route);
+  }
+}
+
+namespace simgrid {
+namespace surf {
+  
+AsRoutedGraph::AsRoutedGraph(const char*name)
+  : As(name)
+{
+}
+
+AsRoutedGraph::~AsRoutedGraph()
+{
+}
+
+
+}
+}
+
+/* ************************************************************************** */
+/* *********************** GENERIC BUSINESS METHODS ************************* */
+
+static const char *instr_node_name(xbt_node_t node)
+{
+  void *data = xbt_graph_node_get_data(node);
+  char *str = (char *) data;
+  return str;
+}
+
+xbt_node_t new_xbt_graph_node(xbt_graph_t graph, const char *name,
+                              xbt_dict_t nodes)
+{
+  xbt_node_t ret = (xbt_node_t) xbt_dict_get_or_null(nodes, name);
+  if (ret)
+    return ret;
+
+  ret = xbt_graph_new_node(graph, xbt_strdup(name));
+  xbt_dict_set(nodes, name, ret, NULL);
+  return ret;
+}
+
+xbt_edge_t new_xbt_graph_edge(xbt_graph_t graph, xbt_node_t s, xbt_node_t d,
+                              xbt_dict_t edges)
+{
+  xbt_edge_t ret;
+
+  const char *sn = instr_node_name(s);
+  const char *dn = instr_node_name(d);
+  int len = strlen(sn) + strlen(dn) + 1;
+  char *name = (char *) xbt_malloc(len * sizeof(char));
+
+
+  snprintf(name, len, "%s%s", sn, dn);
+  ret = (xbt_edge_t) xbt_dict_get_or_null(edges, name);
+  if (ret == NULL) {
+    snprintf(name, len, "%s%s", dn, sn);
+    ret = (xbt_edge_t) xbt_dict_get_or_null(edges, name);
+  }
+
+  if (ret == NULL) {
+    ret = xbt_graph_new_edge(graph, s, d, NULL);
+    xbt_dict_set(edges, name, ret, NULL);
+  }
+  free(name);
+  return ret;
+}
+
+namespace simgrid {
+namespace surf {
+
+void AsRoutedGraph::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
+{
+  int src, dst;
+  int table_size = xbt_dynar_length(vertices_);
+
+
+  for (src = 0; src < table_size; src++) {
+    NetCard *my_src =
+        xbt_dynar_get_as(vertices_, src, NetCard*);
+    for (dst = 0; dst < table_size; dst++) {
+      if (src == dst)
+        continue;
+      NetCard *my_dst =
+          xbt_dynar_get_as(vertices_, dst, NetCard*);
+
+      sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
+      route->link_list = xbt_dynar_new(sizeof(Link*), NULL);
+
+      getRouteAndLatency(my_src, my_dst, route, NULL);
+
+      XBT_DEBUG ("get_route_and_latency %s -> %s", my_src->name(), my_dst->name());
+
+      unsigned int cpt;
+      void *link;
+
+      xbt_node_t current, previous;
+      const char *previous_name, *current_name;
+
+      if (route->gw_src) {
+        previous = new_xbt_graph_node(graph, route->gw_src->name(), nodes);
+        previous_name = route->gw_src->name();
+      } else {
+        previous = new_xbt_graph_node(graph, my_src->name(), nodes);
+        previous_name = my_src->name();
+      }
+
+      xbt_dynar_foreach(route->link_list, cpt, link) {
+        const char *link_name = static_cast<simgrid::surf::Resource*>(
+          link)->getName();
+        current = new_xbt_graph_node(graph, link_name, nodes);
+        current_name = link_name;
+        new_xbt_graph_edge(graph, previous, current, edges);
+        XBT_DEBUG ("  %s -> %s", previous_name, current_name);
+        previous = current;
+        previous_name = current_name;
+      }
+
+      if (route->gw_dst) {
+        current = new_xbt_graph_node(graph, route->gw_dst->name(), nodes);
+        current_name = route->gw_dst->name();
+      } else {
+        current = new_xbt_graph_node(graph, my_dst->name(), nodes);
+        current_name = my_dst->name();
+      }
+      new_xbt_graph_edge(graph, previous, current, edges);
+      XBT_DEBUG ("  %s -> %s", previous_name, current_name);
+
+      xbt_dynar_free (&(route->link_list));
+      xbt_free (route);
+    }
+  }
+}
+
+
+/* ************************************************************************** */
+/* ************************* GENERIC AUX FUNCTIONS ************************** */
+/* change a route containing link names into a route containing link entities */
+sg_platf_route_cbarg_t AsRoutedGraph::newExtendedRoute(e_surf_routing_hierarchy_t hierarchy,
+      sg_platf_route_cbarg_t routearg, int change_order) {
+
+  sg_platf_route_cbarg_t result;
+  char *link_name;
+  unsigned int cpt;
+
+  result = xbt_new0(s_sg_platf_route_cbarg_t, 1);
+  result->link_list = xbt_dynar_new(sizeof(Link*), NULL);
+
+  xbt_assert(hierarchy == SURF_ROUTING_BASE
+      || hierarchy == SURF_ROUTING_RECURSIVE,
+      "The hierarchy of this AS is neither BASIC nor RECURSIVE, I'm lost here.");
+
+  if (hierarchy == SURF_ROUTING_RECURSIVE) {
+
+    xbt_assert(routearg->gw_src && routearg->gw_dst, "NULL is obviously a deficient gateway");
+
+    /* remember not erase the gateway names */
+    result->gw_src = routearg->gw_src;
+    result->gw_dst = routearg->gw_dst;
+  }
+
+  xbt_dynar_foreach(routearg->link_list, cpt, link_name) {
+
+    Link *link = Link::byName(link_name);
+    if (link) {
+      if (change_order)
+        xbt_dynar_push(result->link_list, &link);
+      else
+        xbt_dynar_unshift(result->link_list, &link);
+    } else
+      THROWF(mismatch_error, 0, "Link '%s' not found", link_name);
+  }
+
+  return result;
+}
+
+void AsRoutedGraph::getRouteCheckParams(NetCard *src, NetCard *dst)
+{
+  xbt_assert(src,"Cannot find a route from NULL to %s", dst->name());
+  xbt_assert(dst,"Cannot find a route from %s to NULL", src->name());
+
+  As *src_as = src->containingAS();
+  As *dst_as = dst->containingAS();
+
+  xbt_assert(src_as == dst_as, "Internal error: %s@%s and %s@%s are not in the same AS as expected. Please report that bug.",
+        src->name(), src_as->name_, dst->name(), dst_as->name_);
+
+  xbt_assert(this == dst_as,
+      "Internal error: route destination %s@%s is not in AS %s as expected (route source: %s@%s). Please report that bug.",
+        src->name(), dst->name(),  src_as->name_, dst_as->name_,  name_);
+}
+void AsRoutedGraph::addRouteCheckParams(sg_platf_route_cbarg_t route) {
+  const char *srcName = route->src;
+  const char *dstName = route->dst;
+  NetCard *src = sg_netcard_by_name_or_null(srcName);
+  NetCard *dst = sg_netcard_by_name_or_null(dstName);
+
+  if(!route->gw_dst && !route->gw_src) {
+    XBT_DEBUG("Load Route from \"%s\" to \"%s\"", srcName, dstName);
+    xbt_assert(src, "Cannot add a route from %s to %s: %s does not exist.", srcName, dstName, srcName);
+    xbt_assert(dst, "Cannot add a route from %s to %s: %s does not exist.", srcName, dstName, dstName);
+    xbt_assert(!xbt_dynar_is_empty(route->link_list), "Empty route (between %s and %s) forbidden.", srcName, dstName);
+    xbt_assert(src->getRcType()==SURF_NETWORK_ELEMENT_HOST || src->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+        "When defining a route, src must be an host or a router but '%s' is not. Did you meant to have an ASroute?", srcName);
+    xbt_assert(dst->getRcType()==SURF_NETWORK_ELEMENT_HOST || dst->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+        "When defining a route, dst must be an host or a router but '%s' is not. Did you meant to have an ASroute?", dstName);
+  } else {
+    XBT_DEBUG("Load ASroute from %s@%s to %s@%s", srcName, route->gw_src->name(), dstName, route->gw_dst->name());
+    xbt_assert(src->getRcType()==SURF_NETWORK_ELEMENT_AS,
+        "When defining an ASroute, src must be an AS but '%s' is not", srcName);
+    xbt_assert(dst->getRcType()==SURF_NETWORK_ELEMENT_AS,
+        "When defining an ASroute, dst must be an AS but '%s' is not", dstName);
+
+    xbt_assert(route->gw_src->getRcType()==SURF_NETWORK_ELEMENT_HOST || route->gw_src->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+        "When defining an ASroute, gw_src must be an host or a router but '%s' is not.", srcName);
+    xbt_assert(route->gw_dst->getRcType()==SURF_NETWORK_ELEMENT_HOST || route->gw_dst->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+        "When defining an ASroute, gw_dst must be an host or a router but '%s' is not.", dstName);
+
+    xbt_assert(route->gw_src != route->gw_dst, "Cannot define an ASroute from '%s' to itself", route->gw_src->name());
+
+    xbt_assert(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+        srcName,route->gw_src->name(), dstName,route->gw_dst->name(), srcName);
+    xbt_assert(dst, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+        srcName,route->gw_src->name(), dstName,route->gw_dst->name(), dstName);
+    xbt_assert(!xbt_dynar_is_empty(route->link_list), "Empty route (between %s@%s and %s@%s) forbidden.",
+        srcName,route->gw_src->name(), dstName,route->gw_dst->name());
+  }
+}
+
+}
+}
diff --git a/src/surf/surf_routing_RoutedGraph.hpp b/src/surf/surf_routing_RoutedGraph.hpp
new file mode 100644 (file)
index 0000000..9d5c7db
--- /dev/null
@@ -0,0 +1,34 @@
+/* Copyright (c) 2013-2015. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include <xbt/base.h>
+
+#include "surf_routing.hpp"
+
+#ifndef SURF_ROUTING_GENERIC_HPP_
+#define SURF_ROUTING_GENERIC_HPP_
+
+namespace simgrid {
+namespace surf {
+
+class XBT_PRIVATE AsRoutedGraph;
+
+class XBT_PRIVATE AsRoutedGraph : public As {
+public:
+  AsRoutedGraph(const char*name);
+  ~AsRoutedGraph();
+
+  virtual void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override;
+  virtual sg_platf_route_cbarg_t newExtendedRoute(e_surf_routing_hierarchy_t hierarchy, sg_platf_route_cbarg_t routearg, int change_order);
+protected:
+  void getRouteCheckParams(NetCard *src, NetCard *dst);
+  void addRouteCheckParams(sg_platf_route_cbarg_t route);
+};
+
+}
+}
+
+#endif /* SURF_ROUTING_GENERIC_HPP_ */
index 6c284fc..9b364b1 100644 (file)
@@ -13,25 +13,22 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster, surf, "Routing part of surf"
  * Note that a router is created, easing the interconnexion with the rest of the world.
  */
 
-AS_t model_cluster_create(void)
-{
-  return new simgrid::surf::AsCluster();
-}
-
 namespace simgrid {
 namespace surf {
+  AsCluster::AsCluster(const char*name)
+    : As(name)
+  {}
 
-/* Business methods */
 void AsCluster::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat)
 {
   s_surf_parsing_link_up_down_t info;
   XBT_VERB("cluster_get_route_and_latency from '%s'[%d] to '%s'[%d]",
-            src->getName(), src->getId(), dst->getName(), dst->getId());
+            src->name(), src->id(), dst->name(), dst->id());
 
   if (src->getRcType() != SURF_NETWORK_ELEMENT_ROUTER) {    // No specific link for router
 
-    if((src->getId() == dst->getId()) && p_has_loopback  ){
-      info = xbt_dynar_get_as(p_linkUpDownList, src->getId() * p_nb_links_per_node, s_surf_parsing_link_up_down_t);
+    if((src->id() == dst->id()) && has_loopback_  ){
+      info = xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_, s_surf_parsing_link_up_down_t);
       xbt_dynar_push_as(route->link_list, void *, info.link_up);
       if (lat)
         *lat += static_cast<Link*>(info.link_up)->getLatency();
@@ -39,12 +36,12 @@ void AsCluster::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
     }
 
 
-    if (p_has_limiter){          // limiter for sender
-      info = xbt_dynar_get_as(p_linkUpDownList, src->getId() * p_nb_links_per_node + p_has_loopback, s_surf_parsing_link_up_down_t);
+    if (has_limiter_){          // limiter for sender
+      info = xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_ + has_loopback_, s_surf_parsing_link_up_down_t);
       xbt_dynar_push_as(route->link_list, void *, info.link_up);
     }
 
-    info = xbt_dynar_get_as(p_linkUpDownList, src->getId() * p_nb_links_per_node + p_has_loopback + p_has_limiter, s_surf_parsing_link_up_down_t);
+    info = xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_ + has_loopback_ + has_limiter_, s_surf_parsing_link_up_down_t);
     if (info.link_up) {         // link up
       xbt_dynar_push_as(route->link_list, void *, info.link_up);
       if (lat)
@@ -53,23 +50,23 @@ void AsCluster::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
 
   }
 
-  if (p_backbone) {
+  if (backbone_) {
     xbt_dynar_push_as(route->link_list, void *,
-      static_cast<simgrid::surf::Resource*>(p_backbone));
+      static_cast<simgrid::surf::Resource*>(backbone_));
     if (lat)
-      *lat += p_backbone->getLatency();
+      *lat += backbone_->getLatency();
   }
 
   if (dst->getRcType() != SURF_NETWORK_ELEMENT_ROUTER) {    // No specific link for router
-    info = xbt_dynar_get_as(p_linkUpDownList, dst->getId() * p_nb_links_per_node + p_has_loopback + p_has_limiter, s_surf_parsing_link_up_down_t);
+    info = xbt_dynar_get_as(upDownLinks, dst->id() * nb_links_per_node_ + has_loopback_ + has_limiter_, s_surf_parsing_link_up_down_t);
 
     if (info.link_down) {       // link down
       xbt_dynar_push_as(route->link_list, void *, info.link_down);
       if (lat)
         *lat += static_cast<Link*>(info.link_down)->getLatency();
     }
-    if (p_has_limiter){          // limiter for receiver
-        info = xbt_dynar_get_as(p_linkUpDownList, dst->getId() * p_nb_links_per_node + p_has_loopback, s_surf_parsing_link_up_down_t);
+    if (has_limiter_){          // limiter for receiver
+        info = xbt_dynar_get_as(upDownLinks, dst->id() * nb_links_per_node_ + has_loopback_, s_surf_parsing_link_up_down_t);
         xbt_dynar_push_as(route->link_list, void *, info.link_up);
     }
   }
@@ -78,32 +75,32 @@ void AsCluster::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
 void AsCluster::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
 {
   int isrc;
-  int table_size = xbt_dynar_length(p_indexNetworkElm);
+  int table_size = xbt_dynar_length(vertices_);
 
   NetCard *src;
   xbt_node_t current, previous, backboneNode = NULL, routerNode;
   s_surf_parsing_link_up_down_t info;
 
-  xbt_assert(p_router,"Malformed cluster. This may be because your platform file is a hypergraph while it must be a graph.");
+  xbt_assert(router_,"Malformed cluster. This may be because your platform file is a hypergraph while it must be a graph.");
 
   /* create the router */
-  char *link_name = p_router->getName();
+  char *link_name = router_->name();
   routerNode = new_xbt_graph_node(graph, link_name, nodes);
 
-  if(p_backbone) {
-    const char *link_nameR = p_backbone->getName();
+  if(backbone_) {
+    const char *link_nameR = backbone_->getName();
     backboneNode = new_xbt_graph_node(graph, link_nameR, nodes);
 
     new_xbt_graph_edge(graph, routerNode, backboneNode, edges);
   }
 
   for (isrc = 0; isrc < table_size; isrc++) {
-    src = xbt_dynar_get_as(p_indexNetworkElm, isrc, NetCard*);
+    src = xbt_dynar_get_as(vertices_, isrc, NetCard*);
 
     if (src->getRcType() != SURF_NETWORK_ELEMENT_ROUTER) {
-      previous = new_xbt_graph_node(graph, src->getName(), nodes);
+      previous = new_xbt_graph_node(graph, src->name(), nodes);
 
-      info = xbt_dynar_get_as(p_linkUpDownList, src->getId(), s_surf_parsing_link_up_down_t);
+      info = xbt_dynar_get_as(upDownLinks, src->id(), s_surf_parsing_link_up_down_t);
 
       if (info.link_up) {     // link up
 
@@ -112,7 +109,7 @@ void AsCluster::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
         current = new_xbt_graph_node(graph, link_name, nodes);
         new_xbt_graph_edge(graph, previous, current, edges);
 
-        if (p_backbone) {
+        if (backbone_) {
           new_xbt_graph_edge(graph, current, backboneNode, edges);
         } else {
           new_xbt_graph_edge(graph, current, routerNode, edges);
@@ -126,7 +123,7 @@ void AsCluster::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
         current = new_xbt_graph_node(graph, link_name, nodes);
         new_xbt_graph_edge(graph, previous, current, edges);
 
-        if (p_backbone) {
+        if (backbone_) {
           new_xbt_graph_edge(graph, current, backboneNode, edges);
         } else {
           new_xbt_graph_edge(graph, current, routerNode, edges);
@@ -161,21 +158,9 @@ void AsCluster::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id,
     info.link_up = sg_link_by_name(link_id);
     info.link_down = info.link_up;
   }
-  xbt_dynar_set(p_linkUpDownList, position, &info);
+  xbt_dynar_set(upDownLinks, position, &info);
   xbt_free(link_id);
 }
 
-int AsCluster::parsePU(NetCard *elm) {
-  XBT_DEBUG("Load process unit \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  return xbt_dynar_length(p_indexNetworkElm)-1;
-}
-
-int AsCluster::parseAS(NetCard *elm) {
-  XBT_DEBUG("Load Autonomous system \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  return xbt_dynar_length(p_indexNetworkElm)-1;
-}
-
 }
 }
index ce935c5..8ea4836 100644 (file)
@@ -9,7 +9,7 @@
 
 #include <xbt/base.h>
 
-#include "surf_routing_none.hpp"
+#include "surf_routing.hpp"
 #include "network_interface.hpp"
 
 namespace simgrid {
@@ -24,23 +24,23 @@ class XBT_PRIVATE AsCluster;
 /* ************************************************** */
 /* **************  Cluster ROUTING   **************** */
 
-class AsCluster: public AsNone {
+class AsCluster: public As {
 public:
-  AsCluster() {}
+  AsCluster(const char*name);
 
   virtual void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
   void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override;
 
-  int parsePU(NetCard *elm) override; /* A host or a router, whatever */
-  int parseAS(NetCard *elm) override;
   virtual void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position);
+  virtual void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) {}
 
-  Link* p_backbone = nullptr;
-  void *p_loopback = nullptr;
-  NetCard *p_router = nullptr;
-  int p_has_limiter = 0;
-  int p_has_loopback = 0;
-  int p_nb_links_per_node = 1;
+
+  Link* backbone_ = nullptr;
+  void *loopback_ = nullptr;
+  NetCard *router_ = nullptr;
+  int has_limiter_ = 0;
+  int has_loopback_ = 0;
+  int nb_links_per_node_ = 1;
 
 };
 
index 041abb7..4e40b92 100644 (file)
 #include <fstream>
 #include <sstream>
 
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_fat_tree, surf, "Routing for fat trees");
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
 
-AS_t model_fat_tree_cluster_create(void)
-{
-  return new simgrid::surf::AsClusterFatTree();
-}
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_fat_tree, surf, "Routing for fat trees");
 
 namespace simgrid {
 namespace surf {
 
-AsClusterFatTree::AsClusterFatTree() : levels(0) {
+AsClusterFatTree::AsClusterFatTree(const char*name)
+  : AsCluster(name)
+{
   XBT_DEBUG("Creating a new fat tree.");
 }
 
 AsClusterFatTree::~AsClusterFatTree() {
-  for (unsigned int i = 0 ; i < this->nodes.size() ; i++) {
-    delete this->nodes[i];
+  for (unsigned int i = 0 ; i < this->nodes_.size() ; i++) {
+    delete this->nodes_[i];
   }
-  for (unsigned int i = 0 ; i < this->links.size() ; i++) {
-    delete this->links[i];
+  for (unsigned int i = 0 ; i < this->links_.size() ; i++) {
+    delete this->links_[i];
   }
 }
 
@@ -51,7 +51,7 @@ bool AsClusterFatTree::isInSubTree(FatTreeNode *root, FatTreeNode *node) {
     }
   }
   
-  for (unsigned int i = root->level ; i < this->levels ; i++) {
+  for (unsigned int i = root->level ; i < this->levels_ ; i++) {
     if(root->label[i] != node->label[i]) {
       return false;
     }
@@ -70,29 +70,29 @@ void AsClusterFatTree::getRouteAndLatency(NetCard *src,
 if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER) return;
 
   /* Let's find the source and the destination in our internal structure */
-  tempIter = this->computeNodes.find(src->getId());
+  tempIter = this->computeNodes_.find(src->id());
 
   // xbt_die -> assert
-  if (tempIter == this->computeNodes.end()) {
-    xbt_die("Could not find the source %s [%d] in the fat tree", src->getName(),
-            src->getId());
+  if (tempIter == this->computeNodes_.end()) {
+    xbt_die("Could not find the source %s [%d] in the fat tree", src->name(),
+            src->id());
   }
   source = tempIter->second;
-  tempIter = this->computeNodes.find(dst->getId());
-  if (tempIter == this->computeNodes.end()) {
+  tempIter = this->computeNodes_.find(dst->id());
+  if (tempIter == this->computeNodes_.end()) {
     xbt_die("Could not find the destination %s [%d] in the fat tree",
-            dst->getName(), dst->getId());
+            dst->name(), dst->id());
   }
 
 
   destination = tempIter->second;
   
   XBT_VERB("Get route and latency from '%s' [%d] to '%s' [%d] in a fat tree",
-            src->getName(), src->getId(), dst->getName(), dst->getId());
+            src->name(), src->id(), dst->name(), dst->id());
 
   /* In case destination is the source, and there is a loopback, let's get
      through it instead of going up to a switch*/
-  if(source->id == destination->id && this->p_has_loopback) {
+  if(source->id == destination->id && this->has_loopback_) {
     xbt_dynar_push_as(into->link_list, void*, source->loopback);
     if(latency) {
       *latency += source->loopback->getLatency();
@@ -108,9 +108,9 @@ if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_
     d = destination->position;
 
     for (unsigned int i = 0 ; i < currentNode->level ; i++) {
-      d /= this->upperLevelNodesNumber[i];
+      d /= this->upperLevelNodesNumber_[i];
     }
-    k = this->upperLevelNodesNumber[currentNode->level];
+    k = this->upperLevelNodesNumber_[currentNode->level];
     d = d % k;
     xbt_dynar_push_as(into->link_list, void*,currentNode->parents[d]->upLink);
 
@@ -118,7 +118,7 @@ if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_
       *latency += currentNode->parents[d]->upLink->getLatency();
     }
 
-    if (this->p_has_limiter) {
+    if (this->has_limiter_) {
       xbt_dynar_push_as(into->link_list, void*,currentNode->limiterLink);
     }
     currentNode = currentNode->parents[d]->upNode;
@@ -131,14 +131,14 @@ if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_
   // Down part
   while(currentNode != destination) {
     for(unsigned int i = 0 ; i < currentNode->children.size() ; i++) {
-      if(i % this->lowerLevelNodesNumber[currentNode->level - 1] ==
+      if(i % this->lowerLevelNodesNumber_[currentNode->level - 1] ==
          destination->label[currentNode->level - 1]) {
         xbt_dynar_push_as(into->link_list, void*,currentNode->children[i]->downLink);
         if(latency) {
           *latency += currentNode->children[i]->downLink->getLatency();
         }
         currentNode = currentNode->children[i]->downNode;
-        if (this->p_has_limiter) {
+        if (this->has_limiter_) {
           xbt_dynar_push_as(into->link_list, void*,currentNode->limiterLink);
         }
         XBT_DEBUG("%d(%u,%u) is accessible through %d(%u,%u)", destination->id,
@@ -153,7 +153,7 @@ if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_
  * addNodes() have already been called
  */
 void AsClusterFatTree::create_links(){
-  if(this->levels == 0) {
+  if(this->levels_ == 0) {
     return;
   }
   this->generateSwitches();
@@ -162,18 +162,18 @@ void AsClusterFatTree::create_links(){
   if(XBT_LOG_ISENABLED(surf_route_fat_tree, xbt_log_priority_debug)) {
     std::stringstream msgBuffer;
 
-    msgBuffer << "We are creating a fat tree of " << this->levels << " levels "
-              << "with " << this->nodesByLevel[0] << " processing nodes";
-    for (unsigned int i = 1 ; i <= this->levels ; i++) {
-      msgBuffer << ", " << this->nodesByLevel[i] << " switches at level " << i;
+    msgBuffer << "We are creating a fat tree of " << this->levels_ << " levels "
+              << "with " << this->nodesByLevel_[0] << " processing nodes";
+    for (unsigned int i = 1 ; i <= this->levels_ ; i++) {
+      msgBuffer << ", " << this->nodesByLevel_[i] << " switches at level " << i;
     }
     XBT_DEBUG("%s", msgBuffer.str().c_str());
     msgBuffer.str("");
     msgBuffer << "Nodes are : ";
 
-    for (unsigned int i = 0 ;  i < this->nodes.size() ; i++) {
-      msgBuffer << this->nodes[i]->id << "(" << this->nodes[i]->level << ","
-                << this->nodes[i]->position << ") ";
+    for (unsigned int i = 0 ;  i < this->nodes_.size() ; i++) {
+      msgBuffer << this->nodes_[i]->id << "(" << this->nodes_[i]->level << ","
+                << this->nodes_[i]->position << ") ";
     }
     XBT_DEBUG("%s", msgBuffer.str().c_str());
   }
@@ -183,9 +183,9 @@ void AsClusterFatTree::create_links(){
 
   unsigned int k = 0;
   // Nodes are totally ordered, by level and then by position, in this->nodes
-  for (unsigned int i = 0 ; i < this->levels ; i++) {
-    for (unsigned int j = 0 ; j < this->nodesByLevel[i] ; j++) {
-        this->connectNodeToParents(this->nodes[k]);
+  for (unsigned int i = 0 ; i < this->levels_ ; i++) {
+    for (unsigned int j = 0 ; j < this->nodesByLevel_[i] ; j++) {
+        this->connectNodeToParents(this->nodes_[k]);
         k++;
     }
   }
@@ -193,9 +193,9 @@ void AsClusterFatTree::create_links(){
   if(XBT_LOG_ISENABLED(surf_route_fat_tree, xbt_log_priority_debug)) {
     std::stringstream msgBuffer;
     msgBuffer << "Links are : ";
-    for (unsigned int i = 0 ; i < this->links.size() ; i++) {
-      msgBuffer << "(" << this->links[i]->upNode->id << ","
-                << this->links[i]->downNode->id << ") ";
+    for (unsigned int i = 0 ; i < this->links_.size() ; i++) {
+      msgBuffer << "(" << this->links_[i]->upNode->id << ","
+                << this->links_[i]->downNode->id << ") ";
     }
     XBT_DEBUG("%s", msgBuffer.str().c_str());
   }
@@ -204,23 +204,23 @@ void AsClusterFatTree::create_links(){
 }
 
 int AsClusterFatTree::connectNodeToParents(FatTreeNode *node) {
-  std::vector<FatTreeNode*>::iterator currentParentNode = this->nodes.begin();
+  std::vector<FatTreeNode*>::iterator currentParentNode = this->nodes_.begin();
   int connectionsNumber = 0;
   const int level = node->level;
   XBT_DEBUG("We are connecting node %d(%u,%u) to his parents.",
             node->id, node->level, node->position);
   currentParentNode += this->getLevelPosition(level + 1);
-  for (unsigned int i = 0 ; i < this->nodesByLevel[level + 1] ; i++ ) {
+  for (unsigned int i = 0 ; i < this->nodesByLevel_[level + 1] ; i++ ) {
     if(this->areRelated(*currentParentNode, node)) {
       XBT_DEBUG("%d(%u,%u) and %d(%u,%u) are related,"
                 " with %u links between them.", node->id,
                 node->level, node->position, (*currentParentNode)->id,
-                (*currentParentNode)->level, (*currentParentNode)->position, this->lowerLevelPortsNumber[level]);
-      for (unsigned int j = 0 ; j < this->lowerLevelPortsNumber[level] ; j++) {
+                (*currentParentNode)->level, (*currentParentNode)->position, this->lowerLevelPortsNumber_[level]);
+      for (unsigned int j = 0 ; j < this->lowerLevelPortsNumber_[level] ; j++) {
       this->addLink(*currentParentNode, node->label[level] +
-                    j * this->lowerLevelNodesNumber[level], node,
+                    j * this->lowerLevelNodesNumber_[level], node,
                     (*currentParentNode)->label[level] +
-                    j * this->upperLevelNodesNumber[level]);
+                    j * this->upperLevelNodesNumber_[level]);
       }
       connectionsNumber++;
     }
@@ -237,14 +237,14 @@ bool AsClusterFatTree::areRelated(FatTreeNode *parent, FatTreeNode *child) {
     msgBuffer << "Are " << child->id << "(" << child->level << ","
               << child->position << ") <";
 
-    for (unsigned int i = 0 ; i < this->levels ; i++) {
+    for (unsigned int i = 0 ; i < this->levels_ ; i++) {
       msgBuffer << child->label[i] << ",";
     }
     msgBuffer << ">";
     
     msgBuffer << " and " << parent->id << "(" << parent->level
               << "," << parent->position << ") <";
-    for (unsigned int i = 0 ; i < this->levels ; i++) {
+    for (unsigned int i = 0 ; i < this->levels_ ; i++) {
       msgBuffer << parent->label[i] << ",";
     }
     msgBuffer << ">";
@@ -256,7 +256,7 @@ bool AsClusterFatTree::areRelated(FatTreeNode *parent, FatTreeNode *child) {
     return false;
   }
   
-  for (unsigned int i = 0 ; i < this->levels; i++) {
+  for (unsigned int i = 0 ; i < this->levels_; i++) {
     if (parent->label[i] != child->label[i] && i + 1 != parent->level) {
       return false;
     }
@@ -266,56 +266,50 @@ bool AsClusterFatTree::areRelated(FatTreeNode *parent, FatTreeNode *child) {
 
 void AsClusterFatTree::generateSwitches() {
   XBT_DEBUG("Generating switches.");
-  this->nodesByLevel.resize(this->levels + 1, 0);
+  this->nodesByLevel_.resize(this->levels_ + 1, 0);
   unsigned int nodesRequired = 0;
 
-  // We take care of the number of nodes by level
-  this->nodesByLevel[0] = 1;
-  for (unsigned int i = 0 ; i < this->levels ; i++) {
-    this->nodesByLevel[0] *= this->lowerLevelNodesNumber[i];
-  }
-
+  // Take care of the number of nodes by level
+  this->nodesByLevel_[0] = 1;
+  for (unsigned int i = 0 ; i < this->levels_ ; i++)
+    this->nodesByLevel_[0] *= this->lowerLevelNodesNumber_[i];
      
-  if(this->nodesByLevel[0] != this->nodes.size()) {
+  if(this->nodesByLevel_[0] != this->nodes_.size()) {
     surf_parse_error("The number of provided nodes does not fit with the wanted topology."
                      " Please check your platform description (We need %d nodes, we got %zu)",
-                     this->nodesByLevel[0], this->nodes.size());
+                     this->nodesByLevel_[0], this->nodes_.size());
     return;
   }
 
   
-  for (unsigned int i = 0 ; i < this->levels ; i++) {
+  for (unsigned int i = 0 ; i < this->levels_ ; i++) {
     int nodesInThisLevel = 1;
       
-    for (unsigned int j = 0 ;  j <= i ; j++) {
-      nodesInThisLevel *= this->upperLevelNodesNumber[j];
-    }
+    for (unsigned int j = 0 ;  j <= i ; j++)
+      nodesInThisLevel *= this->upperLevelNodesNumber_[j];
       
-    for (unsigned int j = i+1 ; j < this->levels ; j++) {
-      nodesInThisLevel *= this->lowerLevelNodesNumber[j];
-    }
+    for (unsigned int j = i+1 ; j < this->levels_ ; j++)
+      nodesInThisLevel *= this->lowerLevelNodesNumber_[j];
 
-    this->nodesByLevel[i+1] = nodesInThisLevel;
+    this->nodesByLevel_[i+1] = nodesInThisLevel;
     nodesRequired += nodesInThisLevel;
   }
 
 
-  // We create the switches
+  // Create the switches
   int k = 0;
-  for (unsigned int i = 0 ; i < this->levels ; i++) {
-    for (unsigned int j = 0 ; j < this->nodesByLevel[i + 1] ; j++) {
-      FatTreeNode* newNode;
-      newNode = new FatTreeNode(this->cluster, --k, i + 1, j);
-      XBT_DEBUG("We create the switch %d(%d,%d)", newNode->id, newNode->level,
-                newNode->position);
-      newNode->children.resize(this->lowerLevelNodesNumber[i] *
-                               this->lowerLevelPortsNumber[i]);
-      if (i != this->levels - 1) {
-        newNode->parents.resize(this->upperLevelNodesNumber[i + 1] *
-                                this->lowerLevelPortsNumber[i + 1]);
+  for (unsigned int i = 0 ; i < this->levels_ ; i++) {
+    for (unsigned int j = 0 ; j < this->nodesByLevel_[i + 1] ; j++) {
+      FatTreeNode* newNode = new FatTreeNode(this->cluster_, --k, i + 1, j);
+      XBT_DEBUG("We create the switch %d(%d,%d)", newNode->id, newNode->level, newNode->position);
+      newNode->children.resize(this->lowerLevelNodesNumber_[i] *
+                               this->lowerLevelPortsNumber_[i]);
+      if (i != this->levels_ - 1) {
+        newNode->parents.resize(this->upperLevelNodesNumber_[i + 1] *
+                                this->lowerLevelPortsNumber_[i + 1]);
       }
-      newNode->label.resize(this->levels);
-      this->nodes.push_back(newNode);
+      newNode->label.resize(this->levels_);
+      this->nodes_.push_back(newNode);
     }
   }
 }
@@ -323,53 +317,45 @@ void AsClusterFatTree::generateSwitches() {
 void AsClusterFatTree::generateLabels() {
   XBT_DEBUG("Generating labels.");
   // TODO : check if nodesByLevel and nodes are filled
-  std::vector<int> maxLabel(this->levels);
-  std::vector<int> currentLabel(this->levels);
+  std::vector<int> maxLabel(this->levels_);
+  std::vector<int> currentLabel(this->levels_);
   unsigned int k = 0;
-  for (unsigned int i = 0 ; i <= this->levels ; i++) {
-    currentLabel.assign(this->levels, 0);
-    for (unsigned int j = 0 ; j < this->levels ; j++) {
+  for (unsigned int i = 0 ; i <= this->levels_ ; i++) {
+    currentLabel.assign(this->levels_, 0);
+    for (unsigned int j = 0 ; j < this->levels_ ; j++) {
       maxLabel[j] = j + 1 > i ?
-        this->lowerLevelNodesNumber[j] : this->upperLevelNodesNumber[j];
+        this->lowerLevelNodesNumber_[j] : this->upperLevelNodesNumber_[j];
     }
     
-    for (unsigned int j = 0 ; j < this->nodesByLevel[i] ; j++) {
+    for (unsigned int j = 0 ; j < this->nodesByLevel_[i] ; j++) {
 
       if(XBT_LOG_ISENABLED(surf_route_fat_tree, xbt_log_priority_debug )) {
         std::stringstream msgBuffer;
 
         msgBuffer << "Assigning label <";
-        for (unsigned int l = 0 ; l < this->levels ; l++) {
+        for (unsigned int l = 0 ; l < this->levels_ ; l++) {
           msgBuffer << currentLabel[l] << ",";
         }
         msgBuffer << "> to " << k << " (" << i << "," << j <<")";
         
         XBT_DEBUG("%s", msgBuffer.str().c_str());
       }
-      this->nodes[k]->label.assign(currentLabel.begin(), currentLabel.end());
+      this->nodes_[k]->label.assign(currentLabel.begin(), currentLabel.end());
 
       bool remainder = true;
-      
       unsigned int pos = 0;
-      do {
-        std::stringstream msgBuffer;
-
+      while (remainder && pos < this->levels_) {
         ++currentLabel[pos];
         if (currentLabel[pos] >= maxLabel[pos]) {
           currentLabel[pos] = 0;
           remainder = true;
+          ++pos;
         }
         else {
-          remainder = false;
-        }
-        if (!remainder) {
           pos = 0;
-        }
-        else {
-          ++pos;
+          remainder = false;
         }
       }
-      while(remainder && pos < this->levels);
       k++;
     }
   }
@@ -377,128 +363,108 @@ void AsClusterFatTree::generateLabels() {
 
 
 int AsClusterFatTree::getLevelPosition(const unsigned  int level) {
-  if (level > this->levels) {
-    // Well, that should never happen. Maybe should we throw instead.
-    return -1;
-  }
+  xbt_assert(level <= this->levels_, "The impossible did happen. Yet again.");
   int tempPosition = 0;
 
-  for (unsigned int i = 0 ; i < level ; i++) {
-    tempPosition += this->nodesByLevel[i];
-  }
- return tempPosition;
+  for (unsigned int i = 0 ; i < level ; i++)
+    tempPosition += this->nodesByLevel_[i];
+
 return tempPosition;
 }
 
 void AsClusterFatTree::addProcessingNode(int id) {
   using std::make_pair;
   static int position = 0;
   FatTreeNode* newNode;
-  newNode = new FatTreeNode(this->cluster, id, 0, position++);
-  newNode->parents.resize(this->upperLevelNodesNumber[0] *
-                          this->lowerLevelPortsNumber[0]);
-  newNode->label.resize(this->levels);
-  this->computeNodes.insert(make_pair(id,newNode));
-  this->nodes.push_back(newNode);
+  newNode = new FatTreeNode(this->cluster_, id, 0, position++);
+  newNode->parents.resize(this->upperLevelNodesNumber_[0] *
+                          this->lowerLevelPortsNumber_[0]);
+  newNode->label.resize(this->levels_);
+  this->computeNodes_.insert(make_pair(id,newNode));
+  this->nodes_.push_back(newNode);
 }
 
 void AsClusterFatTree::addLink(FatTreeNode *parent, unsigned int parentPort,
                                FatTreeNode *child, unsigned int childPort) {
   FatTreeLink *newLink;
-  newLink = new FatTreeLink(this->cluster, child, parent);
-  XBT_DEBUG("Creating a link between the parent (%d,%d,%u)"
-            " and the child (%d,%d,%u)", parent->level, parent->position,
-            parentPort, child->level, child->position, childPort);
+  newLink = new FatTreeLink(this->cluster_, child, parent);
+  XBT_DEBUG("Creating a link between the parent (%d,%d,%u) and the child (%d,%d,%u)",
+      parent->level, parent->position, parentPort, child->level, child->position, childPort);
   parent->children[parentPort] = newLink;
   child->parents[childPort] = newLink;
 
-  this->links.push_back(newLink);
-
-  
-
+  this->links_.push_back(newLink);
 }
 
-void AsClusterFatTree::parse_specific_arguments(sg_platf_cluster_cbarg_t 
-                                                cluster) {
+void AsClusterFatTree::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) {
   std::vector<std::string> parameters;
   std::vector<std::string> tmp;
   boost::split(parameters, cluster->topo_parameters, boost::is_any_of(";"));
 
   // TODO : we have to check for zeros and negative numbers, or it might crash
   if (parameters.size() != 4){
-    surf_parse_error("Fat trees are defined by the levels number and 3 vectors" 
-                     ", see the documentation for more informations");
+    surf_parse_error("Fat trees are defined by the levels number and 3 vectors, see the documentation for more informations");
   }
 
   // The first parts of topo_parameters should be the levels number
-  this->levels = std::atoi(parameters[0].c_str()); // stoi() only in C++11...
+  this->levels_ = xbt_str_parse_int(parameters[0].c_str(), "First parameter is not the amount of levels: %s");
   
   // Then, a l-sized vector standing for the childs number by level
   boost::split(tmp, parameters[1], boost::is_any_of(","));
-  if(tmp.size() != this->levels) {
+  if(tmp.size() != this->levels_) {
     surf_parse_error("Fat trees are defined by the levels number and 3 vectors" 
                      ", see the documentation for more informations"); 
   }
   for(size_t i = 0 ; i < tmp.size() ; i++){
-    this->lowerLevelNodesNumber.push_back(std::atoi(tmp[i].c_str())); 
+    this->lowerLevelNodesNumber_.push_back(xbt_str_parse_int(tmp[i].c_str(), "Invalid lower level node number: %s"));
   }
   
   // Then, a l-sized vector standing for the parents number by level
   boost::split(tmp, parameters[2], boost::is_any_of(","));
-  if(tmp.size() != this->levels) {
+  if(tmp.size() != this->levels_) {
     surf_parse_error("Fat trees are defined by the levels number and 3 vectors" 
                      ", see the documentation for more informations"); 
   }
   for(size_t i = 0 ; i < tmp.size() ; i++){
-    this->upperLevelNodesNumber.push_back(std::atoi(tmp[i].c_str())); 
+    this->upperLevelNodesNumber_.push_back(xbt_str_parse_int(tmp[i].c_str(), "Invalid upper level node number: %s"));
   }
   
   // Finally, a l-sized vector standing for the ports number with the lower level
   boost::split(tmp, parameters[3], boost::is_any_of(","));
-  if(tmp.size() != this->levels) {
+  if(tmp.size() != this->levels_) {
     surf_parse_error("Fat trees are defined by the levels number and 3 vectors" 
                      ", see the documentation for more informations"); 
     
   }
   for(size_t i = 0 ; i < tmp.size() ; i++){
-    this->lowerLevelPortsNumber.push_back(std::atoi(tmp[i].c_str())); 
+    this->lowerLevelPortsNumber_.push_back(xbt_str_parse_int(tmp[i].c_str(), "Invalid lower level node number: %s"));
   }
-  this->cluster = cluster;
+  this->cluster_ = cluster;
 }
 
 
 void AsClusterFatTree::generateDotFile(const std::string& filename) const {
   std::ofstream file;
-  /* Maybe should we get directly a char*, as open takes strings only beginning
-   * with C++11...
-   */
-  file.open(filename.c_str(), std::ios::out | std::ios::trunc); 
-  
-  if(file.is_open()) {
-    file << "graph AsClusterFatTree {\n";
-    for (unsigned int i = 0 ; i < this->nodes.size() ; i++) {
-      file << this->nodes[i]->id;
-      if(this->nodes[i]->id < 0) {
-        file << " [shape=circle];\n";
-      }
-      else {
-        file << " [shape=hexagon];\n";
-      }
-    }
-
-    for (unsigned int i = 0 ; i < this->links.size() ; i++ ) {
-      file << this->links[i]->downNode->id
-             << " -- "
-           << this->links[i]->upNode->id
-             << ";\n";
-    }
-    file << "}";
-    file.close();
-  }
-  else {
-    XBT_DEBUG("Unable to open file %s", filename.c_str());
-    return;
-  }
+  file.open(filename, std::ios::out | std::ios::trunc);
+  xbt_assert(file.is_open(), "Unable to open file %s", filename.c_str());
+
+  file << "graph AsClusterFatTree {\n";
+  for (unsigned int i = 0 ; i < this->nodes_.size() ; i++) {
+    file << this->nodes_[i]->id;
+    if(this->nodes_[i]->id < 0)
+      file << " [shape=circle];\n";
+    else
+      file << " [shape=hexagon];\n";
+  }
+
+  for (unsigned int i = 0 ; i < this->links_.size() ; i++ ) {
+    file << this->links_[i]->downNode->id
+        << " -- "
+        << this->links_[i]->upNode->id
+        << ";\n";
+  }
+  file << "}";
+  file.close();
 }
 
 FatTreeNode::FatTreeNode(sg_platf_cluster_cbarg_t cluster, int id, int level,
index af8e8ad..410479f 100644 (file)
@@ -116,7 +116,7 @@ public:
  */
 class XBT_PRIVATE AsClusterFatTree : public AsCluster {
 public:
-  AsClusterFatTree();
+  AsClusterFatTree(const char*name);
   ~AsClusterFatTree();
   virtual void getRouteAndLatency(NetCard *src, NetCard *dst,
                                   sg_platf_route_cbarg_t into,
@@ -133,24 +133,24 @@ public:
    *
    * It will also store the cluster for future use.
    */
-  void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster);
+  void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) override;
   void addProcessingNode(int id);
   void generateDotFile(const std::string& filename = "fatTree.dot") const;
 
 private:
   
   //description of a PGFT (TODO : better doc)
-  unsigned int levels;
-  std::vector<unsigned int> lowerLevelNodesNumber; // number of children by node
-  std::vector<unsigned int> upperLevelNodesNumber; // number of parents by node
-  std::vector<unsigned int> lowerLevelPortsNumber; // ports between each level l and l-1
+  unsigned int levels_ = 0;
+  std::vector<unsigned int> lowerLevelNodesNumber_; // number of children by node
+  std::vector<unsigned int> upperLevelNodesNumber_; // number of parents by node
+  std::vector<unsigned int> lowerLevelPortsNumber_; // ports between each level l and l-1
   
-  std::map<int, FatTreeNode*> computeNodes;
-  std::vector<FatTreeNode*> nodes;
-  std::vector<FatTreeLink*> links;
-  std::vector<unsigned int> nodesByLevel;
+  std::map<int, FatTreeNode*> computeNodes_;
+  std::vector<FatTreeNode*> nodes_;
+  std::vector<FatTreeLink*> links_;
+  std::vector<unsigned int> nodesByLevel_;
 
-  sg_platf_cluster_cbarg_t cluster;
+  sg_platf_cluster_cbarg_t cluster_;
 
   void addLink(FatTreeNode *parent, unsigned int parentPort,
                FatTreeNode *child, unsigned int childPort);
index e09daf1..5653259 100644 (file)
 
 #include "src/surf/surf_routing_private.hpp"
 #include "src/surf/surf_routing_cluster_torus.hpp"
+#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster_torus, surf_route_cluster, "Torus Routing part of surf");
 
 
-inline unsigned int* rankId_to_coords(int rankId, xbt_dynar_t dimensions) {
-
-    unsigned int i = 0, cur_dim_size = 1, dim_size_product = 1;
-    unsigned int* coords = (unsigned int*)malloc(xbt_dynar_length(dimensions)*sizeof(unsigned int));
-    for (i = 0; i < xbt_dynar_length(dimensions); i++) {
-        cur_dim_size = xbt_dynar_get_as(dimensions, i, int);
-        coords[i] = (rankId / dim_size_product) % cur_dim_size;
-        dim_size_product *= cur_dim_size;
-    }
-
-    return coords;
-}
-
-
-AS_t model_torus_cluster_create(void)
+inline unsigned int *rankId_to_coords(int rankId, xbt_dynar_t dimensions)
 {
-  return new simgrid::surf::AsClusterTorus();
-}
 
-namespace simgrid {
-namespace surf {
+  unsigned int i = 0, cur_dim_size = 1, dim_size_product = 1;
+  unsigned int *coords = (unsigned int *) malloc(xbt_dynar_length(dimensions) * sizeof(unsigned int));
+  for (i = 0; i < xbt_dynar_length(dimensions); i++) {
+    cur_dim_size = xbt_dynar_get_as(dimensions, i, int);
+    coords[i] = (rankId / dim_size_product) % cur_dim_size;
+    dim_size_product *= cur_dim_size;
+  }
 
-/* Creation routing model functions */
-AsClusterTorus::AsClusterTorus() : AsCluster()
-{
-  p_dimensions = NULL;
+  return coords;
 }
 
-/* Creation routing model functions */
-AsClusterTorus::~AsClusterTorus()
-{
-  if(p_dimensions) xbt_dynar_free(&p_dimensions);
-}
 
+namespace simgrid {
+  namespace surf {
+    AsClusterTorus::AsClusterTorus(const char*name)
+      : AsCluster(name) {
+    }
+    AsClusterTorus::~AsClusterTorus() {
+      xbt_dynar_free(&dimensions_);
+    }
 
-void AsClusterTorus::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position){
-  s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
-  char* link_id;
-  unsigned int j = 0;
-  /**
-   * Create all links that exist in the torus.
-   * Each rank creates #dimensions-1 links
-   */
-  int neighbour_rank_id = 0; // The other node the link connects
-  int current_dimension = 0, // which dimension are we currently in?
-      // we need to iterate over all dimensions
-      // and create all links there
-      dim_product       = 1; // Needed to calculate the next neighbour_id
-  for (j = 0; j < xbt_dynar_length(p_dimensions); j++) {
-
-      memset(&link, 0, sizeof(link));
-      current_dimension = xbt_dynar_get_as(p_dimensions, j, int);
-      neighbour_rank_id = ( ((int) rank / dim_product) % current_dimension == current_dimension-1) ? rank - (current_dimension-1)*dim_product : rank + dim_product;
-      //name of neighbor is not right for non contiguous cluster radicals (as id != rank in this case)
-      link_id           = bprintf("%s_link_from_%i_to_%i", cluster->id, id, neighbour_rank_id);
-      link.id           = link_id;
-      link.bandwidth    = cluster->bw;
-      link.latency      = cluster->lat;
-      link.initiallyOn  = 1;
-      link.policy       = cluster->sharing_policy;
-      sg_platf_new_link(&link);
-      s_surf_parsing_link_up_down_t info;
-      if (link.policy == SURF_LINK_FULLDUPLEX) {
+    void AsClusterTorus::create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position) {
+      s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
+      char *link_id;
+      unsigned int j = 0;
+      /**
+       * Create all links that exist in the torus.
+       * Each rank creates #dimensions-1 links
+       */
+      int neighbour_rank_id = 0;        // The other node the link connects
+      int current_dimension = 0,        // which dimension are we currently in?
+          // we need to iterate over all dimensions
+          // and create all links there
+          dim_product = 1;      // Needed to calculate the next neighbour_id
+      for (j = 0; j < xbt_dynar_length(dimensions_); j++) {
+
+        memset(&link, 0, sizeof(link));
+        current_dimension = xbt_dynar_get_as(dimensions_, j, int);
+        neighbour_rank_id =
+            (((int) rank / dim_product) % current_dimension ==
+                current_dimension - 1) ? rank - (current_dimension - 1) * dim_product : rank + dim_product;
+        //name of neighbor is not right for non contiguous cluster radicals (as id != rank in this case)
+        link_id = bprintf("%s_link_from_%i_to_%i", cluster->id, id, neighbour_rank_id);
+        link.id = link_id;
+        link.bandwidth = cluster->bw;
+        link.latency = cluster->lat;
+        link.initiallyOn = 1;
+        link.policy = cluster->sharing_policy;
+        sg_platf_new_link(&link);
+        s_surf_parsing_link_up_down_t info;
+        if (link.policy == SURF_LINK_FULLDUPLEX) {
           char *tmp_link = bprintf("%s_UP", link_id);
           info.link_up = Link::byName(tmp_link);
           free(tmp_link);
           tmp_link = bprintf("%s_DOWN", link_id);
           info.link_down = Link::byName(tmp_link);
           free(tmp_link);
-      } else {
+        } else {
           info.link_up = Link::byName(link_id);
           info.link_down = info.link_up;
+        }
+        /**
+         * Add the link to its appropriate position;
+         * note that position rankId*(xbt_dynar_length(dimensions)+has_loopack?+has_limiter?)
+         * holds the link "rankId->rankId"
+         */
+        xbt_dynar_set(upDownLinks, position + j, &info);
+        dim_product *= current_dimension;
+        xbt_free(link_id);
       }
-      /**
-       * Add the link to its appropriate position;
-       * note that position rankId*(xbt_dynar_length(dimensions)+has_loopack?+has_limiter?)
-       * holds the link "rankId->rankId"
-       */
-      xbt_dynar_set(p_linkUpDownList, position
-          + j,
-          &info);
-      dim_product   *= current_dimension;
-      xbt_free(link_id);
-  }
-  rank++;
-}
+      rank++;
+    }
 
-void AsClusterTorus::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster){
+    void AsClusterTorus::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) {
+
+      unsigned int iter;
+      char *groups;
+      xbt_dynar_t dimensions = xbt_str_split(cluster->topo_parameters, ",");
+
+      if (!xbt_dynar_is_empty(dimensions)) {
+        dimensions_ = xbt_dynar_new(sizeof(int), NULL);
+        /**
+         * We are in a torus cluster
+         * Parse attribute dimensions="dim1,dim2,dim3,...,dimN"
+         * and safe it in a dynarray.
+         * Additionally, we need to know how many ranks we have in total
+         */
+        xbt_dynar_foreach(dimensions, iter, groups) {
+          int tmp = surf_parse_get_int(xbt_dynar_get_as(dimensions, iter, char *));
+          xbt_dynar_set_as(dimensions_, iter, int, tmp);
+        }
+
+        nb_links_per_node_ = xbt_dynar_length(dimensions_);
+
+      }
+      xbt_dynar_free(&dimensions);
+    }
+
+    void AsClusterTorus::getRouteAndLatency(NetCard * src, NetCard * dst, sg_platf_route_cbarg_t route, double *lat) {
+
+      XBT_VERB("torus_get_route_and_latency from '%s'[%d] to '%s'[%d]",
+          src->name(), src->id(), dst->name(), dst->id());
+
+      if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER)
+        return;
+
+      if ((src->id() == dst->id()) && has_loopback_) {
+        s_surf_parsing_link_up_down_t info =
+            xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_, s_surf_parsing_link_up_down_t);
+        xbt_dynar_push_as(route->link_list, void *, info.link_up);
+
+        if (lat)
+          *lat += static_cast < Link * >(info.link_up)->getLatency();
+        return;
+      }
 
-  unsigned int iter;
-  char *groups;
-  xbt_dynar_t dimensions = xbt_str_split(cluster->topo_parameters, ",");
 
-    if (!xbt_dynar_is_empty(dimensions)) {
-      p_dimensions= xbt_dynar_new(sizeof(int), NULL);
       /**
-       * We are in a torus cluster
-       * Parse attribute dimensions="dim1,dim2,dim3,...,dimN"
-       * and safe it in a dynarray.
-       * Additionally, we need to know how many ranks we have in total
+       * Dimension based routing routes through each dimension consecutively
+       * TODO Change to dynamic assignment
        */
-      xbt_dynar_foreach(dimensions, iter, groups) {
-          int tmp = surf_parse_get_int(xbt_dynar_get_as(dimensions, iter, char *));
-          xbt_dynar_set_as(p_dimensions, iter, int, tmp);
+      unsigned int j, cur_dim, dim_product = 1;
+      int current_node = src->id();
+      int unsigned next_node = 0;
+      /**
+       * Arrays that hold the coordinates of the current node and
+       * the target; comparing the values at the i-th position of
+       * both arrays, we can easily assess whether we need to route
+       * into this dimension or not.
+       */
+      unsigned int *myCoords, *targetCoords;
+      myCoords = rankId_to_coords(src->id(), dimensions_);
+      targetCoords = rankId_to_coords(dst->id(), dimensions_);
+      /**
+       * linkOffset describes the offset where the link
+       * we want to use is stored
+       * (+1 is added because each node has a link from itself to itself,
+       * which can only be the case if src->m_id == dst->m_id -- see above
+       * for this special case)
+       */
+      int nodeOffset = (xbt_dynar_length(dimensions_) + 1) * src->id();
+
+      int linkOffset = nodeOffset;
+      bool use_lnk_up = false;  // Is this link of the form "cur -> next" or "next -> cur"?
+      // false means: next -> cur
+      while (current_node != dst->id()) {
+        dim_product = 1;        // First, we will route in x-dimension
+        for (j = 0; j < xbt_dynar_length(dimensions_); j++) {
+          cur_dim = xbt_dynar_get_as(dimensions_, j, int);
+
+          // current_node/dim_product = position in current dimension
+          if ((current_node / dim_product) % cur_dim != (dst->id() / dim_product) % cur_dim) {
+
+            if ((targetCoords[j] > myCoords[j] && targetCoords[j] <= myCoords[j] + cur_dim / 2) // Is the target node on the right, without the wrap-around?
+                || (myCoords[j] > cur_dim / 2 && (myCoords[j] + cur_dim / 2) % cur_dim >= targetCoords[j])) {   // Or do we need to use the wrap around to reach it?
+              if ((current_node / dim_product) % cur_dim == cur_dim - 1)
+                next_node = (current_node + dim_product - dim_product * cur_dim);
+              else
+                next_node = (current_node + dim_product);
+
+              // HERE: We use *CURRENT* node for calculation (as opposed to next_node)
+              nodeOffset = current_node * (nb_links_per_node_);
+              linkOffset = nodeOffset + has_loopback_ + has_limiter_ + j;
+              use_lnk_up = true;
+              assert(linkOffset >= 0);
+            } else {            // Route to the left
+              if ((current_node / dim_product) % cur_dim == 0)
+                next_node = (current_node - dim_product + dim_product * cur_dim);
+              else
+                next_node = (current_node - dim_product);
+
+              // HERE: We use *next* node for calculation (as opposed to current_node!)
+              nodeOffset = next_node * (nb_links_per_node_);
+              linkOffset = nodeOffset + j + has_loopback_ + has_limiter_;
+              use_lnk_up = false;
+
+              assert(linkOffset >= 0);
+            }
+            XBT_DEBUG("torus_get_route_and_latency - current_node: %i, next_node: %u, linkOffset is %i",
+                current_node, next_node, linkOffset);
+
+            break;
+          }
+
+          dim_product *= cur_dim;
+        }
+
+        s_surf_parsing_link_up_down_t info;
+
+        if (has_limiter_) {    // limiter for sender
+          info = xbt_dynar_get_as(upDownLinks, nodeOffset + has_loopback_, s_surf_parsing_link_up_down_t);
+          xbt_dynar_push_as(route->link_list, void *, info.link_up);
+        }
+
+        info = xbt_dynar_get_as(upDownLinks, linkOffset, s_surf_parsing_link_up_down_t);
+
+        if (use_lnk_up == false) {
+          xbt_dynar_push_as(route->link_list, void *, info.link_down);
+
+          if (lat)
+            *lat += static_cast < Link * >(info.link_down)->getLatency();
+        } else {
+          xbt_dynar_push_as(route->link_list, void *, info.link_up);
+
+          if (lat)
+            *lat += static_cast < Link * >(info.link_up)->getLatency();
+        }
+        current_node = next_node;
+        next_node = 0;
       }
+      free(myCoords);
+      free(targetCoords);
 
-      p_nb_links_per_node = xbt_dynar_length(p_dimensions);
 
-    }
-    xbt_dynar_free(&dimensions);
-}
 
-void AsClusterTorus::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat){
-
-  XBT_VERB("torus_get_route_and_latency from '%s'[%d] to '%s'[%d]",
-               src->getName(), src->getId(),
-               dst->getName(), dst->getId());
-
-     if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER) return;
-
-     if((src->getId() == dst->getId()) && p_has_loopback  ){
-       s_surf_parsing_link_up_down_t info = xbt_dynar_get_as(p_linkUpDownList, src->getId() * p_nb_links_per_node, s_surf_parsing_link_up_down_t);
-       xbt_dynar_push_as(route->link_list, void *, info.link_up);
-
-       if (lat)
-         *lat += static_cast<Link*>(info.link_up)->getLatency();
-       return;
-     }
-
-
-     /**
-      * Dimension based routing routes through each dimension consecutively
-      * TODO Change to dynamic assignment
-      */
-     unsigned int j, cur_dim, dim_product   = 1;
-     int current_node    = src->getId();
-     int unsigned next_node       = 0;
-     /**
-      * Arrays that hold the coordinates of the current node and
-      * the target; comparing the values at the i-th position of
-      * both arrays, we can easily assess whether we need to route
-      * into this dimension or not.
-      */
-     unsigned int* myCoords, *targetCoords;
-     myCoords     = rankId_to_coords(src->getId(), p_dimensions);
-     targetCoords = rankId_to_coords(dst->getId(), p_dimensions);
-     /**
-      * linkOffset describes the offset where the link
-      * we want to use is stored
-      * (+1 is added because each node has a link from itself to itself,
-      * which can only be the case if src->m_id == dst->m_id -- see above
-      * for this special case)
-      */
-     int nodeOffset = (xbt_dynar_length(p_dimensions)+1)*src->getId();
-
-     int linkOffset = nodeOffset;
-     bool use_lnk_up          = false; // Is this link of the form "cur -> next" or "next -> cur"?
-                                       // false means: next -> cur
-     while (current_node != dst->getId()) {
-       dim_product = 1; // First, we will route in x-dimension
-       for (j = 0; j < xbt_dynar_length(p_dimensions); j++) {
-           cur_dim = xbt_dynar_get_as(p_dimensions, j, int);
-
-           // current_node/dim_product = position in current dimension
-           if ((current_node/dim_product) % cur_dim != (dst->getId()/dim_product) % cur_dim) {
-
-               if (( targetCoords[j] > myCoords[j] && targetCoords[j] <= myCoords[j]+cur_dim/2) // Is the target node on the right, without the wrap-around?
-                   || ( myCoords[j] > cur_dim/2 && (myCoords[j]+cur_dim/2)%cur_dim >= targetCoords[j] )) { // Or do we need to use the wrap around to reach it?
-                 if ((current_node / dim_product) % cur_dim == cur_dim-1)
-                     next_node = (current_node+dim_product-dim_product*cur_dim);
-                 else
-                     next_node = (current_node+dim_product);
-
-                 // HERE: We use *CURRENT* node for calculation (as opposed to next_node)
-                 nodeOffset = current_node*(p_nb_links_per_node);
-                 linkOffset = nodeOffset+p_has_loopback+p_has_limiter+j;
-                 use_lnk_up = true;
-                 assert(linkOffset >= 0);
-               }
-               else { // Route to the left
-                 if ((current_node / dim_product) % cur_dim == 0)
-                     next_node = (current_node-dim_product+dim_product*cur_dim);
-                 else
-                     next_node = (current_node-dim_product);
-
-                 // HERE: We use *next* node for calculation (as opposed to current_node!)
-                 nodeOffset = next_node*(p_nb_links_per_node);
-                 linkOffset = nodeOffset+j+p_has_loopback+p_has_limiter;
-                 use_lnk_up = false;
-
-                 assert(linkOffset >= 0);
-               }
-               XBT_DEBUG("torus_get_route_and_latency - current_node: %i, next_node: %u, linkOffset is %i",
-               current_node, next_node, linkOffset);
-
-               break;
-           }
-
-           dim_product *= cur_dim;
-       }
-
-       s_surf_parsing_link_up_down_t info;
-
-       if (p_has_limiter){          // limiter for sender
-             info = xbt_dynar_get_as(p_linkUpDownList, nodeOffset + p_has_loopback, s_surf_parsing_link_up_down_t);
-             xbt_dynar_push_as(route->link_list, void *, info.link_up);
-       }
-
-       info = xbt_dynar_get_as(p_linkUpDownList,linkOffset, s_surf_parsing_link_up_down_t);
-
-       if (use_lnk_up == false){
-           xbt_dynar_push_as(route->link_list,void*,info.link_down);
-
-       if (lat)
-         *lat += static_cast<Link*>(info.link_down)->getLatency();
-       }else{
-           xbt_dynar_push_as(route->link_list,void*,info.link_up);
-
-       if (lat)
-         *lat += static_cast<Link*>(info.link_up)->getLatency();
-       }
-       current_node = next_node;
-       next_node = 0;
-     }
-     free(myCoords);
-     free(targetCoords);
-
-
-
-  return;
-}
+      return;
+    }
 
-}
+  }
 }
index d6de7a0..ecb674e 100644 (file)
 #include "surf_routing_cluster.hpp"
 
 namespace simgrid {
-namespace surf {
-
-class XBT_PRIVATE AsClusterTorus: public simgrid::surf::AsCluster {
-public:
-   AsClusterTorus();
-   virtual ~AsClusterTorus();
-   virtual void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position);
-   virtual void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency);
-   void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster);
-   xbt_dynar_t p_dimensions;
-};
-
-}
-}
-
+  namespace surf {
+
+    class XBT_PRIVATE AsClusterTorus:public simgrid::surf::AsCluster {
+    public:
+      AsClusterTorus(const char*name);
+      virtual ~AsClusterTorus();
+      void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position) override;
+      void getRouteAndLatency(NetCard * src, NetCard * dst, sg_platf_route_cbarg_t into, double *latency) override;
+      void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) override;
+    private:
+      xbt_dynar_t dimensions_ = NULL;
+    };
+
+  }}
 #endif
index be44ced..c0ae31a 100644 (file)
@@ -36,49 +36,52 @@ static void graph_edge_data_free(void *e) // FIXME: useless code duplication
   }
 }
 
-AS_t model_dijkstra_create(void){
-  return new simgrid::surf::AsDijkstra(0);
-}
-
-AS_t model_dijkstracache_create(void){
-  return new simgrid::surf::AsDijkstra(1);
-}
+/* Utility functions */
 
-void model_dijkstra_both_end(AS_t as)
+namespace simgrid {
+namespace surf {
+void AsDijkstra::Seal()
 {
-  simgrid::surf::AsDijkstra *THIS_AS
-    = static_cast<simgrid::surf::AsDijkstra*>(as);
   xbt_node_t node = NULL;
-  unsigned int cursor2;
-  xbt_dynar_t nodes = NULL;
+  unsigned int cursor2, cursor;
 
   /* Create the topology graph */
-  if(!THIS_AS->p_routeGraph)
-    THIS_AS->p_routeGraph = xbt_graph_new_graph(1, NULL);
-  if(!THIS_AS->p_graphNodeMap)
-    THIS_AS->p_graphNodeMap = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
-
-  if (THIS_AS->m_cached && !THIS_AS->p_routeCache)
-    THIS_AS->p_routeCache = xbt_dict_new_homogeneous(&route_cache_elem_free);
+  if(!routeGraph_)
+    routeGraph_ = xbt_graph_new_graph(1, NULL);
+  if(!graphNodeMap_)
+    graphNodeMap_ = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
 
   /* Add the loopback if needed */
-  if (routing_platf->p_loopback && as->p_hierarchy == SURF_ROUTING_BASE)
-    THIS_AS->addLoopback();
+  if (routing_platf->loopback_ && hierarchy_ == SURF_ROUTING_BASE) {
+    xbt_dynar_foreach(xbt_graph_get_nodes(routeGraph_), cursor, node) {
+      xbt_edge_t edge = NULL;
+
+      bool found = false;
+      xbt_dynar_foreach(xbt_graph_node_get_outedges(node), cursor2, edge) {
+        if (xbt_graph_edge_get_target(edge) == node) {
+          found = true;
+          break;
+        }
+      }
+
+      if (!found) {
+        sg_platf_route_cbarg_t e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
+        e_route->link_list = xbt_dynar_new(sizeof(Link*), NULL);
+        xbt_dynar_push(e_route->link_list, &routing_platf->loopback_);
+        xbt_graph_new_edge(routeGraph_, node, node, e_route);
+      }
+    }
+  }
 
   /* initialize graph indexes in nodes after graph has been built */
-  nodes = xbt_graph_get_nodes(THIS_AS->p_routeGraph);
+  xbt_dynar_t nodes = xbt_graph_get_nodes(routeGraph_);
 
-  xbt_dynar_foreach(nodes, cursor2, node) {
+  xbt_dynar_foreach(nodes, cursor, node) {
     graph_node_data_t data = (graph_node_data_t) xbt_graph_node_get_data(node);
-    data->graph_id = cursor2;
+    data->graph_id = cursor;
   }
 }
 
-/* Utility functions */
-
-namespace simgrid {
-namespace surf {
-
 xbt_node_t AsDijkstra::routeGraphNewNode(int id, int graph_id)
 {
   xbt_node_t node = NULL;
@@ -88,23 +91,18 @@ xbt_node_t AsDijkstra::routeGraphNewNode(int id, int graph_id)
   data = xbt_new0(struct graph_node_data, 1);
   data->id = id;
   data->graph_id = graph_id;
-  node = xbt_graph_new_node(p_routeGraph, data);
+  node = xbt_graph_new_node(routeGraph_, data);
 
   elm = xbt_new0(struct graph_node_map_element, 1);
   elm->node = node;
-  xbt_dict_set_ext(p_graphNodeMap, (char *) (&id), sizeof(int),
-      (xbt_dictelm_t) elm, NULL);
+  xbt_dict_set_ext(graphNodeMap_, (char *) (&id), sizeof(int), (xbt_dictelm_t) elm, NULL);
 
   return node;
 }
 
 graph_node_map_element_t AsDijkstra::nodeMapSearch(int id)
 {
-  graph_node_map_element_t elm = (graph_node_map_element_t)
-          xbt_dict_get_or_null_ext(p_graphNodeMap,
-              (char *) (&id),
-              sizeof(int));
-  return elm;
+  return (graph_node_map_element_t)xbt_dict_get_or_null_ext(graphNodeMap_, (char *) (&id), sizeof(int));
 }
 
 /* Parsing */
@@ -115,15 +113,8 @@ void AsDijkstra::newRoute(int src_id, int dst_id, sg_platf_route_cbarg_t e_route
   xbt_node_t src = NULL;
   xbt_node_t dst = NULL;
 
-  graph_node_map_element_t src_elm = (graph_node_map_element_t)
-          xbt_dict_get_or_null_ext(p_graphNodeMap,
-              (char *) (&src_id),
-              sizeof(int));
-  graph_node_map_element_t dst_elm = (graph_node_map_element_t)
-          xbt_dict_get_or_null_ext(p_graphNodeMap,
-              (char *) (&dst_id),
-              sizeof(int));
-
+  graph_node_map_element_t src_elm = nodeMapSearch(src_id);
+  graph_node_map_element_t dst_elm = nodeMapSearch(dst_id);
 
   if (src_elm)
     src = src_elm->node;
@@ -145,59 +136,29 @@ void AsDijkstra::newRoute(int src_id, int dst_id, sg_platf_route_cbarg_t e_route
   }
 
   /* add link as edge to graph */
-  xbt_graph_new_edge(p_routeGraph, src, dst, e_route);
-}
-
-void AsDijkstra::addLoopback() {
-  xbt_dynar_t nodes = xbt_graph_get_nodes(p_routeGraph);
-
-  xbt_node_t node = NULL;
-  unsigned int cursor2;
-  xbt_dynar_foreach(nodes, cursor2, node) {
-    xbt_dynar_t out_edges = xbt_graph_node_get_outedges(node);
-    xbt_edge_t edge = NULL;
-    unsigned int cursor;
-
-    int found = 0;
-    xbt_dynar_foreach(out_edges, cursor, edge) {
-      xbt_node_t other_node = xbt_graph_edge_get_target(edge);
-      if (other_node == node) {
-        found = 1;
-        break;
-      }
-    }
-
-    if (!found) {
-      sg_platf_route_cbarg_t e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
-      e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-      xbt_dynar_push(e_route->link_list, &routing_platf->p_loopback);
-      xbt_graph_new_edge(p_routeGraph, node, node, e_route);
-    }
-  }
+  xbt_graph_new_edge(routeGraph_, src, dst, e_route);
 }
 
 xbt_dynar_t AsDijkstra::getOneLinkRoutes()
 {
   xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
   sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t,1);
-  route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
+  route->link_list = xbt_dynar_new(sizeof(Link*),NULL);
 
-  int src,dst;
-  NetCard *src_elm, *dst_elm;
-  int table_size = (int)xbt_dynar_length(p_indexNetworkElm);
-  for(src=0; src < table_size; src++) {
-    for(dst=0; dst< table_size; dst++) {
+  int table_size = (int)xbt_dynar_length(vertices_);
+  for(int src=0; src < table_size; src++) {
+    for(int dst=0; dst< table_size; dst++) {
       xbt_dynar_reset(route->link_list);
-      src_elm = xbt_dynar_get_as(p_indexNetworkElm, src, NetCard*);
-      dst_elm = xbt_dynar_get_as(p_indexNetworkElm, dst, NetCard*);
+      NetCard *src_elm = xbt_dynar_get_as(vertices_, src, NetCard*);
+      NetCard *dst_elm = xbt_dynar_get_as(vertices_, dst, NetCard*);
       this->getRouteAndLatency(src_elm, dst_elm,route, NULL);
 
       if (xbt_dynar_length(route->link_list) == 1) {
         void *link = *(void **) xbt_dynar_get_ptr(route->link_list, 0);
         Onelink *onelink;
-        if (p_hierarchy == SURF_ROUTING_BASE)
+        if (hierarchy_ == SURF_ROUTING_BASE)
           onelink = new Onelink(link, src_elm, dst_elm);
-        else if (p_hierarchy == SURF_ROUTING_RECURSIVE)
+        else if (hierarchy_ == SURF_ROUTING_RECURSIVE)
           onelink = new Onelink(link, route->gw_src, route->gw_dst);
         else
           onelink = new Onelink(link, NULL, NULL);
@@ -210,52 +171,37 @@ xbt_dynar_t AsDijkstra::getOneLinkRoutes()
 
 void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat)
 {
-
-  /* set utils vars */
-
-  srcDstCheck(src, dst);
-  int *src_id = src->getIdPtr();
-  int *dst_id = dst->getIdPtr();
-
-  if (!src_id || !dst_id)
-    THROWF(arg_error,0,"No route from '%s' to '%s'",src->getName(),dst->getName());
+  getRouteCheckParams(src, dst);
+  int src_id = src->id();
+  int dst_id = dst->id();
 
   int *pred_arr = NULL;
-  int src_node_id = 0;
-  int dst_node_id = 0;
-  int *nodeid = NULL;
-  int v;
   sg_platf_route_cbarg_t e_route;
   int size = 0;
   unsigned int cpt;
   void *link;
-  xbt_dynar_t links = NULL;
-  route_cache_element_t elm = NULL;
-  xbt_dynar_t nodes = xbt_graph_get_nodes(p_routeGraph);
+  xbt_dynar_t nodes = xbt_graph_get_nodes(routeGraph_);
 
   /* Use the graph_node id mapping set to quickly find the nodes */
-  graph_node_map_element_t src_elm = nodeMapSearch(*src_id);
-  graph_node_map_element_t dst_elm = nodeMapSearch(*dst_id);
+  graph_node_map_element_t src_elm = nodeMapSearch(src_id);
+  graph_node_map_element_t dst_elm = nodeMapSearch(dst_id);
 
-  src_node_id = ((graph_node_data_t)
-      xbt_graph_node_get_data(src_elm->node))->graph_id;
-  dst_node_id = ((graph_node_data_t)
-      xbt_graph_node_get_data(dst_elm->node))->graph_id;
+  int src_node_id = ((graph_node_data_t) xbt_graph_node_get_data(src_elm->node))->graph_id;
+  int dst_node_id = ((graph_node_data_t) xbt_graph_node_get_data(dst_elm->node))->graph_id;
 
   /* if the src and dst are the same */
   if (src_node_id == dst_node_id) {
 
     xbt_node_t node_s_v = xbt_dynar_get_as(nodes, src_node_id, xbt_node_t);
     xbt_node_t node_e_v = xbt_dynar_get_as(nodes, dst_node_id, xbt_node_t);
-    xbt_edge_t edge = xbt_graph_get_edge(p_routeGraph, node_s_v, node_e_v);
+    xbt_edge_t edge = xbt_graph_get_edge(routeGraph_, node_s_v, node_e_v);
 
     if (edge == NULL)
-      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->getName(), dst->getName());
+      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->name(), dst->name());
 
     e_route = (sg_platf_route_cbarg_t) xbt_graph_edge_get_data(edge);
 
-    links = e_route->link_list;
-    xbt_dynar_foreach(links, cpt, link) {
+    xbt_dynar_foreach(e_route->link_list, cpt, link) {
       xbt_dynar_unshift(route->link_list, &link);
       if (lat)
         *lat += static_cast<Link*>(link)->getLatency();
@@ -263,29 +209,25 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
 
   }
 
-  if (m_cached) {
-    /*check if there is a cached predecessor list avail */
+  route_cache_element_t elm = NULL;
+  if (routeCache_) {  /* cache mode  */
     elm = (route_cache_element_t)
-            xbt_dict_get_or_null_ext(p_routeCache, (char *) (&src_id),
-                sizeof(int));
+            xbt_dict_get_or_null_ext(routeCache_, (char *) (&src_id), sizeof(int));
   }
 
   if (elm) {                    /* cached mode and cache hit */
     pred_arr = elm->pred_arr;
-  } else {                      /* not cached mode or cache miss */
-    double *cost_arr = NULL;
-    xbt_heap_t pqueue = NULL;
-    int i = 0;
+  } else {                      /* not cached mode, or cache miss */
 
     int nr_nodes = xbt_dynar_length(nodes);
-    cost_arr = xbt_new0(double, nr_nodes);      /* link cost from src to other hosts */
+    double * cost_arr = xbt_new0(double, nr_nodes);      /* link cost from src to other hosts */
     pred_arr = xbt_new0(int, nr_nodes); /* predecessors in path from src */
-    pqueue = xbt_heap_new(nr_nodes, xbt_free_f);
+    xbt_heap_t pqueue = xbt_heap_new(nr_nodes, xbt_free_f);
 
     /* initialize */
     cost_arr[src_node_id] = 0.0;
 
-    for (i = 0; i < nr_nodes; i++) {
+    for (int i = 0; i < nr_nodes; i++) {
       if (i != src_node_id) {
         cost_arr[i] = DBL_MAX;
       }
@@ -293,7 +235,7 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
       pred_arr[i] = 0;
 
       /* initialize priority queue */
-      nodeid = xbt_new0(int, 1);
+      int *nodeid = xbt_new0(int, 1);
       *nodeid = i;
       xbt_heap_push(pqueue, nodeid, cost_arr[i]);
 
@@ -303,11 +245,10 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
     while (xbt_heap_size(pqueue) > 0) {
       int *v_id = (int *) xbt_heap_pop(pqueue);
       xbt_node_t v_node = xbt_dynar_get_as(nodes, *v_id, xbt_node_t);
-      xbt_dynar_t out_edges = xbt_graph_node_get_outedges(v_node);
       xbt_edge_t edge = NULL;
       unsigned int cursor;
 
-      xbt_dynar_foreach(out_edges, cursor, edge) {
+      xbt_dynar_foreach(xbt_graph_node_get_outedges(v_node), cursor, edge) {
         xbt_node_t u_node = xbt_graph_edge_get_target(edge);
         graph_node_data_t data = (graph_node_data_t) xbt_graph_node_get_data(u_node);
         int u_id = data->graph_id;
@@ -317,7 +258,7 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
         if (cost_v_u + cost_arr[*v_id] < cost_arr[u_id]) {
           pred_arr[u_id] = *v_id;
           cost_arr[u_id] = cost_v_u + cost_arr[*v_id];
-          nodeid = xbt_new0(int, 1);
+          int *nodeid = xbt_new0(int, 1);
           *nodeid = u_id;
           xbt_heap_push(pqueue, nodeid, cost_arr[u_id]);
         }
@@ -335,15 +276,13 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
   NetCard *gw_src = NULL, *gw_dst, *prev_gw_src, *first_gw = NULL;
   NetCard *gw_dst_net_elm = NULL, *prev_gw_src_net_elm = NULL;
 
-  for (v = dst_node_id; v != src_node_id; v = pred_arr[v]) {
-    xbt_node_t node_pred_v =
-        xbt_dynar_get_as(nodes, pred_arr[v], xbt_node_t);
+  for (int v = dst_node_id; v != src_node_id; v = pred_arr[v]) {
+    xbt_node_t node_pred_v = xbt_dynar_get_as(nodes, pred_arr[v], xbt_node_t);
     xbt_node_t node_v = xbt_dynar_get_as(nodes, v, xbt_node_t);
-    xbt_edge_t edge =
-        xbt_graph_get_edge(p_routeGraph, node_pred_v, node_v);
+    xbt_edge_t edge = xbt_graph_get_edge(routeGraph_, node_pred_v, node_v);
 
     if (edge == NULL)
-      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->getName(), dst->getName());
+      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->name(), dst->name());
 
     prev_gw_src = gw_src;
 
@@ -354,16 +293,14 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
     if (v == dst_node_id)
       first_gw = gw_dst;
 
-    if (p_hierarchy == SURF_ROUTING_RECURSIVE && v != dst_node_id
-        && strcmp(gw_dst->getName(), prev_gw_src->getName())) {
+    if (hierarchy_ == SURF_ROUTING_RECURSIVE && v != dst_node_id && strcmp(gw_dst->name(), prev_gw_src->name())) {
       xbt_dynar_t e_route_as_to_as=NULL;
 
       routing_platf->getRouteAndLatency(gw_dst_net_elm, prev_gw_src_net_elm, &e_route_as_to_as, NULL);
       if (edge == NULL)
-        THROWF(arg_error,0,"No route from '%s' to '%s'", src->getName(), dst->getName());
-      links = e_route_as_to_as;
+        THROWF(arg_error,0,"No route from '%s' to '%s'", src->name(), dst->name());
       int pos = 0;
-      xbt_dynar_foreach(links, cpt, link) {
+      xbt_dynar_foreach(e_route_as_to_as, cpt, link) {
         xbt_dynar_insert_at(route->link_list, pos, &link);
         if (lat)
           *lat += static_cast<Link*>(link)->getLatency();
@@ -371,8 +308,7 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
       }
     }
 
-    links = e_route->link_list;
-    xbt_dynar_foreach(links, cpt, link) {
+    xbt_dynar_foreach(e_route->link_list, cpt, link) {
       xbt_dynar_unshift(route->link_list, &link);
       if (lat)
         *lat += static_cast<Link*>(link)->getLatency();
@@ -380,153 +316,82 @@ void AsDijkstra::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_c
     size++;
   }
 
-  if (p_hierarchy == SURF_ROUTING_RECURSIVE) {
+  if (hierarchy_ == SURF_ROUTING_RECURSIVE) {
     route->gw_src = gw_src;
     route->gw_dst = first_gw;
   }
 
-  if (m_cached && elm == NULL) {
+  if (routeCache_ && elm == NULL) {
     /* add to predecessor list of the current src-host to cache */
     elm = xbt_new0(struct route_cache_element, 1);
     elm->pred_arr = pred_arr;
     elm->size = size;
-    xbt_dict_set_ext(p_routeCache, (char *) (&src_id), sizeof(int),
-        (xbt_dictelm_t) elm, NULL);
+    xbt_dict_set_ext(routeCache_, (char *) (&src_id), sizeof(int), (xbt_dictelm_t) elm, NULL);
   }
 
-  if (!m_cached)
+  if (!routeCache_)
     xbt_free(pred_arr);
 }
 
 AsDijkstra::~AsDijkstra()
 {
-  xbt_graph_free_graph(p_routeGraph, &xbt_free_f,
-      &graph_edge_data_free, &xbt_free_f);
-  xbt_dict_free(&p_graphNodeMap);
-  if (m_cached)
-    xbt_dict_free(&p_routeCache);
+  xbt_graph_free_graph(routeGraph_, &xbt_free_f,  &graph_edge_data_free, &xbt_free_f);
+  xbt_dict_free(&graphNodeMap_);
+  xbt_dict_free(&routeCache_);
 }
 
 /* Creation routing model functions */
 
-AsDijkstra::AsDijkstra() : AsGeneric() {
-}
-
-AsDijkstra::AsDijkstra(bool cached) : AsGeneric(), m_cached(cached)
+AsDijkstra::AsDijkstra(const char*name, bool cached)
+  : AsRoutedGraph(name)
 {
-  p_routeGraph = NULL;
-  p_graphNodeMap = NULL;
-  p_routeCache = NULL;
-  /*new_component->generic_routing.parse_route = model_dijkstra_both_parse_route;
-  new_component->generic_routing.parse_ASroute = model_dijkstra_both_parse_route;
-  new_component->generic_routing.get_route_and_latency = dijkstra_get_route_and_latency;
-  new_component->generic_routing.get_onelink_routes =
-      dijkstra_get_onelink_routes;
-  new_component->generic_routing.get_graph = generic_get_graph;
-  new_component->generic_routing.finalize = dijkstra_finalize;
-  new_component->cached = cached;*/
+  if (cached)
+    routeCache_ = xbt_dict_new_homogeneous(&route_cache_elem_free);
 }
 
-void AsDijkstra::end()
+void AsDijkstra::addRoute(sg_platf_route_cbarg_t route)
 {
-  xbt_node_t node = NULL;
-  unsigned int cursor2;
-  xbt_dynar_t nodes = NULL;
-
-  /* Create the topology graph */
-  if(!p_routeGraph)
-       p_routeGraph = xbt_graph_new_graph(1, NULL);
-  if(!p_graphNodeMap)
-    p_graphNodeMap = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
-
-  if (m_cached && !p_routeCache)
-    p_routeCache = xbt_dict_new_homogeneous(&route_cache_elem_free);
-
-  /* Add the loopback if needed */
-  if (routing_platf->p_loopback && p_hierarchy == SURF_ROUTING_BASE)
-    addLoopback();
-
-  /* initialize graph indexes in nodes after graph has been built */
-  nodes = xbt_graph_get_nodes(p_routeGraph);
-
-  xbt_dynar_foreach(nodes, cursor2, node) {
-    graph_node_data_t data = (graph_node_data_t) xbt_graph_node_get_data(node);
-    data->graph_id = cursor2;
-  }
-
-}
-
-void AsDijkstra::parseASroute(sg_platf_route_cbarg_t route)
-{
-  parseRoute(route);
-}
-
-void AsDijkstra::parseRoute(sg_platf_route_cbarg_t route)
-{
-  char *src = (char*)(route->src);
-  char *dst = (char*)(route->dst);
-
-  int as_route = 0;
-  if(!route->gw_dst && !route->gw_src)
-    XBT_DEBUG("Load Route from \"%s\" to \"%s\"", src, dst);
-  else{
-    XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src,
-        route->gw_src->getName(), dst, route->gw_dst->getName());
-    as_route = 1;
-    if(route->gw_dst->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-      surf_parse_error("The gw_dst '%s' does not exist!",route->gw_dst->getName());
-    if(route->gw_src->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-      surf_parse_error("The gw_src '%s' does not exist!",route->gw_src->getName());
-  }
-
-  NetCard *src_net_elm, *dst_net_elm;
-
-  src_net_elm = sg_netcard_by_name_or_null(src);
-  dst_net_elm = sg_netcard_by_name_or_null(dst);
+  const char *srcName = route->src;
+  const char *dstName = route->dst;
+  NetCard *src = sg_netcard_by_name_or_null(srcName);
+  NetCard *dst = sg_netcard_by_name_or_null(dstName);
 
-  xbt_assert(src_net_elm, "Network elements %s not found", src);
-  xbt_assert(dst_net_elm, "Network elements %s not found", dst);
+  addRouteCheckParams(route);
 
   /* Create the topology graph */
-  if(!p_routeGraph)
-    p_routeGraph = xbt_graph_new_graph(1, NULL);
-  if(!p_graphNodeMap)
-    p_graphNodeMap = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
+  if(!routeGraph_)
+    routeGraph_ = xbt_graph_new_graph(1, NULL);
+  if(!graphNodeMap_)
+    graphNodeMap_ = xbt_dict_new_homogeneous(&graph_node_map_elem_free);
 
-  if (m_cached && !p_routeCache)
-    p_routeCache = xbt_dict_new_homogeneous(&route_cache_elem_free);
+  /* we don't check whether the route already exist, because the algorithm may find another path through some other nodes */
 
-  sg_platf_route_cbarg_t e_route = newExtendedRoute(p_hierarchy, route, 1);
-  newRoute(src_net_elm->getId(), dst_net_elm->getId(), e_route);
+  /* Add the route to the base */
+  sg_platf_route_cbarg_t e_route = newExtendedRoute(hierarchy_, route, 1);
+  newRoute(src->id(), dst->id(), e_route);
 
   // Symmetrical YES
-  if ( (route->symmetrical == TRUE && as_route == 0)
-      || (route->symmetrical == TRUE && as_route == 1)
-  )
-  {
+  if (route->symmetrical == TRUE) {
     if(!route->gw_dst && !route->gw_src)
-      XBT_DEBUG("Load Route from \"%s\" to \"%s\"", dst, src);
+      XBT_DEBUG("Load Route from \"%s\" to \"%s\"", dstName, srcName);
     else
-      XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", dst,
-          route->gw_dst->getName(), src, route->gw_src->getName());
+      XBT_DEBUG("Load ASroute from %s@%s to %s@%s", dstName, route->gw_dst->name(), srcName, route->gw_src->name());
 
-    xbt_dynar_t nodes = xbt_graph_get_nodes(p_routeGraph);
-    xbt_node_t node_s_v = xbt_dynar_get_as(nodes, src_net_elm->getId(), xbt_node_t);
-    xbt_node_t node_e_v = xbt_dynar_get_as(nodes, dst_net_elm->getId(), xbt_node_t);
-    xbt_edge_t edge =
-        xbt_graph_get_edge(p_routeGraph, node_e_v, node_s_v);
+    xbt_dynar_t nodes = xbt_graph_get_nodes(routeGraph_);
+    xbt_node_t node_s_v = xbt_dynar_get_as(nodes, src->id(), xbt_node_t);
+    xbt_node_t node_e_v = xbt_dynar_get_as(nodes, dst->id(), xbt_node_t);
+    xbt_edge_t edge = xbt_graph_get_edge(routeGraph_, node_e_v, node_s_v);
 
     if (edge)
-      THROWF(arg_error,0,"(AS)Route from '%s' to '%s' already exists",src,dst);
+      THROWF(arg_error,0, "Route from %s@%s to %s@%s already exists", dstName, route->gw_dst->name(), srcName, route->gw_src->name());
 
     if (route->gw_dst && route->gw_src) {
-      NetCard *gw_tmp;
-      gw_tmp = route->gw_src;
+      NetCard *gw_tmp = route->gw_src;
       route->gw_src = route->gw_dst;
       route->gw_dst = gw_tmp;
     }
-    sg_platf_route_cbarg_t link_route_back = newExtendedRoute(p_hierarchy, route, 0);
-    newRoute(dst_net_elm->getId(), src_net_elm->getId(), link_route_back);
+    sg_platf_route_cbarg_t link_route_back = newExtendedRoute(hierarchy_, route, 0);
+    newRoute(dst->id(), src->id(), link_route_back);
   }
   xbt_dynar_free(&route->link_list);
 }
index a5ef07e..ae5e000 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <xbt/base.h>
 
-#include "surf_routing_generic.hpp"
+#include "surf_routing_RoutedGraph.hpp"
 
 #ifndef SURF_ROUTING_DIJKSTRA_HPP_
 #define SURF_ROUTING_DIJKSTRA_HPP_
@@ -34,14 +34,16 @@ namespace surf {
 
 class XBT_PRIVATE AsDijkstra;
 
-class AsDijkstra : public AsGeneric {
+/** Dijkstra routing data: fast initialization, slow lookup, small memory requirements, shortest path routing only */
+class AsDijkstra : public AsRoutedGraph {
 public:
-  AsDijkstra();
-  AsDijkstra(bool cached);
+  AsDijkstra(const char*name, bool cached);
+  void Seal() override;
+
   ~AsDijkstra();
-       xbt_node_t routeGraphNewNode(int id, int graph_id);
-       graph_node_map_element_t nodeMapSearch(int id);
-       void newRoute(int src_id, int dst_id, sg_platf_route_cbarg_t e_route);
+  xbt_node_t routeGraphNewNode(int id, int graph_id);
+  graph_node_map_element_t nodeMapSearch(int id);
+  void newRoute(int src_id, int dst_id, sg_platf_route_cbarg_t e_route);
     /**
      * For each vertex (node) already in the graph,
      * make sure it also has a loopback link; this loopback
@@ -54,18 +56,14 @@ public:
      * After this function returns, any node in the graph
      * will have a loopback attached to it.
      */
-       void addLoopback();
-       void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat) override;
-       xbt_dynar_t getOneLinkRoutes() override;
-       void getRouteAndLatency(sg_platf_route_cbarg_t route, double *lat); // FIXME: this function is dangerously not overriding because of diverging prototype
-       void parseASroute(sg_platf_route_cbarg_t route) override;
-       void parseRoute(sg_platf_route_cbarg_t route) override;
-       void end();
+  void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat) override;
+  void getRouteAndLatency(sg_platf_route_cbarg_t route, double *lat); // FIXME: this function is dangerously not overriding because of diverging prototype
+  xbt_dynar_t getOneLinkRoutes() override;
+  void addRoute(sg_platf_route_cbarg_t route) override;
 
-  xbt_graph_t p_routeGraph = nullptr;      /* xbt_graph */
-  xbt_dict_t p_graphNodeMap = nullptr;    /* map */
-  xbt_dict_t p_routeCache = nullptr;       /* use in cache mode */
-  bool m_cached = false;
+  xbt_graph_t routeGraph_ = nullptr;     /* xbt_graph */
+  xbt_dict_t graphNodeMap_ = nullptr;    /* map */
+  xbt_dict_t routeCache_ = nullptr;      /* use in cache mode */
 };
 
 }
index 2ece750..9601c1b 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_floyd, surf, "Routing part of surf");
 
-#define TO_FLOYD_COST(i,j) (p_costTable)[(i)+(j)*table_size]
-#define TO_FLOYD_PRED(i,j) (p_predecessorTable)[(i)+(j)*table_size]
-#define TO_FLOYD_LINK(i,j) (p_linkTable)[(i)+(j)*table_size]
-
-AS_t model_floyd_create(void)
-{
-  return new simgrid::surf::AsFloyd();
-}
-
-void model_floyd_end(AS_t current_routing)
-{
-  static_cast<simgrid::surf::AsFloyd*>(current_routing)->end();
-}
+#define TO_FLOYD_COST(i,j) (costTable_)[(i)+(j)*table_size]
+#define TO_FLOYD_PRED(i,j) (predecessorTable_)[(i)+(j)*table_size]
+#define TO_FLOYD_LINK(i,j) (linkTable_)[(i)+(j)*table_size]
 
 namespace simgrid {
 namespace surf {
 
-AsFloyd::AsFloyd(): AsGeneric() {
-  p_predecessorTable = NULL;
-  p_costTable = NULL;
-  p_linkTable = NULL;
+AsFloyd::AsFloyd(const char*name)
+  : AsRoutedGraph(name)
+{
+  predecessorTable_ = NULL;
+  costTable_ = NULL;
+  linkTable_ = NULL;
 }
 
 AsFloyd::~AsFloyd(){
   int i, j;
-  int table_size;
-  table_size = (int)xbt_dynar_length(p_indexNetworkElm);
-  if (p_linkTable == NULL) // Dealing with a parse error in the file?
-         return;
+  int table_size = (int)xbt_dynar_length(vertices_);
+  if (linkTable_ == NULL) // Dealing with a parse error in the file?
+    return;
   /* Delete link_table */
   for (i = 0; i < table_size; i++)
-         for (j = 0; j < table_size; j++) {
-                 generic_free_route(TO_FLOYD_LINK(i, j));
-         }
-  xbt_free(p_linkTable);
-  /* Delete bypass dict */
-  xbt_dict_free(&p_bypassRoutes);
-  /* Delete predecessor and cost table */
-  xbt_free(p_predecessorTable);
-  xbt_free(p_costTable);
+    for (j = 0; j < table_size; j++)
+      routing_route_free(TO_FLOYD_LINK(i, j));
+  xbt_free(linkTable_);
+
+  xbt_free(predecessorTable_);
+  xbt_free(costTable_);
 }
 
 /* Business methods */
@@ -57,24 +45,24 @@ xbt_dynar_t AsFloyd::getOneLinkRoutes()
 {
   xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
   sg_platf_route_cbarg_t route =   xbt_new0(s_sg_platf_route_cbarg_t, 1);
-  route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
+  route->link_list = xbt_dynar_new(sizeof(Link*), NULL);
 
   int src,dst;
   sg_netcard_t src_elm, dst_elm;
-  int table_size = xbt_dynar_length(p_indexNetworkElm);
+  int table_size = xbt_dynar_length(vertices_);
   for(src=0; src < table_size; src++) {
     for(dst=0; dst< table_size; dst++) {
       xbt_dynar_reset(route->link_list);
-      src_elm = xbt_dynar_get_as(p_indexNetworkElm, src, NetCard*);
-      dst_elm = xbt_dynar_get_as(p_indexNetworkElm, dst, NetCard*);
+      src_elm = xbt_dynar_get_as(vertices_, src, NetCard*);
+      dst_elm = xbt_dynar_get_as(vertices_, dst, NetCard*);
       this->getRouteAndLatency(src_elm, dst_elm, route, NULL);
 
       if (xbt_dynar_length(route->link_list) == 1) {
         void *link = *(void **) xbt_dynar_get_ptr(route->link_list, 0);
         Onelink *onelink;
-        if (p_hierarchy == SURF_ROUTING_BASE)
+        if (hierarchy_ == SURF_ROUTING_BASE)
           onelink = new Onelink(link, src_elm, dst_elm);
-        else if (p_hierarchy == SURF_ROUTING_RECURSIVE)
+        else if (hierarchy_ == SURF_ROUTING_RECURSIVE)
           onelink = new Onelink(link, route->gw_src, route->gw_dst);
         else
           onelink = new Onelink(link, NULL, NULL);
@@ -89,24 +77,23 @@ xbt_dynar_t AsFloyd::getOneLinkRoutes()
 void AsFloyd::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t res, double *lat)
 {
 
-  /* set utils vars */
-  size_t table_size = xbt_dynar_length(p_indexNetworkElm);
+  size_t table_size = xbt_dynar_length(vertices_);
 
-  this->srcDstCheck(src, dst);
+  getRouteCheckParams(src, dst);
 
   /* create a result route */
   xbt_dynar_t route_stack = xbt_dynar_new(sizeof(sg_platf_route_cbarg_t), NULL);
   int pred;
-  int cur = dst->getId();
+  int cur = dst->id();
   do {
-    pred = TO_FLOYD_PRED(src->getId(), cur);
+    pred = TO_FLOYD_PRED(src->id(), cur);
     if (pred == -1)
-      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->getName(), dst->getName());
+      THROWF(arg_error, 0, "No route from '%s' to '%s'", src->name(), dst->name());
     xbt_dynar_push_as(route_stack, sg_platf_route_cbarg_t, TO_FLOYD_LINK(pred, cur));
     cur = pred;
-  } while (cur != src->getId());
+  } while (cur != src->id());
 
-  if (p_hierarchy == SURF_ROUTING_RECURSIVE) {
+  if (hierarchy_ == SURF_ROUTING_RECURSIVE) {
     res->gw_src = xbt_dynar_getlast_as(route_stack, sg_platf_route_cbarg_t)->gw_src;
     res->gw_dst = xbt_dynar_getfirst_as(route_stack, sg_platf_route_cbarg_t)->gw_dst;
   }
@@ -118,15 +105,13 @@ void AsFloyd::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbar
     void *link;
     unsigned int cpt;
 
-    if (p_hierarchy == SURF_ROUTING_RECURSIVE && prev_dst_gw != NULL
-        && strcmp(prev_dst_gw->getName(), e_route->gw_src->getName())) {
-      routing_platf->getRouteAndLatency(prev_dst_gw, e_route->gw_src,
-                                    &res->link_list, lat);
+    if (hierarchy_ == SURF_ROUTING_RECURSIVE && prev_dst_gw != NULL && strcmp(prev_dst_gw->name(), e_route->gw_src->name())) {
+      routing_platf->getRouteAndLatency(prev_dst_gw, e_route->gw_src, &res->link_list, lat);
     }
 
     links = e_route->link_list;
     xbt_dynar_foreach(links, cpt, link) {
-      xbt_dynar_push_as(res->link_list, sg_routing_link_t, link);
+      xbt_dynar_push_as(res->link_list, Link*, (Link*)link);
       if (lat)
         *lat += static_cast<Link*>(link)->getLatency();
     }
@@ -140,166 +125,121 @@ static int floyd_pointer_resource_cmp(const void *a, const void *b) {
   return a != b;
 }
 
-void AsFloyd::parseASroute(sg_platf_route_cbarg_t route){
-  parseRoute(route);
-}
-
-void AsFloyd::parseRoute(sg_platf_route_cbarg_t route)
+void AsFloyd::addRoute(sg_platf_route_cbarg_t route)
 {
-  char *src = (char*)(route->src);
-  char *dst = (char*)(route->dst);
-
-  int as_route = 0;
-
   /* set the size of table routing */
-  int table_size = (int)xbt_dynar_length(p_indexNetworkElm);
-  NetCard *src_net_elm, *dst_net_elm;
+  int table_size = (int)xbt_dynar_length(vertices_);
 
-  src_net_elm = sg_netcard_by_name_or_null(src);
-  dst_net_elm = sg_netcard_by_name_or_null(dst);
+  NetCard *src = sg_netcard_by_name_or_null(route->src);
+  NetCard *dst = sg_netcard_by_name_or_null(route->dst);
 
-  xbt_assert(src_net_elm, "Network elements %s not found", src);
-  xbt_assert(dst_net_elm, "Network elements %s not found", dst);
+  addRouteCheckParams(route);
 
-  if(!p_linkTable)
-  {
-    int i,j;
+  if(!linkTable_) {
     /* Create Cost, Predecessor and Link tables */
-    p_costTable = xbt_new0(double, table_size * table_size);       /* link cost from host to host */
-    p_predecessorTable = xbt_new0(int, table_size * table_size);  /* predecessor host numbers */
-    p_linkTable = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);    /* actual link between src and dst */
+    costTable_ = xbt_new0(double, table_size * table_size);       /* link cost from host to host */
+    predecessorTable_ = xbt_new0(int, table_size * table_size);  /* predecessor host numbers */
+    linkTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);    /* actual link between src and dst */
 
     /* Initialize costs and predecessors */
-    for (i = 0; i < table_size; i++)
-      for (j = 0; j < table_size; j++) {
+    for (int i = 0; i < table_size; i++)
+      for (int j = 0; j < table_size; j++) {
         TO_FLOYD_COST(i, j) = DBL_MAX;
         TO_FLOYD_PRED(i, j) = -1;
-        TO_FLOYD_LINK(i, j) = NULL;       /* fixed, missing in the previous version */
+        TO_FLOYD_LINK(i, j) = NULL;
       }
   }
-  if(!route->gw_dst && !route->gw_src)
-    XBT_DEBUG("Load Route from \"%s\" to \"%s\"", src, dst);
-  else{
-    as_route = 1;
-    XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src,
-        route->gw_src->getName(), dst, route->gw_dst->getName());
-    if(route->gw_dst->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-      surf_parse_error("The dst_gateway '%s' does not exist!",route->gw_dst->getName());
-    if(route->gw_src->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-      surf_parse_error("The src_gateway '%s' does not exist!",route->gw_src->getName());
-  }
-
-  if(TO_FLOYD_LINK(src_net_elm->getId(), dst_net_elm->getId()))
-  {
 
-    char * link_name;
-    unsigned int cpt;
-    xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-    xbt_dynar_foreach(route->link_list,cpt,link_name)
-    {
-      void *link = Link::byName(link_name);
-      xbt_assert(link,"Link : '%s' doesn't exists.",link_name);
-      xbt_dynar_push(link_route_to_test,&link);
-    }
-    xbt_assert(!xbt_dynar_compare(
-        TO_FLOYD_LINK(src_net_elm->getId(), dst_net_elm->getId())->link_list,
-        link_route_to_test,
-        (int_f_cpvoid_cpvoid_t) floyd_pointer_resource_cmp),
-        "The route between \"%s\" and \"%s\" already exists", src,dst);
-  }
+  /* Check that the route does not already exist */
+  if (route->gw_dst) // AS route (to adapt the error message, if any)
+    xbt_assert(nullptr == TO_FLOYD_LINK(src->id(), dst->id()),
+        "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).",
+        src->name(),route->gw_src->name(),dst->name(),route->gw_dst->name());
   else
-  {
-    TO_FLOYD_LINK(src_net_elm->getId(), dst_net_elm->getId()) =
-        newExtendedRoute(p_hierarchy, route, 1);
-    TO_FLOYD_PRED(src_net_elm->getId(), dst_net_elm->getId()) = src_net_elm->getId();
-    TO_FLOYD_COST(src_net_elm->getId(), dst_net_elm->getId()) =
-        ((TO_FLOYD_LINK(src_net_elm->getId(), dst_net_elm->getId()))->link_list)->used;   /* count of links, old model assume 1 */
-  }
+    xbt_assert(nullptr == TO_FLOYD_LINK(src->id(), dst->id()),
+        "The route between %s and %s already exists (Rq: routes are symmetrical by default).", src->name(),dst->name());
+
+  TO_FLOYD_LINK(src->id(), dst->id()) = newExtendedRoute(hierarchy_, route, 1);
+  TO_FLOYD_PRED(src->id(), dst->id()) = src->id();
+  TO_FLOYD_COST(src->id(), dst->id()) = ((TO_FLOYD_LINK(src->id(), dst->id()))->link_list)->used;
+
 
-  if ( (route->symmetrical == TRUE && as_route == 0)
-      || (route->symmetrical == TRUE && as_route == 1)
-  )
-  {
-    if(TO_FLOYD_LINK(dst_net_elm->getId(), src_net_elm->getId()))
+  if (route->symmetrical == TRUE) {
+    if(TO_FLOYD_LINK(dst->id(), src->id()))
     {
       if(!route->gw_dst && !route->gw_src)
-        XBT_DEBUG("See Route from \"%s\" to \"%s\"", dst, src);
+        XBT_DEBUG("See Route from \"%s\" to \"%s\"", dst->name(), src->name());
       else
-        XBT_DEBUG("See ASroute from \"%s(%s)\" to \"%s(%s)\"", dst,
-            route->gw_src->getName(), src, route->gw_dst->getName());
+        XBT_DEBUG("See ASroute from \"%s(%s)\" to \"%s(%s)\"", dst->name(), route->gw_src->name(), src->name(), route->gw_dst->name());
+
       char * link_name;
-      unsigned int i;
-      xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-      for(i=xbt_dynar_length(route->link_list) ;i>0 ;i--)
-      {
+      xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(Link*), NULL);
+      for(int i=xbt_dynar_length(route->link_list) ;i>0 ;i--) {
         link_name = xbt_dynar_get_as(route->link_list,i-1,char *);
         void *link = Link::byName(link_name);
         xbt_assert(link,"Link : '%s' doesn't exists.",link_name);
         xbt_dynar_push(link_route_to_test,&link);
       }
       xbt_assert(!xbt_dynar_compare(
-          TO_FLOYD_LINK(dst_net_elm->getId(), src_net_elm->getId())->link_list,
+          TO_FLOYD_LINK(dst->id(), src->id())->link_list,
           link_route_to_test,
           (int_f_cpvoid_cpvoid_t) floyd_pointer_resource_cmp),
-          "The route between \"%s\" and \"%s\" already exists", src,dst);
+          "The route between \"%s\" and \"%s\" already exists", src->name(),dst->name());
     }
-    else
-    {
-      if(route->gw_dst && route->gw_src)
-      {
-        sg_netcard_t gw_src = route->gw_src;
-        sg_netcard_t gw_dst = route->gw_dst;
-        route->gw_src = gw_dst;
-        route->gw_dst = gw_src;
+    else {
+
+      if(route->gw_dst && route->gw_src) {
+        NetCard* gw_tmp = route->gw_src;
+        route->gw_src = route->gw_dst;
+        route->gw_dst = gw_tmp;
       }
 
       if(!route->gw_src && !route->gw_dst)
-        XBT_DEBUG("Load Route from \"%s\" to \"%s\"", dst, src);
+        XBT_DEBUG("Load Route from \"%s\" to \"%s\"", dst->name(), src->name());
       else
-        XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", dst,
-            route->gw_src->getName(), src, route->gw_dst->getName());
-
-      TO_FLOYD_LINK(dst_net_elm->getId(), src_net_elm->getId()) =
-                newExtendedRoute(p_hierarchy, route, 0);
-      TO_FLOYD_PRED(dst_net_elm->getId(), src_net_elm->getId()) = dst_net_elm->getId();
-      TO_FLOYD_COST(dst_net_elm->getId(), src_net_elm->getId()) =
-          ((TO_FLOYD_LINK(dst_net_elm->getId(), src_net_elm->getId()))->link_list)->used;   /* count of links, old model assume 1 */
+        XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", dst->name(),
+            route->gw_src->name(), src->name(), route->gw_dst->name());
+
+      TO_FLOYD_LINK(dst->id(), src->id()) =
+         newExtendedRoute(hierarchy_, route, 0);
+      TO_FLOYD_PRED(dst->id(), src->id()) = dst->id();
+      TO_FLOYD_COST(dst->id(), src->id()) =
+          ((TO_FLOYD_LINK(dst->id(), src->id()))->link_list)->used;   /* count of links, old model assume 1 */
     }
   }
   xbt_dynar_free(&route->link_list);
 }
 
-void AsFloyd::end(){
-  unsigned int i, j, a, b, c;
+void AsFloyd::Seal(){
 
   /* set the size of table routing */
-  size_t table_size = xbt_dynar_length(p_indexNetworkElm);
+  size_t table_size = xbt_dynar_length(vertices_);
 
-  if(!p_linkTable) {
+  if(!linkTable_) {
     /* Create Cost, Predecessor and Link tables */
-    p_costTable = xbt_new0(double, table_size * table_size);       /* link cost from host to host */
-    p_predecessorTable = xbt_new0(int, table_size * table_size);  /* predecessor host numbers */
-    p_linkTable = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);    /* actual link between src and dst */
+    costTable_ = xbt_new0(double, table_size * table_size);       /* link cost from host to host */
+    predecessorTable_ = xbt_new0(int, table_size * table_size);  /* predecessor host numbers */
+    linkTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);    /* actual link between src and dst */
 
     /* Initialize costs and predecessors */
-    for (i = 0; i < table_size; i++)
-      for (j = 0; j < table_size; j++) {
+    for (unsigned int i = 0; i < table_size; i++)
+      for (unsigned int j = 0; j < table_size; j++) {
         TO_FLOYD_COST(i, j) = DBL_MAX;
         TO_FLOYD_PRED(i, j) = -1;
-        TO_FLOYD_LINK(i, j) = NULL;       /* fixed, missing in the previous version */
+        TO_FLOYD_LINK(i, j) = NULL;
       }
   }
 
   /* Add the loopback if needed */
-  if (routing_platf->p_loopback && p_hierarchy == SURF_ROUTING_BASE) {
-    for (i = 0; i < table_size; i++) {
+  if (routing_platf->loopback_ && hierarchy_ == SURF_ROUTING_BASE) {
+    for (unsigned int i = 0; i < table_size; i++) {
       sg_platf_route_cbarg_t e_route = TO_FLOYD_LINK(i, i);
       if (!e_route) {
         e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
         e_route->gw_src = NULL;
         e_route->gw_dst = NULL;
-        e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-        xbt_dynar_push(e_route->link_list, &routing_platf->p_loopback);
+        e_route->link_list = xbt_dynar_new(sizeof(Link*), NULL);
+        xbt_dynar_push(e_route->link_list, &routing_platf->loopback_);
         TO_FLOYD_LINK(i, i) = e_route;
         TO_FLOYD_PRED(i, i) = i;
         TO_FLOYD_COST(i, i) = 1;
@@ -307,9 +247,9 @@ void AsFloyd::end(){
     }
   }
   /* Calculate path costs */
-  for (c = 0; c < table_size; c++) {
-    for (a = 0; a < table_size; a++) {
-      for (b = 0; b < table_size; b++) {
+  for (unsigned int c = 0; c < table_size; c++) {
+    for (unsigned int a = 0; a < table_size; a++) {
+      for (unsigned int b = 0; b < table_size; b++) {
         if (TO_FLOYD_COST(a, c) < DBL_MAX && TO_FLOYD_COST(c, b) < DBL_MAX) {
           if (TO_FLOYD_COST(a, b) == DBL_MAX ||
               (TO_FLOYD_COST(a, c) + TO_FLOYD_COST(c, b) <
index 5f498f4..67f1f6d 100644 (file)
@@ -10,7 +10,7 @@
 
 #include <xbt/base.h>
 
-#include "surf_routing_generic.hpp"
+#include "surf_routing_RoutedGraph.hpp"
 
 namespace simgrid {
 namespace surf {
@@ -20,22 +20,22 @@ namespace surf {
  ***********/
 class XBT_PRIVATE AsFloyd;
 
-class AsFloyd: public AsGeneric {
+/** Floyd routing data: slow initialization, fast lookup, lesser memory requirements, shortest path routing only */
+class AsFloyd: public AsRoutedGraph {
 public:
-  AsFloyd();
+  AsFloyd(const char *name);
   ~AsFloyd();
 
   void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
   xbt_dynar_t getOneLinkRoutes() override;
-  void parseASroute(sg_platf_route_cbarg_t route) override;
-  void parseRoute(sg_platf_route_cbarg_t route) override;
-  void end();
+  void addRoute(sg_platf_route_cbarg_t route) override;
+  void Seal() override;
 
 private:
   /* vars to compute the Floyd algorithm. */
-  int *p_predecessorTable;
-  double *p_costTable;
-  sg_platf_route_cbarg_t *p_linkTable;
+  int *predecessorTable_;
+  double *costTable_;
+  sg_platf_route_cbarg_t *linkTable_;
 };
 
 }
index a3ffd03..f23626a 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf");
 
-#define TO_ROUTE_FULL(i,j) p_routingTable[(i)+(j)*table_size]
+#define TO_ROUTE_FULL(i,j) routingTable_[(i)+(j)*table_size]
 
-AS_t model_full_create(void)
-{
-  return new simgrid::surf::AsFull();
-}
+namespace simgrid {
+namespace surf {
+  AsFull::AsFull(const char*name)
+    : AsRoutedGraph(name)
+  {
+  }
 
-void model_full_end(AS_t _routing)
-{
+void AsFull::Seal() {
   int i;
   sg_platf_route_cbarg_t e_route;
 
   /* set utils vars */
-  simgrid::surf::AsFull *routing = static_cast<simgrid::surf::AsFull*>(_routing);
-  int table_size = (int)xbt_dynar_length(routing->p_indexNetworkElm);
+  int table_size = (int)xbt_dynar_length(vertices_);
 
   /* Create table if necessary */
-  if (!routing->p_routingTable)
-    routing->p_routingTable = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
+  if (!routingTable_)
+    routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
 
   /* Add the loopback if needed */
-  if (routing_platf->p_loopback && routing->p_hierarchy == SURF_ROUTING_BASE) {
+  if (routing_platf->loopback_ && hierarchy_ == SURF_ROUTING_BASE) {
     for (i = 0; i < table_size; i++) {
-      e_route = routing->TO_ROUTE_FULL(i, i);
+      e_route = TO_ROUTE_FULL(i, i);
       if (!e_route) {
         e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
         e_route->gw_src = NULL;
         e_route->gw_dst = NULL;
-        e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-        xbt_dynar_push(e_route->link_list, &routing_platf->p_loopback);
-        routing->TO_ROUTE_FULL(i, i) = e_route;
+        e_route->link_list = xbt_dynar_new(sizeof(Link*), NULL);
+        xbt_dynar_push(e_route->link_list, &routing_platf->loopback_);
+        TO_ROUTE_FULL(i, i) = e_route;
       }
     }
   }
 }
 
-namespace simgrid {
-namespace surf {
-
 AsFull::~AsFull(){
-  if (p_routingTable) {
-    int table_size = (int)xbt_dynar_length(p_indexNetworkElm);
+  if (routingTable_) {
+    int table_size = (int)xbt_dynar_length(vertices_);
     int i, j;
     /* Delete routing table */
     for (i = 0; i < table_size; i++)
@@ -61,7 +58,7 @@ AsFull::~AsFull(){
           xbt_free(TO_ROUTE_FULL(i,j));
         }
       }
-    xbt_free(p_routingTable);
+    xbt_free(routingTable_);
   }
 }
 
@@ -70,7 +67,7 @@ xbt_dynar_t AsFull::getOneLinkRoutes()
   xbt_dynar_t ret = xbt_dynar_new(sizeof(Onelink*), xbt_free_f);
 
   int src, dst;
-  int table_size = xbt_dynar_length(p_indexNetworkElm);
+  int table_size = xbt_dynar_length(vertices_);
 
   for(src=0; src < table_size; src++) {
     for(dst=0; dst< table_size; dst++) {
@@ -79,13 +76,13 @@ xbt_dynar_t AsFull::getOneLinkRoutes()
         if (xbt_dynar_length(route->link_list) == 1) {
           void *link = *(void **) xbt_dynar_get_ptr(route->link_list, 0);
           Onelink *onelink;
-          if (p_hierarchy == SURF_ROUTING_BASE) {
-               NetCard *tmp_src = xbt_dynar_get_as(p_indexNetworkElm, src, sg_netcard_t);
+          if (hierarchy_ == SURF_ROUTING_BASE) {
+          NetCard *tmp_src = xbt_dynar_get_as(vertices_, src, sg_netcard_t);
             tmp_src->setId(src);
-               NetCard *tmp_dst = xbt_dynar_get_as(p_indexNetworkElm, dst, sg_netcard_t);
-               tmp_dst->setId(dst);
+          NetCard *tmp_dst = xbt_dynar_get_as(vertices_, dst, sg_netcard_t);
+          tmp_dst->setId(dst);
             onelink = new Onelink(link, tmp_src, tmp_dst);
-          } else if (p_hierarchy == SURF_ROUTING_RECURSIVE)
+          } else if (hierarchy_ == SURF_ROUTING_RECURSIVE)
             onelink = new Onelink(link, route->gw_src, route->gw_dst);
           else
             onelink = new Onelink(link, NULL, NULL);
@@ -103,19 +100,19 @@ xbt_dynar_t AsFull::getOneLinkRoutes()
 void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t res, double *lat)
 {
   XBT_DEBUG("full_get_route_and_latency from %s[%d] to %s[%d]",
-      src->getName(),
-      src->getId(),
-      dst->getName(),
-      dst->getId());
+      src->name(),
+      src->id(),
+      dst->name(),
+      dst->id());
 
   /* set utils vars */
-  size_t table_size = xbt_dynar_length(p_indexNetworkElm);
+  size_t table_size = xbt_dynar_length(vertices_);
 
   sg_platf_route_cbarg_t e_route = NULL;
   void *link;
   unsigned int cpt = 0;
 
-  e_route = TO_ROUTE_FULL(src->getId(), dst->getId());
+  e_route = TO_ROUTE_FULL(src->id(), dst->id());
 
   if (e_route) {
     res->gw_src = e_route->gw_src;
@@ -128,125 +125,55 @@ void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg
   }
 }
 
-void AsFull::parseASroute(sg_platf_route_cbarg_t route){
-  parseRoute(route);
-}
-
 static int full_pointer_resource_cmp(const void *a, const void *b)
 {
   return a != b;
 }
 
-void AsFull::parseRoute(sg_platf_route_cbarg_t route)
+void AsFull::addRoute(sg_platf_route_cbarg_t route)
 {
-  int as_route = 0;
-  char *src = (char*)(route->src);
-  char *dst = (char*)(route->dst);
-  NetCard *src_net_elm, *dst_net_elm;
-  src_net_elm = sg_netcard_by_name_or_null(src);
-  dst_net_elm = sg_netcard_by_name_or_null(dst);
+  const char *src = route->src;
+  const char *dst = route->dst;
+  NetCard *src_net_elm = sg_netcard_by_name_or_null(src);
+  NetCard *dst_net_elm = sg_netcard_by_name_or_null(dst);
 
-  xbt_assert(src_net_elm, "Network elements %s not found", src);
-  xbt_assert(dst_net_elm, "Network elements %s not found", dst);
+  addRouteCheckParams(route);
 
-  size_t table_size = xbt_dynar_length(p_indexNetworkElm);
+  size_t table_size = xbt_dynar_length(vertices_);
 
-  xbt_assert(!xbt_dynar_is_empty(route->link_list),
-      "Invalid count of links, must be greater than zero (%s,%s)",
-      src, dst);
+  if (!routingTable_)
+    routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
 
-  if (!p_routingTable)
-    p_routingTable = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
+  /* Check that the route does not already exist */
+  if (route->gw_dst) // AS route (to adapt the error message, if any)
+    xbt_assert(nullptr == TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()),
+        "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).",
+        src,route->gw_src->name(),dst,route->gw_dst->name());
+  else
+    xbt_assert(nullptr == TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()),
+        "The route between %s and %s already exists (Rq: routes are symmetrical by default).", src,dst);
 
-  if (TO_ROUTE_FULL(src_net_elm->getId(), dst_net_elm->getId())) {
-    char *link_name;
-    unsigned int i;
-    xbt_dynar_t link_route_to_test =
-        xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-    xbt_dynar_foreach(route->link_list, i, link_name) {
-      void *link = Link::byName(link_name);
-      xbt_assert(link, "Link : '%s' doesn't exists.", link_name);
-      xbt_dynar_push(link_route_to_test, &link);
-    }
-    if (xbt_dynar_compare(TO_ROUTE_FULL(src_net_elm->getId(), dst_net_elm->getId())->link_list,
-        link_route_to_test, full_pointer_resource_cmp)) {
-      surf_parse_error("A route between \"%s\" and \"%s\" already exists "
-          "with a different content. "
-          "If you are trying to define a reverse route, "
-          "you must set the symmetrical=no attribute to "
-          "your routes tags.", src, dst);
-    } else {
-      surf_parse_warn("Ignoring the identical redefinition of the route "
-          "between \"%s\" and \"%s\"", src, dst);
-    }
-  } else {
-    if (!route->gw_src && !route->gw_dst)
-      XBT_DEBUG("Load Route from \"%s\" to \"%s\"", src, dst);
-    else {
-      // FIXME We can call a gw which is down the current AS (cf g5k.xml) but not upper.
-      //      AS_t subas = xbt_dict_get_or_null(rc->routing_sons, src);
-      //      if (subas == NULL)
-      //        surf_parse_error("The source of an ASroute must be a sub-AS "
-      //                         "declared within the current AS, "
-      //                         "but '%s' is not an AS within '%s'", src, rc->name);
-      //      if (subas->to_index
-      //          && xbt_dict_get_or_null(subas->to_index, route->src_gateway) == NULL)
-      //        surf_parse_error("In an ASroute, source gateway must be part of "
-      //                         "the source sub-AS (in particular, being in a "
-      //                         "sub-sub-AS is not allowed), "
-      //                         "but '%s' is not in '%s'.",
-      //                         route->src_gateway, subas->name);
-      //
-      //      subas = xbt_dict_get_or_null(rc->routing_sons, dst);
-      //      if (subas == NULL)
-      //        surf_parse_error("The destination of an ASroute must be a sub-AS "
-      //                         "declared within the current AS, "
-      //                         "but '%s' is not an AS within '%s'", dst, rc->name);
-      //      if (subas->to_index
-      //          && xbt_dict_get_or_null(subas->to_index, route->dst_gateway) == NULL)
-      //        surf_parse_error("In an ASroute, destination gateway must be "
-      //                         "part of the destination sub-AS (in particular, "
-      //                         "in a sub-sub-AS is not allowed), "
-      //                         "but '%s' is not in '%s'.",
-      //                         route->dst_gateway, subas->name);
-      as_route = 1;
-      XBT_DEBUG("Load ASroute from \"%s\" to \"%s\"", src, dst);
-      if (!route->gw_src ||
-          route->gw_src->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-       surf_parse_error("The src_gateway \"%s\" does not exist!",
-                route->gw_src ? route->gw_src->getName() : "(null)");
-      if (!route->gw_dst ||
-          route->gw_dst->getRcType() == SURF_NETWORK_ELEMENT_NULL)
-       surf_parse_error("The dst_gateway \"%s\" does not exist!",
-                route->gw_dst ? route->gw_dst->getName() : "(null)");
-      XBT_DEBUG("ASroute goes from \"%s\" to \"%s\"",
-                route->gw_src->getName(), route->gw_dst->getName());
-    }
-    TO_ROUTE_FULL(src_net_elm->getId(), dst_net_elm->getId()) = newExtendedRoute(p_hierarchy, route, 1);
-    xbt_dynar_shrink(TO_ROUTE_FULL(src_net_elm->getId(), dst_net_elm->getId())->link_list, 0);
-  }
+  /* Add the route to the base */
+  TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()) = newExtendedRoute(hierarchy_, route, 1);
+  xbt_dynar_shrink(TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list, 0);
 
-  if ( (route->symmetrical == TRUE && as_route == 0)
-      || (route->symmetrical == TRUE && as_route == 1)
-  ) {
+  if (route->symmetrical == TRUE) {
     if (route->gw_dst && route->gw_src) {
-      sg_netcard_t gw_tmp;
-      gw_tmp = route->gw_src;
+      NetCard* gw_tmp = route->gw_src;
       route->gw_src = route->gw_dst;
       route->gw_dst = gw_tmp;
     }
-    if (TO_ROUTE_FULL(dst_net_elm->getId(), src_net_elm->getId())) {
+    if (TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())) {
       char *link_name;
       unsigned int i;
-      xbt_dynar_t link_route_to_test =
-          xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
+      xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(Link*), NULL);
       for (i = xbt_dynar_length(route->link_list); i > 0; i--) {
         link_name = xbt_dynar_get_as(route->link_list, i - 1, char *);
         void *link = Link::byName(link_name);
         xbt_assert(link, "Link : '%s' doesn't exists.", link_name);
         xbt_dynar_push(link_route_to_test, &link);
       }
-      xbt_assert(!xbt_dynar_compare(TO_ROUTE_FULL(dst_net_elm->getId(), src_net_elm->getId())->link_list,
+      xbt_assert(!xbt_dynar_compare(TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list,
           link_route_to_test,
           full_pointer_resource_cmp),
           "The route between \"%s\" and \"%s\" already exists", src,
@@ -256,9 +183,9 @@ void AsFull::parseRoute(sg_platf_route_cbarg_t route)
         XBT_DEBUG("Load Route from \"%s\" to \"%s\"", dst, src);
       else
         XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"",
-            dst, route->gw_src->getName(), src, route->gw_dst->getName());
-      TO_ROUTE_FULL(dst_net_elm->getId(), src_net_elm->getId()) = newExtendedRoute(p_hierarchy, route, 0);
-      xbt_dynar_shrink(TO_ROUTE_FULL(dst_net_elm->getId(), src_net_elm->getId())->link_list, 0);
+            dst, route->gw_src->name(), src, route->gw_dst->name());
+      TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()) = newExtendedRoute(hierarchy_, route, 0);
+      xbt_dynar_shrink(TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list, 0);
     }
   }
   xbt_dynar_free(&route->link_list);
index c7b6624..30dd1cb 100644 (file)
@@ -9,7 +9,7 @@
 
 #include <xbt/base.h>
 
-#include "surf_routing_generic.hpp"
+#include "surf_routing_RoutedGraph.hpp"
 
 namespace simgrid {
 namespace surf {
@@ -19,18 +19,19 @@ namespace surf {
  ***********/
 class XBT_PRIVATE AsFull;
 
-class AsFull: public AsGeneric {
+/** Full routing: fast, large memory requirements, fully expressive */
+class AsFull: public AsRoutedGraph {
 public:
 
-  AsFull() {}
+  AsFull(const char*name);
+  void Seal() override;
   ~AsFull();
 
   void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
   xbt_dynar_t getOneLinkRoutes() override;
-  void parseRoute(sg_platf_route_cbarg_t route) override;
-  void parseASroute(sg_platf_route_cbarg_t route) override;
+  void addRoute(sg_platf_route_cbarg_t route) override;
 
-  sg_platf_route_cbarg_t *p_routingTable = nullptr;
+  sg_platf_route_cbarg_t *routingTable_ = nullptr;
 };
 
 }
diff --git a/src/surf/surf_routing_generic.cpp b/src/surf/surf_routing_generic.cpp
deleted file mode 100644 (file)
index 982038d..0000000
+++ /dev/null
@@ -1,480 +0,0 @@
-/* Copyright (c) 2009-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <cstdlib>
-
-#include <algorithm>
-
-#include <xbt/dict.h>
-#include <xbt/log.h>
-#include <xbt/sysdep.h>
-#include <xbt/dynar.h>
-#include <xbt/graph.h>
-
-#include "simgrid/platf_interface.h"    // platform creation API internal interface
-
-#include "surf_routing_generic.hpp"
-#include "surf_routing_private.hpp"
-#include "network_interface.hpp"
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_routing_generic, surf_route, "Generic implementation of the surf routing");
-
-static int no_bypassroute_declared = 1;
-
-void generic_free_route(sg_platf_route_cbarg_t route)
-{
-  if (route) {
-    xbt_dynar_free(&route->link_list);
-    xbt_free(route);
-  }
-}
-
-namespace simgrid {
-namespace surf {
-  
-void AsGeneric::parseRoute(sg_platf_route_cbarg_t /*route*/){
-  THROW_IMPOSSIBLE;
-}
-
-void AsGeneric::parseASroute(sg_platf_route_cbarg_t /*route*/){
-  THROW_IMPOSSIBLE;
-}
-
-void AsGeneric::getRouteAndLatency(NetCard */*src*/, NetCard */*dst*/, sg_platf_route_cbarg_t /*into*/, double */*latency*/){
-  THROW_IMPOSSIBLE;
-}
-
-AsGeneric::AsGeneric() {
-  p_bypassRoutes = xbt_dict_new_homogeneous((void (*)(void *)) generic_free_route);
-}
-
-AsGeneric::~AsGeneric() {
-  xbt_dict_free(&p_bypassRoutes);
-}
-
-int AsGeneric::parsePU(NetCard *elm)
-{
-  XBT_DEBUG("Load process unit \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  return xbt_dynar_length(p_indexNetworkElm)-1;
-}
-
-int AsGeneric::parseAS(NetCard *elm)
-{
-  XBT_DEBUG("Load Autonomous system \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  return xbt_dynar_length(p_indexNetworkElm)-1;
-}
-
-void AsGeneric::parseBypassroute(sg_platf_route_cbarg_t e_route)
-{
-  char *src = (char*)(e_route->src);
-  char *dst = (char*)(e_route->dst);
-
-  if(e_route->gw_dst)
-    XBT_DEBUG("Load bypassASroute from \"%s\" to \"%s\"", src, dst);
-  else
-    XBT_DEBUG("Load bypassRoute from \"%s\" to \"%s\"", src, dst);
-  xbt_dict_t dict_bypassRoutes = p_bypassRoutes;
-  char *route_name;
-
-  route_name = bprintf("%s#%s", src, dst);
-  xbt_assert(!xbt_dynar_is_empty(e_route->link_list),
-      "Invalid count of links, must be greater than zero (%s,%s)",
-      src, dst);
-  xbt_assert(!xbt_dict_get_or_null(dict_bypassRoutes, route_name),
-      "The bypass route between \"%s\"(\"%s\") and \"%s\"(\"%s\") already exists",
-      src, e_route->gw_src->getName(), dst, e_route->gw_dst->getName());
-
-  sg_platf_route_cbarg_t new_e_route = NULL;
-  if(e_route->gw_dst)
-    new_e_route =  newExtendedRoute(SURF_ROUTING_RECURSIVE, e_route, 1);
-  else
-    new_e_route =  newExtendedRoute(SURF_ROUTING_BASE, e_route, 1);
-
-  xbt_dynar_free(&(e_route->link_list));
-
-  xbt_dict_set(dict_bypassRoutes, route_name, new_e_route, NULL);
-  no_bypassroute_declared = 0;
-  xbt_free(route_name);
-}
-
-}
-}
-
-/* ************************************************************************** */
-/* *********************** GENERIC BUSINESS METHODS ************************* */
-
-static const char *instr_node_name(xbt_node_t node)
-{
-  void *data = xbt_graph_node_get_data(node);
-  char *str = (char *) data;
-  return str;
-}
-
-xbt_node_t new_xbt_graph_node(xbt_graph_t graph, const char *name,
-                              xbt_dict_t nodes)
-{
-  xbt_node_t ret = (xbt_node_t) xbt_dict_get_or_null(nodes, name);
-  if (ret)
-    return ret;
-
-  ret = xbt_graph_new_node(graph, xbt_strdup(name));
-  xbt_dict_set(nodes, name, ret, NULL);
-  return ret;
-}
-
-xbt_edge_t new_xbt_graph_edge(xbt_graph_t graph, xbt_node_t s, xbt_node_t d,
-                              xbt_dict_t edges)
-{
-  xbt_edge_t ret;
-
-  const char *sn = instr_node_name(s);
-  const char *dn = instr_node_name(d);
-  int len = strlen(sn) + strlen(dn) + 1;
-  char *name = (char *) xbt_malloc(len * sizeof(char));
-
-
-  snprintf(name, len, "%s%s", sn, dn);
-  ret = (xbt_edge_t) xbt_dict_get_or_null(edges, name);
-  if (ret == NULL) {
-    snprintf(name, len, "%s%s", dn, sn);
-    ret = (xbt_edge_t) xbt_dict_get_or_null(edges, name);
-  }
-
-  if (ret == NULL) {
-    ret = xbt_graph_new_edge(graph, s, d, NULL);
-    xbt_dict_set(edges, name, ret, NULL);
-  }
-  free(name);
-  return ret;
-}
-
-namespace simgrid {
-namespace surf {
-
-void AsGeneric::getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)
-{
-  int src, dst;
-  int table_size = xbt_dynar_length(p_indexNetworkElm);
-
-
-  for (src = 0; src < table_size; src++) {
-    NetCard *my_src =
-        xbt_dynar_get_as(p_indexNetworkElm, src, NetCard*);
-    for (dst = 0; dst < table_size; dst++) {
-      if (src == dst)
-        continue;
-      NetCard *my_dst =
-          xbt_dynar_get_as(p_indexNetworkElm, dst, NetCard*);
-
-      sg_platf_route_cbarg_t route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
-      route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-
-      getRouteAndLatency(my_src, my_dst, route, NULL);
-
-      XBT_DEBUG ("get_route_and_latency %s -> %s", my_src->getName(), my_dst->getName());
-
-      unsigned int cpt;
-      void *link;
-
-      xbt_node_t current, previous;
-      const char *previous_name, *current_name;
-
-      if (route->gw_src) {
-        previous = new_xbt_graph_node(graph, route->gw_src->getName(), nodes);
-        previous_name = route->gw_src->getName();
-      } else {
-        previous = new_xbt_graph_node(graph, my_src->getName(), nodes);
-        previous_name = my_src->getName();
-      }
-
-      xbt_dynar_foreach(route->link_list, cpt, link) {
-        const char *link_name = static_cast<simgrid::surf::Resource*>(
-          link)->getName();
-        current = new_xbt_graph_node(graph, link_name, nodes);
-        current_name = link_name;
-        new_xbt_graph_edge(graph, previous, current, edges);
-        XBT_DEBUG ("  %s -> %s", previous_name, current_name);
-        previous = current;
-        previous_name = current_name;
-      }
-
-      if (route->gw_dst) {
-        current = new_xbt_graph_node(graph, route->gw_dst->getName(), nodes);
-        current_name = route->gw_dst->getName();
-      } else {
-        current = new_xbt_graph_node(graph, my_dst->getName(), nodes);
-        current_name = my_dst->getName();
-      }
-      new_xbt_graph_edge(graph, previous, current, edges);
-      XBT_DEBUG ("  %s -> %s", previous_name, current_name);
-
-      xbt_dynar_free (&(route->link_list));
-      xbt_free (route);
-    }
-  }
-}
-
-sg_platf_route_cbarg_t AsGeneric::getBypassRoute(NetCard *src,
-                                               NetCard *dst,
-                                               double *lat)
-{
-  // If never set a bypass route return NULL without any further computations
-  XBT_DEBUG("generic_get_bypassroute from %s to %s", src->getName(), dst->getName());
-  if (no_bypassroute_declared)
-    return NULL;
-
-  sg_platf_route_cbarg_t e_route_bypass = NULL;
-  xbt_dict_t dict_bypassRoutes = p_bypassRoutes;
-
-  if(dst->getRcComponent() == this && src->getRcComponent() == this ){
-    char *route_name = bprintf("%s#%s", src->getName(), dst->getName());
-    e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
-    if(e_route_bypass)
-      XBT_DEBUG("Find bypass route with %ld links",xbt_dynar_length(e_route_bypass->link_list));
-    free(route_name);
-  }
-  else{
-    As *src_as, *dst_as;
-    int index_src, index_dst;
-    xbt_dynar_t path_src = NULL;
-    xbt_dynar_t path_dst = NULL;
-    As *current = NULL;
-    As **current_src = NULL;
-    As **current_dst = NULL;
-
-    if (src == NULL || dst == NULL)
-      xbt_die("Ask for route \"from\"(%s) or \"to\"(%s) no found at AS \"%s\"",
-              src ? src->getName() : "(null)",
-              dst ? dst->getName() : "(null)", p_name);
-
-    src_as = src->getRcComponent();
-    dst_as = dst->getRcComponent();
-
-    /* (2) find the path to the root routing component */
-    path_src = xbt_dynar_new(sizeof(As*), NULL);
-    current = src_as;
-    while (current != NULL) {
-      xbt_dynar_push(path_src, &current);
-      current = current->p_routingFather;
-    }
-    path_dst = xbt_dynar_new(sizeof(As*), NULL);
-    current = dst_as;
-    while (current != NULL) {
-      xbt_dynar_push(path_dst, &current);
-      current = current->p_routingFather;
-    }
-
-    /* (3) find the common father */
-    index_src = path_src->used - 1;
-    index_dst = path_dst->used - 1;
-    current_src = (As **) xbt_dynar_get_ptr(path_src, index_src);
-    current_dst = (As **) xbt_dynar_get_ptr(path_dst, index_dst);
-    while (index_src >= 0 && index_dst >= 0 && *current_src == *current_dst) {
-      xbt_dynar_pop_ptr(path_src);
-      xbt_dynar_pop_ptr(path_dst);
-      index_src--;
-      index_dst--;
-      current_src = (As **) xbt_dynar_get_ptr(path_src, index_src);
-      current_dst = (As **) xbt_dynar_get_ptr(path_dst, index_dst);
-    }
-
-    int max_index_src = path_src->used - 1;
-    int max_index_dst = path_dst->used - 1;
-
-    int max_index = std::max(max_index_src, max_index_dst);
-    int i, max;
-
-    for (max = 0; max <= max_index; max++) {
-      for (i = 0; i < max; i++) {
-        if (i <= max_index_src && max <= max_index_dst) {
-          char *route_name = bprintf("%s#%s",
-              (*(As **)
-                  (xbt_dynar_get_ptr(path_src, i)))->p_name,
-                  (*(As **)
-                      (xbt_dynar_get_ptr(path_dst, max)))->p_name);
-          e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
-          xbt_free(route_name);
-        }
-        if (e_route_bypass)
-          break;
-        if (max <= max_index_src && i <= max_index_dst) {
-          char *route_name = bprintf("%s#%s",
-              (*(As **)
-                  (xbt_dynar_get_ptr(path_src, max)))->p_name,
-                  (*(As **)
-                      (xbt_dynar_get_ptr(path_dst, i)))->p_name);
-          e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
-          xbt_free(route_name);
-        }
-        if (e_route_bypass)
-          break;
-      }
-
-      if (e_route_bypass)
-        break;
-
-      if (max <= max_index_src && max <= max_index_dst) {
-        char *route_name = bprintf("%s#%s",
-            (*(As **)
-                (xbt_dynar_get_ptr(path_src, max)))->p_name,
-                (*(As **)
-                    (xbt_dynar_get_ptr(path_dst, max)))->p_name);
-        e_route_bypass = (sg_platf_route_cbarg_t) xbt_dict_get_or_null(dict_bypassRoutes, route_name);
-        xbt_free(route_name);
-      }
-      if (e_route_bypass)
-        break;
-    }
-
-    xbt_dynar_free(&path_src);
-    xbt_dynar_free(&path_dst);
-  }
-
-  sg_platf_route_cbarg_t new_e_route = NULL;
-  if (e_route_bypass) {
-         Link* link;
-    unsigned int cpt = 0;
-    new_e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
-    new_e_route->gw_src = e_route_bypass->gw_src;
-    new_e_route->gw_dst = e_route_bypass->gw_dst;
-    new_e_route->link_list =
-        xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-    xbt_dynar_foreach(e_route_bypass->link_list, cpt, link) {
-      xbt_dynar_push(new_e_route->link_list, &link);
-      if (lat)
-        *lat += link->getLatency();
-    }
-  }
-
-  return new_e_route;
-}
-
-/* ************************************************************************** */
-/* ************************* GENERIC AUX FUNCTIONS ************************** */
-/* change a route containing link names into a route containing link entities */
-sg_platf_route_cbarg_t AsGeneric::newExtendedRoute(e_surf_routing_hierarchy_t hierarchy,
-      sg_platf_route_cbarg_t routearg, int change_order) {
-
-  sg_platf_route_cbarg_t result;
-  char *link_name;
-  unsigned int cpt;
-
-  result = xbt_new0(s_sg_platf_route_cbarg_t, 1);
-  result->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
-
-  xbt_assert(hierarchy == SURF_ROUTING_BASE
-      || hierarchy == SURF_ROUTING_RECURSIVE,
-      "The hierarchy of this AS is neither BASIC nor RECURSIVE, I'm lost here.");
-
-  if (hierarchy == SURF_ROUTING_RECURSIVE) {
-
-    xbt_assert(routearg->gw_src && routearg->gw_dst,
-        "NULL is obviously a bad gateway");
-
-    /* remember not erase the gateway names */
-    result->gw_src = routearg->gw_src;
-    result->gw_dst = routearg->gw_dst;
-  }
-
-  xbt_dynar_foreach(routearg->link_list, cpt, link_name) {
-
-    Link *link = Link::byName(link_name);
-    if (link) {
-      if (change_order)
-        xbt_dynar_push(result->link_list, &link);
-      else
-        xbt_dynar_unshift(result->link_list, &link);
-    } else
-      THROWF(mismatch_error, 0, "Link '%s' not found", link_name);
-  }
-
-  return result;
-}
-
-
-
-As *AsGeneric::asExist(As *to_find)
-{
-  //return to_find; // FIXME: BYPASSERROR OF FOREACH WITH BREAK
-  xbt_dict_cursor_t cursor = NULL;
-  char *key;
-  int found = 0;
-  AsGeneric *elem;
-  xbt_dict_foreach(p_routingSons, cursor, key, elem) {
-    if (to_find == elem || elem->asExist(to_find)) {
-      found = 1;
-      break;
-    }
-  }
-  if (found)
-    return to_find;
-  return NULL;
-}
-
-As *AsGeneric::autonomousSystemExist(char *element)
-{
-  //return rc; // FIXME: BYPASSERROR OF FOREACH WITH BREAK
-  As *element_as, *result, *elem;
-  xbt_dict_cursor_t cursor = NULL;
-  char *key;
-  element_as = ((NetCard*)
-      xbt_lib_get_or_null(as_router_lib, element,
-          ROUTING_ASR_LEVEL))->getRcComponent();
-  result = ((As*) - 1);
-  if (element_as != this)
-    result = asExist(element_as);
-
-  int found = 0;
-  if (result) {
-    xbt_dict_foreach(element_as->p_routingSons, cursor, key, elem) {
-      found = !strcmp(elem->p_name, element);
-      if (found)
-        break;
-    }
-    if (found)
-      return element_as;
-  }
-  return NULL;
-}
-
-As *AsGeneric::processingUnitsExist(char *element)
-{
-  As *element_as = sg_host_by_name(element)->pimpl_netcard ->getRcComponent();
-  if (element_as == this)
-    return element_as;
-  return asExist(element_as);
-}
-
-void AsGeneric::srcDstCheck(NetCard *src, NetCard *dst)
-{
-  if (src == NULL || dst == NULL)
-    xbt_die("Ask for route \"from\"(%s) or \"to\"(%s) no found at AS \"%s\"",
-            src ? src->getName() : "(null)",
-            dst ? dst->getName() : "(null)",
-            p_name);
-
-  As *src_as = src->getRcComponent();
-  As *dst_as = dst->getRcComponent();
-
-  if (src_as != dst_as)
-    xbt_die("The src(%s in %s) and dst(%s in %s) are in differents AS",
-        src->getName(), src_as->p_name,
-        dst->getName(), dst_as->p_name);
-
-  if (this != dst_as)
-    xbt_die
-    ("The routing component of src'%s' and dst'%s' is not the same as the network elements belong (%s?=%s?=%s)",
-        src->getName(),
-        dst->getName(),
-        src_as->p_name,
-        dst_as->p_name,
-        p_name);
-}
-
-}
-}
diff --git a/src/surf/surf_routing_generic.hpp b/src/surf/surf_routing_generic.hpp
deleted file mode 100644 (file)
index 96ffd16..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (c) 2013-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <xbt/base.h>
-
-#include "surf_routing_none.hpp"
-
-#ifndef SURF_ROUTING_GENERIC_HPP_
-#define SURF_ROUTING_GENERIC_HPP_
-
-namespace simgrid {
-namespace surf {
-
-class XBT_PRIVATE AsGeneric;
-
-class XBT_PRIVATE AsGeneric : public AsNone {
-public:
-  AsGeneric();
-  ~AsGeneric();
-
-  virtual void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
-  virtual void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override;
-  virtual sg_platf_route_cbarg_t getBypassRoute(NetCard *src, NetCard *dst, double *lat) override;
-
-  /* The parser calls the following functions to inform the routing models
-   * that a new element is added to the AS currently built.
-   *
-   * Of course, only the routing model of this AS is informed, not every ones */
-  virtual int parsePU(NetCard *elm) override; /* A host or a router, whatever */
-  virtual int parseAS(NetCard *elm) override;
-  virtual void parseRoute(sg_platf_route_cbarg_t route) override;
-  virtual void parseASroute(sg_platf_route_cbarg_t route) override;
-  virtual void parseBypassroute(sg_platf_route_cbarg_t e_route) override;
-
-  virtual sg_platf_route_cbarg_t newExtendedRoute(e_surf_routing_hierarchy_t hierarchy, sg_platf_route_cbarg_t routearg, int change_order);
-  virtual As *asExist(As *to_find);
-  virtual As *autonomousSystemExist(char *element);
-  virtual As *processingUnitsExist(char *element);
-  virtual void srcDstCheck(NetCard *src, NetCard *dst);
-};
-
-}
-}
-
-#endif /* SURF_ROUTING_GENERIC_HPP_ */
index 4ba9287..887e9ac 100644 (file)
@@ -9,57 +9,21 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_none, surf, "Routing part of surf");
 
-AS_t model_none_create(void)
-{
-  return new simgrid::surf::AsNone();
-}
-
 namespace simgrid {
 namespace surf {
-
-xbt_dynar_t AsNone::getOneLinkRoutes() {
-  return NULL;
-}
+AsNone::AsNone(const char*name)
+  : As(name)
+{}
+AsNone::~AsNone()
+{}
 
 void AsNone::getRouteAndLatency(NetCard * /*src*/, NetCard * /*dst*/,
-                                sg_platf_route_cbarg_t /*res*/, double *lat)
-{
-  *lat = 0.0;
-}
+                                sg_platf_route_cbarg_t /*res*/, double */*lat*/)
+{}
 
 void AsNone::getGraph(xbt_graph_t /*graph*/, xbt_dict_t /*nodes*/, xbt_dict_t /*edges*/)
 {
-       XBT_INFO("No routing no graph");
+  XBT_INFO("No routing no graph");
 }
-
-sg_platf_route_cbarg_t AsNone::getBypassRoute(NetCard * /*src*/, NetCard * /*dst*/, double * /*lat*/) {
-  return NULL;
-}
-
-int AsNone::parsePU(NetCard *elm) {
-  XBT_DEBUG("Load process unit \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  /* don't care about PUs */
-  return -1;
-}
-
-int AsNone::parseAS(NetCard *elm) {
-  XBT_DEBUG("Load Autonomous system \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, NetCard*, elm);
-  /* even don't care about sub-ASes -- I'm as nihilist as an old punk*/
-  return -1;
-}
-
-void AsNone::parseRoute(sg_platf_route_cbarg_t /*route*/){
-  THROW_IMPOSSIBLE; /* No. */
-}
-
-void AsNone::parseASroute(sg_platf_route_cbarg_t /*route*/){
-  THROW_IMPOSSIBLE;
-}
-void AsNone::parseBypassroute(sg_platf_route_cbarg_t /*e_route*/){
-  THROW_IMPOSSIBLE;
-}
-
 }
 }
index b706f89..16b97a4 100644 (file)
 namespace simgrid {
 namespace surf {
 
+/** No specific routing. Mainly useful with the constant network model */
 class XBT_PRIVATE AsNone : public As {
 public:
-  AsNone() {}
-  ~AsNone() {}
+  AsNone(const char*name);
+  ~AsNone();
 
   void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
-  xbt_dynar_t getOneLinkRoutes() override;
   void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override;
-  sg_platf_route_cbarg_t getBypassRoute(NetCard *src, NetCard *dst, double *lat) override;
-
-  /* The parser calls the following functions to inform the routing models
-   * that a new element is added to the AS currently built.
-   *
-   * Of course, only the routing model of this AS is informed, not every ones */
-  int parsePU(NetCard *elm) override; /* A host or a router, whatever */
-  int parseAS( NetCard *elm) override;
-  void parseRoute(sg_platf_route_cbarg_t route) override;
-  void parseASroute(sg_platf_route_cbarg_t route) override;
-  void parseBypassroute(sg_platf_route_cbarg_t e_route) override;
 };
 
 }
index d3caf8d..041dda8 100644 (file)
@@ -16,7 +16,6 @@
 #include "xbt/str.h"
 #include "xbt/config.h"
 #include "xbt/graph.h"
-#include "surf/surfxml_parse.h"
 
 /* ************************************************************************** */
 /* ******************************* NO ROUTING ******************************* */
@@ -50,45 +49,21 @@ XBT_PRIVATE sg_platf_route_cbarg_t generic_get_bypassroute(AS_t rc,
  * produced route */
 XBT_PRIVATE sg_platf_route_cbarg_t generic_new_extended_route(e_surf_routing_hierarchy_t hierarchy,
                                    sg_platf_route_cbarg_t data, int preserve_order);
-XBT_PRIVATE AS_t
-generic_autonomous_system_exist(AS_t rc, char *element);
-XBT_PRIVATE AS_t
-generic_processing_units_exist(AS_t rc, char *element);
-void generic_src_dst_check(AS_t rc, sg_netcard_t src,
-    sg_netcard_t dst);
+XBT_PRIVATE AS_t generic_autonomous_system_exist(AS_t rc, char *element);
+XBT_PRIVATE AS_t generic_processing_units_exist(AS_t rc, char *element);
+void generic_src_dst_check(AS_t rc, sg_netcard_t src, sg_netcard_t dst);
 
 /* ************************************************************************** */
 /* *************************** FLOYD ROUTING ******************************** */
-XBT_PRIVATE AS_t model_floyd_create(void);  /* create structures for floyd routing model */
-XBT_PRIVATE void model_floyd_end(AS_t as);      /* finalize the creation of floyd routing model */
 XBT_PRIVATE void model_floyd_parse_route(AS_t rc, sg_platf_route_cbarg_t route);
 
-/* ************************************************** */
-/* **************  Cluster ROUTING   **************** */
-
-XBT_PRIVATE surf_As *model_cluster_create(void);      /* create structures for cluster routing model */
-XBT_PRIVATE surf_As *model_torus_cluster_create(void);
-XBT_PRIVATE surf_As *model_fat_tree_cluster_create(void);
-
-/* ************************************************** */
-/* **************  Vivaldi ROUTING   **************** */
-XBT_PRIVATE AS_t model_vivaldi_create(void);      /* create structures for vivaldi routing model */
 #define HOST_PEER(peername) bprintf("peer_%s", peername)
 #define ROUTER_PEER(peername) bprintf("router_%s", peername)
 #define LINK_PEER(peername) bprintf("link_%s", peername)
 
 /* ************************************************************************** */
 /* ********** Dijkstra & Dijkstra Cached ROUTING **************************** */
-XBT_PRIVATE AS_t model_dijkstra_both_create(int cached);    /* create by calling dijkstra or dijkstracache */
-XBT_PRIVATE AS_t model_dijkstra_create(void);       /* create structures for dijkstra routing model */
-XBT_PRIVATE AS_t model_dijkstracache_create(void);  /* create structures for dijkstracache routing model */
-XBT_PRIVATE void model_dijkstra_both_end(AS_t as);      /* finalize the creation of dijkstra routing model */
 XBT_PRIVATE void model_dijkstra_both_parse_route (AS_t rc, sg_platf_route_cbarg_t route);
-
-/* ************************************************************************** */
-/* *************************** FULL ROUTING ********************************* */
-XBT_PRIVATE AS_t model_full_create(void);   /* create structures for full routing model */
-XBT_PRIVATE void model_full_end(AS_t as);       /* finalize the creation of full routing model */
 XBT_PRIVATE void model_full_set_route(  /* Set the route and ASroute between src and dst */
     AS_t rc, sg_platf_route_cbarg_t route);
 /* ************************************************************************** */
index b31f273..377c13f 100644 (file)
@@ -22,24 +22,22 @@ static XBT_INLINE double euclidean_dist_comp(int index, xbt_dynar_t src, xbt_dyn
   return (src_coord-dst_coord)*(src_coord-dst_coord);
 }
 
-AS_t model_vivaldi_create(void)
-{
-  return new simgrid::surf::AsVivaldi();
-}
-
 namespace simgrid {
 namespace surf {
+  AsVivaldi::AsVivaldi(const char *name)
+    : AsRoutedGraph(name)
+  {}
 
 void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat)
 {
   s_surf_parsing_link_up_down_t info;
 
   XBT_DEBUG("vivaldi_get_route_and_latency from '%s'[%d] '%s'[%d]",
-                 src->getName(), src->getId(), dst->getName(), dst->getId());
+      src->name(), src->id(), dst->name(), dst->id());
 
   if(src->getRcType() == SURF_NETWORK_ELEMENT_AS) {
-    char *src_name = ROUTER_PEER(src->getName());
-    char *dst_name = ROUTER_PEER(dst->getName());
+    char *src_name = ROUTER_PEER(src->name());
+    char *dst_name = ROUTER_PEER(dst->name());
     route->gw_src = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, src_name, ROUTING_ASR_LEVEL);
     route->gw_dst = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, dst_name, ROUTING_ASR_LEVEL);
     xbt_free(src_name);
@@ -51,10 +49,10 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
   char *tmp_src_name, *tmp_dst_name;
 
   if(src->getRcType() == SURF_NETWORK_ELEMENT_HOST){
-    tmp_src_name = HOST_PEER(src->getName());
+    tmp_src_name = HOST_PEER(src->name());
 
-    if(p_linkUpDownList){
-      info = xbt_dynar_get_as(p_linkUpDownList, src->getId(), s_surf_parsing_link_up_down_t);
+    if ((int)xbt_dynar_length(upDownLinks)>src->id()) {
+      info = xbt_dynar_get_as(upDownLinks, src->id(), s_surf_parsing_link_up_down_t);
       if(info.link_up) { // link up
         xbt_dynar_push_as(route->link_list, void*, info.link_up);
         if (lat)
@@ -63,10 +61,10 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
     }
     src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(tmp_src_name)->extension(COORD_HOST_LEVEL);
     if (src_ctn == nullptr)
-      src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(src->getName())->extension(COORD_HOST_LEVEL);
+      src_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(src->name())->extension(COORD_HOST_LEVEL);
   }
   else if(src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_AS){
-    tmp_src_name = ROUTER_PEER(src->getName());
+    tmp_src_name = ROUTER_PEER(src->name());
     src_ctn = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_src_name, COORD_ASR_LEVEL);
   }
   else{
@@ -74,10 +72,10 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
   }
 
   if(dst->getRcType() == SURF_NETWORK_ELEMENT_HOST){
-    tmp_dst_name = HOST_PEER(dst->getName());
+    tmp_dst_name = HOST_PEER(dst->name());
 
-    if(p_linkUpDownList){
-      info = xbt_dynar_get_as(p_linkUpDownList, dst->getId(), s_surf_parsing_link_up_down_t);
+    if ((int)xbt_dynar_length(upDownLinks)>dst->id()) {
+      info = xbt_dynar_get_as(upDownLinks, dst->id(), s_surf_parsing_link_up_down_t);
       if(info.link_down) { // link down
         xbt_dynar_push_as(route->link_list,void*,info.link_down);
         if (lat)
@@ -87,11 +85,11 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
     dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(tmp_dst_name)
       ->extension(COORD_HOST_LEVEL);
     if (dst_ctn == nullptr)
-      dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(dst->getName())
+      dst_ctn = (xbt_dynar_t) simgrid::s4u::Host::by_name_or_create(dst->name())
         ->extension(COORD_HOST_LEVEL);
   }
   else if(dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || dst->getRcType() == SURF_NETWORK_ELEMENT_AS){
-    tmp_dst_name = ROUTER_PEER(dst->getName());
+    tmp_dst_name = ROUTER_PEER(dst->name());
     dst_ctn = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_dst_name, COORD_ASR_LEVEL);
   }
   else{
@@ -112,11 +110,5 @@ void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cb
   }
 }
 
-int AsVivaldi::parsePU(NetCard *elm) {
-  XBT_DEBUG("Load process unit \"%s\"", elm->getName());
-  xbt_dynar_push_as(p_indexNetworkElm, sg_netcard_t, elm);
-  return xbt_dynar_length(p_indexNetworkElm)-1;
-}
-
 }
 }
index 3641a13..3ab9c59 100644 (file)
@@ -4,9 +4,9 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+#include "surf_routing_RoutedGraph.hpp"
 #include "xbt/swag.h"
 
-#include "surf_routing_generic.hpp"
 
 #ifndef SURF_ROUTING_VIVALDI_HPP_
 #define SURF_ROUTING_VIVALDI_HPP_
@@ -23,13 +23,12 @@ namespace surf {
  ***********/
 class XBT_PRIVATE AsVivaldi;
 
-class AsVivaldi: public AsGeneric {
+class AsVivaldi: public AsRoutedGraph {
 public:
-  AsVivaldi() : AsGeneric() {};
+  AsVivaldi(const char *name);
   ~AsVivaldi() {};
 
   void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override;
-  int parsePU(NetCard *elm) override;
 };
 
 }
index 1b7b8fe..cc0eedd 100644 (file)
@@ -25,7 +25,7 @@ simgrid::trace_mgr::future_evt_set::~future_evt_set()
   xbt_heap_free(p_heap);
 }
 
-
+#if 0 /* probabilistic dead code. Should be reimplemented, not killed (please) */
 /**
  * \brief Create a #tmgr_trace_t from probabilist generators
  *
@@ -239,6 +239,7 @@ double tmgr_event_generator_next_value(probabilist_event_generator_t generator)
 
   return generator->next_value;
 }
+#endif /* probabilistic dead code */
 
 tmgr_trace_t tmgr_trace_new_from_string(const char *id, const char *input,
                                         double periodicity)
@@ -263,8 +264,7 @@ tmgr_trace_t tmgr_trace_new_from_string(const char *id, const char *input,
               "Invalid periodicity %g (must be positive)", periodicity);
 
   trace = xbt_new0(s_tmgr_trace_t, 1);
-  trace->type = e_trace_list;
-  trace->s_list.event_list = xbt_dynar_new(sizeof(s_tmgr_event_t), NULL);
+  trace->event_list = xbt_dynar_new(sizeof(s_tmgr_event_t), NULL);
 
   list = xbt_str_split(input, "\n\r");
 
@@ -292,11 +292,11 @@ tmgr_trace_t tmgr_trace_new_from_string(const char *id, const char *input,
         s_tmgr_event_t first_event;
         first_event.delta=event.delta;
         first_event.value=-1.0;
-        xbt_dynar_push(trace->s_list.event_list, &first_event);
+        xbt_dynar_push(trace->event_list, &first_event);
       }
     }
-    xbt_dynar_push(trace->s_list.event_list, &event);
-    last_event = (tmgr_event_t)xbt_dynar_get_ptr(trace->s_list.event_list, xbt_dynar_length(trace->s_list.event_list) - 1);
+    xbt_dynar_push(trace->event_list, &event);
+    last_event = (tmgr_event_t)xbt_dynar_get_ptr(trace->event_list, xbt_dynar_length(trace->event_list) - 1);
   }
   if (last_event)
     last_event->delta = periodicity;
@@ -343,12 +343,11 @@ tmgr_trace_t tmgr_empty_trace_new(void)
   s_tmgr_event_t event;
 
   trace = xbt_new0(s_tmgr_trace_t, 1);
-  trace->type = e_trace_list;
-  trace->s_list.event_list = xbt_dynar_new(sizeof(s_tmgr_event_t), NULL);
+  trace->event_list = xbt_dynar_new(sizeof(s_tmgr_event_t), NULL);
 
   event.delta = 0.0;
   event.value = 0.0;
-  xbt_dynar_push(trace->s_list.event_list, &event);
+  xbt_dynar_push(trace->event_list, &event);
 
   return trace;
 }
@@ -358,14 +357,7 @@ void tmgr_trace_free(tmgr_trace_t trace)
   if (!trace)
     return;
 
-  switch(trace->type) {
-    case e_trace_list:
-      xbt_dynar_free(&(trace->s_list.event_list));
-      break;
-    case e_trace_probabilist:
-      THROW_UNIMPLEMENTED;
-      break;
-  }
+  xbt_dynar_free(&(trace->event_list));
   free(trace);
 }
 
@@ -380,10 +372,8 @@ tmgr_trace_iterator_t simgrid::trace_mgr::future_evt_set::add_trace(
   trace_iterator->idx = 0;
   trace_iterator->resource = resource;
 
-  if(trace->type == e_trace_list) {
-    xbt_assert((trace_iterator->idx < xbt_dynar_length(trace->s_list.event_list)),
-              "You're referring to an event that does not exist!");
-  }
+  xbt_assert((trace_iterator->idx < xbt_dynar_length(trace->event_list)),
+      "Your trace should have at least one event!");
 
   xbt_heap_push(p_heap, trace_iterator, start_time);
 
@@ -414,42 +404,19 @@ tmgr_trace_iterator_t simgrid::trace_mgr::future_evt_set::pop_leq(
   tmgr_trace_t trace = trace_iterator->trace;
   *resource = trace_iterator->resource;
 
-  if (trace->type == e_trace_list) {
-
-      tmgr_event_t event = (tmgr_event_t)xbt_dynar_get_ptr(trace->s_list.event_list, trace_iterator->idx);
+  tmgr_event_t event = (tmgr_event_t)xbt_dynar_get_ptr(trace->event_list, trace_iterator->idx);
 
-      *value = event->value;
+  *value = event->value;
 
-      if (trace_iterator->idx < xbt_dynar_length(trace->s_list.event_list) - 1) {
-        xbt_heap_push(p_heap, trace_iterator, event_date + event->delta);
-        trace_iterator->idx++;
-      } else if (event->delta > 0) {        /* Last element, checking for periodicity */
-        xbt_heap_push(p_heap, trace_iterator, event_date + event->delta);
-        trace_iterator->idx = 1; /* not 0 as the first event is a placeholder to handle when events really start */
-      } else {                      /* We don't need this trace_event anymore */
-        trace_iterator->free_me = 1;
-      }
-
-  } else if (trace->type == e_trace_probabilist) { //FIXME : not tested yet
-      double event_delta;
-      if(trace->s_probabilist.is_state_trace) {
-        *value = (double) trace->s_probabilist.next_event;
-        if(trace->s_probabilist.next_event == 0) {
-          event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[0]);
-          trace->s_probabilist.next_event = 1;
-        } else {
-          event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
-          trace->s_probabilist.next_event = 0;
-        }
-      } else {
-        event_delta = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[0]);
-        *value = tmgr_event_generator_next_value(trace->s_probabilist.event_generator[1]);
-      }
-      xbt_heap_push(p_heap, trace_iterator, event_date + event_delta);
-      XBT_DEBUG("Generating a new event at date %f, with value %f", event_date + event_delta, *value);
-
-  } else
-    THROW_IMPOSSIBLE;
+  if (trace_iterator->idx < xbt_dynar_length(trace->event_list) - 1) {
+    xbt_heap_push(p_heap, trace_iterator, event_date + event->delta);
+    trace_iterator->idx++;
+  } else if (event->delta > 0) {        /* Last element, checking for periodicity */
+    xbt_heap_push(p_heap, trace_iterator, event_date + event->delta);
+    trace_iterator->idx = 1; /* not 0 as the first event is a placeholder to handle when events really start */
+  } else {                      /* We don't need this trace_event anymore */
+    trace_iterator->free_me = 1;
+  }
 
   return trace_iterator;
 }
index ee06f3b..eb30182 100644 (file)
@@ -11,7 +11,6 @@
 #include "xbt/dynar.h"
 #include "surf/maxmin.h"
 #include "surf/datatypes.h"
-#include "simgrid/platf_interface.h"
 #include "simgrid/forward.h"
 
 SG_BEGIN_DECL()
@@ -54,17 +53,7 @@ typedef struct probabilist_event_generator {
 } s_probabilist_event_generator_t;
 
 typedef struct tmgr_trace {
-  enum e_trace_type type;
-  union {
-    struct {
-      xbt_dynar_t event_list;
-    } s_list;
-    struct {
-      probabilist_event_generator_t event_generator[2];
-      int is_state_trace;
-      int next_event;
-    } s_probabilist;
-  };
+  xbt_dynar_t event_list;
 } s_tmgr_trace_t;
 
 /* Iterator within a trace */
@@ -75,8 +64,6 @@ typedef struct tmgr_trace_iterator {
   int free_me;
 } s_tmgr_trace_event_t;
 
-XBT_PRIVATE double tmgr_event_generator_next_value(probabilist_event_generator_t generator);
-
 /* Creation functions */
 XBT_PUBLIC(tmgr_trace_t) tmgr_empty_trace_new(void);
 XBT_PUBLIC(void) tmgr_trace_free(tmgr_trace_t trace);
@@ -95,9 +82,33 @@ SG_END_DECL()
 
 #ifdef __cplusplus
 namespace simgrid {
+/** @brief Modeling of the resource variations, such as those due to an external load
+ *
+ * There is 3 main concepts in this module:
+ * - #trace: a set of dated values, ie a list of pair <timestamp, value>
+ * - #trace_iterator: links a given trace to a given simgrid resource. A Cpu for example has 2 iterators: state (ie, is it ON/OFF) and speed, while a link has 3 iterators: state, bandwidth and latency.
+ * - #future_evt_set: makes it easy to find the next occuring event of all traces
+ */
   namespace trace_mgr {
 
-/* Future Event Set (collection of iterators over the traces)
+/** @brief A trace_iterator links a trace to a resource */
+XBT_PUBLIC_CLASS trace_iterator {
+
+};
+
+/** @brief A trace is a set of timed values, encoding the value that a variable takes at what time *
+ *
+ * It is useful to model dynamic platforms, where an external load that makes the resource availability change over time.
+ * To model that, you have to set several traces per resource: one for the on/off state and one for each numerical value (computational speed, bandwidt and latency).
+ */
+XBT_PUBLIC_CLASS trace {
+public:
+  /**  Creates an empty trace */
+  trace() {}
+  virtual ~trace() {}
+};
+
+/** @brief Future Event Set (collection of iterators over the traces)
  * That's useful to quickly know which is the next occurring event in a set of traces. */
 XBT_PUBLIC_CLASS future_evt_set {
 public:
index 26f3711..21c4896 100644 (file)
@@ -62,7 +62,7 @@ public:
    * @param host The host
    */
   VirtualMachine(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props,
-                       simgrid::s4u::Host *host);
+            simgrid::s4u::Host *host);
 
   /** @brief Destructor */
   ~VirtualMachine();
index d34f21d..6e8450f 100644 (file)
@@ -49,7 +49,7 @@ VirtualMachine *VMHL13Model::createVM(const char *name, sg_host_t host_PM)
 // const double virt_overhead = 0.95;
 const double virt_overhead = 1;
 
-double VMHL13Model::shareResources(double now)
+double VMHL13Model::next_occuring_event(double now)
 {
   /* TODO: update action's cost with the total cost of processes on the VM. */
 
@@ -101,25 +101,8 @@ double VMHL13Model::shareResources(double now)
   /* 2. Calculate resource share at the virtual machine layer. */
   adjustWeightOfDummyCpuActions();
 
-  double min_by_cpu = surf_cpu_model_vm->shareResources(now);
-  double min_by_net = surf_network_model->shareResourcesIsIdempotent() ? surf_network_model->shareResources(now) : -1;
-  // Fixme: take storage into account once it's implemented
-  double min_by_sto = -1;
-
-  XBT_DEBUG("model %p, %s min_by_cpu %f, %s min_by_net %f, %s min_by_sto %f",
-      this, typeid(surf_cpu_model_pm ).name(), min_by_cpu,
-               typeid(surf_network_model).name(), min_by_net,
-            typeid(surf_storage_model).name(), min_by_sto);
-
-  double ret = std::max(std::max(min_by_cpu, min_by_net), min_by_sto);
-  if (min_by_cpu >= 0.0 && min_by_cpu < ret)
-       ret = min_by_cpu;
-  if (min_by_net >= 0.0 && min_by_net < ret)
-       ret = min_by_net;
-  if (min_by_sto >= 0.0 && min_by_sto < ret)
-       ret = min_by_sto;
-
-  return ret;
+  /* 3. Ready. Get the next occuring event */
+  return surf_cpu_model_vm->next_occuring_event(now);
 }
 
 /************
index 6b0d8b2..7b66c2a 100644 (file)
@@ -34,7 +34,7 @@ public:
   ~VMHL13Model(){};
 
   VirtualMachine *createVM(const char *name, sg_host_t host_PM) override;
-  double shareResources(double now) override;
+  double next_occuring_event(double now) override;
   void adjustWeightOfDummyCpuActions() override {};
   void updateActionsState(double /*now*/, double /*delta*/) override;
 };
diff --git a/src/surf/xml/platf.hpp b/src/surf/xml/platf.hpp
new file mode 100644 (file)
index 0000000..64e16dc
--- /dev/null
@@ -0,0 +1,37 @@
+/* Copyright (c) 2006-2014. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#ifndef _SURF_SURFXML_PARSE_H
+#define _SURF_SURFXML_PARSE_H
+
+#include "xbt/misc.h"
+#include "xbt/function_types.h"
+#include "xbt/dict.h"
+
+SG_BEGIN_DECL()
+
+/* Module management functions */
+XBT_PUBLIC(void) sg_platf_init(void);
+XBT_PUBLIC(void) sg_platf_exit(void);
+
+XBT_PUBLIC(void) surf_parse_open(const char *file);
+XBT_PUBLIC(void) surf_parse_close(void);
+XBT_PUBLIC(void) surf_parse_assert(bool cond, const char *fmt, ...) XBT_ATTRIB_PRINTF(2,3);
+XBT_PUBLIC(void) XBT_ATTRIB_NORETURN surf_parse_error(const char *msg,...) XBT_ATTRIB_PRINTF(1,2);
+XBT_PUBLIC(void) surf_parse_warn(const char *msg,...) XBT_ATTRIB_PRINTF(1,2);
+
+XBT_PUBLIC(double) surf_parse_get_double(const char *string);
+XBT_PUBLIC(int) surf_parse_get_int(const char *string);
+XBT_PUBLIC(double) surf_parse_get_time(const char *string, const char *entity_kind, const char *name);
+XBT_PUBLIC(double) surf_parse_get_size(const char *string, const char *entity_kind, const char *name);
+XBT_PUBLIC(double) surf_parse_get_bandwidth(const char *string, const char *entity_kind, const char *name);
+XBT_PUBLIC(double) surf_parse_get_speed(const char *string, const char *entity_kind, const char *name);
+
+/* What is needed to bypass the parser. */
+XBT_PUBLIC_DATA(int_f_void_t) surf_parse;       /* Entry-point to the parser. Set this to your function. */
+
+SG_END_DECL()
+#endif
diff --git a/src/surf/xml/platf_private.hpp b/src/surf/xml/platf_private.hpp
new file mode 100644 (file)
index 0000000..b505dc9
--- /dev/null
@@ -0,0 +1,319 @@
+/* platf_private.h - Interface to the SimGrid platforms which visibility should be limited to this directory */
+
+/* Copyright (c) 2004-2015. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#ifndef SG_PLATF_H
+#define SG_PLATF_H
+
+#include "simgrid/host.h"
+#include "src/surf/xml/platf.hpp"
+
+SG_BEGIN_DECL()
+#include "src/surf/xml/simgrid_dtd.h"
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+static inline char* sg_storage_name(sg_storage_t storage) {
+  return storage->key;
+}
+
+XBT_PUBLIC(sg_netcard_t) sg_netcard_by_name_or_null(const char *name);
+
+XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_file(const char *filename);
+XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_string(const char *id,
+                                                    const char *input,
+                                                    double periodicity);
+typedef enum {
+  SURF_CLUSTER_FAT_TREE=2,
+  SURF_CLUSTER_FLAT = 1,
+  SURF_CLUSTER_TORUS = 0
+} e_surf_cluster_topology_t;
+
+/* ***************************************** */
+/*
+ * Platform creation functions. Instead of passing 123 arguments to the creation functions
+ * (one for each possible XML attribute), we pass structures containing them all. It removes the
+ * chances of switching arguments by error, and reduce the burden when we add a new attribute:
+ * old models can just continue to ignore it without having to update their headers.
+ *
+ * It shouldn't be too costly at runtime, provided that structures living on the stack are
+ * used, instead of malloced structures.
+ */
+
+typedef struct {
+  const char* id;
+  xbt_dynar_t speed_peak;
+  int pstate;
+  int core_amount;
+  double speed_scale;
+  tmgr_trace_t speed_trace;
+  int initiallyOn;
+  tmgr_trace_t state_trace;
+  const char* coord;
+  xbt_dict_t properties;
+} s_sg_platf_host_cbarg_t, *sg_platf_host_cbarg_t;
+
+#define SG_PLATF_HOST_INITIALIZER { \
+    NULL, 0, 1, 1, 1., NULL, 1/*ON*/, NULL, \
+    NULL, NULL \
+}
+
+typedef struct {
+  const char* id;
+  const char* link_up;
+  const char* link_down;
+} s_sg_platf_host_link_cbarg_t, *sg_platf_host_link_cbarg_t;
+
+#define SG_PLATF_HOST_LINK_INITIALIZER {NULL,NULL,NULL}
+
+typedef struct {
+  const char* id;
+  const char* coord;
+} s_sg_platf_router_cbarg_t, *sg_platf_router_cbarg_t;
+
+#define SG_PLATF_ROUTER_INITIALIZER {NULL,NULL}
+
+typedef struct {
+  const char* id;
+  double bandwidth;
+  tmgr_trace_t bandwidth_trace;
+  double latency;
+  tmgr_trace_t latency_trace;
+  int initiallyOn;
+  tmgr_trace_t state_trace;
+  e_surf_link_sharing_policy_t policy;
+  xbt_dict_t properties;
+} s_sg_platf_link_cbarg_t, *sg_platf_link_cbarg_t;
+
+#define SG_PLATF_LINK_INITIALIZER {\
+  NULL, 0., NULL, 0., NULL, 1/*ON*/, \
+  NULL, SURF_LINK_SHARED, NULL \
+}
+
+typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t;
+typedef struct s_sg_platf_peer_cbarg {
+  const char* id;
+  double speed;
+  double bw_in;
+  double bw_out;
+  double lat;
+  const char* coord;
+  tmgr_trace_t availability_trace;
+  tmgr_trace_t state_trace;
+} s_sg_platf_peer_cbarg_t;
+
+#define SG_PLATF_PEER_INITIALIZER {NULL,0.0,0.0,0.0,0.0,NULL,NULL,NULL}
+
+typedef struct s_sg_platf_route_cbarg *sg_platf_route_cbarg_t;
+typedef struct s_sg_platf_route_cbarg {
+  int symmetrical;
+  const char *src;
+  const char *dst;
+  sg_netcard_t gw_src;
+  sg_netcard_t gw_dst;
+  xbt_dynar_t link_list;
+} s_sg_platf_route_cbarg_t;
+
+#define SG_PLATF_ROUTE_INITIALIZER {1,NULL,NULL,NULL,NULL,NULL}
+
+typedef struct s_sg_platf_cluster_cbarg *sg_platf_cluster_cbarg_t;
+typedef struct s_sg_platf_cluster_cbarg {
+  const char* id;
+  const char* prefix;
+  const char* suffix;
+  const char* radical;
+  double speed;
+  int core_amount;
+  double bw;
+  double lat;
+  double bb_bw;
+  double bb_lat;
+  double loopback_bw;
+  double loopback_lat;
+  double limiter_link;
+  e_surf_cluster_topology_t topology;
+  const char* topo_parameters;
+  xbt_dict_t properties;
+  const char* router_id;
+  e_surf_link_sharing_policy_t sharing_policy;
+  e_surf_link_sharing_policy_t bb_sharing_policy;
+  const char* availability_trace; //don't convert to tmgr_trace_t since there is a trace per host and some rewriting is needed
+  const char* state_trace;
+} s_sg_platf_cluster_cbarg_t;
+
+#define SG_PLATF_CLUSTER_INITIALIZER {NULL,NULL,NULL,NULL,0.0,1 \
+  ,1.,1.,0.,0.,0.,0.,0. \
+  ,SURF_CLUSTER_FLAT,NULL,NULL,NULL, \
+  SURF_LINK_SHARED,SURF_LINK_SHARED,NULL \
+  ,NULL}
+
+typedef struct s_sg_platf_cabinet_cbarg *sg_platf_cabinet_cbarg_t;
+typedef struct s_sg_platf_cabinet_cbarg {
+  const char* id;
+  const char* prefix;
+  const char* suffix;
+  const char* radical;
+  double speed;
+  double bw;
+  double lat;
+} s_sg_platf_cabinet_cbarg_t;
+
+#define SG_PLATF_CABINET_INITIALIZER {NULL,NULL,NULL,NULL,0.0,0.0,0.0}
+
+typedef struct {
+  const char* id;
+  const char* type_id;
+  const char* content;
+  const char* content_type;
+  xbt_dict_t properties;
+  const char* attach;
+} s_sg_platf_storage_cbarg_t, *sg_platf_storage_cbarg_t;
+
+#define SG_PLATF_STORAGE_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL}
+
+typedef struct {
+  const char* id;
+  const char* model;
+  const char* content;
+  const char* content_type;
+  xbt_dict_t properties;
+  xbt_dict_t model_properties;
+  sg_size_t size;
+} s_sg_platf_storage_type_cbarg_t, *sg_platf_storage_type_cbarg_t;
+
+#define SG_PLATF_STORAGE_TYPE_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL,0}
+
+typedef struct {
+  const char* type_id;
+  const char* name;
+} s_sg_platf_mstorage_cbarg_t, *sg_platf_mstorage_cbarg_t;
+
+#define SG_PLATF_MSTORAGE_INITIALIZER {NULL,NULL}
+
+typedef struct {
+  const char* storageId;
+  const char* name;
+} s_sg_platf_mount_cbarg_t, *sg_platf_mount_cbarg_t;
+
+#define SG_PLATF_MOUNT_INITIALIZER {NULL,NULL}
+
+typedef struct s_sg_platf_prop_cbarg *sg_platf_prop_cbarg_t;
+typedef struct s_sg_platf_prop_cbarg {
+  const char *id;
+  const char *value;
+} s_sg_platf_prop_cbarg_t;
+
+#define SG_PLATF_PROP_INITIALIZER {NULL,NULL}
+
+typedef struct s_sg_platf_trace_cbarg *sg_platf_trace_cbarg_t;
+typedef struct s_sg_platf_trace_cbarg {
+  const char *id;
+  const char *file;
+  double periodicity;
+  const char *pc_data;
+} s_sg_platf_trace_cbarg_t;
+
+#define SG_PLATF_TRACE_INITIALIZER {NULL,NULL,0.0,NULL}
+
+typedef struct s_sg_platf_trace_connect_cbarg *sg_platf_trace_connect_cbarg_t;
+typedef struct s_sg_platf_trace_connect_cbarg {
+  e_surf_trace_connect_kind_t kind;
+  const char *trace;
+  const char *element;
+} s_sg_platf_trace_connect_cbarg_t;
+
+#define SG_PLATF_TRACE_CONNECT_INITIALIZER {SURF_TRACE_CONNECT_KIND_LATENCY,NULL,NULL}
+
+typedef struct s_sg_platf_process_cbarg *sg_platf_process_cbarg_t;
+typedef struct s_sg_platf_process_cbarg {
+  const char **argv;
+  int argc;
+  xbt_dict_t properties;
+  const char *host;
+  const char *function;
+  double start_time;
+  double kill_time;
+  e_surf_process_on_failure_t on_failure;
+} s_sg_platf_process_cbarg_t;
+
+#define SG_PLATF_PROCESS_INITIALIZER {NULL,0,NULL,NULL,NULL,-1.0,-1.0,SURF_PROCESS_ON_FAILURE_DIE}
+
+typedef struct s_sg_platf_AS_cbarg *sg_platf_AS_cbarg_t;
+typedef struct s_sg_platf_AS_cbarg {
+  const char *id;
+  int routing;
+} s_sg_platf_AS_cbarg_t;
+
+#define SG_PLATF_AS_INITIALIZER {NULL,0}
+
+/** opaque structure defining a event generator for availability based on a probability distribution */
+typedef struct probabilist_event_generator *probabilist_event_generator_t;
+
+/********** Routing **********/
+void routing_AS_begin(sg_platf_AS_cbarg_t AS);
+void routing_AS_end(void);
+void routing_cluster_add_backbone(Link* bb);
+surf_As* routing_get_current();
+/*** END of the parsing cruft ***/
+
+XBT_PUBLIC(void) sg_platf_begin(void);  // Start a new platform
+XBT_PUBLIC(void) sg_platf_end(void); // Finish the creation of the platform
+
+XBT_PUBLIC(void) sg_platf_new_AS_begin(sg_platf_AS_cbarg_t AS); // Begin description of new AS
+XBT_PUBLIC(void) sg_platf_new_AS_end(void);                     // That AS is fully described
+
+XBT_PUBLIC(void) sg_platf_new_host   (sg_platf_host_cbarg_t   host);   // Add an host   to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_hostlink(sg_platf_host_link_cbarg_t h); // Add an host_link to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_router (sg_platf_router_cbarg_t router); // Add a router  to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_link   (sg_platf_link_cbarg_t link);     // Add a link    to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_peer   (sg_platf_peer_cbarg_t peer);     // Add a peer    to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_cluster(sg_platf_cluster_cbarg_t clust); // Add a cluster to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet); // Add a cabinet to the currently described AS
+
+XBT_PUBLIC(void) sg_platf_new_route (sg_platf_route_cbarg_t route); // Add a route
+XBT_PUBLIC(void) sg_platf_new_bypassRoute (sg_platf_route_cbarg_t bypassroute); // Add a bypassRoute
+
+XBT_PUBLIC(void) sg_platf_new_trace(sg_platf_trace_cbarg_t trace);
+
+XBT_PUBLIC(void) sg_platf_new_storage(sg_platf_storage_cbarg_t storage); // Add a storage to the currently described AS
+XBT_PUBLIC(void) sg_platf_new_mstorage(sg_platf_mstorage_cbarg_t mstorage);
+XBT_PUBLIC(void) sg_platf_new_storage_type(sg_platf_storage_type_cbarg_t storage_type);
+XBT_PUBLIC(void) sg_platf_new_mount(sg_platf_mount_cbarg_t mount);
+
+XBT_PUBLIC(void) sg_platf_new_process(sg_platf_process_cbarg_t process);
+
+/* Prototypes of the functions offered by flex */
+XBT_PUBLIC(int) surf_parse_lex(void);
+XBT_PUBLIC(int) surf_parse_get_lineno(void);
+XBT_PUBLIC(FILE *) surf_parse_get_in(void);
+XBT_PUBLIC(FILE *) surf_parse_get_out(void);
+XBT_PUBLIC(yy_size_t) surf_parse_get_leng(void);
+XBT_PUBLIC(char *) surf_parse_get_text(void);
+XBT_PUBLIC(void) surf_parse_set_lineno(int line_number);
+XBT_PUBLIC(void) surf_parse_set_in(FILE * in_str);
+XBT_PUBLIC(void) surf_parse_set_out(FILE * out_str);
+XBT_PUBLIC(int) surf_parse_get_debug(void);
+XBT_PUBLIC(void) surf_parse_set_debug(int bdebug);
+XBT_PUBLIC(int) surf_parse_lex_destroy(void);
+
+
+SG_END_DECL()
+
+namespace simgrid {
+namespace surf {
+
+extern XBT_PRIVATE simgrid::xbt::signal<void(sg_platf_link_cbarg_t)> on_link;
+extern XBT_PRIVATE simgrid::xbt::signal<void(sg_platf_cluster_cbarg_t)> on_cluster;
+extern XBT_PRIVATE simgrid::xbt::signal<void(void)> on_postparse;
+
+}
+}
+
+#endif                          /* SG_PLATF_H */
similarity index 71%
rename from src/surf/simgrid.dtd
rename to src/surf/xml/simgrid.dtd
index 70f5032..f352bde 100644 (file)
@@ -1,4 +1,54 @@
-<!-- Small DTD for SURF based tools. -->
+<!-- 
+             DTD of SimGrid platform and deployment files.
+
+More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
+To upgrade your files, use the tool simgrid_update_xml
+
+* New in DTD version 4 (in SimGrid 3.13):
+   - Rename (power->speed) the attributes describing the amount of flop
+     that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
+
+   - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+
+   - The DOCTYPE points to the right URL (this file):
+     http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+
+   - A warning is emited for unit-less values (they are still accepted).
+
+     - speed. Default: 'f' or 'flops'. Also defined:
+        'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
+        'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+
+     - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
+       Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+       And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+
+     - latency. Default: 's' second. Also defined:
+       'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
+
+* New in DTD version 3 (in SimGrid 3.5):
+   - The AS tag were introduced. Every platform should now
+     contain an englobing AS tag.
+   - Routes are now symmetric by default.
+   - Renamed tags (for sake of XML sanity):
+     - LINK:CTN -> LINK_CTN
+     - TRACE:CONNECT -> TRACE_CONNECT
+
+* New in DTD version 2 (in SimGrid 3.4):
+   - Renamed tags:
+     - CPU -> HOST
+     - NETWORK_LINK -> LINK
+     - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
+     - PLATFORM_DESCRIPTION -> PLATFORM
+
+* New in DTD version 1 (in SimGrid 3.3):
+   - DTD is now versionned with the version attribute of platform
+   - Unit change: 
+     - Link bandwidth: from Mb/s to b/s
+     - CPU speed: from MFlop/s to Flop/s
+
+-->
+
 <!ELEMENT platform ((config|random)*,(include|cluster|cabinet|peer|AS|trace|trace_connect)*,(process)*)>
 <!ATTLIST platform version CDATA "0.0">
 
 <!ATTLIST random generator (DRAND48|RAND|RNGSTREAM|NONE) "DRAND48">
 
 <!ELEMENT trace_connect EMPTY>
-<!ATTLIST trace_connect kind (HOST_AVAIL|POWER|LINK_AVAIL|BANDWIDTH|LATENCY) "HOST_AVAIL">
+<!ATTLIST trace_connect kind (HOST_AVAIL|SPEED|LINK_AVAIL|BANDWIDTH|LATENCY) "HOST_AVAIL">
 <!ATTLIST trace_connect trace CDATA #REQUIRED>
 <!ATTLIST trace_connect element CDATA #REQUIRED>
 
 <!ELEMENT AS ((prop*), ((AS|ASroute|include|storage_type|storage|link|backbone|cabinet|router|host|gpu|cluster|peer|host_link)*,(route|ASroute|trace|trace_connect|bypassRoute|bypassASroute)*))>
 <!ATTLIST AS id CDATA #REQUIRED>
-<!ATTLIST AS routing (Full|Floyd|Dijkstra|DijkstraCache|None|Vivaldi|Cluster|Cluster_torus|Cluster_fat_tree) #REQUIRED>
+<!ATTLIST AS routing (Full|Floyd|Dijkstra|DijkstraCache|None|Vivaldi|Cluster|ClusterTorus|ClusterFatTree) #REQUIRED>
 
 <!ELEMENT storage_type ((model_prop|prop)*)>
 <!ATTLIST storage_type id       CDATA #REQUIRED>
@@ -46,7 +96,7 @@
 
 <!ELEMENT host (prop|mount|mstorage)*>
 <!ATTLIST host id CDATA #REQUIRED>
-<!ATTLIST host power CDATA #REQUIRED>
+<!ATTLIST host speed CDATA #REQUIRED>
 <!ATTLIST host core  CDATA "1">
 <!ATTLIST host availability CDATA "1.0">
 <!ATTLIST host availability_file CDATA "">
 <!ATTLIST cluster prefix CDATA #REQUIRED>
 <!ATTLIST cluster suffix CDATA #REQUIRED>
 <!ATTLIST cluster radical CDATA #REQUIRED>
-<!ATTLIST cluster power CDATA #REQUIRED>
+<!ATTLIST cluster speed CDATA #REQUIRED>
 <!ATTLIST cluster core CDATA "1">
 <!ATTLIST cluster bw CDATA #REQUIRED>
 <!ATTLIST cluster lat CDATA #REQUIRED>
 <!ATTLIST cluster topology (FLAT|TORUS|FAT_TREE) "FLAT">
 <!ATTLIST cluster topo_parameters CDATA "">
 <!ATTLIST cluster bb_bw CDATA "">
-<!ATTLIST cluster bb_lat CDATA "">
+<!ATTLIST cluster bb_lat CDATA "0s">
 <!ATTLIST cluster bb_sharing_policy (SHARED|FATPIPE) "SHARED">
 <!ATTLIST cluster availability_file CDATA "">
 <!ATTLIST cluster state_file CDATA "">
 <!ATTLIST cabinet prefix CDATA #REQUIRED>
 <!ATTLIST cabinet suffix CDATA #REQUIRED>
 <!ATTLIST cabinet radical CDATA #REQUIRED>
-<!ATTLIST cabinet power CDATA #REQUIRED>
+<!ATTLIST cabinet speed CDATA #REQUIRED>
 <!ATTLIST cabinet bw CDATA #REQUIRED>
 <!ATTLIST cabinet lat CDATA #REQUIRED>
 
 <!ELEMENT peer EMPTY>
 <!ATTLIST peer id CDATA #REQUIRED>
-<!ATTLIST peer power CDATA #REQUIRED>
+<!ATTLIST peer speed CDATA #REQUIRED>
 <!ATTLIST peer bw_in CDATA #REQUIRED>
 <!ATTLIST peer bw_out CDATA #REQUIRED>
 <!ATTLIST peer lat CDATA #REQUIRED>
 <!ATTLIST link id CDATA #REQUIRED>
 <!ATTLIST link bandwidth CDATA  #REQUIRED>
 <!ATTLIST link bandwidth_file CDATA "">
-<!ATTLIST link latency CDATA "0.0">
+<!ATTLIST link latency CDATA "0">
 <!ATTLIST link latency_file CDATA "">
 <!ATTLIST link state (ON|OFF) "ON">
 <!ATTLIST link state_file CDATA "">
similarity index 53%
rename from src/surf/simgrid_dtd.c
rename to src/surf/xml/simgrid_dtd.c
index 8fa6d34..c8b3eee 100644 (file)
@@ -1,5 +1,5 @@
 
-#line 3 "src/surf/simgrid_dtd.c"
+#line 3 "src/surf/xml/simgrid_dtd.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -198,11 +198,11 @@ extern FILE *surf_parse_in, *surf_parse_out;
      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
      *       One obvious solution it to make yy_act a global. I tried that, and saw
      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
+     *       normally declared as a variable-- so it is not worth it.
      */
     #define  YY_LESS_LINENO(n) \
             do { \
-                int yyl;\
+                unsigned int yyl;\
                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
                     if ( surf_parse_text[yyl] == '\n' )\
                         --surf_parse_lineno;\
@@ -419,7 +419,7 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[3466] =
+static yyconst flex_int16_t yy_accept[3477] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -450,348 +450,348 @@ static yyconst flex_int16_t yy_accept[3466] =
         0,    0,    0,    0,    0,    0,  596,  594,   15,   10,
        10,   15,   15,  574,   10,  574,    5,    6,    5,    8,
         9,    8,  590,  582,  583,  591,  588,  591,  589,  593,
-      582,  583,  593,  130,   10,  130,  130,  130,  128,  130,
-      130,  134,   10,  134,  134,  594,  134,  594,  594,  134,
-      453,   10,  453,  453,  453,  451,  453,  453,  453,  457,
-
-       10,  457,  594,  457,  532,   10,  532,  532,  532,  530,
-      532,  536,   10,  536,  384,   10,  384,  384,  384,  382,
-      384,  384,  384,  388,   10,  388,  500,   10,  500,  500,
-      500,  498,  500,  500,  500,  504,   10,  504,  504,  483,
-       10,  483,  483,  483,  481,  483,  483,  487,   10,  487,
-      487,  331,   10,  331,  331,  331,  329,  331,  331,  331,
-      331,  331,  331,  335,   10,  335,  308,   10,  308,  308,
-      308,  306,  308,  308,  308,  308,  308,  308,  308,  308,
-      308,  312,   10,  312,  312,  543,   10,  543,  543,  543,
-      541,  543,  547,   10,  547,  547,  234,   10,  234,  234,
-
-      234,  232,  234,  238,   10,  238,  204,   10,  204,  204,
-      204,  202,  204,  204,  204,  204,  204,  208,   10,  208,
-      594,  208,  249,   10,  249,  249,  249,  247,  249,  249,
-      249,  253,   10,  253,   33,   10,   33,   33,   33,   31,
-       33,   37,   10,   37,  594,   37,  415,   10,  415,  415,
-      415,  413,  415,  415,  415,  415,  419,   10,  419,  419,
-      470,   10,  470,  470,  470,  468,  470,  470,  474,   10,
-      474,  569,   10,  569,  569,  569,  567,  569,  569,  573,
-       10,  573,  162,   10,  162,  162,  162,  160,  162,  162,
-      166,   10,  166,  175,   10,  175,  175,  175,  173,  175,
-
-      175,  179,   10,  179,  356,   10,  356,  356,  356,  354,
-      356,  356,  356,  356,  356,  356,  356,  360,   10,  360,
-      594,   22,   10,   22,   22,   22,   20,   22,   26,   10,
-       26,   26,  594,   26,  594,   26,  521,   10,  521,  521,
-      521,  519,  521,  521,  521,  521,  521,  525,   10,  525,
-      594,  525,  556,   10,  556,  556,  556,  554,  556,  556,
-      560,   10,  560,   78,   10,   78,   78,   78,   76,   78,
-       78,   78,   78,   78,   82,   10,   82,  432,   10,  432,
-      432,  432,  430,  432,  432,  436,   10,  436,  436,  369,
-       10,  369,  369,  369,  367,  369,  369,  373,   10,  373,
-
-      223,   10,  223,  223,  223,  221,  223,  223,  223,  223,
-      227,   10,  227,  227,  149,   10,  149,  149,  149,  147,
-      149,  149,  149,  149,  153,   10,  153,  594,  153,   48,
-       10,   48,   48,   48,   46,   48,   48,   48,  591,  590,
-      101,   10,  101,  101,  101,   99,  101,  101,  101,  105,
-       10,  105,   10,    0,    2,    2,    0,    4,    7,  585,
-      584,    0,    0,    0,    0,    0,    0,  129,  131,  131,
-      131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      582,  583,  593,   40,   10,   40,   40,   40,   38,   40,
+       40,   44,   10,   44,   44,  594,   44,  594,  594,   44,
+       61,   10,   61,   61,   61,   59,   61,   61,   61,   65,
+
+       10,   65,  594,   65,   72,   10,   72,   72,   72,   70,
+       72,   76,   10,   76,   87,   10,   87,   87,   87,   85,
+       87,   87,   87,   91,   10,   91,  104,   10,  104,  104,
+      104,  102,  104,  104,  104,  108,   10,  108,  108,  117,
+       10,  117,  117,  117,  115,  117,  117,  121,   10,  121,
+      121,  140,   10,  140,  140,  140,  138,  140,  140,  140,
+      140,  140,  140,  144,   10,  144,  199,   10,  199,  199,
+      199,  197,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  203,   10,  203,  203,  210,   10,  210,  210,  210,
+      208,  210,  214,   10,  214,  214,  221,   10,  221,  221,
+
+      221,  219,  221,  225,   10,  225,  250,   10,  250,  250,
+      250,  248,  250,  250,  250,  250,  250,  254,   10,  254,
+      594,  254,  265,   10,  265,  265,  265,  263,  265,  265,
+      265,  269,   10,  269,  276,   10,  276,  276,  276,  274,
+      276,  280,   10,  280,  594,  280,  307,   10,  307,  307,
+      307,  305,  307,  307,  307,  307,  311,   10,  311,  311,
+      324,   10,  324,  324,  324,  322,  324,  324,  328,   10,
+      328,  337,   10,  337,  337,  337,  335,  337,  337,  341,
+       10,  341,  350,   10,  350,  350,  350,  348,  350,  350,
+      354,   10,  354,  363,   10,  363,  363,  363,  361,  363,
+
+      363,  367,   10,  367,  388,   10,  388,  388,  388,  386,
+      388,  388,  388,  388,  388,  388,  392,   10,  392,  594,
+      399,   10,  399,  399,  399,  397,  399,  403,   10,  403,
+      403,  594,  403,  594,  403,  420,   10,  420,  420,  420,
+      418,  420,  420,  420,  420,  420,  424,   10,  424,  594,
+      424,  433,   10,  433,  433,  433,  431,  433,  433,  437,
+       10,  437,  464,   10,  464,  464,  464,  462,  464,  464,
+      464,  464,  464,  468,   10,  468,  481,   10,  481,  481,
+      481,  479,  481,  481,  485,   10,  485,  485,  494,   10,
+      494,  494,  494,  492,  494,  494,  498,   10,  498,  513,
+
+       10,  513,  513,  513,  511,  513,  513,  513,  513,  517,
+       10,  517,  517,  532,   10,  532,  532,  532,  530,  532,
+      532,  532,  532,  536,   10,  536,  594,  536,  547,   10,
+      547,  547,  547,  545,  547,  547,  547,  591,  590,  569,
+       10,  569,  569,  569,  567,  569,  569,  569,  573,   10,
+      573,   10,    0,    2,    2,    0,    4,    7,  585,  584,
+        0,    0,    0,    0,    0,    0,   39,   41,   41,   41,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,  452,  454,  454,  454,  454,  454,    0,
-        0,  531,  533,  533,    0,  383,  385,  385,  385,  385,
-        0,  499,  501,  501,  501,  501,    0,  482,  484,  484,
-      484,    0,  330,  332,  332,  332,  332,  332,  332,  332,
-      332,    0,  307,  309,  309,  309,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-        0,  542,  544,  544,    0,  233,  235,  235,    0,  203,
-      205,  205,  205,  205,  205,  205,  205,    0,    0,  248,
-      250,  250,  250,  250,    0,   32,   34,   34,    0,    0,
-      414,  416,  416,  416,  416,  416,  416,    0,  469,  471,
-
-      471,  471,    0,  568,  570,  570,  570,    0,  161,  163,
-      163,  163,    0,  174,  176,  176,  176,    0,  355,  357,
-      357,  357,  357,  357,  357,  357,  357,    0,    0,   21,
-       23,   23,    0,    0,    0,    0,    0,    0,  520,  522,
-      522,  522,  522,  522,  522,    0,    0,  555,  557,  557,
-      557,    0,   77,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,    0,  431,  433,  433,  433,  433,    0,  368,
-      370,  370,  370,    0,  222,  224,  224,  224,  224,  224,
-        0,  148,  150,  150,  150,  150,  150,    0,    0,   47,
-       49,   49,   49,   49,    0,    0,    0,  100,  102,  102,
-
-      102,  102,    0,    0,    0,    0,    0,    3,    0,    0,
-        0,    0,    0,    0,    0,  592,    0,    0,  131,    0,
-        0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  106,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  106,    0,    0,  454,  454,
-      454,  454,    0,    0,    0,  533,    0,    0,  385,    0,
-        0,  385,    0,    0,  501,  501,  501,    0,    0,  484,
-      484,    0,    0,    0,    0,    0,    0,  332,  332,  332,
-      332,  332,    0,    0,  309,  309,    0,    0,  309,    0,
-
-        0,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309,  309,    0,    0,    0,    0,    0,    0,  235,    0,
-        0,  205,  205,  205,    0,    0,  205,  205,  205,    0,
-        0,    0,    0,  250,    0,    0,    0,    0,    0,    0,
-       34,    0,    0,  107,  416,    0,    0,  416,  416,  416,
-        0,    0,  471,    0,    0,    0,    0,    0,    0,  570,
-        0,    0,  163,  163,    0,    0,  176,  176,    0,    0,
-      357,  357,  357,    0,    0,  357,  357,  357,    0,    0,
-        0,   23,    0,    0,    0,    0,    0,  522,  522,  522,
-      522,  522,    0,    0,    0,    0,    0,  557,    0,    0,
-
-       79,    0,    0,   79,   79,   79,   79,   79,   79,    0,
-        0,  433,  433,  433,    0,    0,  370,    0,    0,    0,
-        0,  224,  224,    0,    0,  224,    0,    0,  150,    0,
-        0,  150,  150,    0,    0,    0,   49,    0,    0,   49,
-        0,    0,    0,  587,  102,  102,  102,    0,    0,    0,
-       14,    1,    0,    0,  580,    0,    0,    0,  577,  576,
-        0,    0,  109,  108,  131,    0,    0,  133,    0,  107,
-        0,    0,    0,    0,    0,    0,    0,  229,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  106,    0,    0,    0,    0,    0,  228,    0,
 
+        0,    0,   60,   62,   62,   62,   62,   62,    0,    0,
+       71,   73,   73,    0,   86,   88,   88,   88,   88,    0,
+      103,  105,  105,  105,  105,    0,  116,  118,  118,  118,
+        0,  139,  141,  141,  141,  141,  141,  141,  141,  141,
+        0,  198,  200,  200,  200,  200,  200,  200,  200,  200,
+      200,  200,  200,  200,  200,  200,  200,  200,  200,    0,
+      209,  211,  211,    0,  220,  222,  222,    0,  249,  251,
+      251,  251,  251,  251,  251,  251,    0,    0,  264,  266,
+      266,  266,  266,    0,  275,  277,  277,    0,    0,  306,
+      308,  308,  308,  308,  308,  308,    0,  323,  325,  325,
+
+      325,    0,  336,  338,  338,  338,    0,  349,  351,  351,
+      351,    0,  362,  364,  364,  364,    0,  387,  389,  389,
+      389,  389,  389,  389,  389,  389,    0,    0,  398,  400,
+      400,    0,    0,    0,    0,    0,    0,  419,  421,  421,
+      421,  421,  421,  421,    0,    0,  432,  434,  434,  434,
+        0,  463,  465,  465,  465,  465,  465,  465,  465,  465,
+      465,    0,  480,  482,  482,  482,  482,    0,  493,  495,
+      495,  495,    0,  512,  514,  514,  514,  514,  514,    0,
+      531,  533,  533,  533,  533,  533,    0,    0,  546,  548,
+      548,  548,  548,    0,    0,    0,  568,  570,  570,  570,
+
+      570,    0,    0,    0,    0,    0,    3,    0,    0,    0,
+        0,    0,    0,    0,  592,    0,    0,   41,    0,    0,
+       17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      454,  454,    0,    0,  454,    0,    0,  456,    0,    0,
-      533,    0,    0,  535,    0,  385,    0,  377,  376,  385,
-        0,    0,  387,    0,    0,    0,  501,  501,    0,    0,
-        0,    0,  503,    0,    0,    0,    0,    0,    0,    0,
-      486,    0,    0,  326,  325,    0,  316,  315,    0,    0,
-      332,  332,  332,  332,    0,    0,  334,    0,  309,  309,
-      309,  309,    0,  269,  268,  309,    0,  257,  256,    0,
-        0,  309,  309,  309,  309,  309,  309,  309,  309,  309,
-      309,    0,    0,  311,    0,    0,  540,  539,    0,    0,
-
-      546,    0,  235,    0,    0,  237,    0,  205,  205,  205,
-        0,  183,  182,  205,  205,  205,    0,    0,  207,    0,
-        0,    0,  250,    0,  242,  241,    0,  244,  243,    0,
-        0,  252,    0,   34,    0,    0,   36,    0,  416,    0,
-      392,  391,  416,  416,  416,    0,    0,  418,    0,  471,
-        0,  461,  460,    0,    0,  473,    0,    0,  564,  563,
-      570,    0,    0,  572,    0,  163,  163,    0,    0,  165,
-        0,  176,  176,    0,    0,  178,    0,  357,  357,  357,
-      357,    0,  339,  338,    0,    0,  357,  357,    0,    0,
-      359,    0,    0,   23,    0,    0,   25,    0,    0,    0,
-
-        0,  522,  522,  522,  522,  522,    0,    0,  524,    0,
-        0,    0,  551,  550,  557,    0,    0,  559,    0,   79,
-        0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
-       79,    0,    0,   81,    0,    0,    0,    0,    0,  433,
-        0,    0,  435,    0,  370,    0,  364,  363,    0,    0,
-      372,    0,  224,  224,    0,  212,  211,  224,    0,    0,
-      226,    0,  150,    0,  138,  137,  150,  150,    0,    0,
-      152,    0,    0,   49,    0,   41,   40,   49,    0,    0,
-        0,   51,    0,  102,  102,  102,    0,    0,  104,    0,
-        0,    0,  581,  575,    0,    0,  131,    0,  132,    0,
-
-        0,    0,    0,    0,    0,    0,  229,  181,    0,  390,
-        0,    0,    0,  337,    0,    0,  549,    0,    0,    0,
-        0,  548,    0,    0,    0,    0,    0,  228,  180,    0,
-      389,  336,    0,    0,    0,    0,    0,    0,  442,  441,
-      454,  454,    0,  440,  439,  454,    0,  389,  533,    0,
-      385,  385,    0,    0,  493,  492,  501,  501,    0,  491,
-      490,    0,    0,  480,  479,    0,  478,  477,    0,    0,
-      328,  327,  332,  332,  332,  332,    0,  309,  309,  309,
-      309,    0,    0,    0,  271,  270,  309,  309,  309,  309,
-      309,  309,  309,  309,  309,  309,  309,    0,    0,    0,
-
-        0,    0,  205,  205,    0,    0,  205,  205,  205,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  416,  416,
-      416,  416,    0,  471,    0,  570,    0,    0,    0,  163,
-        0,    0,    0,  176,    0,  357,  357,  357,  357,    0,
-      347,  346,  357,  357,    0,    0,   23,    0,    0,    0,
-        0,  522,    0,    0,  522,  522,  522,    0,    0,  557,
-        0,   79,    0,   59,   58,    0,    0,    0,   57,   56,
-       79,    0,    0,   79,    0,    0,  425,  424,    0,  423,
-      422,  433,    0,  370,    0,  224,  224,  224,    0,  150,
-      150,    0,    0,    0,    0,    0,    0,   49,    0,    0,
-
-      102,    0,    0,  102,    0,    0,    0,    0,   12,    0,
-      578,  579,  131,    0,    0,    0,    0,    0,    0,    0,
-      181,    0,    0,  390,    0,    0,  154,    0,  337,    0,
-        0,  549,    0,  421,    0,   39,  548,    0,    0,    0,
-        0,    0,  180,    0,    0,  389,  336,  420,    0,   38,
-      421,  420,  454,  454,  454,    0,    0,    0,    0,    0,
-      385,  385,    0,  501,  501,    0,    0,    0,    0,  332,
-      332,  332,    0,  309,    0,    0,  309,  309,    0,  267,
-      266,  309,  309,    0,    0,  309,  309,  309,  309,  309,
-      309,  309,  309,    0,    0,    0,  231,  230,    0,  236,
-
-      205,  205,    0,  187,  186,    0,    0,  205,    0,    0,
-      205,    0,  155,    0,    0,  246,  245,    0,    0,   30,
-       29,    0,  416,  416,  416,    0,    0,  416,    0,  471,
-        0,    0,    0,    0,    0,  159,  158,  163,    0,    0,
-      172,  171,  176,    0,  357,    0,    0,  357,  357,    0,
-        0,  357,    0,    0,   23,    0,    0,    0,    0,  522,
-        0,  508,  507,  522,  522,  522,    0,    0,    0,    0,
-        0,   79,    0,   61,   60,   79,    0,   65,   64,   79,
-        0,  433,    0,  370,    0,  224,  224,  224,    0,  150,
-        0,    0,    0,  142,  141,    0,    0,    0,   43,   42,
-
-       49,    0,    0,  102,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   11,  131,    0,    0,    0,    0,    0,
-        0,  537,    0,    0,    0,    0,  154,    0,    0,    0,
-       52,  421,  362,    0,   39,    0,    0,    0,    0,    0,
-        0,    0,    0,  420,  361,    0,   38,    0,    0,    0,
-        0,    0,  454,    0,    0,    0,  529,  528,    0,  385,
-      385,    0,    0,    0,    0,    0,    0,    0,    0,  324,
-      323,    0,    0,  332,    0,    0,    0,  309,    0,  287,
-      286,    0,    0,  309,  309,  309,    0,  265,  264,    0,
-        0,  309,  309,  309,  309,    0,    0,  309,  309,    0,
-
-        0,  205,  205,    0,  185,  184,    0,    0,    0,    0,
-        0,  205,    0,  206,  155,    0,    0,    0,  416,  416,
-      416,    0,    0,    0,  416,    0,  417,  471,    0,    0,
-      566,  565,    0,  163,    0,    0,    0,    0,  357,    0,
-      343,  342,    0,    0,  357,    0,  341,  340,  357,    0,
-      358,    0,   23,    0,  538,    0,   53,  522,  522,  522,
-      522,    0,    0,    0,  553,  552,    0,  558,   79,   79,
-       79,    0,  433,    0,  370,    0,    0,    0,  224,    0,
-        0,    0,  150,    0,  140,  139,    0,    0,   49,    0,
-        0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,   96,   95,    0,    0,    0,    0,    0,    0,  438,
-        0,    0,    0,    0,  314,  255,  537,    0,   28,    0,
-        0,    0,    0,  505,   52,  362,  210,    0,  437,    0,
-        0,    0,  313,  254,    0,   27,  361,  209,    0,    0,
-      446,  445,    0,  444,  443,  454,    0,    0,    0,  385,
-        0,    0,    0,    0,  497,  496,    0,  495,  494,    0,
-        0,    0,  318,  317,    0,    0,    0,  320,  319,    0,
-      309,    0,  289,  288,  309,  309,  309,    0,  259,  258,
-        0,    0,  309,  309,  309,    0,  261,  260,  309,  309,
-        0,    0,  205,  205,    0,  201,  200,    0,    0,  205,
-
-        0,    0,    0,  416,    0,    0,  416,  416,    0,    0,
-      416,  471,    0,    0,  163,    0,  164,    0,  170,  169,
-        0,  357,    0,  345,  344,  357,  357,    0,    0,    0,
-        0,  538,  506,   53,  522,  522,  522,  522,    0,    0,
-       79,    0,    0,   79,    0,  433,    0,  434,  370,    0,
-        0,  220,  219,    0,    0,  224,    0,  214,  213,    0,
-        0,    0,  150,    0,    0,   49,    0,    0,   50,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  438,  526,
-      375,    0,    0,  314,  255,    0,   28,  458,    0,  167,
-
-       16,  505,  210,    0,    0,  437,  374,    0,    0,  313,
-      254,    0,   27,  209,    0,    0,  454,    0,  459,    0,
-      385,    0,  381,  380,    0,    0,    0,    0,  322,  321,
-        0,  309,  309,  309,  309,    0,  263,  262,  309,  309,
-      309,  309,    0,    0,    0,    0,  545,  205,  205,    0,
-        0,    0,    0,  205,  168,    0,    0,  416,    0,  398,
-      397,  416,  416,    0,    0,    0,    0,  416,  471,    0,
-        0,  163,    0,  357,  357,  357,   17,    0,   19,   18,
-        0,  506,    0,    0,  522,  522,  522,    0,  527,   79,
-        0,   67,   66,   79,    0,   80,  433,  370,    0,  371,
-
-        0,  216,  215,  224,    0,    0,  144,  143,  150,    0,
-        0,   49,  586,    0,   98,   97,    0,    0,    0,    0,
+        0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   16,    0,    0,   62,   62,   62,
+       62,    0,    0,    0,   73,    0,    0,   88,    0,    0,
+       88,    0,    0,  105,  105,  105,    0,    0,  118,  118,
+        0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
+      141,    0,    0,  200,  200,    0,    0,  200,    0,    0,
+
+      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
+      200,    0,    0,    0,    0,    0,    0,  222,    0,    0,
+      251,  251,  251,    0,    0,  251,  251,  251,    0,    0,
+        0,    0,  266,    0,    0,    0,    0,    0,    0,  277,
+        0,    0,   17,  308,    0,    0,  308,  308,  308,    0,
+        0,  325,    0,    0,    0,    0,    0,    0,  338,    0,
+        0,  351,  351,    0,    0,  364,  364,    0,    0,  389,
+      389,  389,    0,    0,  389,  389,  389,    0,    0,    0,
+      400,    0,    0,    0,    0,    0,  421,  421,  421,  421,
+      421,    0,    0,    0,    0,    0,  434,    0,    0,  465,
+
+        0,    0,  465,  465,  465,  465,  465,  465,    0,    0,
+      482,  482,  482,    0,    0,  495,    0,    0,    0,    0,
+      514,  514,    0,    0,  514,    0,    0,  533,    0,    0,
+      533,  533,    0,    0,    0,  548,    0,    0,  548,    0,
+        0,    0,  587,  570,  570,  570,    0,    0,    0,   14,
+        1,    0,    0,  580,    0,    0,    0,  577,  576,    0,
+        0,   19,   18,   41,    0,    0,   43,    0,   17,    0,
+        0,    0,    0,    0,    0,    0,  216,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   16,    0,    0,    0,    0,    0,  215,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   62,
+       62,    0,    0,   62,    0,    0,   64,    0,    0,   73,
+        0,    0,   75,    0,   88,    0,   82,   81,   88,    0,
+        0,   90,    0,    0,    0,  105,  105,    0,    0,    0,
+        0,  107,    0,    0,    0,    0,    0,    0,    0,  120,
+        0,    0,  125,  124,    0,  127,  126,    0,    0,  141,
+      141,  141,  141,    0,    0,  143,    0,  200,  200,  200,
+      200,    0,  158,  157,  200,    0,  162,  161,    0,    0,
+      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
+        0,    0,  202,    0,    0,  207,  206,    0,    0,  213,
+
+        0,  222,    0,    0,  224,    0,  251,  251,  251,    0,
+      237,  236,  251,  251,  251,    0,    0,  253,    0,    0,
+        0,  266,    0,  260,  259,    0,  262,  261,    0,    0,
+      268,    0,  277,    0,    0,  279,    0,  308,    0,  288,
+      287,  308,  308,  308,    0,    0,  310,    0,  325,    0,
+      321,  320,    0,    0,  327,    0,    0,  332,  331,  338,
+        0,    0,  340,    0,  351,  351,    0,    0,  353,    0,
+      364,  364,    0,    0,  366,    0,  389,  389,  389,  389,
+        0,  379,  378,    0,    0,  389,  389,    0,    0,  391,
+        0,    0,  400,    0,    0,  402,    0,    0,    0,    0,
+
+      421,  421,  421,  421,  421,    0,    0,  423,    0,    0,
+        0,  428,  427,  434,    0,    0,  436,    0,  465,    0,
+      449,  448,    0,    0,  465,    0,    0,  465,  465,  465,
+        0,    0,  467,    0,    0,    0,    0,    0,  482,    0,
+        0,  484,    0,  495,    0,  491,  490,    0,    0,  497,
+        0,  514,  514,    0,  508,  507,  514,    0,    0,  516,
+        0,  533,    0,  525,  524,  533,  533,    0,    0,  535,
+        0,    0,  548,    0,  542,  541,  548,    0,    0,    0,
+      550,    0,  570,  570,  570,    0,    0,  572,    0,    0,
+        0,  581,  575,    0,    0,   41,    0,   42,    0,    0,
+
+        0,    0,    0,    0,    0,  216,  227,    0,  282,    0,
+        0,    0,  369,    0,    0,  426,    0,    0,    0,    0,
+      425,    0,    0,    0,    0,    0,  215,  226,    0,  281,
+      368,    0,    0,    0,    0,    0,    0,   48,   47,   62,
+       62,    0,   54,   53,   62,    0,  281,   73,    0,   88,
+       88,    0,    0,   95,   94,  105,  105,    0,  101,  100,
+        0,    0,  112,  111,    0,  114,  113,    0,    0,  129,
+      128,  141,  141,  141,  141,    0,  200,  200,  200,  200,
+        0,    0,    0,  164,  163,  200,  200,  200,  200,  200,
+      200,  200,  200,  200,  200,  200,    0,    0,    0,    0,
+
+        0,  251,  251,    0,    0,  251,  251,  251,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  308,  308,  308,
+      308,    0,  325,    0,  338,    0,    0,    0,  351,    0,
+        0,    0,  364,    0,  389,  389,  389,  389,    0,  381,
+      380,  389,  389,    0,    0,  400,    0,    0,    0,    0,
+      421,    0,    0,  421,  421,  421,    0,    0,  434,    0,
+      465,    0,  451,  450,    0,    0,    0,  455,  454,  465,
+        0,    0,  465,    0,    0,  472,  471,    0,  474,  473,
+      482,    0,  495,    0,  514,  514,  514,    0,  533,  533,
+        0,    0,    0,    0,    0,    0,  548,    0,    0,  570,
+
+        0,    0,  570,    0,    0,    0,    0,   12,    0,  578,
+      579,   41,    0,    0,    0,    0,    0,    0,    0,  227,
+        0,    0,  282,    0,    0,  342,    0,  369,    0,    0,
+      426,    0,  470,    0,  538,  425,    0,    0,    0,    0,
+        0,  226,    0,    0,  281,  368,  469,    0,  537,  470,
+      469,   62,   62,   62,    0,    0,    0,    0,    0,   88,
+       88,    0,  105,  105,    0,    0,  141,  141,    0,    0,
+      141,    0,  200,    0,    0,  200,  200,    0,  160,  159,
+      200,  200,  200,  200,  200,  200,    0,    0,  200,  200,
+      200,  200,    0,    0,    0,  218,  217,    0,  223,  251,
+
+      251,    0,  235,  234,  251,    0,    0,    0,    0,  251,
+        0,  343,    0,    0,  258,  257,    0,    0,  273,  272,
+        0,  308,  308,  308,    0,    0,  308,    0,  325,    0,
+        0,    0,    0,    0,  345,  344,  351,    0,    0,  358,
+      357,  364,    0,  389,    0,    0,  389,  389,    0,    0,
+      389,    0,    0,  400,    0,    0,    0,    0,  421,    0,
+      409,  408,  421,  421,  421,    0,    0,    0,    0,    0,
+      465,    0,  453,  452,  465,    0,  459,  458,  465,    0,
+      482,    0,  495,    0,  514,  514,  514,    0,  533,    0,
+        0,    0,  529,  528,    0,    0,    0,  540,  539,  548,
+
+        0,    0,  570,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   11,   41,    0,    0,    0,    0,    0,    0,
+      204,    0,    0,    0,    0,  342,    0,    0,    0,  438,
+      470,  487,    0,  538,    0,    0,    0,    0,    0,    0,
+        0,    0,  469,  486,    0,  537,    0,    0,    0,    0,
+        0,   62,    0,    0,    0,   69,   68,    0,   88,   88,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  141,
+        0,  135,  134,    0,    0,    0,  200,    0,  150,  149,
+        0,    0,  200,  200,  200,    0,    0,  200,  200,  200,
+        0,  184,  183,  200,    0,    0,  200,  200,    0,    0,
+
+      251,  251,    0,    0,    0,  241,  240,    0,    0,    0,
+      251,    0,  252,  343,    0,    0,    0,  308,  308,  308,
+        0,    0,    0,  308,    0,  309,  325,    0,    0,  334,
+      333,    0,  351,    0,    0,    0,    0,  389,    0,  373,
+      372,    0,    0,  389,    0,  383,  382,  389,    0,  390,
+        0,  400,    0,  205,    0,  439,  421,  421,  421,  421,
+        0,    0,    0,  430,  429,    0,  435,  465,  465,  465,
+        0,  482,    0,  495,    0,    0,    0,  514,    0,    0,
+        0,  533,    0,  527,  526,    0,    0,  548,    0,    0,
+      570,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+      566,  565,    0,    0,    0,    0,    0,    0,   46,    0,
+        0,    0,    0,  123,  146,  204,    0,  271,    0,    0,
+        0,    0,  404,  438,  487,  500,    0,   45,    0,    0,
+        0,  122,  145,    0,  270,  486,  499,    0,    0,   50,
+       49,    0,   52,   51,   62,    0,    0,    0,   88,    0,
+        0,    0,    0,   97,   96,    0,   99,   98,    0,    0,
+        0,  131,  130,    0,    0,    0,  137,  136,    0,  200,
+        0,  152,  151,  200,  200,  200,    0,  172,  171,    0,
+        0,  200,  200,  200,    0,  188,  187,  200,  200,    0,
+        0,  251,  251,    0,  239,  238,    0,    0,  251,    0,
+
+        0,    0,  308,    0,    0,  308,  308,    0,    0,  308,
+      325,    0,    0,  351,    0,  352,    0,  360,  359,    0,
+      389,    0,  375,  374,  389,  389,    0,    0,    0,    0,
+      205,  405,  439,  421,  421,  421,  421,    0,    0,  465,
+        0,    0,  465,    0,  482,    0,  483,  495,    0,    0,
+      502,  501,    0,    0,  514,    0,  510,  509,    0,    0,
+        0,  533,    0,    0,  548,    0,    0,  549,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      526,  375,    0,    0,  240,  458,    0,  167,   16,    0,
-        0,  374,    0,    0,  239,    0,    0,  454,    0,  455,
-      459,    0,    0,    0,    0,    0,    0,    0,  333,  309,
-      309,  309,  309,  309,    0,    0,  309,  309,  309,    0,
-        0,    0,    0,  310,  205,  205,    0,  193,    0,  192,
-      205,  168,    0,    0,   35,    0,    0,  416,  416,  416,
-
-        0,  402,    0,  401,  416,    0,    0,    0,    0,    0,
-        0,    0,  357,  357,  357,   17,    0,    0,  510,  509,
-        0,    0,  522,  522,    0,  523,  527,    0,    0,   79,
-      433,  370,  224,    0,  225,  150,    0,    0,   49,    0,
+        0,    0,    0,    0,    0,    0,    0,   46,   66,   78,
+        0,    0,  123,  146,    0,  271,  312,    0,  355,  393,
+
+      404,  500,    0,    0,   45,   77,    0,    0,  122,  145,
+        0,  270,  499,    0,    0,   62,    0,  313,    0,   88,
+        0,   84,   83,    0,    0,    0,    0,  133,  132,    0,
+      200,  200,  200,  200,    0,  174,  173,  200,  200,  200,
+      200,    0,    0,    0,    0,  212,  251,  251,    0,    0,
+        0,    0,  251,  356,    0,    0,  308,    0,  290,  289,
+      308,  308,    0,    0,    0,    0,  308,  325,    0,    0,
+      351,    0,  389,  389,  389,  394,    0,  396,  395,    0,
+      405,    0,    0,  421,  421,  421,    0,   67,  465,    0,
+      457,  456,  465,    0,  466,  482,  495,    0,  496,    0,
+
+      504,  503,  514,    0,    0,  521,  520,  533,    0,    0,
+      548,  586,    0,  554,  553,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   66,
+       78,    0,    0,  256,  312,    0,  355,  393,    0,    0,
+       77,    0,    0,  255,    0,    0,   62,    0,   63,  313,
+        0,    0,    0,    0,    0,    0,    0,  142,  200,  200,
+      200,  200,  200,    0,    0,  200,  200,  200,    0,    0,
+        0,    0,  201,  251,  251,    0,  243,    0,  242,  251,
+      356,    0,    0,  278,    0,    0,  308,  308,  308,    0,
+
+      300,    0,  299,  308,    0,    0,    0,    0,    0,    0,
+        0,  389,  389,  389,  394,    0,    0,  407,  406,    0,
+        0,  421,  421,    0,  422,   67,    0,    0,  465,  482,
+      495,  514,    0,  515,  533,    0,    0,  548,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  240,  561,    0,
-        0,    0,    0,  239,    0,    0,  454,    0,  534,    0,
-      379,  378,    0,  386,    0,    0,  309,  309,  309,  309,
-      309,    0,  299,  298,  309,    0,    0,  309,    0,    0,
-
-        0,    0,  205,  205,  195,  194,    0,    0,    0,    0,
-      394,  393,  416,  416,  416,  404,  403,    0,    0,    0,
-        0,    0,    0,  472,    0,    0,  157,  156,    0,  177,
-      357,  357,    0,    0,    0,   24,    0,  514,  513,    0,
-        0,    0,    0,    0,    0,    0,   79,  433,  370,  224,
-      150,    0,  562,   49,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  256,  329,    0,    0,
+        0,    0,  255,    0,    0,   62,    0,   74,    0,   80,
+       79,    0,   89,    0,    0,  200,  200,  200,  200,  200,
+        0,  176,  175,  200,    0,    0,  200,    0,    0,    0,
+
+        0,  251,  251,  245,  244,    0,    0,    0,    0,  284,
+      283,  308,  308,  308,  302,  301,    0,    0,    0,    0,
+        0,    0,  326,    0,    0,  347,  346,    0,  365,  389,
+      389,    0,    0,    0,  401,    0,  411,  410,    0,    0,
+        0,    0,    0,    0,    0,  465,  482,  495,  514,  533,
+        0,  330,  548,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  476,  561,    0,    0,    0,  475,    0,    0,    0,
-        0,    0,    0,  309,  309,  309,    0,    0,  309,  309,
-
-        0,  297,  296,  309,    0,    0,    0,    0,    0,    0,
-      205,    0,    0,    0,  197,  196,    0,  251,  416,  416,
-      416,    0,  406,  405,    0,    0,    0,    0,    0,    0,
-        0,  357,    0,    0,    0,  353,  352,    0,    0,    0,
-        0,  512,  511,    0,    0,    0,    0,    0,    0,   79,
-        0,    0,    0,    0,  224,  150,    0,  562,    0,    0,
-        0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  476,  136,    0,
-        0,  475,  135,    0,    0,    0,    0,    0,    0,  309,
-
-      309,    0,    0,    0,  303,  302,    0,    0,  309,  309,
-        0,    0,    0,    0,    0,    0,    0,    0,  205,    0,
-      199,  198,  416,    0,    0,  416,    0,    0,    0,    0,
-        0,    0,    0,  571,  357,    0,  349,  348,    0,    0,
+      110,  329,    0,    0,    0,  109,    0,    0,    0,    0,
+        0,    0,  200,  200,  200,    0,    0,  200,  200,    0,
+
+      186,  185,  200,    0,    0,    0,    0,    0,    0,  251,
+        0,    0,    0,  247,  246,    0,  267,  308,  308,  308,
+        0,  304,  303,    0,    0,    0,    0,    0,    0,    0,
+      389,    0,    0,    0,  385,  384,    0,    0,    0,    0,
+      417,  416,    0,    0,    0,    0,    0,    0,  465,    0,
+        0,    0,    0,  514,  533,    0,  330,    0,    0,    0,
+        0,    0,    0,  558,    0,    0,    0,    0,  557,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       79,    0,    0,    0,    0,  366,  365,    0,    0,    0,
-        0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  110,  519,    0,    0,
+      109,  518,    0,    0,    0,    0,    0,    0,  200,  200,
+
+        0,    0,    0,  168,  167,    0,    0,  200,  200,    0,
+        0,    0,    0,    0,    0,    0,    0,  251,    0,  233,
+      232,  308,    0,    0,  308,    0,    0,    0,    0,    0,
+        0,    0,  339,  389,    0,  377,  376,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  465,
+        0,    0,    0,    0,  489,  488,    0,    0,    0,    0,
+        0,    0,  544,  543,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
-      489,  136,   84,  488,  135,   83,    0,    0,    0,    0,
+       21,   29,    0,    0,    0,    0,   20,   28,    0,   93,
+      519,  552,   92,  518,  551,    0,    0,    0,    0,    0,
 
-        0,    0,  485,  309,  309,    0,  301,  300,    0,  305,
-      304,  309,  309,    0,    0,    0,    0,    0,    0,    0,
-      189,  188,  205,  416,    0,  400,  399,  416,    0,    0,
-      463,    0,    0,  462,  357,    0,    0,    0,    0,    0,
+        0,  119,  200,  200,    0,  166,  165,    0,  170,  169,
+      200,  200,    0,    0,    0,    0,    0,    0,    0,  229,
+      228,  251,  308,    0,  292,  291,  308,    0,    0,  315,
+        0,    0,  314,  389,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  218,  217,    0,  146,  145,    0,
-        0,    0,   94,    0,    0,    0,   93,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  113,    0,    0,
-        0,  112,    0,  489,   84,  488,   83,    0,    0,    0,
-        0,    0,  309,  309,    0,    0,  309,    0,  279,    0,
-
-        0,  278,    0,  205,    0,    0,    0,    0,    0,    0,
-        0,    0,  357,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   63,   62,    0,    0,
-        0,    0,    0,  151,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  506,  505,    0,  523,  522,    0,    0,
+        0,  564,    0,    0,    0,  563,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
+       22,    0,   93,  552,   92,  551,    0,    0,    0,    0,
+        0,  200,  200,    0,    0,  200,    0,  192,    0,    0,
+
+      191,    0,  251,    0,    0,    0,    0,    0,    0,    0,
+        0,  389,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  461,  460,    0,    0,    0,
+        0,    0,  534,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  450,    0,  449,    0,    0,  502,  309,
-      309,    0,    0,    0,    0,    0,    0,  281,    0,  280,
-      205,    0,  396,  395,    0,    0,    0,  465,  467,  464,
-      466,  357,  516,    0,  515,    0,    0,   75,   71,    0,
-        0,   74,   70,    0,  429,    0,  428,    0,   92,    0,
-
-        0,   91,    0,    0,    0,  103,    0,    0,    0,   12,
-        0,   12,    0,  123,    0,    0,  121,  122,    0,    0,
-      120,  448,  447,  309,  309,    0,    0,    0,    0,    0,
-      285,  284,    0,    0,  205,    0,    0,    0,    0,  357,
-        0,    0,    0,    0,    0,    0,  427,  426,   86,   90,
-       85,   89,    0,    0,    0,    0,    0,    0,    0,  115,
-        0,    0,    0,  114,    0,    0,    0,    0,    0,    0,
+        0,    0,   58,    0,   57,    0,    0,  106,  200,  200,
+        0,    0,    0,    0,    0,    0,  194,    0,  193,  251,
+        0,  286,  285,    0,    0,    0,  317,  319,  316,  318,
+      389,  413,    0,  412,    0,    0,  447,  443,    0,    0,
+      446,  442,    0,  478,    0,  477,    0,  562,    0,    0,
+
+      561,    0,    0,    0,  571,    0,    0,    0,   12,    0,
+       12,    0,   33,    0,    0,    0,   31,   32,    0,    0,
+        0,   30,   56,   55,  200,  200,    0,    0,    0,    0,
+        0,  190,  189,    0,    0,  251,    0,    0,    0,    0,
+      389,    0,    0,    0,    0,    0,    0,  476,  475,  556,
+      560,  555,  559,    0,    0,    0,    0,    0,    0,    0,
+       25,    0,    0,    0,   24,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,  295,  294,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  283,  282,    0,  191,  190,    0,    0,
-        0,    0,    0,    0,    0,  351,  350,    0,    0,   69,
-        0,   68,    0,    0,   11,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  518,  517,    0,
+        0,    0,    0,  148,  147,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  196,  195,    0,  231,  230,    0,
+        0,    0,    0,    0,    0,    0,  371,  370,    0,    0,
+      441,    0,  440,    0,    0,   11,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  415,  414,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   73,   72,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  445,  444,    0,    0,   35,
+        0,    0,   34,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  125,  117,    0,  124,  116,    0,    0,    0,    0,
-        0,    0,  273,    0,    0,  272,    0,    0,  408,    0,
-        0,  407,    0,    0,    0,    0,    0,    0,    0,  277,
-        0,  276,    0,  410,    0,  409,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  127,
-      126,    0,  291,    0,  290,    0,    0,    0,    0,    0,
-        0,  293,  292,  275,  274,  412,  411,    0,    0,    0,
+        0,    0,   27,    0,   26,    0,    0,    0,    0,    0,
+        0,  178,    0,    0,  177,    0,    0,  294,    0,    0,
+      293,    0,   37,   36,    0,    0,    0,    0,  182,    0,
+      181,    0,  296,    0,  295,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  154,    0,  153,
+        0,    0,    0,    0,    0,    0,  156,  155,  180,  179,
+      298,  297,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
@@ -801,7 +801,8 @@ static yyconst flex_int16_t yy_accept[3466] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   13,    0
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   13,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -848,7 +849,7 @@ static yyconst flex_int32_t yy_meta[75] =
         5,    5,    5,    5
     } ;
 
-static yyconst flex_int16_t yy_base[3973] =
+static yyconst flex_int16_t yy_base[3984] =
     {   0,
         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
@@ -876,979 +877,981 @@ static yyconst flex_int16_t yy_base[3973] =
      1923, 1967, 3230, 3287, 1970, 1973, 3344, 3412, 1977, 1980,
      2024, 2027, 2030, 2034, 2037, 2054, 3480, 3547, 2094, 2097,
      2100, 2104, 2107, 2124, 2164, 2167, 3614, 3678, 2180, 2189,
-     3742, 3810, 2171, 2176,    0,    0, 9402,12512,12512,   95,
-      100,   29,   41,12512,  103,   51,12512,12512, 9391,12512,
-    12512, 9376,12512, 9391, 9391,  164,12512,12512,12512,12512,
-     9385, 9385, 9340,12512,  158, 9362,    0,  142,12512, 9329,
-     9317,12512,  164, 3874, 9311, 3938, 2183, 1362, 9362,   31,
-    12512,  253, 9353,    0,  143,12512, 9301, 9296,   84,12512,
-
-      258,  253,  109,  141,12512,  322, 9346,    0,  209,12512,
-     9312,12512,  325,  372,12512,  328, 9340,    0,  218,12512,
-     9310, 9302, 9304,12512,  392,  380,12512,  395, 9332,    0,
-      242,12512, 9280, 9275, 9279,12512,  455,  451,  246,12512,
-      458, 9320,    0,  245,12512, 9272, 9272,12512,  462,  457,
-      287,12512,  525, 9313,    0,  313,12512, 9261, 9279, 9277,
-       25, 9276, 9255,12512,  528,  579,12512,  531, 9299,    0,
-      370,12512, 9248,  101, 9254, 9260,  317,  175,  258,  526,
-     9248,12512,  534, 9298,  377,12512,  594, 9285,    0,  446,
-    12512, 9252,12512,  652, 9291,  388,12512,  716, 9278,    0,
-
-      580,12512, 9248,12512,  719,  639,12512,  722, 9276,    0,
-      636,12512, 9221, 9227, 9237,  638, 9216,12512,  783,  272,
-     9222,  569,12512,  786, 9262,    0,  637,12512, 9214, 9224,
-     9211,12512,  789,  833,12512,  847, 9250,    0,  640,12512,
-     9212,12512,  853, 2188, 9256,  681,12512,  856, 9243,    0,
-      706,12512, 9213, 9209, 9207,   15,12512,  914, 9243,  704,
-    12512,  917, 9234,    0,  707,12512, 9192, 9196,12512,  920,
-      841,12512,  923, 9227,    0,  773,12512, 9190, 9192,12512,
-      980,  967,12512,  989, 9220,    0,  774,12512, 9186, 9166,
-    12512, 1047, 1034,12512, 1056, 9213,    0,  831,12512, 9179,
-
-     9154,12512, 1188, 1289,12512, 1245, 9206,    0,  907,12512,
-     9151, 9149, 9156, 8586, 8588, 8572, 8566,12512, 1302, 1290,
-      964,12512, 1305, 8613,    0,  908,12512, 8579,12512, 1364,
-     1429,  748, 1305,  771, 8567,  815,12512, 1432, 8610,    0,
-      965,12512, 8560, 8564, 8569, 8562, 8548,12512, 1435,   11,
-     8566,  882,12512, 1494, 8593,    0,  968,12512, 8553, 8554,
-    12512, 1499, 1352,12512, 1502, 8582,    0, 1031,12512, 8547,
-     8543, 1358, 8545,   71,12512, 1561, 1547,12512, 1567, 8572,
-        0, 1032,12512, 8519, 1114,12512, 1570, 1419,  949,12512,
-     1573, 8564,    0, 1035,12512, 8517, 8526,12512, 1630, 1616,
-
-    12512, 1636, 8557,    0, 1172,12512, 8499, 8493, 8503, 8472,
-    12512, 1639, 8532, 1171,12512, 1642, 8522,    0, 1173,12512,
-     8469, 8473, 8461, 8465,12512, 1806, 1176, 8460, 1228,12512,
-     1815, 8484,    0, 1229,12512, 8444, 8447, 8442, 1793, 8445,
-    12512, 1818, 8471,    0, 1292,12512, 8423, 8425, 8414,12512,
-     1873, 1860, 1882,  239, 8403,12512, 8464, 8452,12512,12512,
-    12512, 1874,  247, 8395, 8394, 8389, 8425,12512,    0, 2240,
-     8368, 8414, 8395, 8362,  369,  384, 8363, 8362, 8354, 8354,
-      839, 1185,  524, 8331, 8332, 1500, 8352,  439, 1369, 8326,
-     8325, 8325, 8328, 1569, 1296, 8309, 8310, 8335,  629, 1879,
-
-     1425, 1195, 1436,12512,    0, 8297, 8316, 8311, 8299, 8318,
-     8282,12512,    0, 8277, 8283,12512,    0, 8268, 2251, 8261,
-     8277,12512,    0, 8245, 8246, 8241, 8241,12512,    0, 8221,
-     8227, 8217,12512,    0, 2258, 2298, 8198, 8193, 8206, 8206,
-     8201, 8202,12512,    0, 8203, 8202, 2301, 8182, 2304, 8179,
-     8184, 8168, 8159, 8175, 8171, 8153, 8166, 8165, 8158, 8147,
-     8158,12512,    0, 2307, 8146,12512,    0, 8135, 8139,12512,
-        0, 8144,  405, 2310, 8112, 8114, 8131, 8116, 1415,12512,
-        0, 8098, 2366, 2369, 8108,12512,    0, 8102, 8104, 8120,
-    12512,    0, 8089, 2372, 8082, 8071, 8069, 8054,12512,    0,
-
-     8043, 2375, 8041,12512,    0, 2378, 8040, 8029,12512,    0,
-     8028, 8016, 8017,12512,    0, 8015, 8004, 8004,12512,    0,
-     8011, 8011, 7990, 2434, 7980, 7976, 7988, 7970, 7965,12512,
-        0, 7957, 7954, 1630, 1936, 1492, 1638, 1937,12512,    0,
-     7955, 7940, 7946, 7956, 7946, 7923, 7919,12512,    0, 2437,
-     7913, 7904,12512,    0, 7905, 2440, 7893, 7898, 7884, 7892,
-     7889, 7889, 7873,12512,    0, 7857, 7873, 7861, 7855,12512,
-        0, 7841, 2443, 7837,12512,    0, 7833, 7838, 2447, 7834,
-     7826,12512,    0, 7830, 2501, 7834, 7811, 7816, 1678,12512,
-        0, 7812, 2504, 7805,  493, 7801, 7844,12512,    0, 7810,
-
-     7799, 7807, 7781, 7827, 7836, 1334, 7783,12512, 2049,    0,
-     7769, 7768, 7813, 7811, 7763,12512, 2507, 2130, 7757, 2513,
-     2568, 2199, 7768, 7761, 7747, 7759, 7735, 7740, 7732, 7732,
-     7745, 7732,  489, 7722, 7728, 7731, 7715, 7708, 7699, 7704,
-     7712, 7694, 2264, 7704, 7681, 7693, 7672, 7667, 7668, 7682,
-     7666, 7670, 7636, 7641, 7653, 2272, 7632, 7630, 2510, 2582,
-     2571, 2579, 2576, 2639, 7636, 7612, 2589, 2648, 7628, 2642,
-     2330, 7625, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722,
-     2776, 2779, 2788, 2794, 2396, 2801, 2466, 2843, 2855, 2861,
-     2868, 2924, 2846, 2938, 7616, 1993, 2914, 2533, 7619, 2917,
-
-     2602, 2927, 7613, 7601, 7611, 7608, 7603, 7591, 7586, 7576,
-     7589, 7578, 2982, 2991, 2986, 2673, 2994, 3057, 7580, 3050,
-     3054, 7575, 7564, 7576, 2997, 2879, 7574, 7577, 7552, 3060,
-     3063, 1323, 7544, 7549, 3069, 2948, 3119, 3018, 3125, 3129,
-     7556, 3132, 3137, 2340, 7552, 3183, 3152, 7550, 7535, 7521,
-     3186, 3201, 7534, 3192, 3210, 3250, 3253, 3259, 3220, 7513,
-     3262, 3265, 7528, 7513, 3309, 3312, 7518, 7517, 3315, 3319,
-     7507,   37, 7496, 3322, 3364, 3375, 7508, 7490, 3378, 3385,
-     7508, 7488, 3432, 3442, 7492, 7489, 7479, 7489, 7470, 7472,
-     7475, 7457, 3437, 3445, 7467, 3381, 3400, 7442, 3451, 3503,
-
-     7454, 3506, 3464, 3510, 7443, 3513, 7435, 7439, 7441, 3516,
-     3581, 3568, 3571, 3576, 3636, 3639, 7412, 3643, 3536, 3646,
-     3649, 7428, 7399, 3701, 3603, 7396, 3706, 3711, 7380, 3714,
-     3661, 7385, 7384, 3719, 3764, 1390, 7382, 3767, 3771, 7377,
-     7402, 3779, 3788,12512, 7356, 7364, 7354, 3831, 3835, 7382,
-    12512,12512, 1727, 7323,12512, 7364, 7359, 7308,12512,12512,
-     7302, 3794,12512,12512, 7312, 3838, 3841,12512, 3844, 2065,
-     7301, 7294, 7298, 7307, 7297, 7276, 7286, 2407, 7266, 7273,
-     7272, 7276, 7266, 7260, 7255, 7252,  718, 7250, 7233, 7233,
-     7240, 1691, 2610, 7226, 7229, 7237, 7226, 7193, 2613, 7190,
-
-     7196, 7195, 7185, 7176, 7164, 7165, 7147, 7145, 3863, 3868,
-     7127, 7127, 3881, 3885, 7131, 3895, 3900,12512, 3906, 7123,
-     7128, 3942, 3945,12512, 3948, 7108, 3910,12512,12512, 7109,
-     3951, 3954,12512, 3976, 3903, 4005, 7103, 7102, 3973, 4013,
-     3980, 4021,12512, 4026, 4029, 4033, 4041, 4047, 4055, 4059,
-    12512, 4062, 4065,12512,12512, 4074,12512,12512, 4082, 4085,
-     7100, 7108, 7111, 7103, 4093, 4096,12512, 4100, 7092, 7075,
-     7090, 7078, 4103,12512,12512, 4115, 4119,12512,12512, 4127,
-     4133, 7065, 7066, 7049, 7049, 7054, 7046, 7040, 7036, 7031,
-      110, 4141, 4145,12512, 4149, 4153,12512,12512, 4164, 4168,
-
-    12512, 4171, 4174, 4177, 4183,12512, 4192, 7022, 7026, 4196,
-     4202,12512,12512, 7011, 6993, 7007, 4217, 4220,12512, 4223,
-     6993, 6990, 4226, 4232,12512,12512, 4244,12512,12512, 4252,
-     4255,12512, 4260, 4263, 4266, 4274,12512, 4281, 6980, 4289,
-    12512,12512, 6988, 6990, 6992, 4285, 4300,12512, 4304, 6993,
-     4307,12512,12512, 4315, 4319,12512, 4326, 4334,12512,12512,
-     6989, 4345, 4348,12512, 4351, 4354, 4357, 4360, 4375,12512,
-     4379, 4382, 4388, 4394, 4406,12512, 4409, 6981, 6962, 6949,
-     6965, 4413,12512,12512, 4421, 4428, 6923, 6915, 4439, 4442,
-    12512, 4447, 6896, 6905, 4450, 4453,12512, 4461, 6900, 1748,
-
-     6897, 6878, 4472, 6885, 6878, 6804, 4476, 4481,12512, 4484,
-     6802, 4503,12512,12512, 6804, 4491, 4495,12512, 4514, 6755,
-     4517,12512,12512, 4525, 4529, 4537, 4546, 4549, 6754, 4557,
-     6743, 4560, 4564,12512, 4567, 4570, 4579, 4588, 4591, 6740,
-     4599, 4602,12512, 4606, 6736, 4609,12512,12512, 4621, 4628,
-    12512, 4631, 6736, 6678, 4634,12512,12512, 6642, 4642, 4650,
-    12512, 4653, 6614, 4657,12512,12512, 6585, 4665, 4674, 4677,
-    12512, 4683, 6586, 4686, 4689,12512,12512, 4704, 6595, 4707,
-     4710,12512, 4715, 6564, 4718, 6561, 4722, 4729,12512, 4736,
-      821, 4741,12512,12512, 6572, 6506, 6460, 4748,12512, 6253,
-
-     6255, 6265, 6174, 6122, 6093, 6082, 2681, 2874,   20, 2887,
-      130,  148,  151, 2750,  192,  214, 2813,  259,  325,  339,
-      392, 2849,  445,  472,  551,  585,  636, 2852, 3089,  638,
-     3473, 2957,  662,  722,  719,  721,  786, 4751,12512,12512,
-      835,  854, 4767,12512,12512,  840, 4775, 3671, 4778, 4784,
-      918,  944, 4787, 4790,12512,12512,  974, 1011, 4799,12512,
-    12512, 4807, 4810,12512,12512, 4819,12512,12512, 4827, 4830,
-    12512,12512, 4838, 4841, 4846, 4859, 4864, 1105, 4867, 1101,
-     1132, 4870, 4879, 4888,12512,12512, 1158, 1177, 4896, 1211,
-     1242, 1246, 1268, 1305, 1291, 1308, 1350, 4899, 4902, 4905,
-
-     4908, 4923, 1367, 1362, 4926, 4930, 4938, 1368, 4944, 4947,
-     1418, 1442, 4950, 4956, 4968, 4971, 4974, 4982, 1452, 1475,
-     1487, 4991, 4994, 1482, 4997, 5001, 5004, 5009, 5023, 1523,
-     5031, 5019, 5041, 1543, 5056, 1561, 5059, 1550, 1562, 5062,
-    12512,12512, 5070, 1576, 5077, 1593, 1601, 5080, 1631, 1638,
-     1634, 1643, 5083, 5092, 1650, 1676, 1696, 5088, 1691, 5101,
-     5107, 1705, 5112,12512,12512, 5121, 5126, 5143,12512,12512,
-     1723, 5134, 5152, 1734, 5160, 5163,12512,12512, 5172,12512,
-    12512, 1727, 5180, 1739, 5183, 1745, 1749, 1763, 5186, 1777,
-     5189, 5192, 5195, 5211, 1794, 5214, 5217, 1810, 1841, 5225,
-
-     1804, 5234, 5237, 5252, 5255, 2026, 1848, 5258,12512, 1858,
-    12512,12512, 1824, 1814, 1853, 1858, 1862, 1877, 1880, 1880,
-     3531, 1880, 1891, 3725, 1893, 1915, 3734, 1929, 3802, 1923,
-     1920, 5261, 1931, 5264, 1945, 5270, 5277, 1933, 1957, 1968,
-     1991, 1994, 5280, 1989, 2002, 5283, 5286, 5289, 2004, 5292,
-     5295, 5298, 5301, 5305, 5310, 5313, 2014, 5319, 5333, 5323,
-     2018, 2000, 5342, 5346, 5349, 5354, 5367, 5375, 5387, 5395,
-     5398, 5401, 5404, 2040, 5407, 5426, 5434, 2039, 5437,12512,
-    12512, 2047, 2063, 5445, 5448, 5457, 2056, 2069, 2064, 2069,
-     5465, 2075, 2074, 5468, 5471, 5476,12512,12512, 5490,12512,
-
-     2080, 2073, 5493,12512,12512, 5501, 5505, 5513, 5519, 5531,
-     2083, 5522, 5527, 2089, 5541,12512,12512, 5549, 5552,12512,
-    12512, 5560, 2088, 2068, 2088, 5563, 5568, 2106, 5581, 2115,
-     5584, 5587, 5590, 5605, 5608,12512,12512, 2123, 5616, 5624,
-    12512,12512, 5619, 5637, 2127, 5640, 5643, 5651, 2119, 5658,
-     5665, 2132, 5676, 2124, 2134, 5679, 2144, 2137, 2147, 2146,
-     5683,12512,12512, 2177, 2175, 2169, 5691, 2185, 5698, 5703,
-     5711, 2172, 5716,12512,12512, 2181, 5726,12512,12512, 2176,
-     5734, 2182, 5737, 2188, 5743, 5746, 5749, 5756, 5767, 2195,
-     5770, 5774, 5782,12512,12512, 5790, 2216, 5796,12512,12512,
-
-     2212, 2231, 5804, 2204, 5809, 2298, 2637, 5817, 5823, 5831,
-     2308, 2321, 2342,12512, 5839, 2241, 2253, 2254, 2365, 2250,
-     2253, 5842, 2265, 2284, 2316, 2322, 5845, 2334, 2324, 2329,
-     5850, 5857, 5860, 2348, 5863, 2353, 2354, 2350, 2435, 2345,
-     2364, 2391, 2399, 5866, 5869, 2401, 5872, 2404, 5875, 5879,
-     5887, 5893, 2401, 5901, 2399, 5905,12512,12512, 5913, 2408,
-     5916, 5920, 5923, 5928, 5941, 5944, 5952, 5955, 5959,12512,
-    12512, 5974, 5978, 5986, 5992, 5995, 6004, 2420, 6011,12512,
-    12512, 6023, 6026, 2422, 2432, 2438, 6034,12512,12512, 6042,
-     6045, 6056, 2461, 2471, 2464, 6060, 6063, 2456, 2451, 6074,
-
-     6078, 2468, 2485, 6081,12512,12512, 6089, 6093, 6101, 2504,
-     2507, 2487, 6109,12512, 6112, 2491, 6115, 6118, 2479, 6121,
-     2516, 6128, 2540, 2541, 2530, 6139,12512, 2526, 6142, 6145,
-    12512,12512, 6153, 2567, 6161, 6164, 6176, 6184, 2542, 6188,
-    12512,12512, 6196, 6203, 2551, 6214,12512,12512, 2545, 6222,
-    12512, 2537, 6225, 6228, 6232, 2543, 6235, 2585, 2587, 2593,
-     2606, 6243, 2605, 6247,12512,12512, 6255,12512, 2606, 6258,
-     2615, 6262, 2623, 6265, 2632, 6268, 6276, 6290, 6298, 6301,
-     6305, 6322, 6325, 6329,12512,12512, 6337, 2622, 2636, 2682,
-     6345, 6348, 2691, 2692, 2707, 2703, 2718, 2707, 2763, 2709,
-
-     6352,12512,12512, 6360, 2768, 2787, 2801, 6366, 6372, 6380,
-     2678, 2696, 2711, 2721, 6384, 6387, 6391, 2725, 6394, 2738,
-     2740, 2757, 2751, 6397, 6400, 6403, 6407, 2756, 6410, 2791,
-     2821, 2810, 6413, 6416, 2813, 6419, 6422, 6425, 2821, 6428,
-    12512,12512, 6436,12512,12512, 2835, 6444, 2852, 6447, 2867,
-     6450, 6454, 6468, 6472,12512,12512, 6480,12512,12512, 6488,
-     6491, 6496,12512,12512, 6512, 6515, 6530,12512,12512, 6523,
-     2864, 6538,12512,12512, 2870, 2874, 2889, 6546,12512,12512,
-     6554, 6557, 2892, 2881, 2887, 6565,12512,12512, 2899, 6573,
-     6576, 6579, 2893, 2887, 6584,12512,12512, 2977, 2980, 2896,
-
-     2938, 6598, 6601, 2936, 6604, 6607, 2949, 2942, 2983, 3052,
-     2953, 2963, 6623, 6626, 2974, 6629,12512, 6632,12512,12512,
-     6648, 2985, 6654,12512,12512, 2987, 3008, 3008, 6662, 6667,
-     6675, 6680, 6683, 6690, 6694, 6697, 6702, 6705, 6708, 3010,
-     3015, 6715, 6723, 3033, 6733, 3034, 6736,12512, 3021, 6740,
-     6743,12512,12512, 6755, 6761, 3026, 6774,12512,12512, 6769,
-     6782, 6788, 3044, 6796, 3053, 3067, 3079, 6800,12512, 6804,
-     6808, 3095, 3105, 3106, 3112, 3107, 3116, 3114, 3119, 3125,
-     3119, 6822, 6825, 3197, 3205, 6828, 6811, 6816, 6852, 6857,
-     6860, 3113, 3122, 6863, 6866, 3134, 6872, 6875, 3134, 6878,
-
-     6881, 6884, 6887, 3130, 3138, 6890, 6893, 3135, 3138, 6896,
-     6899, 3149, 6902, 6905, 3150, 3158, 3178, 6908, 6911, 6914,
-     6917, 6920,12512,12512, 6928, 6935, 6938, 6941,12512,12512,
-     6949, 3171, 3191, 3202, 3224, 6957,12512,12512, 6968, 3208,
-     3222, 3218, 6973, 6982, 6976, 6991,12512, 3223, 3230, 3259,
-     3297, 3282, 3311, 3274, 6995, 7000, 7003, 7006, 7010,12512,
-    12512, 7024, 7027, 3303, 3325, 3309, 3328, 7030, 7033, 7036,
-     7055, 7061, 7064, 3283, 3289, 3290, 7067, 7070,12512,12512,
-     7083, 7089, 7092, 7098, 7106, 7110, 7116, 7120, 7124, 7128,
-     7139,12512,12512, 7134, 7147,12512, 3311, 3316, 7152,12512,
-
-     7155,12512,12512, 3298, 7171, 7174,12512,12512, 3299, 7183,
-     3311, 3308,12512, 7186,12512,12512, 3367, 3356, 3371, 3367,
-     3381, 3383, 3370, 3385, 3396, 3411, 7194, 7197, 3422, 3524,
-     3383, 3393, 3391, 3393, 3407, 3412, 3421, 3517, 3416, 3439,
-     7202, 7205, 3440, 3436, 7208, 7216, 3458, 7219, 7222, 3451,
-     3466, 7225, 3467, 3475, 7230, 3473, 3501, 3516, 7233,12512,
-     7236, 7239, 7243, 7246, 7261, 7264, 7267, 7270,12512, 3514,
-     3540, 3527, 3520, 3543, 7273, 7276, 3536, 7291, 3544, 7294,
-     3573, 3617, 7302,12512, 3531, 3535, 3597,12512, 3601,12512,
-     7305, 7309, 7312, 7315,12512, 7323, 7335, 3557, 3576, 3594,
-
-     3649,12512, 3649,12512, 7343, 7346, 7349, 7357, 7364, 7370,
-     7376, 7384, 3604, 3609, 7388, 7391, 7394, 7397,12512,12512,
-     7406, 7409, 7417, 7420, 7426,12512, 7429, 7438, 7441, 7449,
-     3617, 3627, 3636, 7452,12512, 3637, 7456, 3642, 3634, 3668,
-     3682, 3699, 3692, 3703, 3715, 3716, 3730, 3724, 3738, 7459,
-     3789, 3816, 3787, 3709, 3727, 3724, 3733, 3732, 3732, 3757,
-     3794, 3790, 3799, 3798, 3792, 3799, 3822, 7462, 7467, 3812,
-     3827, 3812, 3837, 7471, 3828, 3840, 7478, 7481,12512, 7484,
-    12512,12512, 7492,12512, 7496, 7500, 3838, 3853, 3859, 7506,
-     3853, 7524,12512,12512, 3870, 7515, 7533, 3860, 3948, 3896,
-
-     3964, 3897, 3863, 7541,12512,12512, 7544, 7547, 7511, 7563,
-    12512,12512, 3880, 3886, 3904,12512,12512, 7571, 7574, 7582,
-     3985, 4290, 7590,12512, 7593, 7596,12512,12512, 7604,12512,
-     3890, 7612, 7615, 7619, 7633,12512, 7636,12512,12512, 7644,
-     7652, 7647, 7665, 7673, 4089, 4214, 7681, 7684, 7687, 3911,
-     3913, 7690, 7693, 7705, 3937, 3947, 3949, 3963, 3984, 3961,
-     3979, 3988, 3991, 4009, 7709, 4032, 4053, 4120, 3954, 3975,
-     3965, 3980, 3994, 4005, 3988, 4011, 3999, 4032, 4040, 4059,
-     4042, 7712, 7715, 4058, 4081, 4065, 7718, 4085, 4090, 7723,
-     7728, 7736, 7744, 4106, 4095, 7747, 7750, 7756, 7770, 4109,
-
-     7773,12512,12512, 4110, 4124, 4161, 4151, 4150, 4170, 4163,
-     7781, 7784, 7789, 7804,12512,12512, 7812,12512, 4142, 7815,
-     4156, 7818,12512,12512, 4173, 4174, 4176, 4178, 4180, 4180,
-     7833, 4183, 7836, 7839, 7848,12512,12512, 7856, 4235, 4274,
-     7864,12512,12512, 4194, 4206, 4352, 4206, 4215, 4367, 7872,
-     7875, 7878, 7886, 7893, 7904, 7907, 7910, 7913, 7916, 7934,
-     4246, 4232, 4234, 4239,12512, 4271, 4255, 4255, 4272,12512,
-     7925, 4325, 4314, 7929, 4258, 4266, 4289, 4336, 4338, 4307,
-     4302, 4305, 4323, 4385, 4391, 4344, 4352, 7948, 7951, 4352,
-     4368, 7954, 7957, 4359, 7960, 4393, 4423, 7968, 7973, 4379,
-
-     4375, 7977, 7980, 7988,12512,12512, 7996, 7999, 4363, 4373,
-     4399, 4420, 4420, 4418, 4429, 4430, 8007, 8010, 4418, 8018,
-    12512,12512, 4429, 8026, 8029, 4416, 4447, 4457, 4496, 4460,
-     4473, 4504, 8037,12512, 4460, 8040,12512,12512, 4492, 4498,
-     4495, 4504, 4514, 4502, 4507, 4515, 4523, 4511, 4519, 4529,
-     8048, 8052, 4551, 4582, 8060,12512,12512, 8068, 8071, 8079,
-     8082, 8090, 8093,12512,12512, 4535, 4556, 4573, 4576, 4559,
-     4592, 4607, 4598, 8101, 4629, 8104, 8109, 8113, 4568, 4560,
-     4633,12512,12512, 4590, 4594, 4582, 4649,12512,12512, 4612,
-     8123, 8128, 8132, 8135, 8138, 8142, 4629, 4645, 4636, 4648,
-
-     8145, 8151,12512, 4625, 4639, 8154,12512,12512, 8164,12512,
-    12512, 8172, 4632, 4661, 4696, 4665, 4675, 4719, 4690, 8175,
-    12512,12512, 4677, 8183, 8186,12512,12512, 8197, 4701, 4715,
-    12512, 4712, 4722,12512, 4701, 4733, 4724, 4739, 4727, 4737,
-     4748, 4750, 4744, 4749, 4772, 4775, 4767, 8201, 8204, 4779,
-     4791, 4782, 4794, 8215,12512,12512, 8223,12512,12512, 8231,
-     4795, 4796,12512, 4805, 4808, 4821,12512, 4822, 8234, 4855,
-     8237, 8240, 8259, 8302, 8349, 4788, 4789,12512, 4801, 4793,
-     4798,12512, 4820, 8267, 8270, 8273, 8278, 4873, 4841, 4878,
-     4854, 8281, 4836, 4865, 8293, 8284, 8296, 4882,12512, 4917,
-
-     4897,12512, 4928, 4878, 8314, 8322, 8340, 8332, 4938, 4949,
-     4952, 4955, 4908, 4973, 4941, 4973, 4947, 4964, 4985, 5003,
-     4976, 4993, 5010, 5021, 4991, 8369,12512,12512, 5031, 5001,
-     5032, 5007, 8343,12512, 5042, 5016, 5019, 5045, 5022, 5034,
-     8377, 5068, 8380, 5093, 5097, 8400, 8447, 5064, 5020, 5069,
-     5122, 5028, 5098,12512, 5116,12512, 5117, 8390,12512, 5080,
-     5068, 8420, 5183, 5203, 8411, 8429, 5116,12512, 5118,12512,
-     5097, 8467,12512,12512, 8475, 5205, 5208,12512,12512,12512,
-    12512, 5098,12512, 5135,12512, 5137, 5146,12512,12512, 5130,
-     5159,12512,12512, 5139,12512, 5173,12512, 5193,12512, 5199,
-
-     5201,12512, 5200, 5215, 8437,12512, 5249, 5353, 5229, 5219,
-     5363, 5225, 8440,12512, 5312, 5357,12512,12512, 5359, 5310,
-    12512,12512,12512, 8483, 8486, 5319, 5241, 5345, 5302, 8494,
-    12512,12512, 5306, 5321, 8504, 5390, 5325, 5401, 5346, 8507,
-     5347, 5350, 5380, 5389, 5401, 5392,12512,12512,12512,12512,
-    12512,12512, 8510, 5413, 5401, 5416, 8513, 5384, 5381,12512,
-     5396, 5406, 5393,12512, 5413, 8516, 8525, 8534, 8537, 5423,
-     5432, 5455, 5441, 5450, 5464, 5481, 5480, 8545, 8548, 5450,
-     5465, 5478, 5461, 5473, 5490, 8556, 8559, 5473, 5478, 5513,
-     5505, 5530, 5519, 8567, 5526, 5480, 5483, 5506, 5491, 5494,
-
-     5517, 8570,12512,12512, 8579, 5576, 5624, 5536, 5542, 5538,
-     5541, 5546, 5543,12512,12512, 8587,12512,12512, 5558, 5565,
-     5562, 5565, 5572, 5575, 8595,12512,12512, 5610, 5615,12512,
-     5597,12512, 5600, 5628,12512, 5587, 5568, 5594, 5608, 5589,
-     5608, 5644, 5643, 5653, 5647, 5658, 5665, 5665, 5667, 5673,
-     5678, 5678, 5685, 5690, 5691, 5698, 5698,12512,12512, 5720,
-     5718, 5722, 5666, 5676, 5702, 5688, 5695, 5711, 5726, 5745,
-     5739, 5759, 5745, 5754, 5776, 5766, 5763, 5784, 5777, 5781,
-     5798, 5791, 5789, 5806,12512,12512, 5860, 5771, 5832, 5834,
-     5784, 5846, 5847, 5849, 5849, 5855, 5855, 5872, 5864, 5904,
-
-     5886, 5876, 5919, 5903, 5899, 5932, 5913, 5904, 5940, 5944,
-     5898,12512,12512, 5899,12512,12512, 5937, 5945, 5943, 5948,
-     5973, 5952,12512, 5977, 5958,12512, 5986, 5967,12512, 5993,
-     5970,12512, 5989, 5957, 5959, 5979, 5993, 5984, 6006,12512,
-     6007,12512, 6008,12512, 6013,12512, 6015, 8605, 6044, 6043,
-     6027, 6049, 6030, 6059, 6026, 6027, 6029, 6030, 8608,12512,
-    12512, 6080,12512, 6079,12512, 6083, 6091, 6095, 6097, 6116,
-     6133,12512,12512,12512,12512,12512,12512, 6106, 6108, 6140,
-     6151, 6132, 6138, 6194, 6267, 6183, 6201, 6261, 6264, 6223,
-     6254, 6232, 6286, 6089, 6292, 6316, 6317, 6220, 6293, 6423,
-
-     6439, 6202, 6278, 6424, 6457, 6446, 6465, 6157, 6325, 6416,
-     6441, 6421, 6487, 6483, 6515, 6492, 6493, 6517, 6574, 6602,
-     6604, 6235, 6298, 6531, 6578, 6617, 6694, 6413, 6599, 6642,
-     6669, 6668, 6700, 6682, 6695, 6542, 6552, 6299, 6545, 6761,
-     6762, 6445, 6735, 6620, 6789, 6703, 6713, 6793, 6795, 6595,
-     6710, 6828, 6945, 6905, 6915, 6953, 6980, 6963, 6970, 6827,
-     6575, 8616, 8619,12512,12512, 8639, 8648, 8657, 8666, 8675,
-     8684, 8693, 8702, 8711, 8720, 8729, 8738, 8747, 8756, 8765,
-     8774, 8783, 8792, 8801, 8810, 8819, 8828, 8837, 8846, 8855,
-     8864, 8873, 8882, 8891, 8900, 8909, 8918, 8927, 8936, 8945,
-
-     8954, 8963, 8972, 8981, 8990, 8999, 9008, 9017, 9026, 9035,
-     9044, 9053, 9062, 9071, 9080, 9089, 9098, 9107, 9116, 9125,
-     9134, 9143, 9152, 9161, 9170, 9179, 9188, 9197, 9206, 9213,
-     9220, 9227, 9234, 9241, 9248, 9255, 9262, 9269, 9276, 9283,
-     9290, 9297, 9304, 9311, 9318, 9325, 9332, 9339, 9346, 9353,
-     9360, 9367, 9374, 9381, 9388, 9395, 9402, 9409, 9418, 9425,
-     9430, 9437, 9442, 9449, 9454, 9461, 9466, 9473, 9478, 9485,
-     9490, 9497, 9502, 9509, 9514, 9521, 9526, 9533, 9538, 9545,
-     9550, 9557, 9562, 9569, 9574, 9581, 9586, 9593, 9598, 9605,
-     9610, 9617, 9622, 9629, 9634, 9641, 9646, 9653, 9658, 9665,
-
-     9670, 9677, 9682, 9689, 9694, 9701, 9706, 9713, 9718, 9725,
-     9730, 9737, 9742, 9749, 9754, 9761, 9766, 9775, 9781, 9788,
-     9796, 9804, 9812, 9819, 9827, 9834, 9842, 9850, 9858, 9866,
-     9874, 9882, 9890, 9897, 9905, 9913, 9920, 9928, 9935, 9943,
-     9950, 9958, 9965, 9973, 9980, 9988, 9995,10003,10010,10018,
-    10025,10033,10040,10048,10055,10063,10070,10078,10085,10093,
-    10100,10108,10115,10123,10131,10139,10146,10154,10161,10169,
-    10176,10184,10191,10199,10206,10214,10223,10229,10236,10244,
-    10251,10259,10266,10274,10281,10289,10296,10304,10312,10319,
-    10327,10334,10342,10350,10358,10366,10373,10381,10389,10397,
-
-    10405,10413,10420,10428,10435,10443,10450,10458,10466,10474,
-    10482,10490,10497,10505,10512,10520,10527,10535,10542,10550,
-    10557,10565,10572,10580,10587,10595,10602,10610,10617,10625,
-    10633,10641,10648,10656,10665,10674,10681,10688,10696,10704,
-    10712,10719,10727,10734,10742,10750,10758,10766,10773,10781,
-    10789,10797,10804,10812,10820,10828,10835,10843,10850,10858,
-    10866,10874,10881,10889,10896,10904,10911,10919,10926,10934,
-    10941,10949,10957,10965,10972,10980,10987,10995,11002,11010,
-    11017,11025,11032,11040,11047,11055,11062,11070,11079,11088,
-    11095,11103,11111,11119,11126,11134,11142,11150,11158,11166,
-
-    11174,11181,11189,11197,11204,11212,11220,11228,11235,11243,
-    11250,11258,11266,11273,11281,11289,11297,11304,11312,11319,
-    11327,11334,11342,11350,11357,11365,11372,11380,11387,11395,
-    11403,11411,11418,11426,11433,11441,11448,11456,11465,11474,
-    11482,11489,11497,11505,11512,11520,11528,11536,11544,11552,
-    11559,11567,11575,11582,11590,11598,11605,11612,11620,11628,
-    11635,11643,11651,11658,11666,11674,11681,11689,11696,11704,
-    11711,11719,11726,11734,11742,11750,11758,11766,11773,11781,
-    11789,11797,11806,11815,11822,11830,11838,11845,11853,11861,
-    11869,11877,11884,11892,11900,11907,11915,11923,11930,11937,
-
-    11945,11953,11960,11968,11975,11983,11991,11999,12006,12014,
-    12021,12028,12036,12043,12051,12058,12066,12073,12081,12090,
-    12099,12106,12114,12122,12130,12138,12146,12154,12162,12169,
-    12177,12184,12192,12200,12208,12216,12224,12232,12240,12248,
-    12255,12263,12271,12279,12287,12294,12301,12308,12316,12323,
-    12331,12338,12346,12355,12364,12371,12379,12387,12395,12403,
-    12410,12417,12425,12432,12440,12448,12457,12466,12475,12484,
-    12493,12502
+     3742, 3810, 2171, 2176,    0,    0, 9489,12459,12459,   95,
+      100,   29,   41,12459,  103,   51,12459,12459, 9478,12459,
+    12459, 9467,12459, 9478, 9478,  164,12459,12459,12459,12459,
+     9476, 9474, 9429,12459,  158, 9455,    0,  142,12459, 9418,
+     9406,12459,  164, 3874, 9404, 3938, 2183, 1362, 9453,   31,
+    12459,  253, 9444,    0,  143,12459, 9396, 9387,   84,12459,
+
+      258,  253,  109,  141,12459,  322, 9437,    0,  209,12459,
+     9407,12459,  325,  372,12459,  328, 9433,    0,  218,12459,
+     9403, 9399, 9397,12459,  392,  380,12459,  395, 9425,    0,
+      242,12459, 9377, 9370, 9374,12459,  455,  451,  246,12459,
+      458, 9419,    0,  245,12459, 9367, 9367,12459,  462,  457,
+      287,12459,  525, 9412,    0,  313,12459, 9358, 9376, 9378,
+     9356, 9372,    2,12459,  528,  579,12459,  531, 9400,    0,
+      370,12459, 9347,  101, 9353, 9363,  317, 9344,  258,  651,
+     9346,12459,  534, 9396,  377,12459,  592, 9385,    0,  446,
+    12459, 9352,12459,  652, 9391,  388,12459,  719, 9378,    0,
+
+      576,12459, 9348,12459,  722,  639,12459,  783, 9376,    0,
+      577,12459, 9323, 9329, 9339, 9319,  577,12459,  786,  272,
+     9324,  681,12459,  789, 9364,    0,  580,12459, 9318, 9328,
+     9315,12459,  847,  706,12459,  850, 9354,    0,  637,12459,
+     9308,12459,  853, 2188, 9352,  704,12459,  856, 9343,    0,
+      707,12459, 9309, 9305, 9307,   32,12459,  914, 9339,  748,
+    12459,  917, 9330,    0,  773,12459, 9292, 9292,12459,  920,
+      967,12459,  923, 9323,    0,  774,12459, 9290, 9288,12459,
+      980, 1034,12459,  989, 9316,    0,  840,12459, 9286, 9262,
+    12459, 1047, 1289,12459, 1056, 9309,    0,  841,12459, 9279,
+
+     9250,12459, 1188, 1290,12459, 1245, 9302,    0,  907,12459,
+     9251, 9245, 9252, 9262, 9260,  593,12459, 1302, 1351,  964,
+    12459, 1305, 9288,    0,  908,12459, 9254,12459, 1364, 1429,
+      771, 1365,  815, 9238,  882,12459, 1367, 9281,    0,  965,
+    12459, 9231, 9232, 9237, 9231, 9220,12459, 1432,   11, 9238,
+      949,12459, 1435, 9266,    0,  968,12459, 9229, 9231,12459,
+     1494, 1352,12459, 1499, 9259,    0, 1031,12459, 9221, 9221,
+     1358, 9223,   71,12459, 1502, 1547,12459, 1561, 9247,    0,
+     1032,12459, 9199, 1114,12459, 1567, 1514, 1171,12459, 1573,
+     9245,    0, 1035,12459, 9197, 9207,12459, 1630, 1616,12459,
+
+     1636, 9238,    0, 1172,12459, 9185, 9189, 9199, 9173,12459,
+     1639, 9233, 1176,12459, 1642, 9224,    0, 1173,12459, 9176,
+     9186, 9174, 9175,12459, 1806, 1222, 9170, 1233,12459, 1815,
+     9210,    0, 1354,12459, 9168, 9172, 9170, 1793, 9171,12459,
+     1818, 9197,    0, 1478,12459, 9156, 9154, 9144,12459, 1873,
+     1860, 1882,  239, 9137,12459, 9194, 9183,12459,12459,12459,
+     1874,   30, 9134, 9129, 9127, 9175,12459,    0, 2240, 9121,
+     9167, 9149, 9117,  168,  384, 9118, 9118, 9114, 9118,  638,
+     1184,  259, 9106, 9103, 1500, 9129,  369, 1425, 9103, 8523,
+     8523, 8526, 1569,  524, 8514, 8515, 8541,  439, 1879,  584,
+
+      629, 1369,12459,    0, 8511, 8530, 8526, 8514, 8552, 8515,
+    12459,    0, 8504, 8514,12459,    0, 8499, 2251, 8485, 8501,
+    12459,    0, 8482, 8500, 8492, 8492,12459,    0, 8472, 8483,
+     8482,12459,    0, 2258, 2298, 8460, 8473, 8473, 8462, 8450,
+     8452,12459,    0, 8444, 8444, 2301, 8424, 2304, 8412, 8412,
+     8409, 8417, 8417, 8383, 8400, 8394, 8394, 8386, 8375, 8380,
+    12459,    0, 2307, 8379,12459,    0, 8367, 8368,12459,    0,
+     8373,  405, 2310, 8352, 8358, 8361, 8350,  839,12459,    0,
+     8322, 2366, 2369, 8329,12459,    0, 8324, 8325, 8337,12459,
+        0, 8313, 2372, 8305, 8315, 8310, 8287,12459,    0, 8280,
+
+     2375, 8279,12459,    0, 2378, 8278, 8275,12459,    0, 8274,
+     8270, 8264,12459,    0, 8263, 8258, 8252,12459,    0, 8263,
+     8262, 8245, 2434, 8220, 8234, 8236, 8216, 8218,12459,    0,
+     8211, 8211, 1630, 1936, 1492, 1638, 1937,12459,    0, 8199,
+     8175, 8180, 8191, 8188, 8162, 8149,12459,    0, 2437, 8154,
+     8148,12459,    0, 8145, 2440, 8134, 8154, 8139, 8148, 8145,
+     8144, 8129,12459,    0, 8125, 8128, 8117, 8110,12459,    0,
+     8108, 2443, 8104,12459,    0, 8095, 8100, 2447, 8096, 8092,
+    12459,    0, 8095, 2501, 8093, 8070, 8075, 1415,12459,    0,
+     8081, 2504, 8065,  493, 8062, 8108,12459,    0, 8067, 8055,
+
+     8063, 8042, 8089, 8097, 1775, 8038,12459, 2049,    0, 8034,
+     8005, 8049, 8045, 7994,12459, 2507, 2130, 7981, 2513, 2568,
+     2199, 7993, 7987, 7973, 7977, 7957, 7962, 7947, 7946, 7957,
+     7945,  489, 7933, 7943, 7946, 7922, 7920, 7904, 7908, 7917,
+     7902, 2264, 7904, 7890, 7902, 7874, 7866, 7866, 7870, 7854,
+     7862, 7844, 7832, 7845, 2272, 7823, 7821, 2510, 2582, 2571,
+     2579, 2576, 2639, 7827, 7818, 2589, 2648, 7821, 2642, 2330,
+     7819, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722, 2776,
+     2779, 2788, 2794, 2396, 2801, 2466, 2843, 2854, 2861, 2868,
+     2872, 2846, 2912, 7813, 1993, 2921, 2533, 7816, 2925, 2602,
+
+     2931, 7795, 7787, 7795, 7791, 7778, 7775, 7787, 7766, 7779,
+     7768, 2939, 2985, 2982, 2673, 2990, 2993, 7767, 2996, 3000,
+     7762, 7751, 7759, 3049, 2879, 7762, 7756, 7736, 3057, 3063,
+     1199, 7729, 7733, 3068, 2949, 3116, 3076, 3119, 3125, 7741,
+     3129, 3134, 2340, 7740, 3183, 3149, 7728, 7713, 7710, 3187,
+     3196, 7723, 3201, 3215, 3191, 3252, 3210, 3255, 7705, 3263,
+     3266, 7720, 7705, 3308, 3311, 7707, 7706, 3315, 3319, 7700,
+       26, 7686, 3322, 3276, 3364, 7697, 7681, 3367, 3450, 7698,
+     7677, 3374, 3377, 7680, 7675, 7667, 7677, 7658, 7658, 7662,
+     7649, 3436, 3440, 7654, 3432, 3396, 7636, 3444, 3505, 7650,
+
+     3509, 3469, 3513, 7631, 3516, 7634, 7637, 7636, 3519, 3581,
+     3570, 3573, 3576, 3636, 3639, 7617, 3584, 3603, 3642, 3645,
+     7632, 7608, 3648, 3701, 7618, 3709, 3713, 7585, 3651, 3717,
+     7599, 7597, 3762, 3765, 1261, 7596, 3768, 3771, 7590, 7622,
+     3788, 3832,12459, 7568, 7576, 7575, 3835, 3838, 7601,12459,
+    12459, 1721, 7560,12459, 7601, 7596, 7545,12459,12459, 7542,
+     3794,12459,12459, 7551, 3841, 3844,12459, 3847, 2065, 7544,
+     7531, 7533, 7542, 7532, 7514, 7526, 2407, 7510, 7517, 7516,
+     7521, 7506, 7497, 7493, 7489,  718, 7500, 7483, 7483, 7486,
+     1691, 2474, 7472, 7471, 7480, 7470, 7452, 2541, 7450, 7452,
+
+     7451, 7443, 7438, 7439, 7452, 7434, 7432, 3868, 3871, 7422,
+     7422, 3880, 3888, 7433, 3898, 3906,12459, 3912, 7421, 7424,
+     3917, 3942,12459, 3945, 7400, 3948,12459,12459, 7408, 3964,
+     3970,12459, 3977, 3903, 4005, 7392, 7389, 3909, 4013, 4021,
+     4027,12459, 4030, 3967, 4033, 3973, 4042, 4050, 4053,12459,
+     4056, 4059,12459,12459, 4075,12459,12459, 4083, 4086, 7396,
+     7389, 7387, 7380, 4094, 4097,12459, 4101, 7366, 7354, 7366,
+     7341, 4104,12459,12459, 4120, 4123,12459,12459, 4131, 4134,
+     7328, 7336, 7328, 7332, 7329, 7317, 7313, 7311, 7296,  110,
+     4142, 4145,12459, 4150, 4154,12459,12459, 4164, 4169,12459,
+
+     4172, 4175, 4178, 4183,12459, 4193, 7290, 7279, 4197, 4202,
+    12459,12459, 7261, 7272, 7270, 4218, 4221,12459, 4224, 7256,
+     7249, 4227, 4233,12459,12459, 4245,12459,12459, 4253, 4256,
+    12459, 4261, 4264, 4267, 4275,12459, 4282, 7240, 4290,12459,
+    12459, 7243, 7247, 7249, 4286, 4301,12459, 4305, 7240, 4308,
+    12459,12459, 4316, 4320,12459, 4327, 4335,12459,12459, 7228,
+     4346, 4349,12459, 4352, 4355, 4358, 4361, 4376,12459, 4380,
+     4383, 4389, 4395, 4407,12459, 4410, 7216, 7206, 7181, 7197,
+     4414,12459,12459, 4422, 4429, 7185, 7155, 4440, 4443,12459,
+     4448, 7138, 7135, 4451, 4454,12459, 4462, 7109, 1748, 7090,
+
+     7064, 4473, 7082, 7078, 7050, 4477, 4482,12459, 4485, 7045,
+     4504,12459,12459, 7060, 4492, 4496,12459, 4515, 7042, 4518,
+    12459,12459, 4526, 4530, 4538, 4547, 4550, 7036, 4558, 7011,
+     4561, 4565,12459, 4568, 4571, 4580, 4589, 4592, 6972, 4600,
+     4603,12459, 4607, 6946, 4610,12459,12459, 4622, 4629,12459,
+     4632, 6918, 6912, 4635,12459,12459, 6790, 4643, 4651,12459,
+     4654, 6766, 4658,12459,12459, 6740, 4666, 4675, 4678,12459,
+     4684, 6745, 4687, 4690,12459,12459, 4705, 6716, 4708, 4711,
+    12459, 4716, 6650, 4719, 6626, 4723, 4730,12459, 4737,  955,
+     4742,12459,12459, 6661, 6619, 6506, 4749,12459, 6496, 6482,
+
+     6443, 6387, 6365, 6342, 6227, 2610, 2681, 6134, 2943,  130,
+      148,  172, 2613,  192,  214, 2750,  248,  325,  339,  392,
+     2813,  445,  472,  551,  642,  703, 2849, 3158,  703, 3223,
+     3022,  721,  787,  785,  786,  788, 4752,12459,12459,  835,
+      854, 4768,12459,12459,  840, 4776, 3407, 4779, 4785,  985,
+     1011, 4788, 4791,12459,12459, 1086, 1118, 4800,12459,12459,
+     4808, 4811,12459,12459, 4820,12459,12459, 4828, 4831,12459,
+    12459, 1109, 1162, 4839, 1154, 4842, 1189, 4847, 1223, 1243,
+     4857, 4861, 4869,12459,12459, 1259, 1296, 1281, 1305, 1326,
+     1351, 4877, 1371, 1349, 1378, 1396, 4880, 4883, 4886, 4889,
+
+     4904, 1430, 1429, 4907, 4910, 1455, 4919, 4925, 4928, 1441,
+     1483, 4931, 4937, 4949, 4952, 4955, 4963, 1493, 1521, 1511,
+     4972, 4975, 1527, 4978, 4982, 4985, 4990, 5004, 1555, 5012,
+     5000, 5022, 1566, 5037, 1570, 5040, 1556, 1590, 5043,12459,
+    12459, 5051, 1616, 5058, 1634, 1628, 5061, 1640, 1647, 1655,
+     1676, 5064, 5073, 1676, 1690, 1703, 5069, 1691, 5082, 5088,
+     1705, 5093,12459,12459, 5102, 5107, 5124,12459,12459, 1723,
+     5115, 5133, 1734, 5141, 5144,12459,12459, 5153,12459,12459,
+     1728, 5161, 1744, 5164, 1759, 1777, 1802, 5167, 1800, 5170,
+     5173, 5176, 5192, 1803, 5195, 5198, 1814, 1846, 5206, 1816,
+
+     5215, 5218, 5233, 5236, 2026, 1859, 5239,12459, 1862,12459,
+    12459, 1851, 1853, 1876, 1867, 1866, 1882, 1887, 1888, 3089,
+     1884, 1911, 3271, 1927, 1938, 3404, 1938, 3463, 1929, 1933,
+     3540, 1940, 3670, 1965, 3735, 3673, 1967, 1981, 1980, 1996,
+     2001, 3802, 1999, 2013, 5242, 5245, 5251, 2015, 5258, 5261,
+     5264, 5267, 5270, 5274, 5277, 2022, 5280, 5292, 5300, 2038,
+     2032, 5308, 5312, 5319, 5322, 5330, 5333, 5341, 5345, 5353,
+     5363, 5366, 2063, 5369, 5372, 5381, 2048, 5389,12459,12459,
+     2050, 2066, 5400, 2059, 2075, 2069, 5403, 5406, 2075, 5414,
+     2081, 2080, 5421, 5427, 5433,12459,12459, 5441,12459, 2087,
+
+     2076, 5446,12459,12459, 5454, 5460, 5463, 5472, 5479, 2086,
+     5490, 5493, 2092, 5496,12459,12459, 5504, 5509,12459,12459,
+     5517, 2091, 2087, 2117, 5523, 5526, 2122, 5536, 2120, 5541,
+     5544, 5551, 5547, 5562,12459,12459, 2128, 5570, 5573,12459,
+    12459, 5581, 5589, 2136, 5592, 5595, 5610, 2125, 5613, 5616,
+     2142, 5624, 2136, 2142, 5631, 2153, 2142, 2173, 2172, 5637,
+    12459,12459, 2180, 2178, 2172, 5645, 2188, 5650, 5654, 5664,
+     2178, 5668,12459,12459, 2188, 5677,12459,12459, 2180, 5685,
+     2197, 5688, 2202, 5691, 5697, 5700, 5710, 5718, 2201, 5721,
+     5724, 5733,12459,12459, 5743, 2223, 5747,12459,12459, 2215,
+
+     2254, 5755, 2247, 5767, 2298, 3101, 5758, 5776, 5784, 2298,
+     2321, 2342,12459, 5762, 2263, 2257, 2260, 2365, 2260, 2279,
+     5787, 2327, 2333, 2321, 2326, 5791, 2341, 2335, 2337, 5794,
+     5797, 5803, 2354, 5807, 2361, 2360, 2368, 2435, 2380, 2386,
+     2397, 2402, 5810, 5813, 2405, 5816, 2416, 5819, 5822, 5830,
+     5837, 2422, 5848, 2412, 5851,12459,12459, 5859, 2429, 5862,
+     5867, 5870, 5874, 5882, 5888, 5900, 5903, 5896, 5915, 5906,
+     5925,12459,12459, 5933, 5936, 5944, 2461, 5947,12459,12459,
+     5955, 5959, 2462, 2473, 2463, 5969, 5973, 5981, 2467, 2477,
+     5987,12459,12459, 2477, 5999, 6002, 2474, 2473, 6010, 6013,
+
+     2490, 2515, 6017, 6020, 6035,12459,12459, 6043, 2540, 2541,
+     2530, 6051,12459, 6054, 2534, 6057, 6062, 2529, 6070, 2551,
+     6077, 2564, 2566, 2546, 6088,12459, 2547, 6091, 6094,12459,
+    12459, 6102, 2617, 6117, 6121, 6124, 6132, 2591, 6142,12459,
+    12459, 6151, 6154, 2611, 6162,12459,12459, 2605, 6170,12459,
+     2597, 6173, 6176, 6180, 2599, 6183, 2605, 2608, 2601, 2615,
+     6191, 2612, 6195,12459,12459, 6203,12459, 2617, 6206, 2624,
+     6210, 2629, 6213, 2638, 6216, 6224, 6238, 6246, 6249, 6253,
+     6270, 6273, 6277,12459,12459, 6285, 2640, 2662, 2706, 6293,
+     6296, 2715, 2703, 2763, 2703, 2721, 2709, 2837, 2709, 6300,
+
+    12459,12459, 6308, 2768, 2787, 2824, 6314, 6320, 6328, 2681,
+     2697, 2745, 2724, 6332, 6335, 6339, 2738, 6342, 2744, 2744,
+     2759, 2758, 6345, 6348, 6351, 6355, 2758, 6358, 2801, 2816,
+     2797, 6361, 6364, 2815, 6367, 6370, 6373, 2815, 6376,12459,
+    12459, 6384,12459,12459, 2833, 6392, 2824, 6395, 2833, 6398,
+     6402, 6416, 6420,12459,12459, 6428,12459,12459, 6436, 6439,
+     6444,12459,12459, 6460, 6463, 6478,12459,12459, 6471, 2857,
+     6486,12459,12459, 2857, 2860, 2874, 6494,12459,12459, 6502,
+     6505, 2878, 2867, 2876, 6513,12459,12459, 2888, 6521, 6524,
+     6527, 2888, 2886, 6532,12459,12459, 2979, 2980, 2896, 2904,
+
+     6546, 6549, 2904, 6552, 6555, 2924, 2926, 3027, 3028, 2951,
+     2950, 6571, 6574, 2966, 6577,12459, 6580,12459,12459, 6596,
+     2961, 6602,12459,12459, 2954, 2967, 2996, 6610, 6615, 6623,
+     6628, 6631, 6638, 6642, 6645, 6650, 6653, 6656, 2990, 3003,
+     6663, 6671, 3024, 6681, 3023, 6684,12459, 3013, 6688, 6691,
+    12459,12459, 6703, 6709, 3020, 6722,12459,12459, 6717, 6730,
+     6736, 3021, 6744, 3028, 3055, 3079, 6748,12459, 6752, 6756,
+     3106, 3105, 3106, 3112, 3124, 3121, 3118, 3119, 3144, 3166,
+     6770, 6773, 3240, 3317, 6776, 6759, 6764, 6800, 6805, 6808,
+     3131, 3132, 6811, 6814, 3149, 6820, 6823, 3159, 6826, 6829,
+
+     6832, 6835, 3155, 3166, 6838, 6841, 3180, 3183, 6844, 6847,
+     3203, 6850, 6853, 3195, 3222, 3267, 6856, 6859, 6862, 6865,
+     6868,12459,12459, 6876, 6883, 6886, 6889,12459,12459, 6897,
+     3263, 3272, 3273, 3282, 6905,12459,12459, 6916, 3273, 3287,
+     3282, 6921, 6930, 6924, 6939,12459, 3303, 3319, 3346, 3369,
+     3355, 3376, 3335, 6943, 6948, 6951, 6954, 6958,12459,12459,
+     6972, 6975, 3362, 3386, 3369, 3394, 6978, 6981, 6984, 7003,
+     7009, 7012, 3347, 3375, 3388, 7015, 7018,12459,12459, 7031,
+     7037, 7040, 7046, 7054, 7058, 7064, 7068, 7072, 7076, 7087,
+    12459,12459, 7082, 7095,12459, 3396, 3396, 7100,12459, 7103,
+
+    12459,12459, 3377, 7119, 7122,12459,12459, 3384, 7131, 3399,
+     3400,12459, 7134,12459,12459, 3449, 3436, 3451, 3447, 3470,
+     3477, 3464, 3479, 3478, 3488, 7142, 7145, 3518, 3525, 3464,
+     3472, 3521, 3467, 3476, 3474, 3479, 3531, 3477, 3489, 7150,
+     7153, 3500, 3501, 7156, 7164, 3532, 7167, 7170, 3524, 3537,
+     7173, 3539, 3542, 7178, 3538, 3551, 3576, 7181,12459, 7184,
+     7187, 7191, 7194, 7209, 7212, 7215, 7218,12459, 3589, 3610,
+     3601, 3593, 3617, 7221, 7224, 3609, 7239, 3641, 7242, 3674,
+     3682, 7250,12459, 3632, 3639, 3712,12459, 3718,12459, 7253,
+     7257, 7260, 7263,12459, 7271, 7283, 3674, 3670, 3671, 3728,
+
+    12459, 3731,12459, 7291, 7294, 7297, 7305, 7312, 7318, 7324,
+     7332, 3673, 3691, 7336, 7339, 7342, 7345,12459,12459, 7354,
+     7357, 7365, 7368, 7374,12459, 7377, 7386, 7389, 7397, 3716,
+     3711, 3715, 7400,12459, 3720, 7404, 3722, 3720, 3751, 3751,
+     3767, 3759, 3784, 3783, 3784, 3818, 3806, 3834, 7407, 3873,
+     3846, 3919, 3791, 3804, 3802, 3808, 3814, 3811, 3816, 3830,
+     3826, 3857, 3865, 3866, 3884, 3902, 7410, 7415, 3892, 3905,
+     3892, 3910, 7419, 3900, 3930, 7426, 7429,12459, 7432,12459,
+    12459, 7440,12459, 7444, 7448, 3912, 3927, 3937, 7454, 3933,
+     7472,12459,12459, 3946, 7463, 7481, 3942, 4005, 3976, 4042,
+
+     3977, 3945, 7489,12459,12459, 7492, 7495, 7459, 7511,12459,
+    12459, 3963, 3968, 3969,12459,12459, 7519, 7522, 7530, 4177,
+     4291, 7538,12459, 7541, 7544,12459,12459, 7552,12459, 3967,
+     7560, 7563, 7567, 7581,12459, 7584,12459,12459, 7592, 7600,
+     7595, 7613, 7621, 4093, 4215, 7629, 7632, 7635, 3990, 3996,
+     7638, 7641, 7653, 4036, 4045, 4045, 4049, 4066, 4044, 4058,
+     4058, 4061, 4082, 7657, 4092, 4099, 4170, 4026, 4050, 4038,
+     4055, 4063, 4081, 4075, 4096, 4086, 4104, 4116, 4134, 4120,
+     7660, 7663, 4138, 4142, 4139, 7666, 4156, 4159, 7671, 7676,
+     7684, 7692, 4166, 4152, 7695, 7698, 7704, 7718, 4166, 7721,
+
+    12459,12459, 4180, 4203, 4223, 4214, 4221, 4250, 4236, 7729,
+     7732, 7737, 7752,12459,12459, 7760,12459, 4215, 7763, 4229,
+     7766,12459,12459, 4246, 4261, 4261, 4264, 4265, 4276, 7781,
+     4267, 7784, 7787, 7796,12459,12459, 7804, 4350, 4365, 7812,
+    12459,12459, 4289, 4298, 4399, 4297, 4306, 4426, 7820, 7823,
+     7826, 7834, 7841, 7852, 7855, 7858, 7861, 7864, 7882, 4318,
+     4303, 4301, 4326,12459, 4345, 4329, 4328, 4334,12459, 7873,
+     4402, 4374, 7877, 4327, 4334, 4353, 4400, 4422, 4376, 4369,
+     4372, 4388, 4450, 4453, 4407, 4416, 7896, 7899, 4404, 4420,
+     7902, 7905, 4415, 7908, 4458, 4469, 7916, 7921, 4436, 4431,
+
+     7925, 7928, 7936,12459,12459, 7944, 7947, 4436, 4449, 4475,
+     4485, 4485, 4483, 4497, 4497, 7955, 7958, 4489, 7966,12459,
+    12459, 4491, 7974, 7977, 4473, 4504, 4520, 4552, 4533, 4544,
+     4571, 7985,12459, 4533, 7988,12459,12459, 4567, 4573, 4570,
+     4589, 4595, 4583, 4586, 4594, 4606, 4594, 4605, 4615, 7996,
+     8000, 4630, 4638, 8008,12459,12459, 8016, 8019, 8027, 8030,
+     8038, 8041,12459,12459, 4608, 4628, 4645, 4637, 4626, 4650,
+     4675, 4675, 8049, 4683, 8052, 8057, 8061, 4647, 4634, 4699,
+    12459,12459, 4664, 4676, 4662, 4726,12459,12459, 4690, 8071,
+     8076, 8080, 8083, 8086, 8090, 4712, 4723, 4723, 4734, 8093,
+
+     8099,12459, 4707, 4709, 8102,12459,12459, 8112,12459,12459,
+     8120, 4700, 4733, 4769, 4737, 4744, 4776, 4760, 8123,12459,
+    12459, 4744, 8131, 8134,12459,12459, 8145, 4772, 4790,12459,
+     4783, 4793,12459, 4764, 4799, 4788, 4810, 4799, 4817, 4827,
+     4830, 4817, 4833, 4843, 4849, 4855, 8149, 8152, 4861, 4875,
+     4866, 4878, 8163,12459,12459, 8171,12459,12459, 8179, 4886,
+     4887,12459, 4888, 4891, 4895,12459, 4906, 8182, 4948, 8185,
+     8188, 8207, 8250, 8297, 4876, 4879,12459, 4892, 4894, 4896,
+    12459, 4906, 8215, 8218, 8221, 8226, 4964, 4933, 4981, 4958,
+     8229, 4939, 4949, 8241, 8232, 8244, 4974,12459, 5012, 4983,
+
+    12459, 5013, 4967, 8262, 8270, 8288, 8280, 5023, 5024, 5024,
+     5026, 4976, 5042, 5010, 5042, 5016, 5033, 5063, 5074, 5047,
+     5063, 5084, 5085, 5058, 8317,12459,12459, 5097, 5068, 5103,
+     5075, 8291,12459, 5109, 5089, 5090, 5116, 5098, 5099, 8325,
+     5120, 8328, 5185, 5129, 8348, 8395, 5474, 5092, 5145, 5387,
+     5105, 5149,12459, 5154,12459, 5174, 8338,12459, 5135, 5117,
+     8368, 5176, 5184, 8359, 8377, 5180,12459, 5187,12459, 5163,
+     8415,12459,12459, 8423, 5261, 5280,12459,12459,12459,12459,
+     5172,12459, 5206,12459, 5208, 5217,12459,12459, 5212, 5237,
+    12459,12459, 5237,12459, 5279,12459, 5281,12459, 5285, 5299,
+
+    12459, 5299, 5304, 8385,12459, 5319, 5357, 5333, 5312, 5370,
+     5320, 8388,12459, 5292, 5288, 5414,12459,12459, 5338, 5331,
+     5402,12459,12459,12459, 8431, 8434, 5391, 5370, 5399, 5405,
+     8442,12459,12459, 5420, 5425, 8452, 5437, 5424, 5446, 5425,
+     8455, 5422, 5432, 5456, 5451, 5471, 5464,12459,12459,12459,
+    12459,12459,12459, 8458, 5497, 5483, 5500, 8461, 5448, 5451,
+    12459, 5473, 5455, 5465,12459, 5484, 8464, 8473, 8482, 8485,
+     5494, 5503, 5519, 5518, 5526, 5540, 5563, 5561, 8493, 8496,
+     5538, 5547, 5559, 5547, 5555, 5580, 8504, 8507, 5563, 5565,
+     5600, 5586, 5601, 5599, 8515, 5603, 5584, 5561, 5580, 5596,
+
+     5568, 5591, 8518,12459,12459, 8527, 5623, 5634, 5608, 5626,
+     5626, 5638, 5643, 5640,12459,12459, 8535,12459,12459, 5645,
+     5663, 5659, 5669, 5674, 5671, 8543,12459,12459, 5704, 5706,
+    12459, 5683,12459, 5684, 5782,12459, 5665, 5665, 5678, 5677,
+     5685, 5698, 5733, 5743, 5752, 5754, 5754, 5778, 5803, 5800,
+     5810, 5810, 5812, 5819, 5819, 5817, 5823, 5830,12459,12459,
+     5852, 5850, 5875, 5814, 5869, 5829, 5835, 5884, 5843, 5871,
+     5891, 5882, 5904, 5895, 5892, 5916, 5906, 5903, 5929, 5918,
+     5919, 5941, 5932, 5937, 5955,12459,12459, 5967, 5928,12459,
+     5980, 5939,12459, 5985, 5958, 5960, 5962, 5971, 5984, 5988,
+
+     6021, 6002, 5994, 6023, 6008, 5998, 6034, 6016, 6006, 6039,
+     6049, 6044,12459, 6042,12459, 6032, 6041, 6040, 6050, 6072,
+     6051,12459, 6076, 6054,12459, 6082, 6066,12459, 6092, 6069,
+    12459, 6095,12459,12459, 6070, 6084, 6073, 6087,12459, 6087,
+    12459, 6090,12459, 6105,12459, 6106, 8553, 6112, 6133, 6115,
+     6134, 6103, 6105, 6115, 6117, 8556, 6156,12459, 6158,12459,
+     6163, 6179, 6183, 6182, 6182, 6204,12459,12459,12459,12459,
+    12459,12459, 6201, 6202, 6217, 6225, 6214, 6243, 6215, 6393,
+     6234, 6307, 6369, 6371, 6241, 6247, 6209, 6244, 6364, 6372,
+     6394, 6396, 6435, 6466, 6387, 6456, 6180, 6408, 6441, 6474,
+
+     6415, 6463, 6448, 6479, 6500, 6522, 6526, 6602, 6490, 6517,
+     6540, 6542, 6576, 6590, 6550, 6642, 6547, 6608, 6630, 6643,
+     6709, 6710, 6271, 6661, 6716, 6724, 6617, 6733, 6697, 6855,
+     6603, 6749, 6896, 6928, 6853, 6874, 6451, 6682, 6737, 6882,
+     6970, 6979, 6946, 6952, 6568, 6861, 6885, 6892, 7027, 7033,
+     6969, 6973, 6976, 7141, 7061, 7109, 6988, 7044, 7062, 7121,
+     6863, 6918, 6785, 6981, 7179, 7184, 7214, 7249, 7219, 7227,
+     6775, 7268, 8564, 8567,12459,12459, 8587, 8596, 8605, 8614,
+     8623, 8632, 8641, 8650, 8659, 8668, 8677, 8686, 8695, 8704,
+     8713, 8722, 8731, 8740, 8749, 8758, 8767, 8776, 8785, 8794,
+
+     8803, 8812, 8821, 8830, 8839, 8848, 8857, 8866, 8875, 8884,
+     8893, 8902, 8911, 8920, 8929, 8938, 8947, 8956, 8965, 8974,
+     8983, 8992, 9001, 9010, 9019, 9028, 9037, 9046, 9055, 9064,
+     9073, 9082, 9091, 9100, 9109, 9118, 9127, 9136, 9145, 9154,
+     9161, 9168, 9175, 9182, 9189, 9196, 9203, 9210, 9217, 9224,
+     9231, 9238, 9245, 9252, 9259, 9266, 9273, 9280, 9287, 9294,
+     9301, 9308, 9315, 9322, 9329, 9336, 9343, 9350, 9357, 9366,
+     9373, 9378, 9385, 9390, 9397, 9402, 9409, 9414, 9421, 9426,
+     9433, 9438, 9445, 9450, 9457, 9462, 9469, 9474, 9481, 9486,
+     9493, 9498, 9505, 9510, 9517, 9522, 9529, 9534, 9541, 9546,
+
+     9553, 9558, 9565, 9570, 9577, 9582, 9589, 9594, 9601, 9606,
+     9613, 9618, 9625, 9630, 9637, 9642, 9649, 9654, 9661, 9666,
+     9673, 9678, 9685, 9690, 9697, 9702, 9709, 9714, 9723, 9729,
+     9736, 9744, 9752, 9760, 9767, 9775, 9782, 9790, 9798, 9806,
+     9814, 9822, 9830, 9838, 9845, 9853, 9861, 9868, 9876, 9883,
+     9891, 9898, 9906, 9913, 9921, 9928, 9936, 9943, 9951, 9958,
+     9966, 9973, 9981, 9988, 9996,10003,10011,10018,10026,10033,
+    10041,10048,10056,10063,10071,10079,10087,10094,10102,10109,
+    10117,10124,10132,10139,10147,10154,10162,10171,10177,10184,
+    10192,10199,10207,10214,10222,10229,10237,10244,10252,10260,
+
+    10267,10275,10282,10290,10298,10306,10314,10321,10329,10337,
+    10345,10353,10361,10368,10376,10383,10391,10398,10406,10414,
+    10422,10430,10438,10445,10453,10460,10468,10475,10483,10490,
+    10498,10505,10513,10520,10528,10535,10543,10550,10558,10565,
+    10573,10581,10589,10596,10604,10613,10622,10629,10636,10644,
+    10652,10660,10667,10675,10682,10690,10698,10705,10713,10720,
+    10728,10736,10744,10751,10759,10767,10775,10782,10790,10797,
+    10805,10813,10821,10828,10836,10843,10851,10858,10866,10873,
+    10881,10888,10896,10904,10912,10919,10927,10934,10942,10949,
+    10957,10964,10972,10979,10987,10994,11002,11009,11017,11026,
+
+    11035,11042,11050,11058,11066,11073,11081,11089,11097,11105,
+    11113,11121,11128,11136,11144,11151,11159,11167,11175,11182,
+    11190,11197,11205,11213,11220,11228,11236,11244,11251,11259,
+    11266,11274,11281,11289,11297,11304,11312,11319,11327,11334,
+    11342,11350,11358,11365,11373,11380,11388,11395,11403,11412,
+    11421,11429,11436,11444,11452,11459,11467,11475,11483,11491,
+    11499,11506,11514,11522,11529,11537,11545,11552,11559,11567,
+    11575,11582,11590,11598,11605,11613,11621,11628,11636,11643,
+    11651,11658,11666,11673,11681,11689,11697,11705,11713,11720,
+    11728,11736,11744,11753,11762,11769,11777,11785,11792,11800,
+
+    11808,11816,11824,11831,11839,11847,11854,11862,11870,11877,
+    11884,11892,11900,11907,11915,11922,11930,11938,11946,11953,
+    11961,11968,11975,11983,11990,11998,12005,12013,12020,12028,
+    12037,12046,12053,12061,12069,12077,12085,12093,12101,12109,
+    12116,12124,12131,12139,12147,12155,12163,12171,12179,12187,
+    12195,12202,12210,12218,12226,12234,12241,12248,12255,12263,
+    12270,12278,12285,12293,12302,12311,12318,12326,12334,12342,
+    12350,12357,12364,12372,12379,12387,12395,12404,12413,12422,
+    12431,12440,12449
     } ;
 
-static yyconst flex_int16_t yy_def[3973] =
+static yyconst flex_int16_t yy_def[3984] =
     {   0,
-     3466, 3466, 3467, 3467, 3467, 3467, 3468, 3468, 3469, 3469,
-     3470, 3470, 3471, 3471, 3471, 3471, 3472, 3472, 3473, 3473,
-     3474, 3474, 3474, 3474, 3466, 3466, 3474, 3474, 3474, 3474,
-     3466, 3466, 3474, 3474, 3466, 3466, 3474, 3474, 3474, 3474,
-     3475, 3475, 3476, 3476, 3466, 3466, 3476, 3476, 3476, 3476,
-     3477, 3477, 3478, 3478, 3479, 3479, 3480, 3480, 3481, 3481,
-     3482, 3482, 3466, 3466, 3482, 3482, 3482, 3482, 3483, 3483,
-     3484, 3484, 3466, 3466, 3484, 3484, 3484, 3484, 3485, 3485,
-     3486, 3486, 3465,   83, 3487, 3487, 3466, 3466, 3487, 3487,
-     3487, 3487, 3488, 3488, 3489, 3489, 3466, 3466, 3489, 3489,
-
-     3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492, 3493, 3493,
-     3466, 3466, 3493, 3493, 3493, 3493, 3494, 3494, 3495, 3495,
-     3496, 3496, 3497, 3497, 3466, 3466, 3497, 3497, 3497, 3497,
-     3498, 3498, 3499, 3499, 3466, 3466, 3499, 3499, 3499, 3499,
+     3477, 3477, 3478, 3478, 3478, 3478, 3479, 3479, 3480, 3480,
+     3481, 3481, 3482, 3482, 3482, 3482, 3483, 3483, 3484, 3484,
+     3485, 3485, 3485, 3485, 3477, 3477, 3485, 3485, 3485, 3485,
+     3477, 3477, 3485, 3485, 3477, 3477, 3485, 3485, 3485, 3485,
+     3486, 3486, 3487, 3487, 3477, 3477, 3487, 3487, 3487, 3487,
+     3488, 3488, 3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492,
+     3493, 3493, 3477, 3477, 3493, 3493, 3493, 3493, 3494, 3494,
+     3495, 3495, 3477, 3477, 3495, 3495, 3495, 3495, 3496, 3496,
+     3497, 3497, 3476,   83, 3498, 3498, 3477, 3477, 3498, 3498,
+     3498, 3498, 3499, 3499, 3500, 3500, 3477, 3477, 3500, 3500,
+
      3500, 3500, 3501, 3501, 3502, 3502, 3503, 3503, 3504, 3504,
-     3505, 3505, 3506, 3506, 3507, 3507, 3508, 3508, 3509, 3509,
-     3466, 3466, 3510, 3510, 3511, 3511, 3511, 3511, 3466, 3466,
-     3511, 3511, 3511, 3511, 3466, 3466, 3511, 3511, 3466, 3466,
-     3511, 3511, 3511, 3511, 3512, 3512, 3513, 3513, 3466, 3466,
-     3513, 3513, 3513, 3513, 3514, 3514, 3515, 3515, 3516, 3516,
-
-     3517, 3517, 3518, 3518, 3519, 3519, 3466, 3466, 3519, 3519,
-     3519, 3519, 3520, 3520, 3521, 3521, 3522, 3522, 3523, 3523,
-     3466, 3466, 3523, 3523, 3523, 3523, 3524, 3524, 3525, 3525,
-     3466, 3466, 3525, 3525, 3525, 3525, 3526, 3526, 3527, 3527,
-     3528, 3528, 3529, 3529, 3466, 3466, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3530, 3465, 3465, 3530,
-     3530, 3465, 3465, 3465,  284, 3465,  286,  284,  287,  286,
-     3465, 3465, 3465, 3531, 3465, 3465, 3531, 3531, 3531, 3465,
-
-     3465,  286,  286,  286, 3465, 3465, 3465, 3532, 3465, 3465,
-     3532, 3465, 3465, 3465, 3465, 3465, 3465, 3533, 3465, 3465,
-     3533, 3533, 3533, 3465, 3465, 3465, 3465, 3465, 3465, 3534,
-     3465, 3465, 3534, 3534, 3534, 3465, 3465,  286,  286, 3465,
-     3465, 3465, 3535, 3465, 3465, 3535, 3535, 3465, 3465,  286,
-      286, 3465, 3465, 3465, 3536, 3465, 3465, 3536, 3536, 3536,
-     3536, 3536, 3536, 3465, 3465, 3465, 3465, 3465, 3465, 3537,
-     3465, 3465, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537,
-     3537, 3465, 3465,  286,  286, 3465, 3465, 3465, 3538, 3465,
-     3465, 3538, 3465, 3465,  286,  286, 3465, 3465, 3465, 3539,
-
-     3465, 3465, 3539, 3465, 3465, 3465, 3465, 3465, 3465, 3540,
-     3465, 3465, 3540, 3540, 3540, 3540, 3540, 3465, 3465,  286,
-      286,  286, 3465, 3465, 3465, 3541, 3465, 3465, 3541, 3541,
-     3541, 3465, 3465, 3465, 3465, 3465, 3465, 3542, 3465, 3465,
-     3542, 3465, 3465,  286,  444,  286, 3465, 3465, 3465, 3543,
-     3465, 3465, 3543, 3543, 3543, 3543, 3465, 3465,  286,  286,
-     3465, 3465, 3465, 3544, 3465, 3465, 3544, 3544, 3465, 3465,
-     3465, 3465, 3465, 3465, 3545, 3465, 3465, 3545, 3545, 3465,
-     3465, 3465, 3465, 3465, 3465, 3546, 3465, 3465, 3546, 3546,
-     3465, 3465, 3465, 3465, 3465, 3465, 3547, 3465, 3465, 3547,
-
-     3547, 3465, 3465, 3465, 3465, 3465, 3465, 3548, 3465, 3465,
-     3548, 3548, 3548, 3548, 3548, 3548, 3548, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3549, 3465, 3465, 3549, 3465, 3465,
-      444,  444,  286,  286,  286,  286, 3465, 3465, 3465, 3550,
-     3465, 3465, 3550, 3550, 3550, 3550, 3550, 3465, 3465,  286,
-      286,  286, 3465, 3465, 3465, 3551, 3465, 3465, 3551, 3551,
-     3465, 3465, 3465, 3465, 3465, 3465, 3552, 3465, 3465, 3552,
-     3552, 3552, 3552, 3552, 3465, 3465, 3465, 3465, 3465, 3465,
-     3553, 3465, 3465, 3553, 3553, 3465, 3465,  286,  286, 3465,
-     3465, 3465, 3554, 3465, 3465, 3554, 3554, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3555, 3465, 3465, 3555, 3555, 3555, 3555,
-     3465, 3465,  286,  286, 3465, 3465, 3465, 3556, 3465, 3465,
-     3556, 3556, 3556, 3556, 3465, 3465,  286,  286,  286, 3465,
-     3465, 3465, 3557, 3465, 3465, 3557, 3557, 3557, 3465, 3465,
-     3465, 3465, 3465, 3558, 3465, 3465, 3558, 3558, 3558, 3465,
-     3465, 3465, 3465, 3559, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3560, 3560,
-     3560, 3561, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3562, 3562, 3562, 3562, 3562, 3563,
-     3465, 3465, 3564, 3564, 3565, 3465, 3566, 3566, 3566, 3566,
-     3567, 3465, 3568, 3568, 3568, 3568, 3569, 3465, 3570, 3570,
-     3570, 3571, 3465, 3572, 3572, 3572, 3572, 3572, 3572, 3572,
-     3572, 3573, 3465, 3574, 3574, 3574, 3574, 3574, 3574, 3574,
-     3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574,
-     3575, 3465, 3576, 3576, 3577, 3465, 3578, 3578, 3579, 3465,
-     3580, 3580, 3580, 3580, 3580, 3580, 3580, 3581, 3465, 3465,
-     3582, 3582, 3582, 3582, 3583, 3465, 3584, 3584, 3585, 3465,
-     3465, 3586, 3586, 3586, 3586, 3586, 3586, 3587, 3465, 3588,
-
-     3588, 3588, 3589, 3465, 3590, 3590, 3590, 3591, 3465, 3592,
-     3592, 3592, 3593, 3465, 3594, 3594, 3594, 3595, 3465, 3596,
-     3596, 3596, 3596, 3596, 3596, 3596, 3596, 3597, 3465, 3465,
-     3598, 3598, 3599, 3465, 3465, 3465, 3465, 3465, 3465, 3600,
-     3600, 3600, 3600, 3600, 3600, 3601, 3465, 3465, 3602, 3602,
-     3602, 3603, 3465, 3604, 3604, 3604, 3604, 3604, 3604, 3604,
-     3604, 3604, 3605, 3465, 3606, 3606, 3606, 3606, 3607, 3465,
-     3608, 3608, 3608, 3609, 3465, 3610, 3610, 3610, 3610, 3610,
-     3611, 3465, 3612, 3612, 3612, 3612, 3612, 3613, 3465, 3465,
-     3614, 3614, 3614, 3614, 3465, 3615, 3465, 3465, 3616, 3616,
-
-     3616, 3616, 3617, 3618, 3465, 3618, 3465, 3465, 3465, 3619,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3620, 3621,
-     3621, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3622, 3622,
-     3622, 3622, 3623, 3623, 3465, 3624, 3625, 3625, 3626, 3465,
-     3465, 3626, 3627, 3627, 3628, 3628, 3628, 3629, 3629, 3630,
-     3630, 3631, 3631, 3465, 3465, 3465, 3465, 3632, 3632, 3632,
-     3632, 3632, 3633, 3633, 3634, 3634, 3465, 3465, 3634, 3465,
-
-     3465, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
-     3634, 3634, 3635, 3635, 3465, 3465, 3636, 3636, 3637, 3638,
-     3638, 3639, 3639, 3639, 3465, 3465, 3639, 3639, 3639, 3640,
-     3640, 3465, 3465, 3641, 3465, 3465, 3465, 3465, 3642, 3642,
-     3643, 3644, 3644, 3465, 3645, 3465, 3465, 3645, 3645, 3645,
-     3646, 3646, 3647, 3465, 3465, 3648, 3648, 3465, 3465, 3649,
-     3650, 3650, 3651, 3651, 3652, 3652, 3653, 3653, 3654, 3654,
-     3655, 3655, 3655, 3465, 3465, 3655, 3655, 3655, 3656, 3656,
-     3465, 3657, 3658, 3658, 3465, 3465, 3465, 3659, 3659, 3659,
-     3659, 3659, 3660, 3660, 3465, 3465, 3465, 3661, 3662, 3662,
-
-     3663, 3465, 3465, 3663, 3663, 3663, 3663, 3663, 3663, 3664,
-     3664, 3665, 3665, 3665, 3666, 3666, 3667, 3465, 3465, 3668,
-     3668, 3669, 3669, 3465, 3465, 3669, 3670, 3670, 3671, 3465,
-     3465, 3671, 3671, 3672, 3672, 3465, 3673, 3465, 3465, 3673,
-     3465, 3674, 3674, 3465, 3675, 3675, 3675, 3676, 3676, 3677,
-     3465, 3465, 3677, 3465, 3465, 3678, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3679, 3465, 3680, 3465, 3680, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3681, 3681, 3465, 3465, 3681, 3465, 3682, 3465, 3682, 3465,
-     3683, 3465, 3684, 3465, 3684, 3685, 3465, 3465, 3465, 3685,
-     3465, 3686, 3465, 3686, 3465, 3465, 3687, 3687, 3465, 3465,
-     3465, 3688, 3465, 3688, 3465, 3465, 3465, 3465, 3465, 3689,
-     3465, 3689, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3690, 3690, 3690, 3690, 3465, 3691, 3465, 3691, 3692, 3692,
-     3692, 3692, 3465, 3465, 3465, 3692, 3465, 3465, 3465, 3465,
-     3465, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692,
-     3692, 3465, 3693, 3465, 3693, 3465, 3465, 3465, 3465, 3694,
-
-     3465, 3694, 3695, 3465, 3696, 3465, 3696, 3697, 3697, 3697,
-     3465, 3465, 3465, 3697, 3697, 3697, 3465, 3698, 3465, 3698,
-     3465, 3465, 3699, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3700, 3465, 3700, 3701, 3465, 3702, 3465, 3702, 3703, 3465,
-     3465, 3465, 3703, 3703, 3703, 3465, 3704, 3465, 3704, 3705,
-     3465, 3465, 3465, 3465, 3706, 3465, 3706, 3465, 3465, 3465,
-     3707, 3465, 3708, 3465, 3708, 3709, 3709, 3465, 3710, 3465,
-     3710, 3711, 3711, 3465, 3712, 3465, 3712, 3713, 3713, 3713,
-     3713, 3465, 3465, 3465, 3465, 3465, 3713, 3713, 3465, 3714,
-     3465, 3714, 3465, 3715, 3465, 3716, 3465, 3716, 3465, 3465,
-
-     3465, 3717, 3717, 3717, 3717, 3717, 3465, 3718, 3465, 3718,
-     3465, 3465, 3465, 3465, 3719, 3465, 3720, 3465, 3720, 3721,
-     3465, 3465, 3465, 3465, 3465, 3721, 3465, 3465, 3721, 3721,
-     3721, 3465, 3722, 3465, 3722, 3465, 3465, 3465, 3465, 3723,
-     3465, 3724, 3465, 3724, 3725, 3465, 3465, 3465, 3465, 3726,
-     3465, 3726, 3727, 3727, 3465, 3465, 3465, 3727, 3465, 3728,
-     3465, 3728, 3729, 3465, 3465, 3465, 3729, 3729, 3465, 3730,
-     3465, 3730, 3465, 3731, 3465, 3465, 3465, 3731, 3465, 3465,
-     3732, 3465, 3732, 3733, 3733, 3733, 3465, 3734, 3465, 3734,
-     3735, 3736, 3465, 3465, 3465, 3465, 3737, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3738, 3738, 3465, 3465, 3465, 3738, 3739, 3465, 3740, 3741,
-     3742, 3742, 3743, 3465, 3465, 3465, 3744, 3744, 3465, 3465,
-     3465, 3745, 3465, 3465, 3465, 3465, 3465, 3465, 3746, 3465,
-     3465, 3465, 3747, 3747, 3747, 3747, 3748, 3749, 3749, 3749,
-     3749, 3465, 3465, 3465, 3465, 3465, 3749, 3749, 3749, 3749,
-     3749, 3749, 3749, 3749, 3749, 3749, 3749, 3750, 3751, 3465,
-
-     3465, 3752, 3753, 3753, 3465, 3465, 3753, 3753, 3753, 3754,
-     3465, 3465, 3465, 3465, 3755, 3465, 3465, 3756, 3757, 3757,
-     3757, 3757, 3758, 3759, 3760, 3761, 3762, 3465, 3465, 3763,
-     3764, 3465, 3465, 3765, 3766, 3767, 3767, 3767, 3767, 3465,
-     3465, 3465, 3767, 3767, 3768, 3465, 3769, 3770, 3465, 3465,
-     3465, 3771, 3465, 3465, 3771, 3771, 3771, 3772, 3465, 3773,
-     3774, 3775, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3775, 3465, 3465, 3775, 3776, 3465, 3465, 3465, 3465, 3465,
-     3465, 3777, 3778, 3779, 3780, 3781, 3781, 3781, 3782, 3783,
-     3783, 3465, 3465, 3784, 3465, 3465, 3465, 3785, 3465, 3786,
-
-     3787, 3465, 3465, 3787, 3788, 3789, 3790, 3790, 3465, 3790,
-     3465, 3465, 3791, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3792, 3792, 3792, 3793, 3465, 3465, 3465, 3794,
-     3795, 3795, 3796, 3797, 3797, 3798, 3799, 3465, 3465, 3800,
-     3800, 3800, 3801, 3802, 3465, 3465, 3802, 3802, 3465, 3465,
-     3465, 3802, 3802, 3465, 3465, 3802, 3802, 3802, 3802, 3802,
-     3802, 3802, 3802, 3803, 3804, 3465, 3465, 3465, 3465, 3465,
-
-     3805, 3805, 3465, 3465, 3465, 3465, 3465, 3805, 3465, 3465,
-     3805, 3806, 3465, 3465, 3465, 3465, 3465, 3807, 3465, 3465,
-     3465, 3808, 3809, 3809, 3809, 3465, 3465, 3809, 3810, 3811,
-     3812, 3465, 3465, 3813, 3465, 3465, 3465, 3814, 3815, 3465,
-     3465, 3465, 3816, 3817, 3818, 3465, 3465, 3818, 3818, 3465,
-     3465, 3818, 3819, 3465, 3820, 3821, 3465, 3465, 3465, 3822,
-     3465, 3465, 3465, 3822, 3822, 3822, 3823, 3465, 3465, 3465,
-     3824, 3825, 3465, 3465, 3465, 3825, 3465, 3465, 3465, 3825,
-     3826, 3827, 3828, 3829, 3830, 3831, 3831, 3831, 3832, 3833,
-     3465, 3465, 3465, 3465, 3465, 3834, 3465, 3465, 3465, 3465,
-
-     3835, 3465, 3836, 3837, 3465, 3465, 3465, 3465, 3465, 3838,
-     3839, 3840, 3840, 3465, 3841, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3842, 3843, 3465, 3465, 3465, 3465, 3844, 3845,
-     3845, 3846, 3465, 3465, 3465, 3465, 3847, 3848, 3465, 3465,
-     3465, 3465, 3465, 3849, 3465, 3465, 3850, 3851, 3465, 3465,
-     3465, 3465, 3465, 3851, 3851, 3851, 3465, 3465, 3465, 3465,
-     3465, 3851, 3851, 3851, 3851, 3465, 3465, 3851, 3851, 3852,
-
-     3853, 3854, 3854, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3854, 3465, 3465, 3465, 3465, 3855, 3856, 3857, 3857,
-     3857, 3465, 3465, 3465, 3857, 3465, 3465, 3858, 3859, 3465,
-     3465, 3465, 3860, 3861, 3862, 3465, 3465, 3863, 3864, 3465,
-     3465, 3465, 3465, 3465, 3864, 3465, 3465, 3465, 3864, 3465,
-     3465, 3465, 3865, 3866, 3465, 3465, 3465, 3867, 3867, 3867,
-     3867, 3868, 3465, 3465, 3465, 3465, 3465, 3465, 3869, 3869,
-     3869, 3870, 3871, 3872, 3873, 3874, 3465, 3465, 3875, 3465,
-     3465, 3876, 3877, 3465, 3465, 3465, 3878, 3465, 3879, 3465,
-     3880, 3881, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3882, 3883, 3884, 3884, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3885, 3886, 3465, 3887, 3888,
-     3465, 3465, 3889, 3465, 3465, 3465, 3465, 3465, 3465, 3890,
-     3891, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3892,
-     3893, 3465, 3465, 3465, 3893, 3893, 3893, 3465, 3465, 3465,
-     3465, 3465, 3893, 3893, 3893, 3465, 3465, 3465, 3893, 3893,
-     3894, 3895, 3896, 3896, 3465, 3465, 3465, 3465, 3465, 3896,
-
-     3465, 3897, 3898, 3899, 3465, 3465, 3899, 3899, 3465, 3465,
-     3899, 3900, 3901, 3902, 3903, 3465, 3465, 3465, 3465, 3465,
-     3904, 3905, 3465, 3465, 3465, 3905, 3905, 3465, 3465, 3465,
-     3906, 3465, 3465, 3465, 3907, 3907, 3907, 3907, 3908, 3465,
-     3909, 3465, 3465, 3909, 3910, 3911, 3465, 3465, 3912, 3913,
-     3465, 3465, 3465, 3465, 3465, 3914, 3465, 3465, 3465, 3915,
-     3465, 3465, 3916, 3917, 3465, 3918, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3919, 3920, 3921, 3921, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3922, 3923, 3465, 3924,
-     3925, 3465, 3465, 3465, 3926, 3927, 3928, 3465, 3465, 3465,
-     3929, 3930, 3930, 3930, 3930, 3465, 3465, 3465, 3930, 3930,
-     3930, 3930, 3465, 3465, 3931, 3465, 3465, 3932, 3932, 3465,
-     3465, 3465, 3465, 3932, 3465, 3933, 3934, 3935, 3465, 3465,
-     3465, 3935, 3935, 3465, 3465, 3465, 3465, 3935, 3936, 3937,
-     3938, 3939, 3940, 3941, 3941, 3941, 3465, 3465, 3465, 3465,
-     3942, 3465, 3465, 3465, 3943, 3943, 3943, 3944, 3465, 3945,
-     3465, 3465, 3465, 3945, 3465, 3465, 3946, 3947, 3465, 3465,
-
-     3465, 3465, 3465, 3948, 3949, 3465, 3465, 3465, 3950, 3951,
-     3465, 3952, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3953, 3954, 3955, 3955,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3956, 3465, 3465,
-     3465, 3957, 3465, 3465, 3958, 3959, 3960, 3465, 3465, 3961,
-     3961, 3961, 3961, 3961, 3465, 3465, 3961, 3961, 3961, 3465,
-     3465, 3465, 3465, 3465, 3962, 3962, 3465, 3465, 3465, 3465,
-     3962, 3465, 3963, 3465, 3465, 3465, 3465, 3964, 3964, 3964,
-
-     3465, 3465, 3465, 3465, 3964, 3465, 3465, 3965, 3966, 3465,
-     3465, 3940, 3941, 3941, 3941, 3465, 3942, 3465, 3465, 3465,
-     3465, 3465, 3943, 3943, 3465, 3465, 3465, 3465, 3465, 3945,
-     3946, 3947, 3948, 3465, 3465, 3950, 3951, 3465, 3952, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3953,
-     3954, 3955, 3955, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3956, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3959, 3960, 3961, 3961, 3961, 3961,
-     3961, 3465, 3465, 3465, 3961, 3465, 3465, 3961, 3465, 3465,
-
-     3465, 3465, 3962, 3962, 3465, 3465, 3465, 3465, 3963, 3465,
-     3465, 3465, 3964, 3964, 3964, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3966, 3465, 3465, 3465, 3465, 3465,
-     3941, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3945, 3946, 3947, 3948,
-     3950, 3951, 3465, 3952, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3953, 3954, 3955, 3955, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3959, 3960, 3961, 3961, 3961, 3465, 3465, 3961, 3961,
-
-     3465, 3465, 3465, 3961, 3465, 3465, 3465, 3465, 3465, 3465,
-     3962, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3964, 3964,
-     3964, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3966, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3945,
-     3465, 3465, 3465, 3465, 3948, 3950, 3951, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3953, 3954, 3955, 3955, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3959, 3960, 3961,
-
-     3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3961, 3961,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3962, 3465,
-     3465, 3465, 3964, 3465, 3465, 3964, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3945, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3951, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3953, 3954, 3955, 3955, 3955, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3959, 3465, 3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465,
-     3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3962, 3964, 3465, 3465, 3465, 3964, 3465, 3465,
-     3465, 3465, 3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3951,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3953, 3954,
-     3955, 3955, 3955, 3967, 3968, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3959, 3961, 3961, 3465, 3465, 3961, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3962, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3953, 3954, 3955, 3969, 3970, 3967, 3968, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3961,
-     3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3962, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3954, 3969, 3955, 3971,
-     3970, 3972, 3955, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3962, 3465, 3465, 3465, 3465, 3941,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3954, 3971, 3465, 3972, 3955, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954,
-     3954, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3465,    0, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465
+     3477, 3477, 3504, 3504, 3504, 3504, 3505, 3505, 3506, 3506,
+     3507, 3507, 3508, 3508, 3477, 3477, 3508, 3508, 3508, 3508,
+     3509, 3509, 3510, 3510, 3477, 3477, 3510, 3510, 3510, 3510,
+     3511, 3511, 3512, 3512, 3513, 3513, 3514, 3514, 3515, 3515,
+     3516, 3516, 3517, 3517, 3518, 3518, 3519, 3519, 3520, 3520,
+     3477, 3477, 3521, 3521, 3522, 3522, 3522, 3522, 3477, 3477,
+     3522, 3522, 3522, 3522, 3477, 3477, 3522, 3522, 3477, 3477,
+     3522, 3522, 3522, 3522, 3523, 3523, 3524, 3524, 3477, 3477,
+     3524, 3524, 3524, 3524, 3525, 3525, 3526, 3526, 3527, 3527,
+
+     3528, 3528, 3529, 3529, 3530, 3530, 3477, 3477, 3530, 3530,
+     3530, 3530, 3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534,
+     3477, 3477, 3534, 3534, 3534, 3534, 3535, 3535, 3536, 3536,
+     3477, 3477, 3536, 3536, 3536, 3536, 3537, 3537, 3538, 3538,
+     3539, 3539, 3540, 3540, 3477, 3477, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3541, 3476, 3476, 3541,
+     3541, 3476, 3476, 3476,  284, 3476,  286,  284,  287,  286,
+     3476, 3476, 3476, 3542, 3476, 3476, 3542, 3542, 3542, 3476,
+
+     3476,  286,  286,  286, 3476, 3476, 3476, 3543, 3476, 3476,
+     3543, 3476, 3476, 3476, 3476, 3476, 3476, 3544, 3476, 3476,
+     3544, 3544, 3544, 3476, 3476, 3476, 3476, 3476, 3476, 3545,
+     3476, 3476, 3545, 3545, 3545, 3476, 3476,  286,  286, 3476,
+     3476, 3476, 3546, 3476, 3476, 3546, 3546, 3476, 3476,  286,
+      286, 3476, 3476, 3476, 3547, 3476, 3476, 3547, 3547, 3547,
+     3547, 3547, 3547, 3476, 3476, 3476, 3476, 3476, 3476, 3548,
+     3476, 3476, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548,
+     3548, 3476, 3476,  286,  286, 3476, 3476, 3476, 3549, 3476,
+     3476, 3549, 3476, 3476,  286,  286, 3476, 3476, 3476, 3550,
+
+     3476, 3476, 3550, 3476, 3476, 3476, 3476, 3476, 3476, 3551,
+     3476, 3476, 3551, 3551, 3551, 3551, 3551, 3476, 3476,  286,
+      286,  286, 3476, 3476, 3476, 3552, 3476, 3476, 3552, 3552,
+     3552, 3476, 3476, 3476, 3476, 3476, 3476, 3553, 3476, 3476,
+     3553, 3476, 3476,  286,  444,  286, 3476, 3476, 3476, 3554,
+     3476, 3476, 3554, 3554, 3554, 3554, 3476, 3476,  286,  286,
+     3476, 3476, 3476, 3555, 3476, 3476, 3555, 3555, 3476, 3476,
+     3476, 3476, 3476, 3476, 3556, 3476, 3476, 3556, 3556, 3476,
+     3476, 3476, 3476, 3476, 3476, 3557, 3476, 3476, 3557, 3557,
+     3476, 3476, 3476, 3476, 3476, 3476, 3558, 3476, 3476, 3558,
+
+     3558, 3476, 3476, 3476, 3476, 3476, 3476, 3559, 3476, 3476,
+     3559, 3559, 3559, 3559, 3559, 3559, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3560, 3476, 3476, 3560, 3476, 3476,  444,
+      444,  286,  286,  286,  286, 3476, 3476, 3476, 3561, 3476,
+     3476, 3561, 3561, 3561, 3561, 3561, 3476, 3476,  286,  286,
+      286, 3476, 3476, 3476, 3562, 3476, 3476, 3562, 3562, 3476,
+     3476, 3476, 3476, 3476, 3476, 3563, 3476, 3476, 3563, 3563,
+     3563, 3563, 3563, 3476, 3476, 3476, 3476, 3476, 3476, 3564,
+     3476, 3476, 3564, 3564, 3476, 3476,  286,  286, 3476, 3476,
+     3476, 3565, 3476, 3476, 3565, 3565, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3566, 3476, 3476, 3566, 3566, 3566, 3566, 3476,
+     3476,  286,  286, 3476, 3476, 3476, 3567, 3476, 3476, 3567,
+     3567, 3567, 3567, 3476, 3476,  286,  286,  286, 3476, 3476,
+     3476, 3568, 3476, 3476, 3568, 3568, 3568, 3476, 3476, 3476,
+     3476, 3476, 3569, 3476, 3476, 3569, 3569, 3569, 3476, 3476,
+     3476, 3476, 3570, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3571, 3571, 3571,
+     3572, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3573, 3573, 3573, 3573, 3573, 3574, 3476,
+     3476, 3575, 3575, 3576, 3476, 3577, 3577, 3577, 3577, 3578,
+     3476, 3579, 3579, 3579, 3579, 3580, 3476, 3581, 3581, 3581,
+     3582, 3476, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583,
+     3584, 3476, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585,
+     3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3586,
+     3476, 3587, 3587, 3588, 3476, 3589, 3589, 3590, 3476, 3591,
+     3591, 3591, 3591, 3591, 3591, 3591, 3592, 3476, 3476, 3593,
+     3593, 3593, 3593, 3594, 3476, 3595, 3595, 3596, 3476, 3476,
+     3597, 3597, 3597, 3597, 3597, 3597, 3598, 3476, 3599, 3599,
+
+     3599, 3600, 3476, 3601, 3601, 3601, 3602, 3476, 3603, 3603,
+     3603, 3604, 3476, 3605, 3605, 3605, 3606, 3476, 3607, 3607,
+     3607, 3607, 3607, 3607, 3607, 3607, 3608, 3476, 3476, 3609,
+     3609, 3610, 3476, 3476, 3476, 3476, 3476, 3476, 3611, 3611,
+     3611, 3611, 3611, 3611, 3612, 3476, 3476, 3613, 3613, 3613,
+     3614, 3476, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
+     3615, 3616, 3476, 3617, 3617, 3617, 3617, 3618, 3476, 3619,
+     3619, 3619, 3620, 3476, 3621, 3621, 3621, 3621, 3621, 3622,
+     3476, 3623, 3623, 3623, 3623, 3623, 3624, 3476, 3476, 3625,
+     3625, 3625, 3625, 3476, 3626, 3476, 3476, 3627, 3627, 3627,
+
+     3627, 3628, 3629, 3476, 3629, 3476, 3476, 3476, 3630, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3631, 3632, 3632,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3633, 3633, 3633,
+     3633, 3634, 3634, 3476, 3635, 3636, 3636, 3637, 3476, 3476,
+     3637, 3638, 3638, 3639, 3639, 3639, 3640, 3640, 3641, 3641,
+     3642, 3642, 3476, 3476, 3476, 3476, 3643, 3643, 3643, 3643,
+     3643, 3644, 3644, 3645, 3645, 3476, 3476, 3645, 3476, 3476,
+
+     3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645,
+     3645, 3646, 3646, 3476, 3476, 3647, 3647, 3648, 3649, 3649,
+     3650, 3650, 3650, 3476, 3476, 3650, 3650, 3650, 3651, 3651,
+     3476, 3476, 3652, 3476, 3476, 3476, 3476, 3653, 3653, 3654,
+     3655, 3655, 3476, 3656, 3476, 3476, 3656, 3656, 3656, 3657,
+     3657, 3658, 3476, 3476, 3659, 3659, 3476, 3476, 3660, 3661,
+     3661, 3662, 3662, 3663, 3663, 3664, 3664, 3665, 3665, 3666,
+     3666, 3666, 3476, 3476, 3666, 3666, 3666, 3667, 3667, 3476,
+     3668, 3669, 3669, 3476, 3476, 3476, 3670, 3670, 3670, 3670,
+     3670, 3671, 3671, 3476, 3476, 3476, 3672, 3673, 3673, 3674,
+
+     3476, 3476, 3674, 3674, 3674, 3674, 3674, 3674, 3675, 3675,
+     3676, 3676, 3676, 3677, 3677, 3678, 3476, 3476, 3679, 3679,
+     3680, 3680, 3476, 3476, 3680, 3681, 3681, 3682, 3476, 3476,
+     3682, 3682, 3683, 3683, 3476, 3684, 3476, 3476, 3684, 3476,
+     3685, 3685, 3476, 3686, 3686, 3686, 3687, 3687, 3688, 3476,
+     3476, 3688, 3476, 3476, 3689, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3690, 3476, 3691, 3476, 3691, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3692,
+     3692, 3476, 3476, 3692, 3476, 3693, 3476, 3693, 3476, 3694,
+     3476, 3695, 3476, 3695, 3696, 3476, 3476, 3476, 3696, 3476,
+     3697, 3476, 3697, 3476, 3476, 3698, 3698, 3476, 3476, 3476,
+     3699, 3476, 3699, 3476, 3476, 3476, 3476, 3476, 3700, 3476,
+     3700, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3701,
+     3701, 3701, 3701, 3476, 3702, 3476, 3702, 3703, 3703, 3703,
+     3703, 3476, 3476, 3476, 3703, 3476, 3476, 3476, 3476, 3476,
+     3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703, 3703,
+     3476, 3704, 3476, 3704, 3476, 3476, 3476, 3476, 3705, 3476,
+
+     3705, 3706, 3476, 3707, 3476, 3707, 3708, 3708, 3708, 3476,
+     3476, 3476, 3708, 3708, 3708, 3476, 3709, 3476, 3709, 3476,
+     3476, 3710, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3711,
+     3476, 3711, 3712, 3476, 3713, 3476, 3713, 3714, 3476, 3476,
+     3476, 3714, 3714, 3714, 3476, 3715, 3476, 3715, 3716, 3476,
+     3476, 3476, 3476, 3717, 3476, 3717, 3476, 3476, 3476, 3718,
+     3476, 3719, 3476, 3719, 3720, 3720, 3476, 3721, 3476, 3721,
+     3722, 3722, 3476, 3723, 3476, 3723, 3724, 3724, 3724, 3724,
+     3476, 3476, 3476, 3476, 3476, 3724, 3724, 3476, 3725, 3476,
+     3725, 3476, 3726, 3476, 3727, 3476, 3727, 3476, 3476, 3476,
+
+     3728, 3728, 3728, 3728, 3728, 3476, 3729, 3476, 3729, 3476,
+     3476, 3476, 3476, 3730, 3476, 3731, 3476, 3731, 3732, 3476,
+     3476, 3476, 3476, 3476, 3732, 3476, 3476, 3732, 3732, 3732,
+     3476, 3733, 3476, 3733, 3476, 3476, 3476, 3476, 3734, 3476,
+     3735, 3476, 3735, 3736, 3476, 3476, 3476, 3476, 3737, 3476,
+     3737, 3738, 3738, 3476, 3476, 3476, 3738, 3476, 3739, 3476,
+     3739, 3740, 3476, 3476, 3476, 3740, 3740, 3476, 3741, 3476,
+     3741, 3476, 3742, 3476, 3476, 3476, 3742, 3476, 3476, 3743,
+     3476, 3743, 3744, 3744, 3744, 3476, 3745, 3476, 3745, 3746,
+     3747, 3476, 3476, 3476, 3476, 3748, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3749,
+     3749, 3476, 3476, 3476, 3749, 3750, 3476, 3751, 3752, 3753,
+     3753, 3754, 3476, 3476, 3476, 3755, 3755, 3476, 3476, 3476,
+     3756, 3476, 3476, 3476, 3476, 3476, 3476, 3757, 3476, 3476,
+     3476, 3758, 3758, 3758, 3758, 3759, 3760, 3760, 3760, 3760,
+     3476, 3476, 3476, 3476, 3476, 3760, 3760, 3760, 3760, 3760,
+     3760, 3760, 3760, 3760, 3760, 3760, 3761, 3762, 3476, 3476,
+
+     3763, 3764, 3764, 3476, 3476, 3764, 3764, 3764, 3765, 3476,
+     3476, 3476, 3476, 3766, 3476, 3476, 3767, 3768, 3768, 3768,
+     3768, 3769, 3770, 3771, 3772, 3773, 3476, 3476, 3774, 3775,
+     3476, 3476, 3776, 3777, 3778, 3778, 3778, 3778, 3476, 3476,
+     3476, 3778, 3778, 3779, 3476, 3780, 3781, 3476, 3476, 3476,
+     3782, 3476, 3476, 3782, 3782, 3782, 3783, 3476, 3784, 3785,
+     3786, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3786,
+     3476, 3476, 3786, 3787, 3476, 3476, 3476, 3476, 3476, 3476,
+     3788, 3789, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794,
+     3476, 3476, 3795, 3476, 3476, 3476, 3796, 3476, 3797, 3798,
+
+     3476, 3476, 3798, 3799, 3800, 3801, 3801, 3476, 3801, 3476,
+     3476, 3802, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3803, 3803, 3803, 3804, 3476, 3476, 3476, 3805, 3806,
+     3806, 3807, 3808, 3808, 3809, 3810, 3811, 3811, 3476, 3476,
+     3811, 3812, 3813, 3476, 3476, 3813, 3813, 3476, 3476, 3476,
+     3813, 3813, 3813, 3813, 3813, 3813, 3476, 3476, 3813, 3813,
+     3813, 3813, 3814, 3815, 3476, 3476, 3476, 3476, 3476, 3816,
+
+     3816, 3476, 3476, 3476, 3816, 3476, 3476, 3476, 3476, 3816,
+     3817, 3476, 3476, 3476, 3476, 3476, 3818, 3476, 3476, 3476,
+     3819, 3820, 3820, 3820, 3476, 3476, 3820, 3821, 3822, 3823,
+     3476, 3476, 3824, 3476, 3476, 3476, 3825, 3826, 3476, 3476,
+     3476, 3827, 3828, 3829, 3476, 3476, 3829, 3829, 3476, 3476,
+     3829, 3830, 3476, 3831, 3832, 3476, 3476, 3476, 3833, 3476,
+     3476, 3476, 3833, 3833, 3833, 3834, 3476, 3476, 3476, 3835,
+     3836, 3476, 3476, 3476, 3836, 3476, 3476, 3476, 3836, 3837,
+     3838, 3839, 3840, 3841, 3842, 3842, 3842, 3843, 3844, 3476,
+     3476, 3476, 3476, 3476, 3845, 3476, 3476, 3476, 3476, 3846,
+
+     3476, 3847, 3848, 3476, 3476, 3476, 3476, 3476, 3849, 3850,
+     3851, 3851, 3476, 3852, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3853, 3854, 3476, 3476, 3476, 3476, 3855, 3856, 3856,
+     3857, 3476, 3476, 3476, 3476, 3858, 3859, 3476, 3476, 3860,
+     3476, 3476, 3476, 3476, 3476, 3861, 3862, 3476, 3476, 3476,
+     3476, 3476, 3862, 3862, 3862, 3476, 3476, 3862, 3862, 3862,
+     3476, 3476, 3476, 3862, 3476, 3476, 3862, 3862, 3863, 3864,
+
+     3865, 3865, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3865, 3476, 3476, 3476, 3476, 3866, 3867, 3868, 3868, 3868,
+     3476, 3476, 3476, 3868, 3476, 3476, 3869, 3870, 3476, 3476,
+     3476, 3871, 3872, 3873, 3476, 3476, 3874, 3875, 3476, 3476,
+     3476, 3476, 3476, 3875, 3476, 3476, 3476, 3875, 3476, 3476,
+     3476, 3876, 3877, 3476, 3476, 3476, 3878, 3878, 3878, 3878,
+     3879, 3476, 3476, 3476, 3476, 3476, 3476, 3880, 3880, 3880,
+     3881, 3882, 3883, 3884, 3885, 3476, 3476, 3886, 3476, 3476,
+     3887, 3888, 3476, 3476, 3476, 3889, 3476, 3890, 3476, 3891,
+     3892, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3893, 3894, 3895, 3895, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3896, 3897, 3476, 3898, 3899, 3476,
+     3476, 3900, 3476, 3476, 3476, 3476, 3476, 3476, 3901, 3902,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3903, 3904,
+     3476, 3476, 3476, 3904, 3904, 3904, 3476, 3476, 3476, 3476,
+     3476, 3904, 3904, 3904, 3476, 3476, 3476, 3904, 3904, 3905,
+     3906, 3907, 3907, 3476, 3476, 3476, 3476, 3476, 3907, 3476,
+
+     3908, 3909, 3910, 3476, 3476, 3910, 3910, 3476, 3476, 3910,
+     3911, 3912, 3913, 3914, 3476, 3476, 3476, 3476, 3476, 3915,
+     3916, 3476, 3476, 3476, 3916, 3916, 3476, 3476, 3476, 3917,
+     3476, 3476, 3476, 3918, 3918, 3918, 3918, 3919, 3476, 3920,
+     3476, 3476, 3920, 3921, 3922, 3476, 3476, 3923, 3924, 3476,
+     3476, 3476, 3476, 3476, 3925, 3476, 3476, 3476, 3926, 3476,
+     3476, 3927, 3928, 3476, 3929, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3930, 3931, 3932, 3932, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3933, 3934, 3476, 3935, 3936,
+     3476, 3476, 3476, 3937, 3938, 3939, 3476, 3476, 3476, 3940,
+     3941, 3941, 3941, 3941, 3476, 3476, 3476, 3941, 3941, 3941,
+     3941, 3476, 3476, 3942, 3476, 3476, 3943, 3943, 3476, 3476,
+     3476, 3476, 3943, 3476, 3944, 3945, 3946, 3476, 3476, 3476,
+     3946, 3946, 3476, 3476, 3476, 3476, 3946, 3947, 3948, 3949,
+     3950, 3951, 3952, 3952, 3952, 3476, 3476, 3476, 3476, 3953,
+     3476, 3476, 3476, 3954, 3954, 3954, 3955, 3476, 3956, 3476,
+     3476, 3476, 3956, 3476, 3476, 3957, 3958, 3476, 3476, 3476,
+
+     3476, 3476, 3959, 3960, 3476, 3476, 3476, 3961, 3962, 3476,
+     3963, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3964, 3965, 3966, 3966, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3967, 3476, 3476, 3476,
+     3968, 3476, 3476, 3969, 3970, 3971, 3476, 3476, 3972, 3972,
+     3972, 3972, 3972, 3476, 3476, 3972, 3972, 3972, 3476, 3476,
+     3476, 3476, 3476, 3973, 3973, 3476, 3476, 3476, 3476, 3973,
+     3476, 3974, 3476, 3476, 3476, 3476, 3975, 3975, 3975, 3476,
+
+     3476, 3476, 3476, 3975, 3476, 3476, 3976, 3977, 3476, 3476,
+     3951, 3952, 3952, 3952, 3476, 3953, 3476, 3476, 3476, 3476,
+     3476, 3954, 3954, 3476, 3476, 3476, 3476, 3476, 3956, 3957,
+     3958, 3959, 3476, 3476, 3961, 3962, 3476, 3963, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964, 3965,
+     3966, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3967, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3970, 3971, 3972, 3972, 3972, 3972, 3972,
+     3476, 3476, 3476, 3972, 3476, 3476, 3972, 3476, 3476, 3476,
+
+     3476, 3973, 3973, 3476, 3476, 3476, 3476, 3974, 3476, 3476,
+     3476, 3975, 3975, 3975, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3977, 3476, 3476, 3476, 3476, 3476, 3952,
+     3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3956, 3957, 3958, 3959, 3961,
+     3962, 3476, 3963, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3964, 3965, 3966, 3966, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3970, 3971, 3972, 3972, 3972, 3476, 3476, 3972, 3972, 3476,
+
+     3476, 3476, 3972, 3476, 3476, 3476, 3476, 3476, 3476, 3973,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3975, 3975, 3975,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3977,
+     3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3956, 3476,
+     3476, 3476, 3476, 3959, 3961, 3962, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964,
+     3965, 3966, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3970, 3971, 3972, 3972,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3972, 3972, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3973, 3476, 3476,
+     3476, 3975, 3476, 3476, 3975, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3956,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3962, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3964, 3965, 3966, 3966, 3966, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3970,
+
+     3476, 3476, 3972, 3972, 3476, 3476, 3476, 3476, 3476, 3476,
+     3972, 3972, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3973, 3975, 3476, 3476, 3476, 3975, 3476, 3476, 3476,
+     3476, 3476, 3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3962, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964, 3965, 3966,
+     3966, 3966, 3978, 3979, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3970, 3972, 3972, 3476, 3476, 3972, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3973, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3964,
+     3965, 3966, 3980, 3981, 3978, 3979, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3972, 3972,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3973,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3965, 3980, 3966, 3982, 3981,
+     3983, 3966, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3972, 3972, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3973, 3476, 3476, 3476, 3476,
+     3952, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3965, 3982, 3476, 3983, 3966, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3965, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3965, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3965, 3965, 3476, 3476, 3476, 3476,
+     3476, 3476, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3965, 3965, 3965, 3476,    0, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476
     } ;
 
-static yyconst flex_int16_t yy_nxt[12587] =
+static yyconst flex_int16_t yy_nxt[12534] =
     {   0,
-     3465,  250,  251,  250,  250,  251,  250,  250,  251,  250,
+     3476,  250,  251,  250,  250,  251,  250,  250,  251,  250,
       250,  251,  250,  255,  251,  255,  261,  252,  258,  261,
-      252,  258,  846,  253, 3465,  259,  253, 3465,  259,  256,
-      255,  251,  255,  654,  262,  264,  265,  262,  264,  265,
-      266,  267,  672,  266,  267,  654,  256,  271,  272,  655,
-      268,  264,  265,  268,  269,  657,  266,  264,  265,  847,
-      269,  656,  266,  271,  272, 3465,  268,  283,  251,  283,
-      796,  656,  268,  283,  251,  283,  283,  251,  283,  283,
-      251,  283,  797,  284,  251,  251,  251,  738, 1723,  284,
-      739,  273,  285, 1379,  700,  285,  653,  653,  653, 1380,
-
-      286,  653,  653,  653,  653,  653,  653,  273,  274,  275,
+      252,  258,  845,  253, 3476,  259,  253, 3476,  259,  256,
+      255,  251,  255,  653,  262,  264,  265,  262,  264,  265,
+      266,  267,  671,  266,  267,  653,  256,  271,  272,  654,
+      268,  264,  265,  268,  269,  656,  266,  264,  265,  846,
+      269,  655,  266,  271,  272,  739,  268,  283,  251,  283,
+      740,  655,  268,  283,  251,  283,  283,  251,  283,  283,
+      251,  283, 1378,  284,  251,  251,  251,  795, 1379,  284,
+      910,  273,  285,  911,  699,  285,  652,  652,  652,  796,
+
+      286,  652,  652,  652,  652,  652,  652,  273,  274,  275,
       251,  275,  274,  274,  274,  274,  274,  274,  274,  276,
-      274,  274,  274,  861,  274,  278,  274,  279,  274,  251,
-      251,  251,  283,  251,  283,  283,  251,  283,  862,  283,
-      251,  283,  283,  251,  283,  286,  657,  657,  284,  708,
-      746,  284,  710,  274,  274,  287,  709, 1596,  287,  653,
-      653,  653,  656,  656,  280,  653,  653,  653,  711, 1597,
-      662,  747,  700,  281,  274,  275,  251,  275,  274,  274,
-      274,  274,  274,  274,  274,  276,  274,  274,  274, 1726,
+      274,  274,  274,  860,  274,  278,  274,  279,  274,  251,
+      251,  251,  283,  251,  283,  283,  251,  283,  861,  283,
+      251,  283,  283,  251,  283,  286,  656,  656,  284,  707,
+      745,  284,  709,  274,  274,  287,  708, 1595,  287,  652,
+      652,  652,  655,  655,  280,  652,  652,  652,  710, 1596,
+      661,  746,  699,  281,  274,  275,  251,  275,  274,  274,
+      274,  274,  274,  274,  274,  276,  274,  274,  274, 1725,
       274,  278,  274,  279,  274,  251,  251,  251,  251,  251,
 
-      251,  283,  251,  283,  700,  283,  251,  283,  251,  251,
-      251,  288,  663,  657,  288, 1727, 1728,  285,  664,  274,
-      274,  285,  657,  665,  289,  251,  251,  251,  666,  656,
-      280,  283,  251,  283,  283,  251,  283,  753,  656,  281,
-      754,  289,  283,  251,  283, 1730,  657,  287,  905,  657,
-      287,  283,  251,  283,  653,  653,  653,  727,  290,  653,
-      653,  653,  656,  906,  710,  656, 1731,  290,  291,  292,
+      251,  283,  251,  283,  699,  283,  251,  283,  251,  251,
+      251,  288,  662,  656,  288, 1726,  923,  285,  663,  274,
+      274,  285,  656,  664,  289,  251,  251,  251,  665,  655,
+      280,  283,  251,  283,  283,  251,  283, 1727,  655,  281,
+      924,  289,  283,  251,  283, 1729,  656,  287,  904,  656,
+      287,  283,  251,  283,  652,  652,  652,  726,  290,  652,
+      652,  652,  655,  905,  709,  655, 1730,  290,  291,  292,
       251,  292,  291,  291,  291,  291,  291,  291,  291,  293,
-      291,  291,  291,  778,  291,  295,  291,  296,  291,  301,
-      251,  301,  301,  251,  301,  251,  251,  251,  732,  251,
+      291,  291,  291,  777,  291,  295,  291,  296,  291,  301,
+      251,  301,  301,  251,  301,  251,  251,  251,  731,  251,
 
-      251,  251,  301,  251,  301,  302,  755,  911,  302,  700,
-      912,  303,  711,  291,  291,  303,  700,  657,  302,  297,
-      756, 1733,  298,  653,  653,  653,  653,  653,  653,  653,
-      653,  653,  779,  656,  299,  291,  292,  251,  292,  291,
+      251,  251,  301,  251,  301,  302,  753,  937,  302,  699,
+     1732,  303,  710,  291,  291,  303,  699,  656,  302,  297,
+      754,  938,  298,  652,  652,  652,  652,  652,  652,  652,
+      652,  652,  778,  655,  299,  291,  292,  251,  292,  291,
       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
-      700,  291,  295,  291,  296,  291,  301,  251,  301,  301,
-      251,  301,  301,  251,  301,  750,  313,  251,  313,  313,
-      251,  313,  302,  751,  657,  304,  657, 1734,  304,  752,
-      291,  291,  314,  715,  657,  314,  297, 1735,  761,  298,
-      656,  721,  656,  653,  653,  653,  653,  653,  653,  765,
-
-      656,  299,  305,  306,  251,  306,  305,  305,  305,  305,
-      305,  305,  305,  307,  305,  305,  305,  924,  305,  309,
+      699,  291,  295,  291,  296,  291,  301,  251,  301,  301,
+      251,  301,  301,  251,  301,  749,  313,  251,  313,  313,
+      251,  313,  302,  750,  656,  304,  656, 1733,  304,  751,
+      291,  291,  314,  714,  656,  314,  297, 1734,  760,  298,
+      655,  720,  655,  652,  652,  652,  652,  652,  652,  764,
+
+      655,  299,  305,  306,  251,  306,  305,  305,  305,  305,
+      305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
       305,  310,  305,  325,  251,  325,  325,  251,  325,  337,
-      251,  337,  926,  337,  251,  337,  251,  251,  251,  326,
-      700,  925,  326,  927, 1736,  338,  928,  305,  305,  338,
-      657,  700,  303,  251,  251,  251,  653,  653,  653,  653,
-      653,  653,  727,  653,  653,  653,  656, 1023,  732,  303,
-     1024,  311,  305,  306,  251,  306,  305,  305,  305,  305,
-      305,  305,  305,  307,  305,  305,  305,  944,  305,  309,
+      251,  337,  925,  337,  251,  337,  251,  251,  251,  326,
+      699,  944,  326,  926, 1735,  338,  927,  305,  305,  338,
+      656,  699,  303,  251,  251,  251,  652,  652,  652,  652,
+      652,  652,  726,  652,  652,  652,  655, 1022,  731,  303,
+     1023,  311,  305,  306,  251,  306,  305,  305,  305,  305,
+      305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
       305,  310,  305,  337,  251,  337,  337,  251,  337,  337,
 
-      251,  337,  905,  337,  251,  337,  349,  251,  349,  338,
-      711,  945,  338, 1738,  700,  339,  711,  305,  305,  339,
-      700, 1739,  350,  349,  251,  349,  653,  653,  653,  653,
-      653,  653,  653,  653,  653,  653,  653,  653, 1141,  350,
-     1182,  311,  315,  316,  251,  316,  315,  315,  315,  315,
-      315,  315,  315,  317,  315,  315,  315, 1183,  315,  319,
+      251,  337,  904,  337,  251,  337,  349,  251,  349,  338,
+      710,  924,  338, 1737,  699,  339,  710,  305,  305,  339,
+      699, 1738,  350,  349,  251,  349,  652,  652,  652,  652,
+      652,  652,  652,  652,  652,  652,  652,  652, 1140,  350,
+     1181,  311,  315,  316,  251,  316,  315,  315,  315,  315,
+      315,  315,  315,  317,  315,  315,  315, 1182,  315,  319,
       315,  320,  315,  251,  251,  251,  251,  251,  251,  349,
-      251,  349,  938,  349,  251,  349,  349,  251,  349,  303,
-      778,  757,  303,  657,  657,  350,  939,  315,  315,  350,
-      742,  321,  351,  758,  759,  653,  653,  653,  322,  656,
+      251,  349,  937,  349,  251,  349,  349,  251,  349,  303,
+      656,  656,  303,  656,  656,  350,  952,  315,  315,  350,
+      741,  321,  351,  652,  652,  652,  655,  655,  322,  655,
 
-      656,  323,  315,  316,  251,  316,  315,  315,  315,  315,
-      315,  315,  315,  317,  315,  315,  315, 1740,  315,  319,
+      655,  323,  315,  316,  251,  316,  315,  315,  315,  315,
+      315,  315,  315,  317,  315,  315,  315, 1739,  315,  319,
       315,  320,  315,  349,  251,  349,  365,  251,  365,  365,
-      251,  365,  700,  383,  251,  383,  383,  251,  383,  351,
-      657,  657,  366,  657,  657,  366, 1741,  315,  315,  384,
-      769,  321,  384,  653,  653,  653,  656,  656,  322,  656,
-      656,  323,  327,  328,  251,  328,  327,  327,  327,  327,
-      327,  327,  327,  329,  327,  327,  327,  944,  327,  331,
+      251,  365,  937,  383,  251,  383,  383,  251,  383,  351,
+      775,  656,  366,  656,  776,  366,  956,  315,  315,  384,
+      768,  321,  384,  652,  652,  652,  825,  655,  322,  655,
+      826,  323,  327,  328,  251,  328,  327,  327,  327,  327,
+      327,  327,  327,  329,  327,  327,  327,  923,  327,  331,
       327,  332,  327,  251,  251,  251,  251,  251,  251,  383,
-      251,  383,  789,  383,  251,  383,  383,  251,  383,  286,
+      251,  383,  777,  383,  251,  383,  383,  251,  383,  286,
 
-      775,  925,  286, 1742,  776,  384, 1745,  327,  327,  384,
-      657,  657,  385,  333, 1748,  798,  334,  653,  653,  653,
-      653,  653,  653,  653,  653,  653,  656,  656,  335,  327,
+      932,  944,  286, 1740,  933,  384,  755,  327,  327,  384,
+      656,  656,  385,  333,  756,  788,  334,  784,  757,  758,
+      652,  652,  652,  652,  652,  652,  655,  655,  335,  327,
       328,  251,  328,  327,  327,  327,  327,  327,  327,  327,
-      329,  327,  327,  327,  700,  327,  331,  327,  332,  327,
-      383,  251,  383,  394,  251,  394,  394,  251,  394,  833,
-      251,  251,  251,  251,  251,  251,  385,  700, 1516,  395,
-     1749, 1750,  395, 1751,  327,  327,  286,  657,  657,  286,
-      333, 1517,  833,  334,  653,  653,  653,  653,  653,  653,
-      653,  653,  653,  656,  656,  335,  340,  341,  251,  341,
+      329,  327,  327,  327,  699,  327,  331,  327,  332,  327,
+      383,  251,  383,  394,  251,  394,  394,  251,  394,  797,
+      251,  251,  251,  251,  251,  251,  385,  699, 1515,  395,
+     1741, 1744,  395, 1747,  327,  327,  286,  656,  656,  286,
+      333, 1516,  832,  334,  652,  652,  652,  652,  652,  652,
+      652,  652,  652,  655,  655,  335,  340,  341,  251,  341,
 
       340,  340,  340,  340,  340,  340,  340,  342,  340,  340,
-      340,  835,  340,  344,  340,  345,  340,  394,  251,  394,
-      394,  251,  394,  394,  251,  394,  833,  394,  251,  394,
-      405,  251,  405,  395,  838,  657,  395,  657, 1752,  396,
-     1151,  340,  340,  396,  785,  657,  406,  346,  653,  653,
-      653,  656,  803,  656,  653,  653,  653,  653,  653,  653,
-     1706,  656,  347,  340,  341,  251,  341,  340,  340,  340,
-      340,  340,  340,  340,  342,  340,  340,  340,  700,  340,
+      340,  699,  340,  344,  340,  345,  340,  394,  251,  394,
+      394,  251,  394,  394,  251,  394,  832,  394,  251,  394,
+      405,  251,  405,  395,  834, 1748,  395, 1749, 1750,  396,
+     1751,  340,  340,  396,  656,  656,  406,  346,  652,  652,
+      652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
+      655,  655,  347,  340,  341,  251,  341,  340,  340,  340,
+      340,  340,  340,  340,  342,  340,  340,  340,  837,  340,
       344,  340,  345,  340,  405,  251,  405,  419,  251,  419,
-      419,  251,  419,  846,  251,  251,  251,  251,  251,  251,
+      419,  251,  419,  832,  251,  251,  251,  251,  251,  251,
 
-      406,  933, 1753,  420, 1754,  934,  420, 1755,  340,  340,
-      421,  657,  657,  421,  346,  653,  653,  653,  653,  653,
-      653,  653,  653,  653,  653,  653,  653,  656,  656,  347,
+      406, 1031, 1752,  420, 1753, 1032,  420, 1754,  340,  340,
+      421,  656,  656,  421,  346,  652,  652,  652,  652,  652,
+      652,  652,  652,  652,  652,  652,  652,  655,  655,  347,
       352,  353,  251,  353,  352,  352,  352,  352,  352,  352,
-      352,  354,  352,  352,  352,  700,  352,  356,  352,  357,
+      352,  354,  352,  352,  352,  699,  352,  356,  352,  357,
       352,  419,  251,  419,  419,  251,  419,  419,  251,  419,
-      869,  419,  251,  419,  433,  251,  433,  420,  657,  657,
-      420,  657,  657,  422, 1761,  352,  352,  422,  808,  358,
-      434,  653,  653,  653,  656,  656,  359,  656,  656,  360,
-      653,  653,  653,  361, 1762,  362,  363,  352,  353,  251,
+      845,  419,  251,  419,  433,  251,  433,  420,  656,  656,
+      420,  656,  656,  422, 1150,  352,  352,  422,  802,  358,
+      434,  652,  652,  652,  655,  655,  359,  655,  655,  360,
+      652,  652,  652,  361, 1705,  362,  363,  352,  353,  251,
 
       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
-      352,  352,  700,  352,  356,  352,  357,  352,  433,  251,
-      433,  443,  251,  443,  443,  251,  443,  829,  251,  251,
-      251,  251,  251,  251,  434,  657,  657,  444,  657,  657,
-      444, 1764,  352,  352,  445,  813,  358,  445,  653,  653,
-      653,  656,  656,  359,  656,  656,  360,  653,  653,  653,
-      361, 1765,  362,  363,  367,  368,  251,  368,  367,  367,
+      352,  352,  699,  352,  356,  352,  357,  352,  433,  251,
+      433,  443,  251,  443,  443,  251,  443,  828,  251,  251,
+      251,  251,  251,  251,  434,  656,  656,  444,  656,  656,
+      444, 1760,  352,  352,  445,  807,  358,  445,  652,  652,
+      652,  655,  655,  359,  655,  655,  360,  652,  652,  652,
+      361, 1761,  362,  363,  367,  368,  251,  368,  367,  367,
       367,  367,  367,  367,  367,  369,  367,  367,  367,  370,
       367,  371,  367,  372,  367,  370,  370,  370,  370,  370,
       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
@@ -1858,1385 +1861,1380 @@ static yyconst flex_int16_t yy_nxt[12587] =
       376,  370,  370,  377,  370,  370,  370,  378,  370,  379,
       380,  381,  370,  370,  370,  370,  370,  370,  386,  387,
       251,  387,  386,  386,  386,  386,  386,  386,  386,  388,
-      386,  386,  386, 1774,  386,  390,  386,  391,  386,  443,
-      251,  443,  443,  251,  443,  443,  251,  443, 1777,  443,
-      251,  443,  458,  251,  458,  444,  657,  657,  444,  867,
-     1778,  446,  881,  386,  386,  446,  868,  888,  459,  653,
-      653,  653,  656,  656,  392,  386,  387,  251,  387,  386,
+      386,  386,  386, 1763,  386,  390,  386,  391,  386,  443,
+      251,  443,  443,  251,  443,  443,  251,  443, 1764,  443,
+      251,  443,  458,  251,  458,  444,  656,  656,  444,  866,
+     1767,  446,  868,  386,  386,  446,  867,  880,  459,  652,
+      652,  652,  655,  655,  392,  386,  387,  251,  387,  386,
 
       386,  386,  386,  386,  386,  386,  388,  386,  386,  386,
-     1782,  386,  390,  386,  391,  386,  458,  251,  458,  251,
-      251,  251,  251,  251,  251, 1783,  458,  251,  458,  458,
-      251,  458,  459,  657,  700,  286,  889,  935,  286,  888,
-      386,  386,  459,  924,  936,  459,  653,  653,  653,  656,
-      937,  392,  397,  398,  251,  398,  397,  397,  397,  397,
-      397,  397,  397,  399,  397,  397,  397,  945,  397,  401,
+     1768,  386,  390,  386,  391,  386,  458,  251,  458,  251,
+      251,  251,  251,  251,  251, 1771,  458,  251,  458,  458,
+      251,  458,  459,  887,  699,  286,  934, 1773,  286,  699,
+      386,  386,  459,  935,  887,  459,  652,  652,  652,  936,
+     1181,  392,  397,  398,  251,  398,  397,  397,  397,  397,
+      397,  397,  397,  399,  397,  397,  397, 1320,  397,  401,
       397,  402,  397,  458,  251,  458,  458,  251,  458,  470,
-      251,  470, 1786,  470,  251,  470,  481,  251,  481,  460,
-     1787,  700,  460,  657,  657,  471,  657,  397,  397,  471,
+      251,  470,  888,  470,  251,  470,  481,  251,  481,  460,
+     1776, 1777,  460,  656,  656,  471,  699,  397,  397,  471,
 
-      818,  828,  482,  653,  653,  653,  653,  653,  653,  656,
-      656, 1788,  656,  403,  397,  398,  251,  398,  397,  397,
-      397,  397,  397,  397,  397,  399,  397,  397,  397, 1789,
+      812,  817,  482,  652,  652,  652,  652,  652,  652,  655,
+      655, 1781, 1472,  403,  397,  398,  251,  398,  397,  397,
+      397,  397,  397,  397,  397,  399,  397,  397,  397, 1182,
       397,  401,  397,  402,  397,  481,  251,  481,  492,  251,
-      492,  492,  251,  492,  938,  503,  251,  503,  503,  251,
-      503,  482, 1790, 1151,  493,  837,  657,  493,  953,  397,
-      397,  504, 1791,  852,  504,  653,  653,  653,  700, 1153,
-      836, 1792,  656, 3465, 1182,  403,  407,  408,  251,  408,
+      492,  492,  251,  492, 1782,  503,  251,  503,  503,  251,
+      503,  482, 1783, 1784,  493,  656,  656,  493,  656,  397,
+      397,  504,  827,  851,  504,  652,  652,  652,  652,  652,
+      652,  655,  655, 3476,  655,  403,  407,  408,  251,  408,
       407,  407,  407,  407,  407,  407,  407,  409,  407,  407,
-      407, 1321,  407,  411,  407,  412,  407,  519,  251,  519,
-
-      519,  251,  519,  251,  251,  251,  857,  251,  251,  251,
-      858,  702, 1793,  520,  859, 1801,  520,  946, 1802,  521,
-     1808,  407,  407,  521,  413,  686,  414,  703,  947,  697,
-      869,  928,  415,  653,  653,  653,  653,  653,  653,  416,
-      833, 1473,  417,  407,  408,  251,  408,  407,  407,  407,
-      407,  407,  407,  407,  409,  407,  407,  407, 1183,  407,
-      411,  407,  412,  407,  530,  251,  530,  530,  251,  530,
-      530,  251,  530,  938,  530,  251,  530, 1032,  711,  834,
-      531, 1033,  700,  531,  938, 1813,  532,  957,  407,  407,
-      532,  413,  835,  414,  836,  653,  653,  653,  958,  415,
-
-      653,  653,  653,  653,  653,  653,  416, 1814, 1823,  417,
+      407, 1785,  407,  411,  407,  412,  407,  518,  251,  518,
+
+      518,  251,  518,  251,  251,  251,  856,  251,  251,  251,
+      857,  701, 1786,  519,  858,  836,  519,  937, 1789,  520,
+     1790,  407,  407,  520,  413,  685,  414,  702,  699,  696,
+      835,  957,  415,  652,  652,  652,  652,  652,  652,  416,
+      832, 1791,  417,  407,  408,  251,  408,  407,  407,  407,
+      407,  407,  407,  407,  409,  407,  407,  407, 1792,  407,
+      411,  407,  412,  407,  529,  251,  529,  529,  251,  529,
+      529,  251,  529,  945,  529,  251,  529, 1135, 1800,  833,
+      530,  933,  656,  530,  946, 1801,  531,  927,  407,  407,
+      531,  413,  834,  414,  835,  652,  652,  652,  655,  415,
+
+      652,  652,  652,  652,  652,  652,  416, 1805, 1812,  417,
       423,  424,  251,  424,  423,  423,  423,  423,  423,  423,
-      423,  425,  423,  423,  423, 1824,  423,  427,  423,  428,
-      423,  251,  251,  251,  251,  251,  251,  530,  251,  530,
-     1087,  530,  251,  530,  530,  251,  530,  533, 1825, 1830,
-      533,  657,  935,  531,  953,  423,  423,  531,  863,  936,
-      534,  429,  653,  653,  653,  942,  430,  656,  653,  653,
-      653,  653,  653,  653,  653,  653,  653, 1838,  431,  423,
+      423,  425,  423,  423,  423,  868,  423,  427,  423,  428,
+      423,  251,  251,  251,  251,  251,  251,  529,  251,  529,
+     1086,  529,  251,  529,  529,  251,  529,  532, 1813, 1822,
+      532,  656,  934,  530,  952,  423,  423,  530,  862,  935,
+      533,  429,  652,  652,  652,  941,  430,  655,  652,  652,
+      652, 1823, 1824,  710,  652,  652,  652,  699,  431,  423,
       424,  251,  424,  423,  423,  423,  423,  423,  423,  423,
-      425,  423,  423,  423, 1843,  423,  427,  423,  428,  423,
+      425,  423,  423,  423, 1829,  423,  427,  423,  428,  423,
 
-      530,  251,  530,  251,  251,  251,  251,  251,  251, 1845,
-      530,  251,  530,  530,  251,  530,  534, 1848, 1849,  445,
-      657,  952,  445, 1852,  423,  423,  532,  874,  936,  532,
-      429,  653,  653,  653,  937,  430,  656,  653,  653,  653,
-      653,  653,  653,  653,  653,  653, 1854,  431,  435,  436,
+      529,  251,  529,  251,  251,  251,  251,  251,  251, 1837,
+      529,  251,  529,  529,  251,  529,  533, 1842, 1844,  445,
+      656,  951,  445, 1847,  423,  423,  531,  873,  935,  531,
+      429,  652,  652,  652,  936,  430,  655,  652,  652,  652,
+      652,  652,  652,  652,  652,  652, 1848,  431,  435,  436,
       251,  436,  435,  435,  435,  435,  435,  435,  435,  437,
-      435,  435,  435, 1855,  435,  439,  435,  440,  435,  251,
-      251,  251,  251,  251,  251,  530,  251,  530,  926,  530,
-      251,  530,  530,  251,  530,  535,  946, 1857,  535,  927,
-     1858,  534, 1085,  435,  435,  534, 1859,  947,  536, 1860,
-
-     1085,  441,  435,  436,  251,  436,  435,  435,  435,  435,
-      435,  435,  435,  437,  435,  435,  435, 1864,  435,  439,
-      435,  440,  435,  530,  251,  530,  549,  251,  549,  549,
-      251,  549, 1865,  251,  251,  251,  251,  251,  251,  536,
-     1136, 1516,  550, 1866,  934,  550, 1151,  435,  435,  551,
-     1491, 1868,  551, 1872, 1522,  441,  447,  448,  251,  448,
+      435,  435,  435, 1851,  435,  439,  435,  440,  435,  251,
+      251,  251,  251,  251,  251,  529,  251,  529,  925,  529,
+      251,  529,  529,  251,  529,  534,  945, 1853,  534,  926,
+     1854,  533, 1084,  435,  435,  533, 1856,  946,  535, 1857,
+
+     1084,  441,  435,  436,  251,  436,  435,  435,  435,  435,
+      435,  435,  435,  437,  435,  435,  435, 1858,  435,  439,
+      435,  440,  435,  529,  251,  529,  548,  251,  548,  548,
+      251,  548, 1859,  251,  251,  251,  251,  251,  251,  535,
+     1150, 1515,  549, 1863, 1490,  549, 1864,  435,  435,  550,
+     1865, 1867,  550, 1871, 1521,  441,  447,  448,  251,  448,
       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
-      447, 1876,  447,  451,  447,  452,  447,  549,  251,  549,
-      549,  251,  549,  549,  251,  549, 1880,  549,  251,  549,
-      562,  251,  562,  550, 1882, 1884,  550,  895, 1650,  552,
-
-     1886,  447,  447,  552,  896,  453,  563,  653,  653,  653,
-     1887, 1522,  454,  656, 1888,  455,  653,  653,  653,  653,
-      653,  653,  456,  447,  448,  251,  448,  447,  447,  447,
-      447,  447,  447,  447,  449,  447,  447,  447, 1890,  447,
-      451,  447,  452,  447,  562,  251,  562,  576,  251,  576,
-      576,  251,  576, 1897,  587,  251,  587,  587,  251,  587,
-      563, 1901, 1902,  577,  657, 1904,  577, 1709,  447,  447,
-      588,  903,  453,  588,  653,  653,  653, 1914, 1915,  454,
-      656, 1916,  455,  653,  653,  653,  909,  909,  909,  456,
+      447, 1875,  447,  451,  447,  452,  447,  548,  251,  548,
+      548,  251,  548,  548,  251,  548, 1879,  548,  251,  548,
+      561,  251,  561,  549, 1150, 1881,  549,  894, 1649,  551,
+
+     1883,  447,  447,  551,  895,  453,  562,  652,  652,  652,
+     1152, 1521,  454,  655, 1885,  455,  652,  652,  652,  652,
+      652,  652,  456,  447,  448,  251,  448,  447,  447,  447,
+      447,  447,  447,  447,  449,  447,  447,  447, 1886,  447,
+      451,  447,  452,  447,  561,  251,  561,  575,  251,  575,
+      575,  251,  575, 1887,  586,  251,  586,  586,  251,  586,
+      562, 1889, 1896,  576,  656, 1900,  576, 1901,  447,  447,
+      587,  902,  453,  587,  652,  652,  652, 1903, 1708,  454,
+      655, 1913,  455,  652,  652,  652,  908,  908,  908,  456,
       461,  462,  251,  462,  461,  461,  461,  461,  461,  461,
 
-      461,  463,  461,  461,  461, 1917,  461,  465,  461,  466,
-      461,  251,  251,  251,  251,  251,  251,  587,  251,  587,
-     1918,  587,  251,  587,  587,  251,  587,  303, 1919, 1920,
-      303,  952, 1921,  588, 1922,  461,  461,  588,  936, 1923,
-      589,  467, 1924, 1925,  942,  910,  468,  461,  462,  251,
+      461,  463,  461,  461,  461, 1914,  461,  465,  461,  466,
+      461,  251,  251,  251,  251,  251,  251,  586,  251,  586,
+     1915,  586,  251,  586,  586,  251,  586,  303, 1916, 1917,
+      303,  951, 1918,  587, 1919,  461,  461,  587,  935, 1920,
+      588,  467, 1921, 1922,  941,  909,  468,  461,  462,  251,
       462,  461,  461,  461,  461,  461,  461,  461,  463,  461,
-      461,  461, 1926,  461,  465,  461,  466,  461,  587,  251,
-      587,  599,  251,  599,  599,  251,  599, 1928,  612,  251,
-      612,  612,  251,  612,  589, 1929, 1930,  600,  935,  952,
-      600, 1931,  461,  461,  613,  936,  936,  613,  467, 1934,
+      461,  461, 1923,  461,  465,  461,  466,  461,  586,  251,
+      586,  598,  251,  598,  598,  251,  598, 1924,  611,  251,
+      611,  611,  251,  611,  588, 1925, 1927,  599,  934,  951,
+      599, 1928,  461,  461,  612,  935,  935,  612,  467, 1929,
 
-     1937, 1086, 1086,  468,  472,  473,  251,  473,  472,  472,
-      472,  472,  472,  472,  472,  474,  472,  472,  472, 1938,
+     1930, 1085, 1085,  468,  472,  473,  251,  473,  472,  472,
+      472,  472,  472,  472,  472,  474,  472,  472,  472, 1933,
       472,  476,  472,  477,  472,  251,  251,  251,  251,  251,
-      251,  612,  251,  612, 1939,  612,  251,  612,  612,  251,
-      612,  286, 1270, 1940,  286, 1151, 1941,  613, 1942,  472,
-      472,  613, 1271, 1943,  614,  612,  251,  612, 1946, 1272,
-      478,  909,  909,  909, 1955, 1155, 1170, 1170, 1170, 1960,
-     1911,  614, 1961,  479,  472,  473,  251,  473,  472,  472,
-      472,  472,  472,  472,  472,  474,  472,  472,  472, 1978,
-      472,  476,  472,  477,  472,  626,  251,  626,  626,  251,
-
-      626,  251,  251,  251, 1984,  251,  251,  251,  626,  251,
-      626,  627, 1985, 1986,  627, 1992, 1993,  628, 1994,  472,
-      472,  628, 1995, 1998,  627,  626,  251,  626, 1999, 2002,
-      478, 1162, 1162, 1162, 2003, 1163, 2012, 2016, 1164, 2019,
-     2020,  627, 2021,  479,  483,  484,  251,  484,  483,  483,
-      483,  483,  483,  483,  483,  485,  483,  483,  483, 2025,
-      483,  487,  483,  488,  483,  626,  251,  626,  626,  251,
-      626, 2028,  651,  251,  651, 2034, 2039,  651,  251,  651,
-     2045,  629,  264,  265,  629, 2049, 2052,  266,  652,  483,
-      483,  264,  265,  652,  672, 2053,  266,  639, 2055,  789,
-
-     1170, 1170, 1170, 2056,  698,  489,  639, 2057, 2058,  790,
+      251,  611,  251,  611, 1936,  611,  251,  611,  611,  251,
+      611,  286, 1269, 1937,  286, 1150, 1938,  612, 1939,  472,
+      472,  612, 1270, 1940,  613,  611,  251,  611, 1941, 1271,
+      478,  908,  908,  908, 1942, 1154, 1169, 1169, 1169, 1945,
+     1910,  613, 1954,  479,  472,  473,  251,  473,  472,  472,
+      472,  472,  472,  472,  472,  474,  472,  472,  472, 1959,
+      472,  476,  472,  477,  472,  625,  251,  625,  625,  251,
+
+      625,  251,  251,  251, 1960,  251,  251,  251,  625,  251,
+      625,  626, 1977, 1983,  626, 1984, 1985,  627, 1988,  472,
+      472,  627, 1989, 1990,  626,  625,  251,  625, 1994, 1997,
+      478, 1161, 1161, 1161, 1998, 1162, 2001, 2002, 1163, 2011,
+     2015,  626, 2018,  479,  483,  484,  251,  484,  483,  483,
+      483,  483,  483,  483,  483,  485,  483,  483,  483, 2019,
+      483,  487,  483,  488,  483,  625,  251,  625,  625,  251,
+      625, 2020,  650,  251,  650, 2024, 2027,  650,  251,  650,
+     2033,  628,  264,  265,  628, 2038, 2044,  266,  651,  483,
+      483,  264,  265,  651,  671, 2048,  266,  638, 2051,  788,
+
+     1169, 1169, 1169, 2052,  697,  489,  638, 2054, 2055,  789,
       490,  483,  484,  251,  484,  483,  483,  483,  483,  483,
-      483,  483,  485,  483,  483,  483,  640,  483,  487,  483,
-      488,  483,  699, 2059, 2060,  640, 2061, 2063,  676, 2069,
-     2070,  917,  917,  917,  679, 2071,  700, 2073,  701, 2075,
-      685,  686,  970,  970,  970,  685,  483,  483,  918,  984,
-      984,  984, 2083, 2088, 1171, 1193, 1193, 1193, 2089,  971,
-     2090, 2092,  489, 1193, 1193, 1193,  985,  490,  494,  495,
+      483,  483,  485,  483,  483,  483,  639,  483,  487,  483,
+      488,  483,  698, 2056, 2057,  639, 2058, 2059,  675, 2060,
+     2062,  916,  916,  916,  678, 2068,  699, 2069,  700, 2070,
+      684,  685,  969,  969,  969,  684,  483,  483,  917,  983,
+      983,  983, 2072, 2074, 1170, 1192, 1192, 1192, 2082,  970,
+     2087, 2088,  489, 1192, 1192, 1192,  984,  490,  494,  495,
       251,  495,  494,  494,  494,  494,  494,  494,  494,  496,
-      494,  494,  494, 2110,  494,  498,  494,  499,  494,  986,
+      494,  494,  494, 2089,  494,  498,  494,  499,  494,  985,
 
-      986,  986,  997,  997,  997, 1000, 1000, 1000, 1015, 1015,
-     1015, 1025, 1025, 1025, 2111, 2112,  987, 2115, 2116,  998,
-     2093, 2118, 1001,  494,  494, 1016, 2094, 1151, 1026, 1194,
-     2095, 1227, 1227, 1227, 2096, 1228, 2119, 1171, 1229,  500,
-     1709, 1170, 1170, 1170, 2105,  501,  494,  495,  251,  495,
+      985,  985,  996,  996,  996,  999,  999,  999, 1014, 1014,
+     1014, 1024, 1024, 1024, 2091, 2109,  986, 1150, 2110,  997,
+     2092, 2111, 1000,  494,  494, 1015, 2093, 2114, 1025, 1193,
+     2094, 1226, 1226, 1226, 2104, 1227, 2095, 1170, 1228,  500,
+     1708, 1169, 1169, 1169, 2115,  501,  494,  495,  251,  495,
       494,  494,  494,  494,  494,  494,  494,  496,  494,  494,
-      494, 1709,  494,  498,  494,  499,  494, 1035, 1035, 1035,
-     1037, 1037, 1037, 1046, 1046, 1046, 1054, 1054, 1054, 1058,
-     1058, 1058, 2106, 2120, 1036, 2121, 2113, 1038, 2122, 2123,
-     1047,  494,  494, 1055, 2107, 2124, 1059, 1253, 1253, 1253,
-
-     2127, 1254, 2114, 2128, 1255, 1194, 2129,  500, 1507, 1507,
-     1507, 2130, 2133,  501,  505,  506,  251,  506,  505,  505,
-      505,  505,  505,  505,  505,  507,  505,  505,  505, 2134,
-      505,  509,  505,  510,  505, 1074, 1074, 1074, 1096, 1096,
-     1096, 1102, 1102, 1102, 1118, 1118, 1118, 2135, 1124, 1124,
-     1124, 2136, 1075, 2138, 2139, 1097, 2131, 2146, 1103,  505,
-      505, 1119,  511,  512,  513, 1125, 2148, 1256, 1256, 1256,
-      514, 1257, 2132,  515, 1258, 2150, 2171,  516, 2175, 2176,
-      517,  505,  506,  251,  506,  505,  505,  505,  505,  505,
-      505,  505,  507,  505,  505,  505, 2177,  505,  509,  505,
-
-      510,  505, 1130, 1130, 1130, 1138, 1138, 1138,  917,  917,
-      917, 1209, 1209, 1209, 1166, 1166, 1166, 2183, 2184, 1131,
-     2185, 2189, 1139, 2190, 2193,  918,  505,  505, 1210,  511,
-      512,  513, 1168, 2194, 1273, 1273, 1273,  514, 1274, 2198,
-      515, 1275, 2199, 2200,  516, 2201, 2204,  517,  522,  523,
-      251,  523,  522,  522,  522,  522,  522,  522,  522,  524,
-      522,  522,  522, 2208,  522,  526,  522,  527,  522, 1166,
-     1166, 1166, 1213, 1213, 1213, 2209, 2210, 1216, 1216, 1216,
-     3465, 3465, 3465, 3465, 3465, 3465, 2211, 1168, 2212, 1214,
-     1222, 1222, 1222,  522,  522, 1218, 2215, 3465, 2222, 2226,
-
-     3465, 2227, 2228, 1277, 1277, 1277, 1169, 1278, 1224, 2233,
-     1279, 1193, 1193, 1193, 1528, 1528, 1528,  528,  522,  523,
-      251,  523,  522,  522,  522,  522,  522,  522,  522,  524,
-      522,  522,  522, 1211,  522,  526,  522,  527,  522, 1215,
-     1216, 1216, 1216,  970,  970,  970, 2235, 2236, 1212, 1222,
-     1222, 1222, 1231, 1231, 1231, 1235, 1235, 1235, 1218, 2097,
-      971, 2237, 2238,  522,  522, 2098, 2240, 1224, 2241, 2099,
-     1233, 2244, 1236, 2100, 1296, 1296, 1296, 1219, 1297, 2246,
-     2249, 1298, 1507, 1507, 1507, 2265, 2266,  528,  537,  538,
-      251,  538,  537,  537,  537,  537,  537,  537,  537,  539,
-
-      537,  537,  537, 2267,  537,  541,  537,  542,  537, 1239,
-     1239, 1239, 2272, 1225, 1241, 1241, 1241, 1241, 1241, 1241,
-     3465, 3465, 3465, 1245, 1245, 1245, 1240, 2273, 2274, 1231,
-     1231, 1231, 1243,  537,  537, 1243, 2275, 3465, 2276, 2277,
-     1246,  543, 2278,  544, 2281, 2290,  545, 1233, 2291, 2292,
-      546, 1729, 1729, 1729,  547,  537,  538,  251,  538,  537,
-      537,  537,  537,  537,  537,  537,  539,  537,  537,  537,
-     1237,  537,  541,  537,  542,  537, 1234, 1247, 1247, 1247,
-     1249, 1249, 1249, 2293, 2279, 1238, 2296, 1151, 1244, 1249,
-     1249, 1249, 2280, 2283, 1248,  984,  984,  984, 1251, 2298,
-
-      537,  537,  986,  986,  986, 2299, 1709, 1251,  543, 2300,
-      544, 2301,  985,  545, 1732, 1732, 1732,  546, 2305,  987,
-     1709,  547,  553,  554,  251,  554,  553,  553,  553,  553,
-      553,  553,  553,  555,  553,  553,  553, 2284,  553,  557,
-      553,  558,  553, 2307, 1259, 1259, 1259, 1265, 1265, 1265,
-     1737, 1737, 1737, 1528, 1528, 1528, 3465, 3465, 3465, 2308,
-     1252, 1260, 3465, 3465, 3465, 1267, 2285,  553,  553, 3465,
-     3465, 3465, 2309, 3465, 2312, 1721, 1721, 1721,  559, 3465,
-     1311, 1311, 1311, 2316, 1312, 2317, 3465, 1313, 1724, 1724,
-     1724,  560,  553,  554,  251,  554,  553,  553,  553,  553,
-
-      553,  553,  553,  555,  553,  553,  553, 1261,  553,  557,
-      553,  558,  553, 2319, 1262,  997,  997,  997, 1000, 1000,
-     1000, 1722, 2321, 2332, 1263, 3465, 3465, 3465, 1280, 1280,
-     1280, 2333,  998, 2334, 1725, 1001, 2335,  553,  553, 1265,
-     1265, 1265, 3465, 2339, 2340, 1281, 2341, 2342,  559, 1324,
-     1324, 1324, 2348, 1325, 2349, 2354, 1326, 1267, 1747, 1747,
-     1747,  560,  564,  565,  251,  565,  564,  564,  564,  564,
-      564,  564,  564,  566,  564,  564,  564, 1264,  564,  568,
-      564,  569,  564, 1292, 1292, 1292, 1268, 1015, 1015, 1015,
-     2355, 2358, 1292, 1292, 1292, 1299, 1299, 1299, 1025, 1025,
-
-     1025, 1294, 2362, 2350, 1016, 2363, 2352,  564,  564, 2364,
-     1294, 2351, 2368, 1301, 2353, 1026,  570, 2365,  571, 1327,
-     1327, 1327,  572, 1328, 2369, 2372, 1329,  573,  574,  564,
-      565,  251,  565,  564,  564,  564,  564,  564,  564,  564,
-      566,  564,  564,  564, 2374,  564,  568,  564,  569,  564,
-     1295, 1304, 1304, 1304, 2375, 1304, 1304, 1304, 1299, 1299,
-     1299, 1317, 1317, 1317, 1317, 1317, 1317, 2376, 2377, 1306,
-     1035, 1035, 1035, 1306,  564,  564, 1301, 2389, 2366, 1319,
-     2390, 2394, 1319,  570, 2397,  571, 2367, 1036, 2398,  572,
-     1743, 1743, 1743, 2404,  573,  574,  578,  579,  251,  579,
-
-      578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
-      578, 2409,  578,  582,  578,  583,  578, 1307, 2411, 1302,
-     1037, 1037, 1037, 2412, 2413, 1320, 1330, 1330, 1330, 2417,
-     1330, 1330, 1330, 1335, 1335, 1335, 1744, 1038, 1335, 1335,
-     1335,  578,  578, 2418, 1332, 2419, 2420,  584, 1332, 2421,
-     2422, 1337, 2423, 1340, 1340, 1340, 1337, 1341, 2424, 2425,
-     1342, 2426,  585,  578,  579,  251,  579,  578,  578,  578,
-      578,  578,  578,  578,  580,  578,  578,  578, 2443,  578,
-      582,  578,  583,  578, 1046, 1046, 1046, 1346, 1346, 1346,
-     2444, 1333, 2445, 1054, 1054, 1054, 2447, 2450, 1338, 2451,
-
-     2453, 1047, 1346, 1346, 1346, 1348, 2454, 2455,  578,  578,
-     1055, 1351, 1351, 1351,  584, 1352, 1709, 2456, 1353, 2457,
-     1348, 1358, 1358, 1358, 1709, 1359, 2458, 2470, 1360,  585,
-      590,  591,  251,  591,  590,  590,  590,  590,  590,  590,
-      590,  592,  590,  590,  590, 2471,  590,  594,  590,  595,
-      590, 1354, 1354, 1354, 1354, 1354, 1354, 1349, 2472, 2429,
-     1058, 1058, 1058, 1362, 1362, 1362, 1362, 1362, 1362, 1356,
-     2477, 2430, 1356, 2473, 2478,  590,  590, 1059, 2479, 2485,
-      596, 1364, 2486, 2474, 1364, 2487,  597,  590,  591,  251,
-      591,  590,  590,  590,  590,  590,  590,  590,  592,  590,
-
-      590,  590, 2488,  590,  594,  590,  595,  590, 2489, 1357,
-     1368, 1368, 1368, 1368, 1368, 1368, 1374, 1374, 1374, 2490,
-     1374, 1374, 1374, 1074, 1074, 1074, 2491, 1365, 1370, 2501,
-     2502, 1370,  590,  590, 1376, 2503, 2504,  596, 1376, 2513,
-     1075, 2514, 2515,  597,  601,  602,  251,  602,  601,  601,
-      601,  601,  601,  601,  601,  603,  601,  601,  601, 2531,
-      601,  605,  601,  606,  601, 1382, 1382, 1382, 2532, 1383,
-     2533, 2536, 1384, 2538, 1371, 2539, 1385, 1385, 1385, 1389,
-     1389, 1389, 1096, 1096, 1096, 1377, 1389, 1389, 1389,  601,
-      601, 2540,  607, 1386,  608, 2541, 2542, 1391, 2543, 1097,
-
-      609, 1412, 1412, 1412, 1391, 1413, 2544, 2545, 1414, 2546,
-     2547,  610,  601,  602,  251,  602,  601,  601,  601,  601,
-      601,  601,  601,  603,  601,  601,  601, 2548,  601,  605,
-      601,  606,  601, 1395, 1395, 1395, 2549, 1392, 1407, 1407,
-     1407, 1709, 2554, 1395, 1395, 1395, 1407, 1407, 1407, 2555,
-     2556, 1397, 1416, 1416, 1416, 2558, 1409,  601,  601, 2557,
-      607, 1397,  608, 2559, 1409, 1421, 1421, 1421,  609, 1422,
-     1418, 2560, 1423, 2552, 1746, 1746, 1746, 2561, 2564,  610,
-      615,  616,  251,  616,  615,  615,  615,  615,  615,  615,
-      615,  617,  615,  615,  615, 2565,  615,  619,  615,  620,
-
-      615, 1398, 2566, 2567, 1416, 1416, 1416, 1102, 1102, 1102,
-     1410, 1424, 1424, 1424, 1427, 1427, 1427, 1432, 1432, 1432,
-     1725, 2569, 1418, 2570, 1103,  615,  615, 2571, 1425, 2572,
-      621, 1428, 1721, 1721, 1721, 1434,  622, 1446, 1446, 1446,
-      623, 1447, 2573, 1709, 1448, 2575,  624,  615,  616,  251,
-      616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
-      615,  615, 2576,  615,  619,  615,  620,  615, 1419, 1436,
-     1436, 1436, 1438, 1438, 1438, 2577, 2562, 3465, 3465, 3465,
-     2553, 2587, 1432, 1432, 1432, 2563, 1437, 2588, 2589, 1439,
-     2590, 2591,  615,  615, 3465, 2595, 2598,  621, 2603, 2599,
-
-     1434, 2604, 2605,  622, 1455, 1455, 1455,  623, 1456, 2606,
-     2613, 1457, 2600,  624,  630,  631,  251,  631,  630,  630,
-      630,  630,  630,  630,  630,  632,  630,  630,  630, 1435,
-      630,  634,  630,  635,  630, 2614, 1440, 1441, 1441, 1441,
-     1441, 1441, 1441, 2601, 1118, 1118, 1118, 1449, 1449, 1449,
-     1449, 1449, 1449, 2615, 2616, 1443, 2602, 2617, 1443,  630,
-      630, 1119, 1464, 1464, 1464, 1451, 1465,  636, 1451, 1466,
-      637, 2631, 1746, 1746, 1746, 2632, 2648,  638,  630,  631,
-      251,  631,  630,  630,  630,  630,  630,  630,  630,  632,
-      630,  630,  630, 2649,  630,  634,  630,  635,  630, 2650,
-
-     2651, 1444, 1124, 1124, 1124, 2653, 2654, 1459, 1459, 1459,
-     2655, 1452, 1459, 1459, 1459, 1130, 1130, 1130, 1757, 1125,
-     1469, 1469, 1469,  630,  630, 1461, 1724, 1724, 1724, 2656,
-     1461,  636, 1131, 2657,  637, 1927, 1927, 1927, 1471, 2658,
-     2659,  638,  641,  642,  251,  642,  641,  641,  641,  641,
-      641,  641,  641,  643,  641,  641,  641, 2660,  641,  645,
-      641,  646,  641, 2661, 2662, 1469, 1469, 1469, 1138, 1138,
-     1138, 2663, 1475, 1475, 1475, 2664, 1476, 2669, 1462, 1477,
-     1480, 1480, 1480, 1471, 2670, 1139, 2671,  641,  641, 1480,
-     1480, 1480, 2672, 2673,  647, 1162, 1162, 1162, 1482, 1163,
-
-      648, 2674, 1164, 1729, 1729, 1729, 1709, 1482, 1151,  649,
-      641,  642,  251,  642,  641,  641,  641,  641,  641,  641,
-      641,  643,  641,  641,  641, 2675,  641,  645,  641,  646,
-      641, 1472, 1487, 1487, 1487, 1709, 1487, 1487, 1487, 1166,
-     1166, 1166, 1166, 1166, 1166, 1498, 1498, 1498, 2666, 2668,
-     1489, 2676, 2677, 1483, 1489,  641,  641, 1168, 2678, 2679,
-     1168, 2680,  647, 1499, 1209, 1209, 1209, 2681,  648, 1538,
-     1538, 1538, 2667, 1539, 2682, 2684, 1540,  649,  657, 2685,
-     2686, 1210, 1213, 1213, 1213,  672, 1543, 1543, 1543, 2687,
-     1544, 2688, 2689, 1545,  656,  673, 1216, 1216, 1216, 1214,
-
-     1490, 1216, 1216, 1216, 1235, 1235, 1235, 1216, 1216, 1216,
-     2694, 1227, 1227, 1227, 1218, 1228, 2695, 2696, 1229, 1218,
-     2699, 1236,  674,  675,  676, 1218, 2700, 2704,  677,  678,
-      679, 2707, 2710,  680,  681, 2711, 2719,  682, 2720,  683,
-      684,  685,  657, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
-     1222, 1222, 1231, 1231, 1231, 1231, 1231, 1231,  656,  687,
-     2721, 1224, 2732, 2755, 1224, 2756, 2761, 1224, 2762, 2705,
-     1233, 1547, 2763, 1233, 1239, 1239, 1239, 1231, 1231, 1231,
-     2706, 1241, 1241, 1241, 2764, 2708,  674,  688,  689, 2765,
-     2766, 1240,  690,  691,  692, 1233, 2709,  693,  681, 1243,
-
-     2767,  694, 1550,  695,  696,  697, 1554, 1554, 1554, 2725,
-     1555, 2768, 2769, 1556, 1559, 1559, 1559, 2770, 1560, 2726,
-     2775, 1561, 1241, 1241, 1241, 2727, 1553, 1241, 1241, 1241,
-     1245, 1245, 1245, 2776, 1563, 1563, 1563, 2777, 1564, 2778,
-     1243, 1565, 1247, 1247, 1247, 1243, 2779, 1246, 1566, 1566,
-     1566, 1151, 1567, 2780, 2781, 1568, 1249, 1249, 1249, 1248,
-     1249, 1249, 1249, 1249, 1249, 1249, 1253, 1253, 1253, 2782,
-     1254, 2783, 1709, 1255, 1251, 1256, 1256, 1256, 1251, 1257,
-     2772, 1251, 1258, 1259, 1259, 1259, 1570, 1570, 1570, 1562,
-     1571, 2784, 2785, 1572, 1265, 1265, 1265, 1265, 1265, 1265,
-
-     1260, 1265, 1265, 1265, 1273, 1273, 1273, 2786, 1274, 2787,
-     2789, 1275, 1267, 2744, 2773, 1267, 1582, 1582, 1582, 1267,
-     1277, 1277, 1277, 2745, 1278, 1569, 2746, 1279, 1280, 1280,
-     1280, 2790, 2791, 1583, 1584, 1584, 1584, 2793, 1585, 1709,
-     2794, 1586, 1292, 1292, 1292, 1281, 1292, 1292, 1292, 1577,
-     1292, 1292, 1292, 2800, 1296, 1296, 1296, 2801, 1297, 2809,
-     1294, 1298, 2810, 2811, 1294, 1299, 1299, 1299, 1294, 1299,
-     1299, 1299, 1299, 1299, 1299, 1600, 1600, 1600, 1304, 1304,
-     1304, 2774, 2812, 1301, 1304, 1304, 1304, 1301, 2813, 2814,
-     1301, 2815, 1601, 1304, 1304, 1304, 1306, 1605, 1605, 1605,
-
-     2816, 2823, 1306, 1311, 1311, 1311, 2826, 1312, 2827, 2828,
-     1313, 1306, 2829, 2830, 1606, 2831, 2832, 1598, 1317, 1317,
-     1317, 1317, 1317, 1317, 1317, 1317, 1317, 1613, 1613, 1613,
-     2835, 2843, 1599, 1324, 1324, 1324, 1319, 1325, 2747, 1319,
-     1326, 2844, 1319, 2847, 1614, 1327, 1327, 1327, 2748, 1328,
-     2848, 2749, 1329, 1330, 1330, 1330, 1330, 1330, 1330, 2839,
-     1602, 1330, 1330, 1330, 1616, 1616, 1616, 1335, 1335, 1335,
-     2866, 1332, 2840, 2867, 1332, 1335, 1335, 1335, 2868, 1332,
-     2869, 1617, 1335, 1335, 1335, 1337, 1346, 1346, 1346, 1610,
-     1340, 1340, 1340, 1337, 1341, 2870, 2871, 1342, 2841, 2872,
-
-     1337, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1351, 1351,
-     1351, 2842, 1352, 2873, 2728, 1353, 1354, 1354, 1354, 1348,
-     1354, 1354, 1354, 1348, 2729, 2879, 1615, 1354, 1354, 1354,
-     2730, 1618, 2880, 1709, 1356, 1358, 1358, 1358, 1356, 1359,
-     2881, 2882, 1360, 2883, 1151, 1356, 1362, 1362, 1362, 1362,
-     1362, 1362, 1362, 1362, 1362, 1628, 1628, 1628, 3465, 3465,
-     3465, 1368, 1368, 1368, 1364, 1623, 2884, 1364, 2876, 2885,
-     1364, 2886, 1629, 2845, 2887, 3465, 1368, 1368, 1368, 1370,
-     1368, 1368, 1368, 1632, 1632, 1632, 2846, 1625, 2849, 3465,
-     3465, 3465, 2875, 2888, 1370, 1374, 1374, 1374, 1370, 2889,
-
-     1633, 2850, 1627, 2890, 2891, 1630, 3465, 1374, 1374, 1374,
-     1374, 1374, 1374, 1376, 1382, 1382, 1382, 1634, 1383, 2893,
-     2894, 1384, 1385, 1385, 1385, 1376, 2896, 2897, 1376, 1640,
-     1640, 1640, 2904, 1641, 2905, 2912, 1642, 2898, 2913, 1386,
-     1389, 1389, 1389, 1389, 1389, 1389, 2914, 1631, 1389, 1389,
-     1389, 1395, 1395, 1395, 1395, 1395, 1395, 2899, 1391, 2915,
-     2916, 1391, 1395, 1395, 1395, 2917, 1391, 2900, 2918, 1397,
-     2919, 2923, 1397, 1653, 1653, 1653, 1635, 1407, 1407, 1407,
-     1397, 2924, 1407, 1407, 1407, 1407, 1407, 1407, 2928, 2929,
-     1654, 2930, 1416, 1416, 1416, 1409, 1416, 1416, 1416, 1645,
-
-     1409, 2931, 2932, 1409, 1412, 1412, 1412, 2933, 1413, 1648,
-     1418, 1414, 2934, 2935, 1418, 1416, 1416, 1416, 1421, 1421,
-     1421, 2936, 1422, 2937, 2938, 1423, 1424, 1424, 1424, 2939,
-     1663, 1663, 1663, 1418, 1664, 2940, 2941, 1665, 1666, 1666,
-     1666, 2942, 2943, 1425, 2944, 2945, 1658, 1427, 1427, 1427,
-     1668, 1668, 1668, 2946, 1669, 1667, 2947, 1670, 1672, 1672,
-     1672, 1432, 1432, 1432, 1428, 1432, 1432, 1432, 1432, 1432,
-     1432, 1436, 1436, 1436, 2961, 1673, 1661, 2962, 2963, 1434,
-     1676, 1676, 1676, 1434, 1677, 2950, 1434, 1678, 1437, 1438,
-     1438, 1438, 1679, 1679, 1679, 2951, 1680, 2964, 2965, 1681,
-
-     1441, 1441, 1441, 1441, 1441, 1441, 1439, 1441, 1441, 1441,
-     1446, 1446, 1446, 2966, 1447, 2967, 2952, 1448, 1443, 2968,
-     2976, 1443, 1449, 1449, 1449, 1443, 2953, 2977, 1675, 1449,
-     1449, 1449, 1449, 1449, 1449, 1455, 1455, 1455, 2978, 1456,
-     1451, 2979, 1457, 1459, 1459, 1459, 2980, 1451, 1151, 2981,
-     1451, 1459, 1459, 1459, 1459, 1459, 1459, 2982, 1464, 1464,
-     1464, 1461, 1465, 2983, 2988, 1466, 1692, 1692, 1692, 1461,
-     2989, 2990, 1461, 2991, 1683, 1469, 1469, 1469, 1469, 1469,
-     1469, 2993, 2970, 1693, 1469, 1469, 1469, 1696, 1696, 1696,
-     1475, 1475, 1475, 1471, 1476, 2994, 1471, 1477, 2997, 1685,
-
-     2998, 2999, 1471, 3000, 1697, 3465, 3465, 3465, 1480, 1480,
-     1480, 1480, 1480, 1480, 3001, 1689, 1480, 1480, 1480, 1702,
-     1702, 1702, 3465, 1487, 1487, 1487, 1482, 3002, 3003, 1482,
-     1487, 1487, 1487, 3004, 1482, 3009, 1703, 1487, 1487, 1487,
-     3010, 1489, 1708, 1708, 1708, 1694, 3011, 3012, 1489, 1498,
-     1498, 1498, 1538, 1538, 1538, 1489, 1539, 3013, 3014, 1540,
-     1709, 1710, 3015, 1700, 3016, 3017, 1698, 1499, 1543, 1543,
-     1543, 3018, 1544, 3019, 3020, 1545, 1216, 1216, 1216, 1758,
-     1758, 1758, 3021, 3022, 1705, 1222, 1222, 1222, 1231, 1231,
-     1231, 1554, 1554, 1554, 1218, 1555, 1759, 3023, 1556, 3024,
-
-     1559, 1559, 1559, 1224, 1560, 3025, 1233, 1561, 1241, 1241,
-     1241, 1563, 1563, 1563, 3029, 1564, 3030, 3031, 1565, 3032,
-     1566, 1566, 1566, 3035, 1567, 3036, 1243, 1568, 1249, 1249,
-     1249, 1570, 1570, 1570, 3037, 1571, 3038, 1756, 1572, 1768,
-     1768, 1768, 3465, 3465, 3465, 1763, 1251, 3465, 3465, 3465,
-     3039, 3040, 1760, 3048, 3049, 1766, 1769, 3050, 3051, 3465,
-     3465, 3465, 3465, 3052, 3465, 1265, 1265, 1265, 1775, 1775,
-     1775, 1582, 1582, 1582, 1151, 1767, 3053, 3465, 3054, 3055,
-     1779, 1779, 1779, 1267, 1780, 1776, 3056, 1781, 1583, 1584,
-     1584, 1584, 3057, 1585, 1771, 3060, 1586, 1784, 1784, 1784,
-
-     1292, 1292, 1292, 1299, 1299, 1299, 1600, 1600, 1600, 1796,
-     1796, 1796, 1770, 1797, 1785, 3061, 1798, 3042, 1294, 3067,
-     1773, 1301, 3068, 1601, 1799, 1799, 1799, 1605, 1605, 1605,
-     1772, 1803, 1803, 1803, 3069, 1804, 3070, 3071, 1805, 1806,
-     1806, 1806, 1800, 3078, 1606, 1809, 1809, 1809, 1317, 1317,
-     1317, 1613, 1613, 1613, 3079, 1795, 1807, 1815, 1815, 1815,
-     3080, 1816, 1810, 3081, 1817, 1794, 1319, 3082, 1614, 1330,
-     1330, 1330, 1616, 1616, 1616, 1819, 1819, 1819, 3083, 1820,
-     3084, 3085, 1821, 1335, 1335, 1335, 3086, 1332, 3087, 1617,
-     3088, 1811, 1826, 1826, 1826, 1346, 1346, 1346, 1354, 1354,
-
-     1354, 1337, 1832, 1832, 1832, 1362, 1362, 1362, 3089, 1827,
-     1628, 1628, 1628, 1348, 1812, 3090, 1356, 3091, 3092, 1833,
-     1632, 1632, 1632, 1364, 1835, 1835, 1835, 1629, 1836, 3093,
-     3094, 1837, 1368, 1368, 1368, 1818, 3095, 1633, 1828, 3096,
-     3097, 1822, 1840, 1840, 1840, 3098, 1841, 3099, 3100, 1842,
-     1370, 3101, 1829, 3102, 3103, 1831, 1834, 1374, 1374, 1374,
-     1846, 1846, 1846, 1640, 1640, 1640, 3104, 1641, 3116, 3114,
-     1642, 1850, 1850, 1850, 3117, 1376, 3120, 1847, 1389, 1389,
-     1389, 1395, 1395, 1395, 1653, 1653, 1653, 1151, 1851, 1407,
-     1407, 1407, 1839, 1861, 1861, 1861, 1391, 1862, 3109, 1397,
-
-     1863, 1654, 1869, 1869, 1869, 3109, 3121, 1409, 1416, 1416,
-     1416, 3115, 3110, 1663, 1663, 1663, 3112, 1664, 1844, 1870,
-     1665, 3122, 1666, 1666, 1666, 3123, 1418, 1873, 1873, 1873,
-     3118, 1874, 3124, 3107, 1875, 1672, 1672, 1672, 1867, 1667,
-     3125, 3133, 1853, 3134, 1668, 1668, 1668, 1856, 1669, 3135,
-     3140, 1670, 1673, 1877, 1877, 1877, 3141, 1878, 3142, 3143,
-     1879, 1432, 1432, 1432, 1676, 1676, 1676, 3144, 1677, 3119,
-     1871, 1678, 3145, 1679, 1679, 1679, 3146, 1680, 3147, 1434,
-     1681, 1441, 1441, 1441, 1449, 1449, 1449, 1459, 1459, 1459,
-     1891, 1891, 1891, 1692, 1692, 1692, 1893, 1893, 1893, 1443,
-
-     1894, 3148, 1451, 1895, 3149, 1461, 3150, 1892, 3151, 3126,
-     1693, 1881, 1469, 1469, 1469, 1696, 1696, 1696, 1898, 1898,
-     1898, 3127, 1899, 3152, 3155, 1900, 1480, 1480, 1480, 3128,
-     1471, 3136, 1697, 3155, 3138, 1702, 1702, 1702, 1905, 1905,
-     1905, 3129, 1906, 3137, 1482, 1907, 3139, 1883, 1709, 1710,
-     1885, 1889, 1703, 1908, 1908, 1908, 1487, 1487, 1487, 1708,
-     1708, 1708, 1732, 1732, 1732, 1932, 1932, 1932, 1151, 3172,
-     1909, 1935, 1935, 1935, 1489, 1903, 1896, 1709, 1737, 1737,
-     1737, 1743, 1743, 1743, 1746, 1746, 1746, 1747, 1747, 1747,
-     1944, 1944, 1944, 1947, 1947, 1947, 1932, 1932, 1932, 1944,
-
-     1944, 1944, 1949, 1949, 1949, 1910, 1951, 1951, 1951, 3153,
-     1912, 3465, 3465, 3465, 1216, 1216, 1216, 1936, 3164, 1950,
-     1758, 1758, 1758, 1952, 1222, 1222, 1222, 1913, 3465, 1933,
-     3175, 3176, 1218, 3165, 1956, 1956, 1956, 1759, 1957, 1948,
-     3170, 1958, 1224, 1231, 1231, 1231, 3177, 1963, 1963, 1963,
-     1965, 1965, 1965, 3182, 1945, 1241, 1241, 1241, 3109, 3171,
-     1945, 1233, 3160, 1933, 1964, 3158, 3173, 1966, 1249, 1249,
-     1249, 3109, 3110, 1243, 3185, 1953, 1768, 1768, 1768, 3159,
-     3161, 1954, 3112, 1959, 3188, 3174, 1251, 3189, 1969, 1969,
-     1969, 1962, 1970, 1769, 3190, 1971, 1972, 1972, 1972, 3465,
-
-     3465, 3465, 1975, 1975, 1975, 1265, 1265, 1265, 1775, 1775,
-     1775, 3180, 3162, 1973, 3191, 3192, 3465, 3193, 3155, 1976,
-     1967, 3195, 3183, 1267, 3155, 1776, 3163, 1979, 1979, 1979,
-     3181, 1980, 3196, 1968, 1981, 1982, 1982, 1982, 1779, 1779,
-     1779, 3184, 1780, 3197, 3198, 1781, 1784, 1784, 1784, 1987,
-     1987, 1987, 1983, 1988, 3199, 3200, 1989, 1974, 1990, 1990,
-     1990, 3201, 3208, 1785, 3209, 1977, 1996, 1996, 1996, 1292,
-     1292, 1292, 1299, 1299, 1299, 1991, 3210, 1796, 1796, 1796,
-     3211, 1797, 3212, 1997, 1798, 3213, 3214, 1294, 3215, 3219,
-     1301, 1799, 1799, 1799, 1803, 1803, 1803, 3220, 1804, 3221,
-
-     3222, 1805, 1806, 1806, 1806, 3223, 2004, 2004, 2004, 1800,
-     2005, 3224, 3228, 2006, 2007, 2007, 2007, 3229, 3230, 1807,
-     1809, 1809, 1809, 2013, 2013, 2013, 3231, 2001, 2015, 2015,
-     2015, 2008, 2009, 2009, 2009, 2000, 2010, 1810, 3232, 2011,
-     3233, 2014, 1815, 1815, 1815, 3235, 1816, 3236, 3237, 1817,
-     1330, 1330, 1330, 1819, 1819, 1819, 3238, 1820, 3239, 3240,
-     1821, 1335, 1335, 1335, 1826, 1826, 1826, 3241, 1332, 2022,
-     2022, 2022, 3246, 2023, 3247, 3248, 2024, 3249, 3250, 1337,
-     3251, 1827, 2026, 2026, 2026, 1354, 1354, 1354, 1832, 1832,
-     1832, 2030, 2030, 2030, 3252, 2031, 2017, 3253, 2032, 3254,
-
-     2027, 3255, 3242, 1356, 3256, 1833, 1362, 1362, 1362, 1835,
-     1835, 1835, 3257, 1836, 3243, 3258, 1837, 1368, 1368, 1368,
-     2036, 2036, 2036, 3259, 1364, 1840, 1840, 1840, 2018, 1841,
-     3260, 2029, 1842, 3261, 3263, 1370, 3264, 2037, 1374, 1374,
-     1374, 1846, 1846, 1846, 2040, 2040, 2040, 1151, 2041, 3265,
-     3244, 2042, 2043, 2043, 2043, 3266, 1376, 3267, 1847, 1850,
-     1850, 1850, 3245, 3268, 2033, 3269, 2046, 2046, 2046, 2044,
-     2047, 3270, 3262, 2048, 3271, 3272, 1851, 2050, 2050, 2050,
-     1395, 1395, 1395, 2035, 1861, 1861, 1861, 3273, 1862, 3274,
-     3275, 1863, 1407, 1407, 1407, 2051, 3276, 3277, 1397, 1869,
-
-     1869, 1869, 2038, 3278, 2064, 2064, 2064, 3279, 2065, 3280,
-     1409, 2066, 2067, 2067, 2067, 3281, 1870, 1873, 1873, 1873,
-     3282, 1874, 3283, 3284, 1875, 3285, 3286, 1877, 1877, 1877,
-     2068, 1878, 2054, 3288, 1879, 1432, 1432, 1432, 1441, 1441,
-     1441, 1151, 3289, 2062, 1449, 1449, 1449, 2077, 2077, 2077,
-     3465, 3465, 3465, 1434, 3290, 3291, 1443, 2080, 2080, 2080,
-     3287, 3292, 1451, 3293, 2078, 3294, 3295, 3465, 1459, 1459,
-     1459, 1891, 1891, 1891, 2081, 2084, 2084, 2084, 3296, 2085,
-     3297, 3298, 2086, 1893, 1893, 1893, 1461, 1894, 1892, 2074,
-     1895, 1469, 1469, 1469, 3299, 2076, 2072, 1898, 1898, 1898,
-
-     3300, 1899, 3301, 3302, 1900, 1480, 1480, 1480, 3303, 1471,
-     1905, 1905, 1905, 3304, 1906, 2082, 2079, 1907, 1908, 1908,
-     1908, 3305, 3306, 1482, 2101, 2101, 2101, 3307, 2102, 3308,
-     3309, 2103, 1487, 1487, 1487, 1909, 3311, 3312, 2087, 3313,
-     2108, 2108, 2108, 2117, 2117, 2117, 1927, 1927, 1927, 3314,
-     1489, 2125, 2125, 2125, 3315, 3316, 2091, 2109, 1932, 1932,
-     1932, 2126, 2126, 2126, 1935, 1935, 1935, 1944, 1944, 1944,
-     2137, 2137, 2137, 1947, 1947, 1947, 1949, 1949, 1949, 1151,
-     2140, 2140, 2140, 2104, 2141, 3317, 3318, 2142, 1951, 1951,
-     1951, 3319, 3320, 1950, 2143, 2143, 2143, 3321, 2144, 3310,
-
-     3322, 2145, 1216, 1216, 1216, 1952, 1956, 1956, 1956, 3323,
-     1957, 3324, 3325, 1958, 1222, 1222, 1222, 2151, 2151, 2151,
-     1218, 1231, 1231, 1231, 1963, 1963, 1963, 3326, 3327, 2154,
-     2154, 2154, 1224, 2155, 2152, 3328, 2156, 3329, 3330, 1233,
-     3331, 1964, 1965, 1965, 1965, 2157, 2157, 2157, 3332, 2158,
-     3334, 3335, 2159, 1241, 1241, 1241, 1249, 1249, 1249, 1966,
-     1969, 1969, 1969, 1151, 1970, 2149, 3336, 1971, 2147, 3333,
-     3337, 1243, 3338, 3339, 1251, 1972, 1972, 1972, 3340, 2162,
-     2162, 2162, 2153, 2163, 3341, 3342, 2164, 2165, 2165, 2165,
-     3343, 3344, 1973, 1975, 1975, 1975, 2167, 2167, 2167, 3345,
-
-     2168, 3346, 3347, 2169, 2166, 1265, 1265, 1265, 1151, 3349,
-     1976, 3350, 1979, 1979, 1979, 3351, 1980, 3352, 2160, 1981,
-     3353, 2161, 3348, 1267, 1982, 1982, 1982, 2172, 2172, 2172,
-     3354, 2173, 3355, 3356, 2174, 1987, 1987, 1987, 3357, 1988,
-     3358, 1983, 1989, 1990, 1990, 1990, 2178, 2178, 2178, 3360,
-     2179, 3361, 3362, 2180, 3363, 3364, 2170, 2181, 2181, 2181,
-     1991, 1996, 1996, 1996, 2186, 2186, 2186, 3365, 2187, 3366,
-     3367, 2188, 3368, 3369, 2182, 1292, 1292, 1292, 1997, 1299,
-     1299, 1299, 2004, 2004, 2004, 3372, 2005, 3373, 3374, 2006,
-     2007, 2007, 2007, 1294, 2195, 2195, 2195, 1301, 2196, 3375,
-
-     3376, 2197, 2009, 2009, 2009, 3377, 2010, 2008, 1151, 2011,
-     2013, 2013, 2013, 2015, 2015, 2015, 1330, 1330, 1330, 1335,
-     1335, 1335, 2205, 2205, 2205, 1151, 2191, 1151, 2014, 2022,
-     2022, 2022, 2192, 2023, 1332, 1151, 2024, 1337, 1720, 2206,
-     2026, 2026, 2026, 1354, 1354, 1354, 2030, 2030, 2030, 3396,
-     2031, 1151, 1151, 2032, 1362, 1362, 1362, 1151, 2027, 1151,
-     1719, 1356, 2216, 2216, 2216, 2036, 2036, 2036, 2207, 2203,
-     1151, 3378, 1364, 3380, 2202, 3381, 1151, 2218, 2218, 2218,
-     2217, 2219, 2037, 1718, 2220, 1374, 1374, 1374, 3379, 2040,
-     2040, 2040, 2213, 2041, 3388, 3384, 2042, 2043, 2043, 2043,
-
-     2214, 3385, 1151, 1376, 2223, 2223, 2223, 3382, 2224, 3386,
-     3410, 2225, 3389, 1151, 2044, 2046, 2046, 2046, 3383, 2047,
-     1151, 1151, 2048, 2050, 2050, 2050, 2229, 2229, 2229, 1395,
-     1395, 1395, 2221, 2232, 2232, 2232, 2234, 2234, 2234, 1151,
-     1717, 2051, 1151, 2230, 1407, 1407, 1407, 1397, 2064, 2064,
-     2064, 1151, 2065, 3404, 1151, 2066, 2067, 2067, 2067, 2242,
-     2242, 2242, 1409, 1432, 1432, 1432, 2247, 2247, 2247, 1449,
-     1449, 1449, 3390, 1151, 2068, 3391, 2243, 2077, 2077, 2077,
-     1151, 1434, 3387, 1151, 2248, 3400, 1151, 1451, 3394, 3392,
-     2231, 2251, 2251, 2251, 2078, 2252, 3424, 1151, 2253, 2254,
-
-     2254, 2254, 2080, 2080, 2080, 1151, 2257, 2257, 2257, 2239,
-     2258, 1151, 1151, 2259, 1716, 1715, 2255, 1151, 1151, 2081,
-     3393, 1714, 2245, 1459, 1459, 1459, 2261, 2261, 2261, 3405,
-     2084, 2084, 2084, 2250, 2085, 1151, 1151, 2086, 1469, 1469,
-     1469, 1461, 3395, 2262, 1151, 2256, 2268, 2268, 2268, 2270,
-     2270, 2270, 3397, 2101, 2101, 2101, 1471, 2102, 3401, 3425,
-     2103, 1487, 1487, 1487, 2269, 3440, 2271, 2108, 2108, 2108,
-     3398, 3399, 2263, 2286, 2286, 2286, 2260, 2287, 3411, 1489,
-     2288, 2289, 2289, 2289, 2109, 2294, 2294, 2294, 2295, 2295,
-     2295, 2264, 2117, 2117, 2117, 2297, 2297, 2297, 2302, 2302,
-
-     2302, 2125, 2125, 2125, 2126, 2126, 2126, 2282, 2303, 2303,
-     2303, 2306, 2306, 2306, 2310, 2310, 2310, 2311, 2311, 2311,
-     2313, 2313, 2313, 2137, 2137, 2137, 2314, 2314, 2314, 2140,
-     2140, 2140, 1151, 2141, 3406, 1151, 2142, 2143, 2143, 2143,
-     1151, 2144, 1151, 1151, 2145, 1216, 1216, 1216, 1222, 1222,
-     1222, 2151, 2151, 2151, 2304, 2322, 2322, 2322, 1151, 2323,
-     1151, 3430, 2324, 1218, 1151, 1151, 1224, 3407, 2152, 1231,
-     1231, 1231, 2315, 2154, 2154, 2154, 1151, 2155, 3412, 3402,
-     2156, 2157, 2157, 2157, 1151, 2158, 3414, 1233, 2159, 1241,
-     1241, 1241, 1249, 1249, 1249, 3403, 2318, 2162, 2162, 2162,
-
-     3408, 2163, 1151, 3413, 2164, 3444, 1151, 1243, 2320, 2326,
-     1251, 1151, 1151, 2165, 2165, 2165, 2328, 2328, 2328, 3409,
-     2329, 1713, 1712, 2330, 1265, 1265, 1265, 3420, 2327, 2325,
-     2166, 2167, 2167, 2167, 1151, 2168, 1151, 3416, 2169, 2172,
-     2172, 2172, 1267, 2173, 3418, 3419, 2174, 2178, 2178, 2178,
-     1151, 2179, 3415, 3438, 2180, 2181, 2181, 2181, 2336, 2336,
-     2336, 1151, 2337, 3439, 1151, 2338, 2186, 2186, 2186, 3417,
-     2187, 1151, 2182, 2188, 2343, 2343, 2343, 1292, 1292, 1292,
-     2346, 2346, 2346, 3462, 3421, 2195, 2195, 2195, 1711, 2196,
-     2331, 2344, 2197, 1151, 1151, 1294, 3426, 1151, 2347, 1330,
-
-     1330, 1330, 1335, 1335, 1335, 2205, 2205, 2205, 2359, 2359,
-     2359, 3441, 2360, 1704, 1151, 2361, 1701, 1332, 1151, 1699,
-     1337, 1151, 2206, 1151, 1354, 1354, 1354, 1362, 1362, 1362,
-     2216, 2216, 2216, 2218, 2218, 2218, 1151, 2219, 1695, 1151,
-     2220, 2345, 1356, 3427, 1691, 1364, 3452, 3431, 2217, 1374,
-     1374, 1374, 3432, 2357, 2356, 2223, 2223, 2223, 3422, 2224,
-     3423, 1151, 2225, 2229, 2229, 2229, 1690, 1376, 2378, 2378,
-     2378, 1688, 2379, 3428, 3446, 2380, 1395, 1395, 1395, 3433,
-     2230, 2232, 2232, 2232, 2382, 2382, 2382, 1151, 1151, 2371,
-     2370, 2234, 2234, 2234, 1397, 2383, 2383, 2383, 3465, 3465,
-
-     3465, 1151, 2373, 3465, 3465, 3465, 3465, 3465, 3465, 1407,
-     1407, 1407, 2384, 1151, 1151, 3465, 2242, 2242, 2242, 1151,
-     3465, 3434, 1151, 3465, 2391, 2391, 2391, 1409, 2392, 1151,
-     1687, 2393, 1151, 2243, 2395, 2395, 2395, 2247, 2247, 2247,
-     2381, 2399, 2399, 2399, 2251, 2251, 2251, 3436, 2252, 2385,
-     3429, 2253, 2396, 3435, 1151, 2248, 2254, 2254, 2254, 2400,
-     3437, 3453, 2401, 2401, 2401, 2387, 2402, 2386, 3448, 2403,
-     1459, 1459, 1459, 2255, 2388, 2257, 2257, 2257, 3449, 2258,
-     1151, 1151, 2259, 2261, 2261, 2261, 1686, 1684, 1461, 2406,
-     2406, 2406, 1682, 2407, 1674, 3445, 2408, 1469, 1469, 1469,
-
-     2262, 2268, 2268, 2268, 1671, 2270, 2270, 2270, 1151, 2414,
-     2414, 2414, 1151, 2415, 1151, 1471, 2416, 3442, 3443, 2269,
-     1662, 2405, 2271, 1487, 1487, 1487, 2428, 2428, 2428, 2286,
-     2286, 2286, 3462, 2287, 2431, 2432, 2288, 2433, 3454, 2436,
-     2437, 1489, 2438, 3447, 1151, 2434, 1151, 1151, 2410, 3450,
-     2439, 3451, 2435, 2289, 2289, 2289, 1660, 2440, 2441, 2441,
-     2441, 2442, 2442, 2442, 2294, 2294, 2294, 2295, 2295, 2295,
-     1659, 1657, 2427, 2297, 2297, 2297, 2446, 2446, 2446, 2448,
-     2448, 2448, 2449, 2449, 2449, 2302, 2302, 2302, 2303, 2303,
-     2303, 2306, 2306, 2306, 2452, 2452, 2452, 2310, 2310, 2310,
-
-     2311, 2311, 2311, 2313, 2313, 2313, 2314, 2314, 2314, 2459,
-     2459, 2459, 2461, 2461, 2461, 1222, 1222, 1222, 2463, 2463,
-     2463, 2322, 2322, 2322, 1151, 2323, 1656, 2460, 2324, 1231,
-     1231, 1231, 1655, 1224, 1151, 2464, 1241, 1241, 1241, 1249,
-     1249, 1249, 2328, 2328, 2328, 1652, 2329, 1233, 1651, 2330,
-     2468, 2468, 2468, 1649, 1243, 3455, 3456, 1251, 2336, 2336,
-     2336, 1647, 2337, 1646, 1151, 2338, 3457, 1644, 2469, 2475,
-     2475, 2475, 1151, 2466, 2343, 2343, 2343, 2483, 2483, 2483,
-     2465, 2462, 1151, 2480, 2480, 2480, 2476, 2481, 1643, 1151,
-     2482, 2344, 2346, 2346, 2346, 2484, 2492, 2492, 2492, 1151,
-
-     2467, 1330, 1330, 1330, 2494, 2494, 2494, 2496, 2496, 2496,
-     2347, 2359, 2359, 2359, 3460, 2360, 1639, 1638, 2361, 1332,
-     3458, 3461, 2495, 1637, 2497, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 2506, 2506, 2506, 1354, 1354, 1354,
-     1636, 1626, 3465, 1624, 1622, 3465, 1621, 3459, 3465, 1620,
-     1619, 2507, 1612, 2498, 1611, 1356, 1362, 1362, 1362, 1609,
-     1608, 2493, 2510, 2510, 2510, 1374, 1374, 1374, 2516, 2516,
-     2516, 2378, 2378, 2378, 1364, 2379, 1607, 1604, 2380, 2511,
-     2499, 1603, 2505, 1376, 1395, 1395, 1395, 1595, 1594, 2500,
-     2382, 2382, 2382, 2383, 2383, 2383, 1593, 2508, 1592, 2518,
-
-     2518, 2518, 1397, 2519, 1591, 1590, 2520, 2521, 2521, 2521,
-     2384, 3465, 3465, 3465, 1589, 1588, 2512, 3465, 3465, 3465,
-     2509, 2525, 2525, 2525, 2522, 2527, 2527, 2527, 3465, 2528,
-     2528, 2528, 1587, 1581, 3465, 3465, 3465, 3465, 1580, 2526,
-     2391, 2391, 2391, 2517, 2392, 1579, 2529, 2393, 2395, 2395,
-     2395, 1578, 3465, 2399, 2399, 2399, 2401, 2401, 2401, 1576,
-     2402, 1575, 2523, 2403, 1574, 1573, 2396, 1558, 2524, 1557,
-     1552, 2400, 2534, 2534, 2534, 2406, 2406, 2406, 1551, 2407,
-     1549, 1548, 2408, 1546, 1469, 1469, 1469, 2414, 2414, 2414,
-     2535, 2415, 1542, 1541, 2416, 1487, 1487, 1487, 2428, 2428,
-
-     2428, 2530, 1471, 2441, 2441, 2441, 2442, 2442, 2442, 2568,
-     2568, 2568, 1537, 1489, 1536, 1535, 1151, 2446, 2446, 2446,
-     2448, 2448, 2448, 2449, 2449, 2449, 2452, 2452, 2452, 1534,
-     2537, 2574, 2574, 2574, 2459, 2459, 2459, 2461, 2461, 2461,
-     2578, 2578, 2578, 1533, 2463, 2463, 2463, 2580, 2580, 2580,
-     1532, 2581, 2460, 1531, 2582, 1530, 2550, 1529, 2579, 1527,
-     2551, 2464, 2583, 2583, 2583, 1241, 1241, 1241, 1249, 1249,
-     1249, 2468, 2468, 2468, 2475, 2475, 2475, 2592, 2592, 2592,
-     2584, 2593, 1526, 1243, 2594, 1525, 1251, 1524, 1523, 2469,
-     1521, 2476, 2596, 2596, 2596, 2480, 2480, 2480, 1520, 2481,
-
-     1519, 1518, 2482, 2483, 2483, 2483, 2607, 2607, 2607, 2597,
-     2492, 2492, 2492, 1330, 1330, 1330, 2494, 2494, 2494, 1515,
-     1514, 2484, 1513, 2608, 2496, 2496, 2496, 1512, 1511, 2585,
-     1510, 1332, 1509, 1508, 2495, 2586, 2610, 2610, 2610, 1506,
-     2611, 2497, 1505, 2612, 2618, 2618, 2618, 2506, 2506, 2506,
-     2620, 2620, 2620, 1504, 2621, 1503, 1502, 2622, 2623, 2623,
-     2623, 2619, 1501, 1500, 2507, 1362, 1362, 1362, 1497, 1496,
-     2609, 2510, 2510, 2510, 1495, 1494, 2624, 2626, 2626, 2626,
-     1493, 2627, 1492, 1364, 2628, 2629, 2629, 2629, 2511, 2633,
-     2633, 2633, 2516, 2516, 2516, 2635, 2635, 2635, 2518, 2518,
-
-     2518, 1151, 2519, 2630, 1486, 2520, 2634, 2521, 2521, 2521,
-     2637, 2637, 2637, 2636, 2638, 1485, 1484, 2639, 2640, 2640,
-     2640, 2642, 2642, 2642, 2522, 1479, 2625, 2525, 2525, 2525,
-     2527, 2527, 2527, 1478, 1474, 2641, 1468, 1467, 2643, 2528,
-     2528, 2528, 2644, 2644, 2644, 2526, 2645, 1463, 1458, 2646,
-     3465, 3465, 3465, 2534, 2534, 2534, 2529, 1469, 1469, 1469,
-     1487, 1487, 1487, 2568, 2568, 2568, 1454, 3465, 2683, 2683,
-     2683, 2535, 2574, 2574, 2574, 1471, 1453, 1445, 1489, 2690,
-     2690, 2690, 2578, 2578, 2578, 2580, 2580, 2580, 1431, 2581,
-     1430, 1429, 2582, 2583, 2583, 2583, 2691, 1241, 1241, 1241,
-
-     2579, 1249, 1249, 1249, 1426, 2647, 1420, 2697, 2697, 2697,
-     1415, 2584, 2717, 2717, 2717, 1243, 2596, 2596, 2596, 1251,
-     2665, 1411, 1406, 2652, 2698, 2592, 2592, 2592, 1405, 2593,
-     2718, 1404, 2594, 2597, 2701, 2701, 2701, 1403, 2702, 1402,
-     1401, 2703, 2712, 2712, 2712, 2607, 2607, 2607, 2714, 2714,
-     2714, 1400, 2715, 1399, 1394, 2716, 1393, 1388, 2692, 2713,
-     1387, 1381, 2608, 1378, 2610, 2610, 2610, 2693, 2611, 1373,
-     1372, 2612, 2618, 2618, 2618, 2722, 2722, 2722, 1367, 2723,
-     1366, 1361, 2724, 2620, 2620, 2620, 1350, 2621, 1345, 2619,
-     2622, 2623, 2623, 2623, 1362, 1362, 1362, 2626, 2626, 2626,
-
-     1344, 2627, 1343, 1339, 2628, 2629, 2629, 2629, 1334, 2624,
-     1323, 1322, 1364, 2733, 2733, 2733, 2633, 2633, 2633, 1316,
-     2735, 2735, 2735, 2630, 2736, 1315, 1314, 2737, 1310, 1309,
-     2734, 1308, 1303, 2634, 2635, 2635, 2635, 2637, 2637, 2637,
-     1291, 2638, 1290, 1289, 2639, 2640, 2640, 2640, 2642, 2642,
-     2642, 1288, 2636, 2738, 2738, 2738, 2731, 2739, 1287, 1286,
-     2740, 1285, 2641, 1284, 1283, 2643, 2741, 2741, 2741, 1282,
-     2742, 1276, 1269, 2743, 2644, 2644, 2644, 1230, 2645, 1226,
-     1221, 2646, 3465, 3465, 3465, 2751, 2751, 2751, 2753, 2753,
-     2753, 1469, 1469, 1469, 2758, 2758, 2758, 1220, 1208, 3465,
-
-     1207, 1206, 2752, 1205, 1204, 2754, 2759, 2759, 2759, 1471,
-     1487, 1487, 1487, 2788, 2788, 2788, 2683, 2683, 2683, 2792,
-     2792, 2792, 1203, 2760, 2690, 2690, 2690, 1202, 1489, 2795,
-     2795, 2795, 1201, 2796, 1200, 1199, 2797, 1241, 1241, 1241,
-     1198, 2691, 1197, 2750, 1196, 1249, 1249, 1249, 2802, 2802,
-     2802, 2697, 2697, 2697, 1195, 1243, 1192, 2804, 2804, 2804,
-     1191, 2805, 2757, 1251, 2806, 2803, 1190, 1189, 2698, 1188,
-     2771, 2807, 2807, 2807, 2701, 2701, 2701, 1187, 2702, 1186,
-     1185, 2703, 2817, 2817, 2817, 2712, 2712, 2712, 2808, 1184,
-     2820, 2820, 2820, 1181, 2821, 1180, 2799, 2822, 1179, 2818,
-
-     1178, 1177, 2713, 1176, 2798, 2714, 2714, 2714, 1175, 2715,
-     1174, 1173, 2716, 2717, 2717, 2717, 2824, 2824, 2824, 2722,
-     2722, 2722, 1172, 2723, 1165, 1161, 2724, 1160, 2819, 1159,
-     1158, 2718, 1157, 2825, 2833, 2833, 2833, 2733, 2733, 2733,
-     2836, 2836, 2836, 1154, 2837, 1152, 1151, 2838, 1149, 2735,
-     2735, 2735, 2834, 2736, 2734, 1147, 2737, 2738, 2738, 2738,
-     1146, 2739, 1145, 1144, 2740, 2741, 2741, 2741, 1143, 2742,
-     1140, 1137, 2743, 3465, 3465, 3465, 2751, 2751, 2751, 2852,
-     2852, 2852, 1135, 2853, 1133, 1132, 2854, 2753, 2753, 2753,
-     3465, 1129, 1128, 2752, 2855, 2855, 2855, 1126, 2856, 1123,
-
-     1122, 2857, 1121, 1117, 2754, 2858, 2858, 2858, 2860, 2860,
-     2860, 1469, 1469, 1469, 2758, 2758, 2758, 2759, 2759, 2759,
-     1116, 1114, 2859, 1113, 1112, 2861, 1487, 1487, 1487, 1471,
-     2877, 2877, 2877, 2851, 2760, 2863, 2863, 2863, 1111, 2864,
-     1109, 1108, 2865, 1107, 1489, 1106, 1105, 2878, 1709, 2788,
-     2788, 2788, 2892, 2892, 2892, 2792, 2792, 2792, 2895, 2895,
-     2895, 2795, 2795, 2795, 1104, 2796, 1101, 1100, 2797, 1241,
-     1241, 1241, 1098, 2862, 2902, 2902, 2902, 2874, 2802, 2802,
-     2802, 2906, 2906, 2906, 1095, 2907, 1094, 1243, 2908, 2804,
-     2804, 2804, 2903, 2805, 1092, 2803, 2806, 2807, 2807, 2807,
-
-     2909, 2909, 2909, 1091, 2910, 1090, 1089, 2911, 2817, 2817,
-     2817, 2920, 2920, 2920, 2808, 2921, 1088, 1084, 2922, 2820,
-     2820, 2820, 1082, 2821, 1081, 2818, 2822, 2824, 2824, 2824,
-     2925, 2925, 2925, 1080, 2926, 2901, 1078, 2927, 2833, 2833,
-     2833, 2836, 2836, 2836, 2825, 2837, 1077, 1076, 2838, 2948,
-     2948, 2948, 1073, 2852, 2852, 2852, 2834, 2853, 1072, 1071,
-     2854, 2855, 2855, 2855, 1070, 2856, 2949, 1068, 2857, 2858,
-     2858, 2858, 2954, 2954, 2954, 1067, 2955, 1066, 1064, 2956,
-     2860, 2860, 2860, 2957, 2957, 2957, 2859, 2958, 1063, 1062,
-     2959, 1469, 1469, 1469, 2863, 2863, 2863, 2861, 2864, 1060,
-
-     1057, 2865, 1487, 1487, 1487, 2971, 2971, 2971, 1053, 1471,
-     2877, 2877, 2877, 1052, 2973, 2973, 2973, 1050, 2974, 1049,
-     1489, 2975, 2972, 1709, 2984, 2984, 2984, 2878, 1709, 2892,
-     2892, 2892, 1709, 2985, 2985, 2985, 2986, 2986, 2986, 2895,
-     2895, 2895, 2960, 2987, 2987, 2987, 1241, 1241, 1241, 1048,
-     1045, 2969, 2902, 2902, 2902, 2906, 2906, 2906, 1044, 2907,
-     1043, 1041, 2908, 1040, 1243, 2909, 2909, 2909, 1034, 2910,
-     2903, 1031, 2911, 2995, 2995, 2995, 2920, 2920, 2920, 1029,
-     2921, 1028, 1027, 2922, 3005, 3005, 3005, 2925, 2925, 2925,
-     2996, 2926, 1022, 1021, 2927, 1019, 1018, 2992, 3007, 3007,
-
-     3007, 3006, 2948, 2948, 2948, 3026, 3026, 3026, 1014, 3027,
-     1012, 1011, 3028, 1010, 1009, 3008, 2954, 2954, 2954, 2949,
-     2955, 1008, 1007, 2956, 2957, 2957, 2957, 1006, 2958, 1005,
-     1004, 2959, 3033, 3033, 3033, 1487, 1487, 1487, 2971, 2971,
-     2971, 3043, 3043, 3043, 1003, 3044, 1002,  999, 3045,  996,
-     3034,  995,  994, 1489,  992, 2972, 1709,  991,  990, 1709,
-     2973, 2973, 2973,  989, 2974,  988,  983, 2975, 2984, 2984,
-     2984, 2985, 2985, 2985, 2986, 2986, 2986,  981, 1709, 2987,
-     2987, 2987, 3058, 3058, 3058, 3062, 3062, 3062,  980, 3063,
-      979,  977, 3064,  976, 2995, 2995, 2995, 3065, 3065, 3065,
-
-     3059, 3041, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
-     1707, 2996,  975, 1707, 3066, 3005, 3005, 3005, 1707, 1707,
-     1707, 1709, 1707, 3072, 3072, 3072,  974, 3073,  972,  969,
-     3074,  968, 3006, 3075, 3075, 3075,  966, 3076,  965,  964,
-     3077, 3007, 3007, 3007, 3033, 3033, 3033, 1707, 1707, 1707,
-     1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 3008,  962,
-     1707,  961, 3034,  960,  959, 1707, 1707, 1707, 1709, 1707,
-     3026, 3026, 3026,  956, 3027,  955,  954, 3028, 3105, 3105,
-     3105, 3043, 3043, 3043,  951, 3044,  950,  949, 3045,  948,
-      943, 3058, 3058, 3058, 1707, 1707, 3106,  941,  940, 1709,
-
-     1707, 1707, 1707, 1707, 1707, 3113, 1707, 1707, 1707, 3059,
-      932, 1707, 3065, 3065, 3065,  931, 1707, 1707, 1707, 1709,
-     1707, 3062, 3062, 3062,  930, 3063,  929,  923, 3064, 3066,
-     3130, 3130, 3130,  922, 3131,  921,  919, 3132, 3105, 3105,
-     3105, 3157, 3157, 3157,  916, 1707, 1707, 1707, 1707, 1707,
-     1707, 1707, 1707, 1707, 1707, 3113, 3106,  915, 1707, 1709,
-     1710,  914,  913, 1707, 1707, 1707, 1709, 1707, 3072, 3072,
-     3072,  908, 3073,  905,  907, 3074, 3075, 3075, 3075,  902,
-     3076,  901,  900, 3077, 3166, 3166, 3166, 3168, 3168, 3168,
-      898,  897, 1707, 1707,  894, 3130, 3130, 3130,  893, 3131,
-
-      892, 3167, 3132,  890, 3169, 3178, 3178, 3178, 3186, 3186,
-     3186, 3194, 3194, 3194, 3157, 3157, 3157, 3166, 3166, 3166,
-      889,  887, 3179,  886,  885, 3187, 3202, 3202, 3202, 1151,
-     3203,  884, 1709, 3204, 3167, 3168, 3168, 3168, 3205, 3205,
-     3205,  882, 3206,  881,  880, 3207, 3178, 3178, 3178, 3216,
-     3216, 3216, 3169, 3217,  879,  878, 3218, 3186, 3186, 3186,
-     3225, 3225, 3225, 3179, 3226, 1912,  877, 3227, 3194, 3194,
-     3194, 3202, 3202, 3202, 3187, 3203,  875,  873, 3204,  872,
-     3205, 3205, 3205,  870, 3206,  866, 1151, 3207, 3216, 3216,
-     3216,  864, 3217,  860,  856, 3218, 3225, 3225, 3225,  855,
-
-     3226,  853,  851, 3227,  850, 3234, 3359, 3359, 3359, 3359,
-     3359, 3359,  848, 3370,  847,  845, 3371, 3463, 3463, 3463,
-     3463, 3463, 3463,  844, 1151,  843,  842, 1151,  841,  839,
-      838,  832,  830,  827,  826, 3464,  825,  824, 3464,  248,
-      248,  248,  248,  248,  248,  248,  248,  248,  249,  249,
-      249,  249,  249,  249,  249,  249,  249,  254,  254,  254,
-      254,  254,  254,  254,  254,  254,  257,  257,  257,  257,
-      257,  257,  257,  257,  257,  260,  260,  260,  260,  260,
-      260,  260,  260,  260,  263,  263,  263,  263,  263,  263,
-      263,  263,  263,  270,  270,  270,  270,  270,  270,  270,
-
-      270,  270,  277,  277,  277,  277,  277,  277,  277,  277,
-      277,  282,  282,  282,  282,  282,  282,  282,  282,  282,
-      294,  294,  294,  294,  294,  294,  294,  294,  294,  300,
-      300,  300,  300,  300,  300,  300,  300,  300,  308,  308,
-      308,  308,  308,  308,  308,  308,  308,  312,  312,  312,
-      312,  312,  312,  312,  312,  312,  318,  318,  318,  318,
-      318,  318,  318,  318,  318,  324,  324,  324,  324,  324,
-      324,  324,  324,  324,  330,  330,  330,  330,  330,  330,
-      330,  330,  330,  336,  336,  336,  336,  336,  336,  336,
-      336,  336,  343,  343,  343,  343,  343,  343,  343,  343,
-
-      343,  348,  348,  348,  348,  348,  348,  348,  348,  348,
-      355,  355,  355,  355,  355,  355,  355,  355,  355,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  382,  382,
-      382,  382,  382,  382,  382,  382,  382,  389,  389,  389,
-      389,  389,  389,  389,  389,  389,  393,  393,  393,  393,
-      393,  393,  393,  393,  393,  400,  400,  400,  400,  400,
-      400,  400,  400,  400,  404,  404,  404,  404,  404,  404,
-      404,  404,  404,  410,  410,  410,  410,  410,  410,  410,
-      410,  410,  418,  418,  418,  418,  418,  418,  418,  418,
-      418,  426,  426,  426,  426,  426,  426,  426,  426,  426,
-
-      432,  432,  432,  432,  432,  432,  432,  432,  432,  438,
-      438,  438,  438,  438,  438,  438,  438,  438,  442,  442,
-      442,  442,  442,  442,  442,  442,  442,  450,  450,  450,
-      450,  450,  450,  450,  450,  450,  457,  457,  457,  457,
-      457,  457,  457,  457,  457,  464,  464,  464,  464,  464,
-      464,  464,  464,  464,  469,  469,  469,  469,  469,  469,
-      469,  469,  469,  475,  475,  475,  475,  475,  475,  475,
-      475,  475,  480,  480,  480,  480,  480,  480,  480,  480,
-      480,  486,  486,  486,  486,  486,  486,  486,  486,  486,
-      491,  491,  491,  491,  491,  491,  491,  491,  491,  497,
-
-      497,  497,  497,  497,  497,  497,  497,  497,  502,  502,
-      502,  502,  502,  502,  502,  502,  502,  508,  508,  508,
-      508,  508,  508,  508,  508,  508,  518,  518,  518,  518,
-      518,  518,  518,  518,  518,  525,  525,  525,  525,  525,
-      525,  525,  525,  525,  529,  529,  529,  529,  529,  529,
-      529,  529,  529,  540,  540,  540,  540,  540,  540,  540,
-      540,  540,  548,  548,  548,  548,  548,  548,  548,  548,
-      548,  556,  556,  556,  556,  556,  556,  556,  556,  556,
-      561,  561,  561,  561,  561,  561,  561,  561,  561,  567,
-      567,  567,  567,  567,  567,  567,  567,  567,  575,  575,
-
-      575,  575,  575,  575,  575,  575,  575,  581,  581,  581,
-      581,  581,  581,  581,  581,  581,  586,  586,  586,  586,
-      586,  586,  586,  586,  586,  593,  593,  593,  593,  593,
-      593,  593,  593,  593,  598,  598,  598,  598,  598,  598,
-      598,  598,  598,  604,  604,  604,  604,  604,  604,  604,
-      604,  604,  611,  611,  611,  611,  611,  611,  611,  611,
-      611,  618,  618,  618,  618,  618,  618,  618,  618,  618,
-      625,  625,  625,  625,  625,  625,  625,  625,  625,  633,
-      633,  633,  633,  633,  633,  633,  633,  633,  263,  263,
-      263,  263,  263,  263,  263,  263,  263,  644,  644,  644,
-
-      644,  644,  644,  644,  644,  644,  650,  650,  650,  650,
-      650,  650,  650,  650,  650,  669,  669,  669,  823,  822,
-      821,  669,  705,  705,  705,  819,  817,  816,  705,  713,
-      713,  713,  814,  812,  811,  713,  717,  717,  717,  809,
-      807,  806,  717,  723,  723,  723,  804,  802,  801,  723,
-      729,  729,  729,  799,  798,  795,  729,  734,  734,  734,
-      794,  793,  791,  734,  744,  744,  744, 3465,  788,  786,
-      744,  763,  763,  763,  784,  783,  782,  763,  767,  767,
-      767,  780,  779,  777,  767,  771,  771,  771,  774,  773,
-      772,  771,  781,  781,  781,  770,  768,  766,  781,  787,
-
-      787,  787,  765,  764,  762,  787,  792,  792,  792,  761,
-      760,  749,  792,  800,  800,  800,  748,  745,  743,  800,
-      805,  805,  805,  741,  740,  737,  805,  810,  810,  810,
-      736,  735,  733,  810,  815,  815,  815,  731,  730,  728,
-      815,  820,  820,  820,  726,  725,  724,  820,  831,  831,
-      831,  722,  720,  719,  831,  840,  840,  840,  718,  716,
-      714,  840,  849,  849,  849,  712,  707,  706,  849,  854,
-      854,  854,  704, 3465,  686,  854,  865,  865,  865,  671,
-      670,  668,  865,  871,  871,  871,  667,  661,  660,  871,
-      876,  876,  876,  661,  660,  659,  876,  883,  883,  883,
-
-      658, 3465, 3465,  883,  891,  891,  891, 3465, 3465, 3465,
-      891,  899,  899,  899, 3465, 3465, 3465,  899,  904,  904,
-      904,  904,  904,  904,  904, 3465,  904,  669,  669,  669,
-     3465, 3465, 3465,  669,  920, 3465, 3465, 3465,  920,  705,
-      705,  705, 3465, 3465, 3465,  705,  963, 3465, 3465, 3465,
-      963,  713,  713,  713, 3465, 3465, 3465,  713,  967, 3465,
-     3465, 3465,  967,  717,  717,  717, 3465, 3465, 3465,  717,
-      973, 3465, 3465, 3465,  973,  723,  723,  723, 3465, 3465,
-     3465,  723,  978, 3465, 3465, 3465,  978,  729,  729,  729,
-     3465, 3465, 3465,  729,  982, 3465, 3465, 3465,  982,  734,
-
-      734,  734, 3465, 3465, 3465,  734,  993, 3465, 3465, 3465,
-      993,  744,  744,  744, 3465, 3465, 3465,  744, 1013, 3465,
-     3465, 3465, 1013,  763,  763,  763, 3465, 3465, 3465,  763,
-     1017, 3465, 3465, 3465, 1017,  767,  767,  767, 3465, 3465,
-     3465,  767, 1020, 3465, 3465, 3465, 1020,  771,  771,  771,
-     3465, 3465, 3465,  771, 1030, 3465, 3465, 3465, 1030,  781,
-      781,  781, 3465, 3465, 3465,  781, 1039, 3465, 3465, 3465,
-     1039,  787,  787,  787, 3465, 3465, 3465,  787, 1042, 3465,
-     3465, 3465, 1042,  792,  792,  792, 3465, 3465, 3465,  792,
-     1051, 3465, 3465, 3465, 1051,  800,  800,  800, 3465, 3465,
-
-     3465,  800, 1056, 3465, 3465, 3465, 1056,  805,  805,  805,
-     3465, 3465, 3465,  805, 1061, 3465, 3465, 3465, 1061,  810,
-      810,  810, 3465, 3465, 3465,  810, 1065, 3465, 3465, 3465,
-     1065,  815,  815,  815, 3465, 3465, 3465,  815, 1069, 3465,
-     3465, 3465, 1069,  820,  820,  820, 3465, 3465, 3465,  820,
-     1079, 3465, 3465, 3465, 1079,  831,  831,  831, 3465, 3465,
-     3465,  831, 1083, 3465, 3465, 3465, 1083,  840,  840,  840,
-     3465, 3465, 3465,  840, 1093, 3465, 3465, 3465, 1093,  849,
-      849,  849, 3465, 3465, 3465,  849, 1099, 3465, 3465, 3465,
-     1099,  854,  854,  854, 3465, 3465, 3465,  854, 1110, 3465,
-
-     3465, 3465, 1110,  865,  865,  865, 3465, 3465, 3465,  865,
-     1115, 3465, 3465, 3465, 1115,  871,  871,  871, 3465, 3465,
-     3465,  871, 1120, 3465, 3465, 3465, 1120,  876,  876,  876,
-     3465, 3465, 3465,  876, 1127, 3465, 3465, 3465, 1127,  883,
-      883,  883, 3465, 3465, 3465,  883, 1134, 3465, 3465, 3465,
-     1134,  891,  891,  891, 3465, 3465, 3465,  891, 1142, 3465,
-     3465, 3465, 1142,  899,  899,  899, 3465, 3465, 3465,  899,
-     1148, 3465, 3465, 3465, 1148, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1156, 3465, 3465, 3465, 3465, 1156,
-      669,  669,  669, 3465, 3465, 3465,  669, 1167, 1167, 1167,
-
-     1167, 3465, 3465, 1167, 1167,  705,  705,  705,  705, 3465,
-      705, 3465,  705, 1217, 1217, 1217, 1217, 3465, 3465, 1217,
-     1217,  713,  713,  713, 3465, 3465, 3465,  713, 1223, 1223,
-     1223, 1223, 3465, 3465, 1223, 1223,  717,  717,  717, 3465,
-     3465, 3465,  717, 1232, 1232, 1232, 1232, 3465, 3465, 1232,
-     1232,  723,  723,  723,  723, 3465,  723, 3465,  723, 1242,
-     1242, 1242, 1242, 3465, 3465, 1242, 1242,  729,  729,  729,
-      729, 3465,  729, 3465,  729, 1250, 1250, 1250, 1250, 3465,
-     3465, 1250, 1250,  734,  734,  734,  734, 3465,  734, 3465,
-      734, 1266, 1266, 1266, 1266, 3465, 3465, 1266, 1266,  744,
-
-      744,  744, 3465, 3465, 3465,  744, 1293, 1293, 1293, 1293,
-     3465, 3465, 1293, 1293, 1300, 1300, 1300, 1300, 3465, 3465,
-     1300, 1300,  767,  767,  767, 3465, 3465, 3465,  767, 1305,
-     1305, 1305, 1305, 3465, 3465, 1305, 1305,  771,  771,  771,
-     3465, 3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465,
-     1318, 1318,  781,  781,  781, 3465, 3465, 3465,  781, 1331,
-     1331, 1331, 1331, 3465, 3465, 1331, 1331,  787,  787,  787,
-     3465, 3465, 3465,  787, 1336, 1336, 1336, 1336, 3465, 3465,
-     1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792, 1347,
-     1347, 1347, 1347, 3465, 3465, 1347, 1347,  800,  800,  800,
-
-     3465, 3465, 3465,  800, 1355, 1355, 1355, 1355, 3465, 3465,
-     1355, 1355,  805,  805,  805, 3465, 3465, 3465,  805, 1363,
-     1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
-     3465, 3465, 3465,  810, 1369, 1369, 1369, 1369, 3465, 3465,
-     1369, 1369,  815,  815,  815, 3465, 3465, 3465,  815, 1375,
-     1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
-     3465, 3465, 3465,  820, 1390, 1390, 1390, 1390, 3465, 3465,
-     1390, 1390,  831,  831,  831, 3465, 3465, 3465,  831, 1396,
-     1396, 1396, 1396, 3465, 3465, 1396, 1396,  840,  840,  840,
-     3465, 3465, 3465,  840, 1408, 1408, 1408, 1408, 3465, 3465,
-
-     1408, 1408,  849,  849,  849, 3465, 3465, 3465,  849, 1417,
-     1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,  854,  854,
-     3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465, 3465,
-     1433, 1433,  865,  865,  865,  865, 3465,  865, 3465,  865,
-     1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,  871,
-      871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450, 3465,
-     3465, 1450, 1450,  876,  876,  876, 3465, 3465, 3465,  876,
-     1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,  883,
-      883, 3465, 3465, 3465,  883, 1470, 1470, 1470, 1470, 3465,
-     3465, 1470, 1470,  891,  891,  891, 3465, 3465, 3465,  891,
-
-     1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,  899,  899,
-      899, 3465, 3465, 3465,  899, 1488, 1488, 1488, 1488, 3465,
-     3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1156, 3465, 1156, 3465, 3465, 1156,  669,  669,
-      669, 3465, 3465, 3465,  669, 1167, 1167, 1167, 1167, 3465,
-     3465, 1167, 1167,  705,  705,  705, 3465, 3465, 3465,  705,
-     1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217,  713,  713,
-      713, 3465, 3465, 3465,  713, 1223, 1223, 1223, 1223, 3465,
-     3465, 1223, 1223,  717,  717,  717, 3465, 3465, 3465,  717,
-     1232, 1232, 1232, 1232, 3465, 3465, 1232, 1232,  723,  723,
-
-      723, 3465, 3465, 3465,  723, 1242, 1242, 1242, 1242, 3465,
-     3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465, 3465, 1250,
-     1250,  734,  734,  734, 3465, 3465, 3465,  734, 1266, 1266,
-     1266, 1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465,
-     3465, 3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293,
-     1293, 1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300,  767,
-      767,  767,  767, 3465,  767, 3465,  767, 1305, 1305, 1305,
-     1305, 3465, 3465, 1305, 1305,  771,  771,  771, 3465, 3465,
-     3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318, 1318,
-      781,  781,  781,  781, 3465,  781, 3465,  781, 1331, 1331,
-
-     1331, 1331, 3465, 3465, 1331, 1331,  787,  787,  787,  787,
-     3465,  787, 3465,  787, 1336, 1336, 1336, 1336, 3465, 3465,
-     1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792, 1347,
-     1347, 1347, 1347, 3465, 3465, 1347, 1347,  800,  800,  800,
-     3465, 3465, 3465,  800, 1355, 1355, 1355, 1355, 3465, 3465,
-     1355, 1355,  805,  805,  805, 3465, 3465, 3465,  805, 1363,
-     1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
-      810, 3465,  810, 3465,  810, 1369, 1369, 1369, 1369, 3465,
-     3465, 1369, 1369,  815,  815,  815,  815, 3465,  815, 3465,
-      815, 1375, 1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,
-
-      820,  820, 3465, 3465, 3465,  820, 1390, 1390, 1390, 1390,
-     3465, 3465, 1390, 1390,  831,  831,  831, 3465, 3465, 3465,
-      831, 1396, 1396, 1396, 1396, 3465, 3465, 1396, 1396,  840,
-      840,  840, 3465, 3465, 3465,  840, 1408, 1408, 1408, 1408,
-     3465, 3465, 1408, 1408,  849,  849,  849, 3465, 3465, 3465,
-      849, 1417, 1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,
-      854,  854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433,
-     3465, 3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,
-      865, 1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,
-      871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450,
-
-     3465, 3465, 1450, 1450,  876,  876,  876, 3465, 3465, 3465,
-      876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,
-      883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470, 1470,
-     3465, 3465, 1470, 1470,  891,  891,  891,  891, 3465,  891,
-     3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
-      899,  899,  899, 3465, 3465, 3465,  899, 1488, 1488, 1488,
-     1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
-     1707, 1707, 1707,  669,  669,  669, 3465, 3465, 3465,  669,
-      705,  705,  705, 3465, 3465, 3465,  705, 1217, 1217, 1217,
-
-     1217, 3465, 3465, 1217, 1217,  713,  713,  713,  713, 3465,
-      713, 3465,  713, 1223, 1223, 1223, 1223, 3465, 3465, 1223,
-     1223,  717,  717,  717, 3465, 3465, 3465,  717, 1232, 1232,
-     1232, 1232, 3465, 3465, 1232, 1232,  723,  723,  723, 3465,
-     3465, 3465,  723, 1242, 1242, 1242, 1242, 3465, 3465, 1242,
-     1242, 1250, 1250, 1250, 1250, 3465, 3465, 1250, 1250,  734,
-      734,  734,  734, 3465,  734, 3465,  734, 1266, 1266, 1266,
-     1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465, 3465,
-     3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293, 1293,
-     1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300, 1305, 1305,
-
-     1305, 1305, 3465, 3465, 1305, 1305,  771,  771,  771, 3465,
-     3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318,
-     1318, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
-     1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
-     3465, 3465, 3465,  792, 1347, 1347, 1347, 1347, 3465, 3465,
-     1347, 1347,  800,  800,  800, 3465, 3465, 3465,  800, 1355,
-     1355, 1355, 1355, 3465, 3465, 1355, 1355,  805,  805,  805,
-      805, 3465,  805, 3465,  805, 1363, 1363, 1363, 1363, 3465,
-     3465, 1363, 1363,  810,  810,  810, 3465, 3465, 3465,  810,
-     1369, 1369, 1369, 1369, 3465, 3465, 1369, 1369,  815,  815,
-
-      815, 3465, 3465, 3465,  815, 1375, 1375, 1375, 1375, 3465,
-     3465, 1375, 1375,  820,  820,  820, 3465, 3465, 3465,  820,
-     1390, 1390, 1390, 1390, 3465, 3465, 1390, 1390,  831,  831,
-      831, 3465, 3465, 3465,  831, 1396, 1396, 1396, 1396, 3465,
-     3465, 1396, 1396,  840,  840,  840, 3465, 3465, 3465,  840,
-     1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  849,  849,
-      849,  849, 3465,  849, 3465,  849, 1417, 1417, 1417, 1417,
-     3465, 3465, 1417, 1417,  854,  854,  854, 3465, 3465, 3465,
-      854, 1433, 1433, 1433, 1433, 3465, 3465, 1433, 1433,  865,
-      865,  865, 3465, 3465, 3465,  865, 1442, 1442, 1442, 1442,
-
-     3465, 3465, 1442, 1442,  871,  871,  871, 3465, 3465, 3465,
-      871, 1450, 1450, 1450, 1450, 3465, 3465, 1450, 1450,  876,
-      876,  876, 3465, 3465, 3465,  876, 1460, 1460, 1460, 1460,
-     3465, 3465, 1460, 1460,  883,  883,  883, 3465, 3465, 3465,
-      883, 1470, 1470, 1470, 1470, 3465, 3465, 1470, 1470,  891,
-      891,  891, 3465, 3465, 3465,  891, 1481, 1481, 1481, 1481,
-     3465, 3465, 1481, 1481,  899,  899,  899, 3465, 3465, 3465,
-      899, 1488, 1488, 1488, 1488, 3465, 3465, 1488, 1488, 1150,
-     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1707, 1707,
-     1707, 1707, 1707, 1707, 1707, 1707, 1707,  669,  669,  669,
-
-     3465, 3465, 3465,  669,  705,  705,  705,  705, 3465,  705,
-     3465,  705, 1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217,
-     1223, 1223, 1223, 1223, 3465, 3465, 1223, 1223,  717,  717,
-      717, 3465, 3465, 3465,  717, 1232, 1232, 1232, 1232, 3465,
-     3465, 1232, 1232,  723,  723,  723,  723, 3465,  723, 3465,
-      723, 1242, 1242, 1242, 1242, 3465, 3465, 1242, 1242, 1250,
-     1250, 1250, 1250, 3465, 3465, 1250, 1250,  734,  734,  734,
-      734, 3465,  734, 3465,  734, 1266, 1266, 1266, 1266, 3465,
-     3465, 1266, 1266,  744,  744,  744, 3465, 3465, 3465,  744,
-     1293, 1293, 1293, 1293, 3465, 3465, 1293, 1293, 1300, 1300,
-
-     1300, 1300, 3465, 3465, 1300, 1300,  771,  771,  771, 3465,
-     3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318,
-     1318, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
-     1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
-     3465, 3465, 3465,  792, 1347, 1347, 1347, 1347, 3465, 3465,
-     1347, 1347,  800,  800,  800, 3465, 3465, 3465,  800, 1355,
-     1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363, 1363, 1363,
-     1363, 3465, 3465, 1363, 1363,  810,  810,  810, 3465, 3465,
-     3465,  810, 1369, 1369, 1369, 1369, 3465, 3465, 1369, 1369,
-      815,  815,  815,  815, 3465,  815, 3465,  815, 1375, 1375,
-
-     1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820, 3465,
-     3465, 3465,  820, 1390, 1390, 1390, 1390, 3465, 3465, 1390,
-     1390,  831,  831,  831, 3465, 3465, 3465,  831, 1396, 1396,
-     1396, 1396, 3465, 3465, 1396, 1396,  840,  840,  840, 3465,
-     3465, 3465,  840, 1408, 1408, 1408, 1408, 3465, 3465, 1408,
-     1408, 1417, 1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,
-      854,  854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433,
-     3465, 3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,
-      865, 1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,
-      871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450,
-
-     3465, 3465, 1450, 1450,  876,  876,  876,  876, 3465,  876,
-     3465,  876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,
-      883,  883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470,
-     1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
-     3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
-      899,  899,  899, 3465, 3465, 3465,  899, 1488, 1488, 1488,
-     1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
-     1707, 1707, 1707,  669,  669,  669,  669, 3465,  669, 3465,
-      669,  705,  705,  705, 3465, 3465, 3465,  705, 1217, 1217,
-
-     1217, 1217, 3465, 3465, 1217, 1217, 1223, 1223, 1223, 1223,
-     3465, 3465, 1223, 1223,  717,  717,  717, 3465, 3465, 3465,
-      717, 1232, 1232, 1232, 1232, 3465, 3465, 1232, 1232, 1242,
-     1242, 1242, 1242, 3465, 3465, 1242, 1242, 1250, 1250, 1250,
-     1250, 3465, 3465, 1250, 1250,  734,  734,  734,  734, 3465,
-      734, 3465,  734, 1266, 1266, 1266, 1266, 3465, 3465, 1266,
-     1266,  744,  744,  744, 3465, 3465, 3465,  744, 1293, 1293,
-     1293, 1293, 3465, 3465, 1293, 1293, 1300, 1300, 1300, 1300,
-     3465, 3465, 1300, 1300,  771,  771,  771, 3465, 3465, 3465,
-      771, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
-
-     1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
-     3465, 3465, 3465,  792,  800,  800,  800, 3465, 3465, 3465,
-      800, 1355, 1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363,
-     1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
-     3465, 3465, 3465,  810, 1369, 1369, 1369, 1369, 3465, 3465,
-     1369, 1369, 1375, 1375, 1375, 1375, 3465, 3465, 1375, 1375,
-      820,  820,  820, 3465, 3465, 3465,  820,  831,  831,  831,
-      831, 3465,  831, 3465,  831, 1396, 1396, 1396, 1396, 3465,
-     3465, 1396, 1396,  840,  840,  840, 3465, 3465, 3465,  840,
-     1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
-
-      854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465,
-     3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,  865,
-     1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,  871,
-      871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450, 3465,
-     3465, 1450, 1450,  876,  876,  876,  876, 3465,  876, 3465,
-      876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,
-      883,  883,  883, 3465,  883, 3465,  883, 1470, 1470, 1470,
-     1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
-     3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
-      899,  899,  899,  899, 3465,  899, 3465,  899, 1488, 1488,
-
-     1488, 1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707,
-     1707, 1707, 1707, 1707,  705,  705,  705, 3465, 3465, 3465,
-      705, 1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217, 1223,
-     1223, 1223, 1223, 3465, 3465, 1223, 1223,  717,  717,  717,
-     3465, 3465, 3465,  717, 1232, 1232, 1232, 1232, 3465, 3465,
-     1232, 1232, 1242, 1242, 1242, 1242, 3465, 3465, 1242, 1242,
-     1250, 1250, 1250, 1250, 3465, 3465, 1250, 1250, 1266, 1266,
-     1266, 1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465,
-     3465, 3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293,
-
-     1293, 1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300,  771,
-      771,  771, 3465, 3465, 3465,  771, 1331, 1331, 1331, 1331,
-     3465, 3465, 1331, 1331, 1336, 1336, 1336, 1336, 3465, 3465,
-     1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792,  800,
-      800,  800, 3465, 3465, 3465,  800, 1355, 1355, 1355, 1355,
-     3465, 3465, 1355, 1355, 1363, 1363, 1363, 1363, 3465, 3465,
-     1363, 1363,  810,  810,  810, 3465, 3465, 3465,  810, 1375,
-     1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
-     3465, 3465, 3465,  820, 1396, 1396, 1396, 1396, 3465, 3465,
-     1396, 1396,  840,  840,  840,  840, 3465,  840, 3465,  840,
-
-     1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
-      854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465,
-     3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,  865,
-      871,  871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450,
-     1450, 3465, 3465, 1450, 1450,  876,  876,  876, 3465, 3465,
-     3465,  876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,
-      883,  883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470,
-     1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
-     3465,  891, 1488, 1488, 1488, 1488, 3465, 3465, 1488, 1488,
-     1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1707,
-
-     1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,  705,  705,
-      705, 3465, 3465, 3465,  705, 1217, 1217, 1217, 1217, 3465,
-     3465, 1217, 1217, 1223, 1223, 1223, 1223, 3465, 3465, 1223,
-     1223,  717,  717,  717,  717, 3465,  717, 3465,  717, 1232,
-     1232, 1232, 1232, 3465, 3465, 1232, 1232, 1242, 1242, 1242,
-     1242, 3465, 3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465,
-     3465, 1250, 1250, 1266, 1266, 1266, 1266, 3465, 3465, 1266,
-     1266,  744,  744,  744, 3465, 3465, 3465,  744, 1293, 1293,
-     1293, 1293, 3465, 3465, 1293, 1293,  771,  771,  771, 3465,
-     3465, 3465,  771, 1331, 1331, 1331, 1331, 3465, 3465, 1331,
-
-     1331, 1336, 1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,
-      792,  792,  792, 3465,  792, 3465,  792,  800,  800,  800,
-      800, 3465,  800, 3465,  800, 1355, 1355, 1355, 1355, 3465,
-     3465, 1355, 1355, 1363, 1363, 1363, 1363, 3465, 3465, 1363,
-     1363,  810,  810,  810,  810, 3465,  810, 3465,  810, 1375,
-     1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
-     3465, 3465, 3465,  820, 1396, 1396, 1396, 1396, 3465, 3465,
-     1396, 1396,  840,  840,  840,  840, 3465,  840, 3465,  840,
-     1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
-      854,  854, 3465,  854, 3465,  854,  865,  865,  865, 3465,
-
-     3465, 3465,  865,  871,  871,  871, 3465, 3465, 3465,  871,
-      876,  876,  876, 3465, 3465, 3465,  876, 1460, 1460, 1460,
-     1460, 3465, 3465, 1460, 1460,  883,  883,  883, 3465, 3465,
-     3465,  883, 1470, 1470, 1470, 1470, 3465, 3465, 1470, 1470,
-      891,  891,  891, 3465, 3465, 3465,  891, 1488, 1488, 1488,
-     1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
-     1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
-     1707, 1707, 1707,  705,  705,  705, 3465, 3465, 3465,  705,
-     1223, 1223, 1223, 1223, 3465, 3465, 1223, 1223, 1232, 1232,
-     1232, 1232, 3465, 3465, 1232, 1232, 1242, 1242, 1242, 1242,
-
-     3465, 3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465, 3465,
-     1250, 1250,  744,  744,  744, 3465, 3465, 3465,  744,  771,
-      771,  771, 3465, 3465, 3465,  771, 1331, 1331, 1331, 1331,
-     3465, 3465, 1331, 1331,  792,  792,  792, 3465, 3465, 3465,
-      792, 1355, 1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363,
-     1363, 1363, 1363, 3465, 3465, 1363, 1363, 3046, 3046, 3046,
-     3046, 3046, 3046, 3046, 3046, 3046, 3047, 3047, 3047, 3047,
-     3047, 3047, 3047, 3047, 3047, 3108, 3108, 3108, 3108, 3108,
-     3108, 3108, 3108, 3108, 3111, 3111, 3111, 3111, 3111, 3111,
-     3111, 3111, 3111, 3154, 3154, 3154, 3154, 3154, 3154, 3154,
-
-     3154, 3154, 3156, 3156, 3156, 3156, 3156, 3156, 3156, 3156,
-     3156,  247, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465
+      494, 1708,  494,  498,  494,  499,  494, 1034, 1034, 1034,
+     1036, 1036, 1036, 1045, 1045, 1045, 1053, 1053, 1053, 1057,
+     1057, 1057, 2105, 2117, 1035, 2118, 2112, 1037, 2119, 2120,
+     1046,  494,  494, 1054, 2106, 2121, 1058, 1252, 1252, 1252,
+
+     2122, 1253, 2113, 2123, 1254, 1193, 2126,  500, 1506, 1506,
+     1506, 2127, 2128,  501,  505,  506,  251,  506,  505,  505,
+      505,  505,  505,  505,  505,  507,  505,  505,  505, 2129,
+      505,  509,  505,  510,  505, 1073, 1073, 1073, 1095, 1095,
+     1095, 1101, 1101, 1101, 1117, 1117, 1117, 2132, 1123, 1123,
+     1123, 2133, 1074, 2134, 2135, 1096, 2130, 2137, 1102,  505,
+      505, 1118,  511,  512,  513, 1124, 2138, 1255, 1255, 1255,
+      514, 1256, 2131,  515, 1257, 1192, 1192, 1192, 2145, 2147,
+      516,  505,  506,  251,  506,  505,  505,  505,  505,  505,
+      505,  505,  507,  505,  505,  505, 2149,  505,  509,  505,
+
+      510,  505, 1129, 1129, 1129, 1137, 1137, 1137,  916,  916,
+      916, 1208, 1208, 1208, 1165, 1165, 1165, 2170, 2174, 1130,
+     2175, 2176, 1138, 2182, 2183,  917,  505,  505, 1209,  511,
+      512,  513, 1167, 2184, 1272, 1272, 1272,  514, 1273, 2188,
+      515, 1274, 1527, 1527, 1527, 2189, 2192,  516,  521,  522,
+      251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
+      521,  521,  521, 2193,  521,  525,  521,  526,  521, 1165,
+     1165, 1165, 1212, 1212, 1212, 2197, 2198, 1215, 1215, 1215,
+     3476, 3476, 3476, 3476, 3476, 3476, 2199, 1167, 2200, 1213,
+     1221, 1221, 1221,  521,  521, 1217, 2203, 3476, 2207, 2208,
+
+     3476, 2209, 2210, 1276, 1276, 1276, 1168, 1277, 1223, 2211,
+     1278, 1506, 1506, 1506, 1728, 1728, 1728,  527,  521,  522,
+      251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
+      521,  521,  521, 1210,  521,  525,  521,  526,  521, 1214,
+     1215, 1215, 1215,  969,  969,  969, 2214, 2221, 1211, 1221,
+     1221, 1221, 1230, 1230, 1230, 1234, 1234, 1234, 1217, 2225,
+      970, 2226, 2227,  521,  521, 2232, 2234, 1223, 2235, 2236,
+     1232, 2237, 1235, 2239, 1295, 1295, 1295, 1218, 1296, 2240,
+     2243, 1297, 1720, 1720, 1720, 2245, 2248,  527,  536,  537,
+      251,  537,  536,  536,  536,  536,  536,  536,  536,  538,
+
+      536,  536,  536, 2264,  536,  540,  536,  541,  536, 1238,
+     1238, 1238, 2265, 1224, 1240, 1240, 1240, 1240, 1240, 1240,
+     3476, 3476, 3476, 1244, 1244, 1244, 1239, 2266, 1721, 1230,
+     1230, 1230, 1242,  536,  536, 1242, 2271, 3476, 2272, 2275,
+     1245,  542, 2276,  543, 2277, 2280,  544, 1232, 2289, 2290,
+      545, 1731, 1731, 1731,  546,  536,  537,  251,  537,  536,
+      536,  536,  536,  536,  536,  536,  538,  536,  536,  536,
+     1236,  536,  540,  536,  541,  536, 1233, 1246, 1246, 1246,
+     1248, 1248, 1248, 2291, 2273, 1237, 2292, 1150, 1243, 1248,
+     1248, 1248, 2274, 2282, 1247,  983,  983,  983, 1250, 2295,
+
+      536,  536,  985,  985,  985, 2297, 1708, 1250,  542, 2298,
+      543, 2299,  984,  544, 1736, 1736, 1736,  545, 2300,  986,
+     2304,  546,  552,  553,  251,  553,  552,  552,  552,  552,
+      552,  552,  552,  554,  552,  552,  552, 2283,  552,  556,
+      552,  557,  552, 1708, 1258, 1258, 1258, 1264, 1264, 1264,
+     1527, 1527, 1527, 2306, 2307, 3476, 3476, 3476, 2278, 2308,
+     1251, 1259, 3476, 3476, 3476, 1266, 2279,  552,  552, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 2311, 2315,  558, 3476,
+     1310, 1310, 1310, 2316, 1311, 2318, 3476, 1312, 2320, 2284,
+     3476,  559,  552,  553,  251,  553,  552,  552,  552,  552,
+
+      552,  552,  552,  554,  552,  552,  552, 1260,  552,  556,
+      552,  557,  552, 1264, 1264, 1264, 2331, 1261, 2332, 2333,
+     1262, 2334,  996,  996,  996, 1263,  999,  999,  999, 2338,
+     2339, 1266, 1279, 1279, 1279, 2340, 2341,  552,  552,  997,
+     1291, 1291, 1291, 1000, 1723, 1723, 1723, 2347,  558, 1280,
+     1323, 1323, 1323, 2348, 1324, 2353, 2354, 1325, 1293, 2357,
+     1267,  559,  563,  564,  251,  564,  563,  563,  563,  563,
+      563,  563,  563,  565,  563,  563,  563, 2361,  563,  567,
+      563,  568,  563, 1014, 1014, 1014, 1291, 1291, 1291, 2362,
+     1724, 1298, 1298, 1298, 1298, 1298, 1298, 1303, 1303, 1303,
+
+     1015, 1303, 1303, 1303, 1293, 2349, 2351,  563,  563, 1300,
+     2367, 2368, 1300, 2350, 2352, 1305,  569, 2371,  570, 1305,
+     2373, 2374,  571, 1746, 1746, 1746, 2375,  572,  573,  563,
+      564,  251,  564,  563,  563,  563,  563,  563,  563,  563,
+      565,  563,  563,  563, 1294,  563,  567,  563,  568,  563,
+     1024, 1024, 1024, 2363, 2365, 1301, 2376, 2388, 1316, 1316,
+     1316, 2364, 2366, 1306, 1316, 1316, 1316, 1025, 2389, 1034,
+     1034, 1034, 2393, 2396,  563,  563, 1318, 1326, 1326, 1326,
+     2397, 1327, 1318,  569, 1328,  570, 1035, 2403, 2408,  571,
+     1720, 1720, 1720, 2410,  572,  573,  577,  578,  251,  578,
+
+      577,  577,  577,  577,  577,  577,  577,  579,  577,  577,
+      577, 2411,  577,  581,  577,  582,  577, 1036, 1036, 1036,
+     1329, 1329, 1329, 2096, 2412, 1319, 1329, 1329, 1329, 2097,
+     1334, 1334, 1334, 2098, 1037, 1334, 1334, 1334, 1331, 2099,
+     2416,  577,  577, 2417, 1331, 2418, 2419,  583, 1336, 2420,
+     1339, 1339, 1339, 1336, 1340, 2421, 2422, 1341, 2423, 1742,
+     1742, 1742,  584,  577,  578,  251,  578,  577,  577,  577,
+      577,  577,  577,  577,  579,  577,  577,  577, 2424,  577,
+      581,  577,  582,  577, 1045, 1045, 1045, 1332, 1345, 1345,
+     1345, 2425, 1353, 1353, 1353, 1337, 2442, 1345, 1345, 1345,
+
+     2443, 1046, 1053, 1053, 1053, 1743, 1347, 2444,  577,  577,
+     1355, 1057, 1057, 1057,  583, 1347, 1350, 1350, 1350, 1054,
+     1351, 2446, 2449, 1352, 1745, 1745, 1745, 2450, 1058,  584,
+      589,  590,  251,  590,  589,  589,  589,  589,  589,  589,
+      589,  591,  589,  589,  589, 2452,  589,  593,  589,  594,
+      589, 2453, 1348, 1353, 1353, 1353, 1357, 1357, 1357, 1708,
+     1358, 2454, 2455, 1359, 1361, 1361, 1361, 1361, 1361, 1361,
+     1724, 1355, 1723, 1723, 1723,  589,  589, 1381, 1381, 1381,
+      595, 1382, 1363, 2456, 1383, 1363,  596,  589,  590,  251,
+      590,  589,  589,  589,  589,  589,  589,  589,  591,  589,
+
+      589,  589, 2428,  589,  593,  589,  594,  589, 1356, 1367,
+     1367, 1367, 1367, 1367, 1367, 2457, 1373, 1373, 1373, 2469,
+     1373, 1373, 1373, 1073, 1073, 1073, 2470, 1369, 1364, 2471,
+     1369, 2472,  589,  589, 1375, 2476, 1708,  595, 1375, 2477,
+     1074, 2473, 2478,  596,  600,  601,  251,  601,  600,  600,
+      600,  600,  600,  600,  600,  602,  600,  600,  600, 2484,
+      600,  604,  600,  605,  600, 1384, 1384, 1384, 1388, 1388,
+     1388, 2485, 2486, 1370, 2487, 1394, 1394, 1394, 1394, 1394,
+     1394, 2488, 1385, 2429, 2489, 1376, 1390, 2490, 2500,  600,
+      600, 2501,  606, 1396,  607, 2502, 1396, 1411, 1411, 1411,
+
+      608, 1412, 2503, 2512, 1413, 1926, 1926, 1926, 1745, 1745,
+     1745,  609,  600,  601,  251,  601,  600,  600,  600,  600,
+      600,  600,  600,  602,  600,  600,  600, 2513,  600,  604,
+      600,  605,  600, 1095, 1095, 1095, 1397, 1406, 1406, 1406,
+     2514, 1406, 1406, 1406, 2530, 1415, 1415, 1415, 2531, 2532,
+     1096, 1388, 1388, 1388, 1756, 1408, 2535,  600,  600, 1408,
+      606, 2537,  607, 1417, 1728, 1728, 1728, 2538,  608, 1390,
+     1420, 1420, 1420, 2539, 1421, 2540, 2541, 1422, 2542,  609,
+      614,  615,  251,  615,  614,  614,  614,  614,  614,  614,
+      614,  616,  614,  614,  614, 2543,  614,  618,  614,  619,
+
+      614, 2544, 1391, 2545, 2546, 1409, 1415, 1415, 1415, 2547,
+     1101, 1101, 1101, 2548, 1423, 1423, 1423, 1426, 1426, 1426,
+     1431, 1431, 1431, 2553, 1417,  614,  614, 1102, 2554, 2557,
+      620, 1424, 2558, 2559, 1427, 2560,  621, 1708, 1433, 2563,
+      622, 1731, 1731, 1731, 1708, 2564,  623,  614,  615,  251,
+      615,  614,  614,  614,  614,  614,  614,  614,  616,  614,
+      614,  614, 2565,  614,  618,  614,  619,  614, 2566, 2551,
+     1418, 1435, 1435, 1435, 1437, 1437, 1437, 3476, 3476, 3476,
+     2555, 2552, 1431, 1431, 1431, 1117, 1117, 1117, 1436, 2556,
+     2561, 1438,  614,  614, 3476, 2568, 2569,  620, 2570, 2562,
+
+     1433, 2571, 1118,  621, 1445, 1445, 1445,  622, 1446, 2572,
+     2574, 1447, 2575,  623,  629,  630,  251,  630,  629,  629,
+      629,  629,  629,  629,  629,  631,  629,  629,  629, 1434,
+      629,  633,  629,  634,  629, 2576, 1439, 1440, 1440, 1440,
+     1440, 1440, 1440, 1448, 1448, 1448, 1448, 1448, 1448, 1123,
+     1123, 1123, 1129, 1129, 1129, 1442, 2586, 2587, 1442,  629,
+      629, 1450, 2588, 2589, 1450, 2590, 1124,  635, 2594, 1130,
+      636, 1931, 1931, 1931, 1736, 1736, 1736,  637,  629,  630,
+      251,  630,  629,  629,  629,  629,  629,  629,  629,  631,
+      629,  629,  629, 2597,  629,  633,  629,  634,  629, 2602,
+
+     2598, 1443, 1454, 1454, 1454, 2603, 1455, 1451, 2600, 1456,
+     1458, 1458, 1458, 2599, 1458, 1458, 1458, 2604, 1463, 1463,
+     1463, 2601, 1464,  629,  629, 1465, 2605, 2612, 1460, 2613,
+     2614,  635, 1460, 2615,  636, 1932, 1934, 1934, 1934, 2616,
+     2630,  637,  640,  641,  251,  641,  640,  640,  640,  640,
+      640,  640,  640,  642,  640,  640,  640, 2631,  640,  644,
+      640,  645,  640, 1468, 1468, 1468, 1468, 1468, 1468, 1137,
+     1137, 1137, 1474, 1474, 1474, 2647, 1475, 2648, 2649, 1476,
+     1461, 1470, 1935, 2650, 1470, 2652, 1138,  640,  640, 1479,
+     1479, 1479, 2653, 2654,  646, 1161, 1161, 1161, 2655, 1162,
+
+      647, 2656, 1163, 1742, 1742, 1742, 2657, 1481, 2658,  648,
+      640,  641,  251,  641,  640,  640,  640,  640,  640,  640,
+      640,  642,  640,  640,  640, 2659,  640,  644,  640,  645,
+      640, 2660, 1471, 1479, 1479, 1479, 1486, 1486, 1486, 1486,
+     1486, 1486, 1165, 1165, 1165, 1165, 1165, 1165, 1497, 1497,
+     1497, 1481, 2661, 2662, 1488,  640,  640, 1488, 2663, 2668,
+     1167, 2669,  646, 1167, 2670, 1708, 1498, 2671,  647, 1208,
+     1208, 1208, 1537, 1537, 1537, 2672, 1538,  648,  656, 1539,
+     2673, 1212, 1212, 1212, 2674,  671, 1209, 2675, 2676, 1542,
+     1542, 1542, 1150, 1543,  655,  672, 1544, 1482, 1213, 1215,
+
+     1215, 1215, 2666, 1489, 1234, 1234, 1234, 1215, 1215, 1215,
+     1238, 1238, 1238, 1215, 1215, 1215, 2677, 1217, 1221, 1221,
+     1221, 1235,  673,  674,  675, 1217, 2678, 1239,  676,  677,
+      678, 1217, 2665,  679,  680, 2679, 1223,  681, 1708,  682,
+      683,  684,  656, 1221, 1221, 1221, 1221, 1221, 1221, 1226,
+     1226, 1226, 2680, 1227, 2681, 2683, 1228, 2684,  655,  686,
+     2685, 1223, 2686, 2687, 1223, 1230, 1230, 1230, 1244, 1244,
+     1244, 1230, 1230, 1230, 1246, 1246, 1246, 1546, 1230, 1230,
+     1230, 2667, 2688, 1232, 2693, 1245,  673,  687,  688, 1232,
+     2694, 1247,  689,  690,  691, 2695, 1232,  692,  680, 1549,
+
+     2698,  693, 2699,  694,  695,  696, 1553, 1553, 1553, 2703,
+     1554, 2706, 2709, 1555, 1558, 1558, 1558, 2710, 1559, 2718,
+     2719, 1560, 1240, 1240, 1240, 2720, 2704, 1552, 1240, 1240,
+     1240, 1240, 1240, 1240, 1562, 1562, 1562, 2705, 1563, 2731,
+     1242, 1564, 2754, 1565, 1565, 1565, 1242, 1566, 2755, 1242,
+     1567, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
+     1252, 1252, 1252, 2707, 1253, 2760, 2761, 1254, 2762, 1250,
+     2763, 2764, 1250, 2765, 2708, 1250, 1255, 1255, 1255, 2766,
+     1256, 2767, 2768, 1257, 1258, 1258, 1258, 1569, 1569, 1569,
+     2769, 1570, 2774, 1561, 1571, 1264, 1264, 1264, 1264, 1264,
+
+     1264, 1259, 1264, 1264, 1264, 1272, 1272, 1272, 2775, 1273,
+     2776, 1150, 1274, 1266, 2777, 2778, 1266, 2743, 1708, 1568,
+     1266, 1581, 1581, 1581, 1276, 1276, 1276, 2744, 1277, 2779,
+     2745, 1278, 1279, 1279, 1279, 1583, 1583, 1583, 1582, 1584,
+     2771, 2780, 1585, 1291, 1291, 1291, 1291, 1291, 1291, 1280,
+     1576, 1291, 1291, 1291, 2781, 1295, 1295, 1295, 2782, 1296,
+     2772, 1293, 1297, 2783, 1293, 1298, 1298, 1298, 2784, 1293,
+     1298, 1298, 1298, 1298, 1298, 1298, 1599, 1599, 1599, 1303,
+     1303, 1303, 2785, 1300, 1303, 1303, 1303, 2786, 1300, 1708,
+     2788, 1300, 2789, 1600, 1303, 1303, 1303, 1305, 1604, 1604,
+
+     1604, 2724, 1305, 1310, 1310, 1310, 2790, 1311, 2792, 2793,
+     1312, 2725, 1305, 2799, 2800, 1605, 2808, 2726, 1597, 1316,
+     1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1612, 1612,
+     1612, 2773, 2809, 1598, 1323, 1323, 1323, 1318, 1324, 2746,
+     1318, 1325, 2810, 1318, 2811, 1613, 1326, 1326, 1326, 2747,
+     1327, 2812, 2748, 1328, 1329, 1329, 1329, 1329, 1329, 1329,
+     2813, 1601, 1329, 1329, 1329, 1615, 1615, 1615, 1334, 1334,
+     1334, 2814, 1331, 2815, 2822, 1331, 1334, 1334, 1334, 2825,
+     1331, 2826, 1616, 1334, 1334, 1334, 1336, 1345, 1345, 1345,
+     1609, 1339, 1339, 1339, 1336, 1340, 2827, 2828, 1341, 2829,
+
+     2830, 1336, 1345, 1345, 1345, 1347, 1345, 1345, 1345, 1350,
+     1350, 1350, 2831, 1351, 2834, 2727, 1352, 1353, 1353, 1353,
+     1347, 1353, 1353, 1353, 1347, 2728, 2842, 1614, 1353, 1353,
+     1353, 2729, 1617, 2843, 2846, 1355, 1357, 1357, 1357, 1355,
+     1358, 2847, 2865, 1359, 2866, 2867, 1355, 1361, 1361, 1361,
+     1361, 1361, 1361, 1361, 1361, 1361, 1627, 1627, 1627, 3476,
+     3476, 3476, 1367, 1367, 1367, 1363, 1622, 2868, 1363, 2869,
+     2870, 1363, 2871, 1628, 2838, 2872, 3476, 1367, 1367, 1367,
+     1369, 1367, 1367, 1367, 1631, 1631, 1631, 2839, 1624, 2840,
+     3476, 3476, 3476, 1708, 2878, 1369, 1373, 1373, 1373, 1369,
+
+     2879, 1632, 2841, 1626, 2880, 2881, 1629, 3476, 1373, 1373,
+     1373, 1373, 1373, 1373, 1375, 1381, 1381, 1381, 1633, 1382,
+     2844, 1150, 1383, 1384, 1384, 1384, 1375, 2882, 2875, 1375,
+     1639, 1639, 1639, 2845, 1640, 2883, 2884, 1641, 2885, 2886,
+     1385, 1388, 1388, 1388, 1388, 1388, 1388, 2848, 1630, 1388,
+     1388, 1388, 1394, 1394, 1394, 1394, 1394, 1394, 2887, 1390,
+     2849, 2888, 1390, 1394, 1394, 1394, 2889, 1390, 2890, 2874,
+     1396, 2892, 2893, 1396, 1652, 1652, 1652, 1634, 1406, 1406,
+     1406, 1396, 2895, 1406, 1406, 1406, 1406, 1406, 1406, 2903,
+     2904, 1653, 2896, 1415, 1415, 1415, 1408, 1415, 1415, 1415,
+
+     1644, 1408, 2897, 2898, 1408, 1411, 1411, 1411, 2911, 1412,
+     1647, 1417, 1413, 2899, 2912, 1417, 1415, 1415, 1415, 1420,
+     1420, 1420, 2913, 1421, 2914, 2915, 1422, 1423, 1423, 1423,
+     2916, 1662, 1662, 1662, 1417, 1663, 2917, 2918, 1664, 1665,
+     1665, 1665, 2922, 2923, 1424, 2927, 2928, 1657, 1426, 1426,
+     1426, 1667, 1667, 1667, 2929, 1668, 1666, 2930, 1669, 1671,
+     1671, 1671, 1431, 1431, 1431, 1427, 1431, 1431, 1431, 1431,
+     1431, 1431, 1435, 1435, 1435, 2931, 1672, 1660, 2932, 2933,
+     1433, 1675, 1675, 1675, 1433, 1676, 2934, 1433, 1677, 1436,
+     1437, 1437, 1437, 1678, 1678, 1678, 2935, 1679, 2936, 2937,
+
+     1680, 1440, 1440, 1440, 1440, 1440, 1440, 1438, 1440, 1440,
+     1440, 1445, 1445, 1445, 2938, 1446, 2939, 2940, 1447, 1442,
+     2941, 2942, 1442, 1448, 1448, 1448, 1442, 2943, 2944, 1674,
+     1448, 1448, 1448, 1448, 1448, 1448, 1454, 1454, 1454, 2945,
+     1455, 1450, 2946, 1456, 1458, 1458, 1458, 2960, 1450, 2961,
+     2962, 1450, 1458, 1458, 1458, 1458, 1458, 1458, 2963, 1463,
+     1463, 1463, 1460, 1464, 2949, 2964, 1465, 1691, 1691, 1691,
+     1460, 2965, 2951, 1460, 2950, 1682, 1468, 1468, 1468, 1468,
+     1468, 1468, 2952, 2966, 1692, 1468, 1468, 1468, 1695, 1695,
+     1695, 1474, 1474, 1474, 1470, 1475, 2967, 1470, 1476, 2975,
+
+     1684, 2976, 1150, 1470, 2977, 1696, 3476, 3476, 3476, 1479,
+     1479, 1479, 1479, 1479, 1479, 2978, 1688, 1479, 1479, 1479,
+     1701, 1701, 1701, 3476, 1486, 1486, 1486, 1481, 2979, 2980,
+     1481, 1486, 1486, 1486, 2981, 1481, 2969, 1702, 1486, 1486,
+     1486, 2982, 1488, 1707, 1707, 1707, 1693, 2987, 2988, 1488,
+     1497, 1497, 1497, 1537, 1537, 1537, 1488, 1538, 2989, 2990,
+     1539, 1708, 1709, 2992, 1699, 2993, 2996, 1697, 1498, 1542,
+     1542, 1542, 2997, 1543, 2998, 2999, 1544, 1215, 1215, 1215,
+     1757, 1757, 1757, 3000, 3001, 1704, 1221, 1221, 1221, 1230,
+     1230, 1230, 1553, 1553, 1553, 1217, 1554, 1758, 3002, 1555,
+
+     3003, 1558, 1558, 1558, 1223, 1559, 3008, 1232, 1560, 1240,
+     1240, 1240, 1562, 1562, 1562, 3009, 1563, 3010, 3011, 1564,
+     3012, 1565, 1565, 1565, 3013, 1566, 3014, 1242, 1567, 1248,
+     1248, 1248, 1569, 1569, 1569, 3015, 1570, 3016, 1755, 1571,
+     1769, 1769, 1769, 1264, 1264, 1264, 1762, 1250, 1774, 1774,
+     1774, 3017, 3018, 1759, 3019, 3020, 1765, 1770, 1581, 1581,
+     1581, 1266, 1778, 1778, 1778, 1775, 1779, 3021, 3022, 1780,
+     1583, 1583, 1583, 3023, 1584, 1582, 1766, 1585, 1787, 1787,
+     1787, 1291, 1291, 1291, 1298, 1298, 1298, 1599, 1599, 1599,
+     1795, 1795, 1795, 3024, 1796, 1788, 3028, 1797, 1772, 1293,
+
+     3029, 3030, 1300, 3031, 1600, 1798, 1798, 1798, 1604, 1604,
+     1604, 1802, 1802, 1802, 3034, 1803, 3035, 3036, 1804, 3037,
+     1806, 1806, 1806, 1799, 3038, 1605, 1808, 1808, 1808, 1316,
+     1316, 1316, 1612, 1612, 1612, 3039, 1794, 1807, 1814, 1814,
+     1814, 3047, 1815, 1809, 3048, 1816, 1793, 1318, 3049, 1613,
+     1329, 1329, 1329, 1615, 1615, 1615, 1818, 1818, 1818, 3050,
+     1819, 3051, 3052, 1820, 1334, 1334, 1334, 1150, 1331, 3053,
+     1616, 3054, 1810, 1825, 1825, 1825, 1345, 1345, 1345, 1353,
+     1353, 1353, 1336, 1831, 1831, 1831, 1361, 1361, 1361, 3055,
+     1826, 1627, 1627, 1627, 1347, 1811, 3056, 1355, 3059, 3060,
+
+     1832, 1631, 1631, 1631, 1363, 1834, 1834, 1834, 1628, 1835,
+     3041, 3066, 1836, 1367, 1367, 1367, 1817, 3067, 1632, 1827,
+     3068, 3069, 1821, 1839, 1839, 1839, 3070, 1840, 3077, 3078,
+     1841, 1369, 3079, 1828, 3080, 3081, 1830, 1833, 1373, 1373,
+     1373, 1845, 1845, 1845, 1639, 1639, 1639, 3082, 1640, 3083,
+     3084, 1641, 1849, 1849, 1849, 3085, 1375, 3086, 1846, 1388,
+     1388, 1388, 1394, 1394, 1394, 1652, 1652, 1652, 3087, 1850,
+     1406, 1406, 1406, 1838, 1860, 1860, 1860, 1390, 1861, 3088,
+     1396, 1862, 1653, 1868, 1868, 1868, 3089, 3090, 1408, 1415,
+     1415, 1415, 3091, 3092, 1662, 1662, 1662, 3093, 1663, 1843,
+
+     1869, 1664, 3094, 1665, 1665, 1665, 3095, 1417, 1872, 1872,
+     1872, 3096, 1873, 3097, 3098, 1874, 1671, 1671, 1671, 1866,
+     1666, 3099, 3100, 1852, 3101, 1667, 1667, 1667, 1855, 1668,
+     3102, 3103, 1669, 1672, 1876, 1876, 1876, 3108, 1877, 1150,
+     3116, 1878, 1431, 1431, 1431, 1675, 1675, 1675, 3111, 1676,
+     3117, 1870, 1677, 3121, 1678, 1678, 1678, 3122, 1679, 3123,
+     1433, 1680, 1440, 1440, 1440, 1448, 1448, 1448, 1458, 1458,
+     1458, 1890, 1890, 1890, 1691, 1691, 1691, 1892, 1892, 1892,
+     1442, 1893, 3124, 1450, 1894, 3106, 1460, 3125, 1891, 3126,
+     3108, 1692, 1880, 1468, 1468, 1468, 1695, 1695, 1695, 1897,
+
+     1897, 1897, 3127, 1898, 3109, 3134, 1899, 1479, 1479, 1479,
+     3129, 1470, 3135, 1696, 3128, 3136, 1701, 1701, 1701, 1904,
+     1904, 1904, 3130, 1905, 3141, 1481, 1906, 3142, 1882, 3143,
+     3144, 1884, 1888, 1702, 1907, 1907, 1907, 1486, 1486, 1486,
+     1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3145,
+     3146, 1908, 1943, 1943, 1943, 1488, 1902, 1895, 1708, 1946,
+     1946, 1946, 1931, 1931, 1931, 1943, 1943, 1943, 1948, 1948,
+     1948, 1950, 1950, 1950, 3147, 3476, 3476, 3476, 1215, 1215,
+     1215, 1757, 1757, 1757, 3148, 1949, 1909, 3137, 1951, 3149,
+     3150, 1911, 3476, 1955, 1955, 1955, 1217, 1956, 1758, 3138,
+
+     1957, 1221, 1221, 1221, 3151, 1947, 3139, 3152, 1912, 1230,
+     1230, 1230, 3153, 1962, 1962, 1962, 1944, 3156, 3140, 1223,
+     1964, 1964, 1964, 1240, 1240, 1240, 1944, 1232, 3156, 1932,
+     1963, 1248, 1248, 1248, 1968, 1968, 1968, 1965, 1150, 1952,
+     3159, 1242, 3476, 3476, 3476, 1953, 1769, 1769, 1769, 1250,
+     3160, 1969, 1708, 1709, 1971, 1971, 1971, 1961, 1972, 3476,
+     1958, 1973, 3108, 1770, 1974, 1974, 1974, 1264, 1264, 1264,
+     1774, 1774, 1774, 1978, 1978, 1978, 3109, 1979, 3108, 3154,
+     1980, 1975, 1981, 1981, 1981, 1266, 3163, 1775, 1966, 3111,
+     1778, 1778, 1778, 3164, 1779, 3118, 1967, 1780, 3173, 1982,
+
+     1970, 1986, 1986, 1986, 1787, 1787, 1787, 1991, 1991, 1991,
+     3165, 1992, 3171, 3119, 1993, 1995, 1995, 1995, 1987, 3161,
+     3174, 1788, 1291, 1291, 1291, 3166, 3120, 1976, 1298, 1298,
+     1298, 3172, 1996, 3176, 1795, 1795, 1795, 3162, 1796, 3175,
+     1293, 1797, 1798, 1798, 1798, 3177, 1300, 1802, 1802, 1802,
+     3178, 1803, 3183, 3186, 1804, 2003, 2003, 2003, 3181, 3189,
+     1799, 1806, 1806, 1806, 2005, 2005, 2005, 3184, 2006, 3190,
+     3191, 2007, 2004, 1808, 1808, 1808, 3192, 3182, 1807, 3113,
+     2008, 2008, 2008, 2000, 2009, 3193, 3185, 2010, 1999, 3194,
+     1809, 2012, 2012, 2012, 2014, 2014, 2014, 1814, 1814, 1814,
+
+     3114, 1815, 3156, 3196, 1816, 1329, 1329, 1329, 3156, 2013,
+     1818, 1818, 1818, 3115, 1819, 3197, 3198, 1820, 1334, 1334,
+     1334, 3199, 3200, 1331, 1825, 1825, 1825, 2021, 2021, 2021,
+     3201, 2022, 3202, 3209, 2023, 3210, 1336, 2025, 2025, 2025,
+     3211, 1826, 1353, 1353, 1353, 1831, 1831, 1831, 1361, 1361,
+     1361, 2016, 2029, 2029, 2029, 2026, 2030, 3212, 3213, 2031,
+     1355, 3214, 1832, 1834, 1834, 1834, 1363, 1835, 3215, 3216,
+     1836, 1367, 1367, 1367, 1839, 1839, 1839, 3220, 1840, 3221,
+     3222, 1841, 2035, 2035, 2035, 2017, 3223, 3224, 2028, 1369,
+     1373, 1373, 1373, 1845, 1845, 1845, 2039, 2039, 2039, 2036,
+
+     2040, 3225, 3229, 2041, 3230, 3231, 2032, 3232, 1375, 3233,
+     1846, 2042, 2042, 2042, 1849, 1849, 1849, 2045, 2045, 2045,
+     3234, 2046, 3236, 3237, 2047, 2049, 2049, 2049, 2043, 3238,
+     3239, 1850, 1394, 1394, 1394, 3240, 3241, 2034, 1860, 1860,
+     1860, 3242, 1861, 2050, 3247, 1862, 1406, 1406, 1406, 3243,
+     1396, 1868, 1868, 1868, 2037, 2063, 2063, 2063, 3248, 2064,
+     3245, 3244, 2065, 3249, 1408, 2066, 2066, 2066, 1869, 1872,
+     1872, 1872, 3246, 1873, 3250, 3251, 1874, 3252, 1876, 1876,
+     1876, 3253, 1877, 2067, 2053, 1878, 1431, 1431, 1431, 1440,
+     1440, 1440, 1448, 1448, 1448, 3254, 3255, 2061, 2076, 2076,
+
+     2076, 3476, 3476, 3476, 1433, 3256, 3257, 1442, 3258, 3259,
+     1450, 2079, 2079, 2079, 3260, 2077, 3261, 3262, 3476, 1458,
+     1458, 1458, 1890, 1890, 1890, 2083, 2083, 2083, 2080, 2084,
+     3264, 3265, 2085, 3266, 1892, 1892, 1892, 1460, 1893, 1891,
+     2073, 1894, 3267, 2075, 1468, 1468, 1468, 2071, 1897, 1897,
+     1897, 3268, 1898, 3269, 3270, 1899, 1479, 1479, 1479, 1907,
+     1907, 1907, 1470, 2107, 2107, 2107, 2081, 2078, 1904, 1904,
+     1904, 3271, 1905, 3272, 1481, 1906, 1908, 2100, 2100, 2100,
+     2108, 2101, 3273, 3274, 2102, 1486, 1486, 1486, 2116, 2116,
+     2116, 2086, 1926, 1926, 1926, 2124, 2124, 2124, 1931, 1931,
+
+     1931, 1150, 3275, 1488, 2125, 2125, 2125, 2090, 1934, 1934,
+     1934, 1943, 1943, 1943, 2136, 2136, 2136, 1946, 1946, 1946,
+     1948, 1948, 1948, 2139, 2139, 2139, 3263, 2140, 3276, 3277,
+     2141, 1950, 1950, 1950, 3278, 3279, 2103, 1949, 2142, 2142,
+     2142, 3280, 2143, 3281, 3282, 2144, 3283, 3284, 1951, 1215,
+     1215, 1215, 1955, 1955, 1955, 3285, 1956, 3286, 3287, 1957,
+     1221, 1221, 1221, 2150, 2150, 2150, 3289, 1217, 1230, 1230,
+     1230, 1962, 1962, 1962, 3290, 2153, 2153, 2153, 1223, 2154,
+     2151, 3291, 2155, 1964, 1964, 1964, 1232, 3292, 1963, 2156,
+     2156, 2156, 3293, 2157, 1150, 3294, 2158, 1968, 1968, 1968,
+
+     1965, 1240, 1240, 1240, 1248, 1248, 1248, 2164, 2164, 2164,
+     3295, 2148, 3296, 3288, 1969, 2146, 2161, 2161, 2161, 1242,
+     2162, 3297, 1250, 2163, 2165, 3298, 1971, 1971, 1971, 2152,
+     1972, 3299, 3300, 1973, 1974, 1974, 1974, 2166, 2166, 2166,
+     3301, 2167, 3302, 3303, 2168, 1264, 1264, 1264, 1978, 1978,
+     1978, 1975, 1979, 3304, 3305, 1980, 1981, 1981, 1981, 3306,
+     2171, 2171, 2171, 1266, 2172, 3307, 2159, 2173, 3308, 2160,
+     1986, 1986, 1986, 1982, 2177, 2177, 2177, 3309, 2178, 3310,
+     3312, 2179, 2180, 2180, 2180, 3313, 1150, 1987, 1991, 1991,
+     1991, 3314, 1992, 3315, 3316, 1993, 2169, 3317, 3318, 2181,
+
+     1995, 1995, 1995, 2185, 2185, 2185, 3311, 2186, 3319, 3320,
+     2187, 1291, 1291, 1291, 1298, 1298, 1298, 1996, 2003, 2003,
+     2003, 2194, 2194, 2194, 3321, 2195, 3322, 3323, 2196, 1293,
+     3324, 3325, 1300, 3326, 3327, 2004, 2005, 2005, 2005, 3328,
+     2006, 3329, 3330, 2007, 2008, 2008, 2008, 3331, 2009, 3333,
+     3334, 2010, 2012, 2012, 2012, 2014, 2014, 2014, 1329, 1329,
+     1329, 3335, 2190, 1334, 1334, 1334, 3336, 2191, 1150, 3337,
+     2013, 2204, 2204, 2204, 3332, 3338, 1331, 3339, 2021, 2021,
+     2021, 1336, 2022, 3340, 3341, 2023, 3342, 3343, 2205, 2025,
+     2025, 2025, 1353, 1353, 1353, 2029, 2029, 2029, 3344, 2030,
+
+     3345, 3346, 2031, 1361, 1361, 1361, 3348, 2026, 3349, 3350,
+     1355, 3351, 3352, 2202, 1150, 3353, 2201, 2206, 2215, 2215,
+     2215, 1363, 2035, 2035, 2035, 2217, 2217, 2217, 3347, 2218,
+     3354, 3355, 2219, 1373, 1373, 1373, 2216, 3357, 3358, 2036,
+     3359, 2212, 3360, 2039, 2039, 2039, 3361, 2040, 3362, 2213,
+     2041, 1375, 2042, 2042, 2042, 2222, 2222, 2222, 3363, 2223,
+     3364, 3367, 2224, 2045, 2045, 2045, 3368, 2046, 3369, 2043,
+     2047, 2049, 2049, 2049, 2228, 2228, 2228, 1394, 1394, 1394,
+     2220, 2231, 2231, 2231, 2233, 2233, 2233, 3370, 3371, 2050,
+     3372, 2229, 1406, 1406, 1406, 1396, 2063, 2063, 2063, 1150,
+
+     2064, 1150, 1722, 2065, 2066, 2066, 2066, 2241, 2241, 2241,
+     1408, 1431, 1431, 1431, 2246, 2246, 2246, 1448, 1448, 1448,
+     1150, 1150, 2067, 1150, 2242, 2076, 2076, 2076, 1150, 1433,
+     3381, 3399, 2247, 1150, 1150, 1450, 1150, 3373, 2230, 2250,
+     2250, 2250, 2077, 2251, 1150, 3383, 2252, 2253, 2253, 2253,
+     2079, 2079, 2079, 1150, 2256, 2256, 2256, 2238, 2257, 3374,
+     1150, 2258, 1150, 1150, 2254, 3389, 1150, 2080, 3375, 3376,
+     2244, 1458, 1458, 1458, 2260, 2260, 2260, 3379, 2083, 2083,
+     2083, 2249, 2084, 1719, 3377, 2085, 1468, 1468, 1468, 1460,
+     1150, 2261, 3378, 2255, 2267, 2267, 2267, 2269, 2269, 2269,
+
+     3390, 2100, 2100, 2100, 1470, 2101, 3380, 3387, 2102, 1486,
+     1486, 1486, 2268, 3388, 2270, 2107, 2107, 2107, 3384, 3425,
+     2262, 2285, 2285, 2285, 2259, 2286, 1150, 1488, 2287, 2288,
+     2288, 2288, 2108, 2293, 2293, 2293, 2294, 2294, 2294, 2263,
+     2116, 2116, 2116, 2296, 2296, 2296, 2301, 2301, 2301, 2124,
+     2124, 2124, 2125, 2125, 2125, 2281, 2302, 2302, 2302, 2305,
+     2305, 2305, 2309, 2309, 2309, 2310, 2310, 2310, 2312, 2312,
+     2312, 2136, 2136, 2136, 2313, 2313, 2313, 2139, 2139, 2139,
+     3385, 2140, 3386, 1150, 2141, 2142, 2142, 2142, 1150, 2143,
+     1150, 1150, 2144, 1215, 1215, 1215, 1221, 1221, 1221, 2150,
+
+     2150, 2150, 2303, 2321, 2321, 2321, 1150, 2322, 3382, 1718,
+     2323, 1217, 1150, 1150, 1223, 1150, 2151, 1230, 1230, 1230,
+     2314, 2153, 2153, 2153, 3391, 2154, 1717, 1150, 2155, 2156,
+     2156, 2156, 3392, 2157, 1150, 1232, 2158, 1240, 1240, 1240,
+     1248, 1248, 1248, 3397, 2317, 2161, 2161, 2161, 3393, 2162,
+     3394, 3401, 2163, 1716, 1150, 1242, 2319, 2325, 1250, 3400,
+     1150, 2164, 2164, 2164, 2327, 2327, 2327, 1150, 2328, 3403,
+     1150, 2329, 1264, 1264, 1264, 1150, 2326, 2324, 2165, 2166,
+     2166, 2166, 1150, 2167, 3402, 1150, 2168, 2171, 2171, 2171,
+     1266, 2172, 1715, 1150, 2173, 2177, 2177, 2177, 1150, 2178,
+
+     3395, 3405, 2179, 2180, 2180, 2180, 2335, 2335, 2335, 1150,
+     2336, 3439, 3398, 2337, 2185, 2185, 2185, 3404, 2186, 1150,
+     2181, 2187, 2342, 2342, 2342, 1291, 1291, 1291, 2345, 2345,
+     2345, 3396, 3406, 2194, 2194, 2194, 1150, 2195, 2330, 2343,
+     2196, 1150, 1714, 1293, 3411, 1150, 2346, 1329, 1329, 1329,
+     1334, 1334, 1334, 2204, 2204, 2204, 2358, 2358, 2358, 1150,
+     2359, 1150, 3407, 2360, 1713, 1331, 1150, 1712, 1336, 1150,
+     2205, 3412, 1353, 1353, 1353, 1361, 1361, 1361, 2215, 2215,
+     2215, 2217, 2217, 2217, 3408, 2218, 3415, 1150, 2219, 2344,
+     1355, 3409, 3413, 1363, 3414, 1150, 2216, 1373, 1373, 1373,
+
+     3416, 2356, 2355, 2222, 2222, 2222, 3417, 2223, 3419, 1150,
+     2224, 2228, 2228, 2228, 3433, 1375, 2377, 2377, 2377, 3447,
+     2378, 1150, 1150, 2379, 1394, 1394, 1394, 1150, 2229, 2231,
+     2231, 2231, 2381, 2381, 2381, 1711, 1150, 2370, 2369, 2233,
+     2233, 2233, 1396, 2382, 2382, 2382, 3476, 3476, 3476, 1150,
+     2372, 3476, 3476, 3476, 3476, 3476, 3476, 1406, 1406, 1406,
+     2383, 1150, 1150, 3476, 2241, 2241, 2241, 3410, 3476, 3420,
+     3429, 3476, 2390, 2390, 2390, 1408, 2391, 1710, 1703, 2392,
+     1150, 2242, 2394, 2394, 2394, 2246, 2246, 2246, 2380, 2398,
+     2398, 2398, 2250, 2250, 2250, 3421, 2251, 2384, 3418, 2252,
+
+     2395, 1150, 1700, 2247, 2253, 2253, 2253, 2399, 3422, 3426,
+     2400, 2400, 2400, 2386, 2401, 2385, 1150, 2402, 1458, 1458,
+     1458, 2254, 2387, 2256, 2256, 2256, 3427, 2257, 1150, 1150,
+     2258, 2260, 2260, 2260, 3428, 1150, 1460, 2405, 2405, 2405,
+     1698, 2406, 3440, 1150, 2407, 1468, 1468, 1468, 2261, 2267,
+     2267, 2267, 1150, 2269, 2269, 2269, 1150, 2413, 2413, 2413,
+     3434, 2414, 3431, 1470, 2415, 3423, 3424, 2268, 1150, 2404,
+     2270, 1486, 1486, 1486, 2427, 2427, 2427, 2285, 2285, 2285,
+     3473, 2286, 2430, 2431, 2287, 2432, 3430, 2435, 2436, 1488,
+     2437, 3441, 1150, 2433, 1150, 3465, 2409, 1694, 2438, 1690,
+
+     2434, 2288, 2288, 2288, 1150, 2439, 2440, 2440, 2440, 2441,
+     2441, 2441, 2293, 2293, 2293, 2294, 2294, 2294, 1689, 1687,
+     2426, 2296, 2296, 2296, 2445, 2445, 2445, 2447, 2447, 2447,
+     2448, 2448, 2448, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
+     2305, 2305, 2451, 2451, 2451, 2309, 2309, 2309, 2310, 2310,
+     2310, 2312, 2312, 2312, 2313, 2313, 2313, 2458, 2458, 2458,
+     2460, 2460, 2460, 1221, 1221, 1221, 2462, 2462, 2462, 2321,
+     2321, 2321, 1150, 2322, 1150, 2459, 2323, 1230, 1230, 1230,
+     1150, 1223, 1150, 2463, 1240, 1240, 1240, 1248, 1248, 1248,
+     2327, 2327, 2327, 1150, 2328, 1232, 3449, 2329, 2467, 2467,
+
+     2467, 1150, 1242, 3450, 1150, 1250, 2335, 2335, 2335, 3437,
+     2336, 1150, 3448, 2337, 3463, 1150, 2468, 2474, 2474, 2474,
+     3432, 2465, 2342, 2342, 2342, 2482, 2482, 2482, 2464, 2461,
+     3438, 2479, 2479, 2479, 2475, 2480, 3442, 1150, 2481, 2343,
+     2345, 2345, 2345, 2483, 2491, 2491, 2491, 1150, 2466, 1329,
+     1329, 1329, 2493, 2493, 2493, 2495, 2495, 2495, 2346, 2358,
+     2358, 2358, 3435, 2359, 1686, 1150, 2360, 1331, 1685, 3464,
+     2494, 1150, 2496, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 2505, 2505, 2505, 1353, 1353, 1353, 1150, 1150,
+     3476, 3466, 1150, 3476, 3436, 1150, 3476, 1683, 1150, 2506,
+
+     1150, 2497, 3445, 1355, 1361, 1361, 1361, 1150, 3446, 2492,
+     2509, 2509, 2509, 1373, 1373, 1373, 2515, 2515, 2515, 2377,
+     2377, 2377, 1363, 2378, 1681, 3453, 2379, 2510, 2498, 3454,
+     2504, 1375, 1394, 1394, 1394, 3443, 3455, 2499, 2381, 2381,
+     2381, 2382, 2382, 2382, 3444, 2507, 1150, 2517, 2517, 2517,
+     1396, 2518, 1150, 3459, 2519, 2520, 2520, 2520, 2383, 3476,
+     3476, 3476, 1673, 1150, 2511, 3476, 3476, 3476, 2508, 2524,
+     2524, 2524, 2521, 2526, 2526, 2526, 3476, 2527, 2527, 2527,
+     1150, 1150, 3476, 3476, 3476, 3476, 1670, 2525, 2390, 2390,
+     2390, 2516, 2391, 3451, 2528, 2392, 2394, 2394, 2394, 3452,
+
+     3476, 2398, 2398, 2398, 2400, 2400, 2400, 1661, 2401, 3460,
+     2522, 2402, 1659, 1658, 2395, 3457, 2523, 1656, 3461, 2399,
+     2533, 2533, 2533, 2405, 2405, 2405, 1655, 2406, 1150, 1654,
+     2407, 1651, 1468, 1468, 1468, 2413, 2413, 2413, 2534, 2414,
+     1150, 1650, 2415, 1486, 1486, 1486, 2427, 2427, 2427, 2529,
+     1470, 2440, 2440, 2440, 2441, 2441, 2441, 2567, 2567, 2567,
+     1150, 1488, 1648, 3458, 1150, 2445, 2445, 2445, 2447, 2447,
+     2447, 2448, 2448, 2448, 2451, 2451, 2451, 3462, 2536, 2573,
+     2573, 2573, 2458, 2458, 2458, 2460, 2460, 2460, 2577, 2577,
+     2577, 1646, 2462, 2462, 2462, 2579, 2579, 2579, 1150, 2580,
+
+     2459, 3456, 2581, 1150, 2549, 1645, 2578, 1643, 2550, 2463,
+     2582, 2582, 2582, 1240, 1240, 1240, 1248, 1248, 1248, 2467,
+     2467, 2467, 2474, 2474, 2474, 2591, 2591, 2591, 2583, 2592,
+     3467, 1242, 2593, 1150, 1250, 3468, 1642, 2468, 1150, 2475,
+     2595, 2595, 2595, 2479, 2479, 2479, 1150, 2480, 1638, 1637,
+     2481, 2482, 2482, 2482, 2606, 2606, 2606, 2596, 2491, 2491,
+     2491, 1329, 1329, 1329, 2493, 2493, 2493, 1636, 1150, 2483,
+     3471, 2607, 2495, 2495, 2495, 1635, 3473, 2584, 3472, 1331,
+     1625, 3469, 2494, 2585, 2609, 2609, 2609, 1150, 2610, 2496,
+     1623, 2611, 2617, 2617, 2617, 2505, 2505, 2505, 2619, 2619,
+
+     2619, 1621, 2620, 1620, 1619, 2621, 2622, 2622, 2622, 2618,
+     1618, 1611, 2506, 1361, 1361, 1361, 3470, 1610, 2608, 2509,
+     2509, 2509, 1608, 1607, 2623, 2625, 2625, 2625, 1606, 2626,
+     1603, 1363, 2627, 2628, 2628, 2628, 2510, 2632, 2632, 2632,
+     2515, 2515, 2515, 2634, 2634, 2634, 2517, 2517, 2517, 1602,
+     2518, 2629, 1594, 2519, 2633, 2520, 2520, 2520, 2636, 2636,
+     2636, 2635, 2637, 1593, 1592, 2638, 2639, 2639, 2639, 2641,
+     2641, 2641, 2521, 1591, 2624, 2524, 2524, 2524, 2526, 2526,
+     2526, 1590, 1589, 2640, 1588, 1587, 2642, 2527, 2527, 2527,
+     2643, 2643, 2643, 2525, 2644, 1586, 1580, 2645, 3476, 3476,
+
+     3476, 2533, 2533, 2533, 2528, 1468, 1468, 1468, 1486, 1486,
+     1486, 2567, 2567, 2567, 1579, 3476, 2682, 2682, 2682, 2534,
+     2573, 2573, 2573, 1470, 1578, 1577, 1488, 2689, 2689, 2689,
+     2577, 2577, 2577, 2579, 2579, 2579, 1575, 2580, 1574, 1573,
+     2581, 2582, 2582, 2582, 2690, 1240, 1240, 1240, 2578, 1248,
+     1248, 1248, 1572, 2646, 1557, 2696, 2696, 2696, 1556, 2583,
+     2716, 2716, 2716, 1242, 2595, 2595, 2595, 1250, 2664, 1551,
+     1550, 2651, 2697, 2591, 2591, 2591, 1548, 2592, 2717, 1547,
+     2593, 2596, 2700, 2700, 2700, 1545, 2701, 1541, 1540, 2702,
+     2711, 2711, 2711, 2606, 2606, 2606, 2713, 2713, 2713, 1536,
+
+     2714, 1535, 1534, 2715, 1533, 1532, 2691, 2712, 1531, 1530,
+     2607, 1529, 2609, 2609, 2609, 2692, 2610, 1528, 1526, 2611,
+     2617, 2617, 2617, 2721, 2721, 2721, 1525, 2722, 1524, 1523,
+     2723, 2619, 2619, 2619, 1522, 2620, 1520, 2618, 2621, 2622,
+     2622, 2622, 1361, 1361, 1361, 2625, 2625, 2625, 1519, 2626,
+     1518, 1517, 2627, 2628, 2628, 2628, 1514, 2623, 1513, 1512,
+     1363, 2732, 2732, 2732, 2632, 2632, 2632, 1511, 2734, 2734,
+     2734, 2629, 2735, 1510, 1509, 2736, 1508, 1507, 2733, 1505,
+     1504, 2633, 2634, 2634, 2634, 2636, 2636, 2636, 1503, 2637,
+     1502, 1501, 2638, 2639, 2639, 2639, 2641, 2641, 2641, 1500,
+
+     2635, 2737, 2737, 2737, 2730, 2738, 1499, 1496, 2739, 1495,
+     2640, 1494, 1493, 2642, 2740, 2740, 2740, 1492, 2741, 1491,
+     1150, 2742, 2643, 2643, 2643, 1485, 2644, 1484, 1483, 2645,
+     3476, 3476, 3476, 2750, 2750, 2750, 2752, 2752, 2752, 1468,
+     1468, 1468, 2757, 2757, 2757, 1478, 1477, 3476, 1473, 1467,
+     2751, 1466, 1462, 2753, 2758, 2758, 2758, 1470, 1486, 1486,
+     1486, 2787, 2787, 2787, 2682, 2682, 2682, 2791, 2791, 2791,
+     1457, 2759, 2689, 2689, 2689, 1453, 1488, 2794, 2794, 2794,
+     1452, 2795, 1444, 1430, 2796, 1240, 1240, 1240, 1429, 2690,
+     1428, 2749, 1425, 1248, 1248, 1248, 2801, 2801, 2801, 2696,
+
+     2696, 2696, 1419, 1242, 1414, 2803, 2803, 2803, 1410, 2804,
+     2756, 1250, 2805, 2802, 1405, 1404, 2697, 1403, 2770, 2806,
+     2806, 2806, 2700, 2700, 2700, 1402, 2701, 1401, 1400, 2702,
+     2816, 2816, 2816, 2711, 2711, 2711, 2807, 1399, 2819, 2819,
+     2819, 1398, 2820, 1393, 2798, 2821, 1392, 2817, 1387, 1386,
+     2712, 1380, 2797, 2713, 2713, 2713, 1377, 2714, 1372, 1371,
+     2715, 2716, 2716, 2716, 2823, 2823, 2823, 2721, 2721, 2721,
+     1366, 2722, 1365, 1360, 2723, 1349, 2818, 1344, 1343, 2717,
+     1342, 2824, 2832, 2832, 2832, 2732, 2732, 2732, 2835, 2835,
+     2835, 1338, 2836, 1333, 1322, 2837, 1321, 2734, 2734, 2734,
+
+     2833, 2735, 2733, 1315, 2736, 2737, 2737, 2737, 1314, 2738,
+     1313, 1309, 2739, 2740, 2740, 2740, 1308, 2741, 1307, 1302,
+     2742, 3476, 3476, 3476, 2750, 2750, 2750, 2851, 2851, 2851,
+     1290, 2852, 1289, 1288, 2853, 2752, 2752, 2752, 3476, 1287,
+     1286, 2751, 2854, 2854, 2854, 1285, 2855, 1284, 1283, 2856,
+     1282, 1281, 2753, 2857, 2857, 2857, 2859, 2859, 2859, 1468,
+     1468, 1468, 2757, 2757, 2757, 2758, 2758, 2758, 1275, 1268,
+     2858, 1229, 1225, 2860, 1486, 1486, 1486, 1470, 2876, 2876,
+     2876, 2850, 2759, 2862, 2862, 2862, 1220, 2863, 1219, 1207,
+     2864, 1206, 1488, 1205, 1204, 2877, 1708, 2787, 2787, 2787,
+
+     2891, 2891, 2891, 2791, 2791, 2791, 2894, 2894, 2894, 2794,
+     2794, 2794, 1203, 2795, 1202, 1201, 2796, 1240, 1240, 1240,
+     1200, 2861, 2901, 2901, 2901, 2873, 2801, 2801, 2801, 2905,
+     2905, 2905, 1199, 2906, 1198, 1242, 2907, 2803, 2803, 2803,
+     2902, 2804, 1197, 2802, 2805, 2806, 2806, 2806, 2908, 2908,
+     2908, 1196, 2909, 1195, 1194, 2910, 2816, 2816, 2816, 2919,
+     2919, 2919, 2807, 2920, 1191, 1190, 2921, 2819, 2819, 2819,
+     1189, 2820, 1188, 2817, 2821, 2823, 2823, 2823, 2924, 2924,
+     2924, 1187, 2925, 2900, 1186, 2926, 2832, 2832, 2832, 2835,
+     2835, 2835, 2824, 2836, 1185, 1184, 2837, 2947, 2947, 2947,
+
+     1183, 2851, 2851, 2851, 2833, 2852, 1180, 1179, 2853, 2854,
+     2854, 2854, 1178, 2855, 2948, 1177, 2856, 2857, 2857, 2857,
+     2953, 2953, 2953, 1176, 2954, 1175, 1174, 2955, 2859, 2859,
+     2859, 2956, 2956, 2956, 2858, 2957, 1173, 1172, 2958, 1468,
+     1468, 1468, 2862, 2862, 2862, 2860, 2863, 1171, 1164, 2864,
+     1486, 1486, 1486, 2970, 2970, 2970, 1160, 1470, 2876, 2876,
+     2876, 1159, 2972, 2972, 2972, 1158, 2973, 1157, 1488, 2974,
+     2971, 1708, 2983, 2983, 2983, 2877, 1708, 2891, 2891, 2891,
+     1708, 2984, 2984, 2984, 2985, 2985, 2985, 2894, 2894, 2894,
+     2959, 2986, 2986, 2986, 1240, 1240, 1240, 1156, 1153, 2968,
+
+     2901, 2901, 2901, 2905, 2905, 2905, 1151, 2906, 1150, 1148,
+     2907, 1146, 1242, 2908, 2908, 2908, 1145, 2909, 2902, 1144,
+     2910, 2994, 2994, 2994, 2919, 2919, 2919, 1143, 2920, 1142,
+     1139, 2921, 3004, 3004, 3004, 2924, 2924, 2924, 2995, 2925,
+     1136, 1134, 2926, 1132, 1131, 2991, 3006, 3006, 3006, 3005,
+     2947, 2947, 2947, 3025, 3025, 3025, 1128, 3026, 1127, 1125,
+     3027, 1122, 1121, 3007, 2953, 2953, 2953, 2948, 2954, 1120,
+     1116, 2955, 2956, 2956, 2956, 1115, 2957, 1113, 1112, 2958,
+     3032, 3032, 3032, 1486, 1486, 1486, 2970, 2970, 2970, 3042,
+     3042, 3042, 1111, 3043, 1110, 1108, 3044, 1107, 3033, 1106,
+
+     1105, 1488, 1104, 2971, 1708, 1103, 1100, 1708, 2972, 2972,
+     2972, 1099, 2973, 1097, 1094, 2974, 2983, 2983, 2983, 2984,
+     2984, 2984, 2985, 2985, 2985, 1093, 1708, 2986, 2986, 2986,
+     3057, 3057, 3057, 3061, 3061, 3061, 1091, 3062, 1090, 1089,
+     3063, 1088, 2994, 2994, 2994, 3064, 3064, 3064, 3058, 3040,
+     1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 2995,
+     1087, 1706, 3065, 3004, 3004, 3004, 1706, 1706, 1706, 1708,
+     1706, 3071, 3071, 3071, 1083, 3072, 1081, 1080, 3073, 1079,
+     3005, 3074, 3074, 3074, 1077, 3075, 1076, 1075, 3076, 3006,
+     3006, 3006, 3032, 3032, 3032, 1706, 1706, 1706, 1706, 1706,
+
+     1706, 1706, 1706, 1706, 1706, 1706, 3007, 1072, 1706, 1071,
+     3033, 1070, 1069, 1706, 1706, 1706, 1708, 1706, 3025, 3025,
+     3025, 1067, 3026, 1066, 1065, 3027, 3104, 3104, 3104, 3042,
+     3042, 3042, 1063, 3043, 1062, 1061, 3044, 1059, 1056, 3057,
+     3057, 3057, 1706, 1706, 3105, 1052, 1051, 1708, 1706, 1706,
+     1706, 1706, 1706, 3112, 1706, 1706, 1706, 3058, 1049, 1706,
+     3064, 3064, 3064, 1048, 1706, 1706, 1706, 1708, 1706, 3061,
+     3061, 3061, 1047, 3062, 1044, 1043, 3063, 3065, 3131, 3131,
+     3131, 1042, 3132, 1040, 1039, 3133, 3104, 3104, 3104, 3158,
+     3158, 3158, 1033, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+
+     1706, 1706, 1706, 3112, 3105, 1030, 1706, 1708, 1709, 1028,
+     1027, 1706, 1706, 1706, 1708, 1706, 3071, 3071, 3071, 1026,
+     3072, 1021, 1020, 3073, 3074, 3074, 3074, 1018, 3075, 1017,
+     1013, 3076, 3167, 3167, 3167, 3169, 3169, 3169, 1011, 1010,
+     1706, 1706, 1009, 3131, 3131, 3131, 1008, 3132, 1007, 3168,
+     3133, 1006, 3170, 3179, 3179, 3179, 3187, 3187, 3187, 3195,
+     3195, 3195, 3158, 3158, 3158, 3167, 3167, 3167, 1005, 1004,
+     3180, 1003, 1002, 3188, 3203, 3203, 3203, 1150, 3204, 1001,
+     1708, 3205, 3168, 3169, 3169, 3169, 3206, 3206, 3206,  998,
+     3207,  995,  994, 3208, 3179, 3179, 3179, 3217, 3217, 3217,
+
+     3170, 3218,  993,  991, 3219, 3187, 3187, 3187, 3226, 3226,
+     3226, 3180, 3227, 1911,  990, 3228, 3195, 3195, 3195, 3203,
+     3203, 3203, 3188, 3204,  989,  988, 3205,  987, 3206, 3206,
+     3206,  982, 3207,  980, 1150, 3208, 3217, 3217, 3217,  979,
+     3218,  978,  976, 3219, 3226, 3226, 3226,  975, 3227,  974,
+      973, 3228,  971, 3235, 3356, 3356, 3356, 3356, 3356, 3356,
+      968, 3365,  967,  965, 3366, 3474, 3474, 3474, 3474, 3474,
+     3474,  964, 1150,  963,  961, 1150,  960,  959,  958,  955,
+      954,  953,  950, 3475,  949,  948, 3475,  248,  248,  248,
+      248,  248,  248,  248,  248,  248,  249,  249,  249,  249,
+
+      249,  249,  249,  249,  249,  254,  254,  254,  254,  254,
+      254,  254,  254,  254,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  260,  260,  260,  260,  260,  260,  260,
+      260,  260,  263,  263,  263,  263,  263,  263,  263,  263,
+      263,  270,  270,  270,  270,  270,  270,  270,  270,  270,
+      277,  277,  277,  277,  277,  277,  277,  277,  277,  282,
+      282,  282,  282,  282,  282,  282,  282,  282,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  308,  308,  308,  308,
+      308,  308,  308,  308,  308,  312,  312,  312,  312,  312,
+
+      312,  312,  312,  312,  318,  318,  318,  318,  318,  318,
+      318,  318,  318,  324,  324,  324,  324,  324,  324,  324,
+      324,  324,  330,  330,  330,  330,  330,  330,  330,  330,
+      330,  336,  336,  336,  336,  336,  336,  336,  336,  336,
+      343,  343,  343,  343,  343,  343,  343,  343,  343,  348,
+      348,  348,  348,  348,  348,  348,  348,  348,  355,  355,
+      355,  355,  355,  355,  355,  355,  355,  364,  364,  364,
+      364,  364,  364,  364,  364,  364,  382,  382,  382,  382,
+      382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  393,  393,  393,  393,  393,  393,
+
+      393,  393,  393,  400,  400,  400,  400,  400,  400,  400,
+      400,  400,  404,  404,  404,  404,  404,  404,  404,  404,
+      404,  410,  410,  410,  410,  410,  410,  410,  410,  410,
+      418,  418,  418,  418,  418,  418,  418,  418,  418,  426,
+      426,  426,  426,  426,  426,  426,  426,  426,  432,  432,
+      432,  432,  432,  432,  432,  432,  432,  438,  438,  438,
+      438,  438,  438,  438,  438,  438,  442,  442,  442,  442,
+      442,  442,  442,  442,  442,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  464,  464,  464,  464,  464,  464,  464,
+
+      464,  464,  469,  469,  469,  469,  469,  469,  469,  469,
+      469,  475,  475,  475,  475,  475,  475,  475,  475,  475,
+      480,  480,  480,  480,  480,  480,  480,  480,  480,  486,
+      486,  486,  486,  486,  486,  486,  486,  486,  491,  491,
+      491,  491,  491,  491,  491,  491,  491,  497,  497,  497,
+      497,  497,  497,  497,  497,  497,  502,  502,  502,  502,
+      502,  502,  502,  502,  502,  508,  508,  508,  508,  508,
+      508,  508,  508,  508,  517,  517,  517,  517,  517,  517,
+      517,  517,  517,  524,  524,  524,  524,  524,  524,  524,
+      524,  524,  528,  528,  528,  528,  528,  528,  528,  528,
+
+      528,  539,  539,  539,  539,  539,  539,  539,  539,  539,
+      547,  547,  547,  547,  547,  547,  547,  547,  547,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  560,  560,
+      560,  560,  560,  560,  560,  560,  560,  566,  566,  566,
+      566,  566,  566,  566,  566,  566,  574,  574,  574,  574,
+      574,  574,  574,  574,  574,  580,  580,  580,  580,  580,
+      580,  580,  580,  580,  585,  585,  585,  585,  585,  585,
+      585,  585,  585,  592,  592,  592,  592,  592,  592,  592,
+      592,  592,  597,  597,  597,  597,  597,  597,  597,  597,
+      597,  603,  603,  603,  603,  603,  603,  603,  603,  603,
+
+      610,  610,  610,  610,  610,  610,  610,  610,  610,  617,
+      617,  617,  617,  617,  617,  617,  617,  617,  624,  624,
+      624,  624,  624,  624,  624,  624,  624,  632,  632,  632,
+      632,  632,  632,  632,  632,  632,  263,  263,  263,  263,
+      263,  263,  263,  263,  263,  643,  643,  643,  643,  643,
+      643,  643,  643,  643,  649,  649,  649,  649,  649,  649,
+      649,  649,  649,  668,  668,  668,  947,  942,  940,  668,
+      704,  704,  704,  939,  931,  930,  704,  712,  712,  712,
+      929,  928,  922,  712,  716,  716,  716,  921,  920,  918,
+      716,  722,  722,  722,  915,  914,  913,  722,  728,  728,
+
+      728,  912,  907,  904,  728,  733,  733,  733,  906,  901,
+      900,  733,  743,  743,  743,  899,  897,  896,  743,  762,
+      762,  762,  893,  892,  891,  762,  766,  766,  766,  889,
+      888,  886,  766,  770,  770,  770,  885,  884,  883,  770,
+      780,  780,  780,  881,  880,  879,  780,  786,  786,  786,
+      878,  877,  876,  786,  791,  791,  791,  874,  872,  871,
+      791,  799,  799,  799,  869,  865,  863,  799,  804,  804,
+      804,  859,  855,  854,  804,  809,  809,  809,  852,  850,
+      849,  809,  814,  814,  814,  847,  846,  844,  814,  819,
+      819,  819,  843,  842,  841,  819,  830,  830,  830,  840,
+
+      838,  837,  830,  839,  839,  839,  831,  829,  824,  839,
+      848,  848,  848,  823,  822,  821,  848,  853,  853,  853,
+      820,  818,  816,  853,  864,  864,  864,  815,  813,  811,
+      864,  870,  870,  870,  810,  808,  806,  870,  875,  875,
+      875,  805,  803,  801,  875,  882,  882,  882,  800,  798,
+      797,  882,  890,  890,  890,  794,  793,  792,  890,  898,
+      898,  898,  790, 3476,  787,  898,  903,  903,  903,  903,
+      903,  903,  903,  785,  903,  668,  668,  668,  783,  782,
+      781,  668,  919,  779,  778,  774,  919,  704,  704,  704,
+      773,  772,  771,  704,  962,  769,  767,  765,  962,  712,
+
+      712,  712,  764,  763,  761,  712,  966,  760,  759,  752,
+      966,  716,  716,  716,  748,  747,  744,  716,  972,  742,
+      738,  737,  972,  722,  722,  722,  736,  735,  734,  722,
+      977,  732,  730,  729,  977,  728,  728,  728,  727,  725,
+      724,  728,  981,  723,  721,  719,  981,  733,  733,  733,
+      718,  717,  715,  733,  992,  713,  711,  706,  992,  743,
+      743,  743,  705,  703, 3476,  743, 1012,  685,  670,  669,
+     1012,  762,  762,  762,  667,  666,  660,  762, 1016,  659,
+      660,  659, 1016,  766,  766,  766,  658,  657, 3476,  766,
+     1019, 3476, 3476, 3476, 1019,  770,  770,  770, 3476, 3476,
+
+     3476,  770, 1029, 3476, 3476, 3476, 1029,  780,  780,  780,
+     3476, 3476, 3476,  780, 1038, 3476, 3476, 3476, 1038,  786,
+      786,  786, 3476, 3476, 3476,  786, 1041, 3476, 3476, 3476,
+     1041,  791,  791,  791, 3476, 3476, 3476,  791, 1050, 3476,
+     3476, 3476, 1050,  799,  799,  799, 3476, 3476, 3476,  799,
+     1055, 3476, 3476, 3476, 1055,  804,  804,  804, 3476, 3476,
+     3476,  804, 1060, 3476, 3476, 3476, 1060,  809,  809,  809,
+     3476, 3476, 3476,  809, 1064, 3476, 3476, 3476, 1064,  814,
+      814,  814, 3476, 3476, 3476,  814, 1068, 3476, 3476, 3476,
+     1068,  819,  819,  819, 3476, 3476, 3476,  819, 1078, 3476,
+
+     3476, 3476, 1078,  830,  830,  830, 3476, 3476, 3476,  830,
+     1082, 3476, 3476, 3476, 1082,  839,  839,  839, 3476, 3476,
+     3476,  839, 1092, 3476, 3476, 3476, 1092,  848,  848,  848,
+     3476, 3476, 3476,  848, 1098, 3476, 3476, 3476, 1098,  853,
+      853,  853, 3476, 3476, 3476,  853, 1109, 3476, 3476, 3476,
+     1109,  864,  864,  864, 3476, 3476, 3476,  864, 1114, 3476,
+     3476, 3476, 1114,  870,  870,  870, 3476, 3476, 3476,  870,
+     1119, 3476, 3476, 3476, 1119,  875,  875,  875, 3476, 3476,
+     3476,  875, 1126, 3476, 3476, 3476, 1126,  882,  882,  882,
+     3476, 3476, 3476,  882, 1133, 3476, 3476, 3476, 1133,  890,
+
+      890,  890, 3476, 3476, 3476,  890, 1141, 3476, 3476, 3476,
+     1141,  898,  898,  898, 3476, 3476, 3476,  898, 1147, 3476,
+     3476, 3476, 1147, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1149, 1155, 3476, 3476, 3476, 3476, 1155,  668,  668,
+      668, 3476, 3476, 3476,  668, 1166, 1166, 1166, 1166, 3476,
+     3476, 1166, 1166,  704,  704,  704,  704, 3476,  704, 3476,
+      704, 1216, 1216, 1216, 1216, 3476, 3476, 1216, 1216,  712,
+      712,  712, 3476, 3476, 3476,  712, 1222, 1222, 1222, 1222,
+     3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476, 3476,
+      716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231,  722,
+
+      722,  722,  722, 3476,  722, 3476,  722, 1241, 1241, 1241,
+     1241, 3476, 3476, 1241, 1241,  728,  728,  728,  728, 3476,
+      728, 3476,  728, 1249, 1249, 1249, 1249, 3476, 3476, 1249,
+     1249,  733,  733,  733,  733, 3476,  733, 3476,  733, 1265,
+     1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,  743,
+     3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476, 3476,
+     1292, 1292, 1299, 1299, 1299, 1299, 3476, 3476, 1299, 1299,
+      766,  766,  766, 3476, 3476, 3476,  766, 1304, 1304, 1304,
+     1304, 3476, 3476, 1304, 1304,  770,  770,  770, 3476, 3476,
+     3476,  770, 1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317,
+
+      780,  780,  780, 3476, 3476, 3476,  780, 1330, 1330, 1330,
+     1330, 3476, 3476, 1330, 1330,  786,  786,  786, 3476, 3476,
+     3476,  786, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,
+      791,  791,  791, 3476, 3476, 3476,  791, 1346, 1346, 1346,
+     1346, 3476, 3476, 1346, 1346,  799,  799,  799, 3476, 3476,
+     3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
+      804,  804,  804, 3476, 3476, 3476,  804, 1362, 1362, 1362,
+     1362, 3476, 3476, 1362, 1362,  809,  809,  809, 3476, 3476,
+     3476,  809, 1368, 1368, 1368, 1368, 3476, 3476, 1368, 1368,
+      814,  814,  814, 3476, 3476, 3476,  814, 1374, 1374, 1374,
+
+     1374, 3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476,
+     3476,  819, 1389, 1389, 1389, 1389, 3476, 3476, 1389, 1389,
+      830,  830,  830, 3476, 3476, 3476,  830, 1395, 1395, 1395,
+     1395, 3476, 3476, 1395, 1395,  839,  839,  839, 3476, 3476,
+     3476,  839, 1407, 1407, 1407, 1407, 3476, 3476, 1407, 1407,
+      848,  848,  848, 3476, 3476, 3476,  848, 1416, 1416, 1416,
+     1416, 3476, 3476, 1416, 1416,  853,  853,  853, 3476, 3476,
+     3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
+      864,  864,  864,  864, 3476,  864, 3476,  864, 1441, 1441,
+     1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476,
+
+     3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449,
+     1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459, 1459,
+     1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882, 3476,
+     3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476, 1469,
+     1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480, 1480,
+     1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898, 3476,
+     3476, 3476,  898, 1487, 1487, 1487, 1487, 3476, 3476, 1487,
+     1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1155, 3476, 1155, 3476, 3476, 1155,  668,  668,  668, 3476,
+     3476, 3476,  668, 1166, 1166, 1166, 1166, 3476, 3476, 1166,
+
+     1166,  704,  704,  704, 3476, 3476, 3476,  704, 1216, 1216,
+     1216, 1216, 3476, 3476, 1216, 1216,  712,  712,  712, 3476,
+     3476, 3476,  712, 1222, 1222, 1222, 1222, 3476, 3476, 1222,
+     1222,  716,  716,  716, 3476, 3476, 3476,  716, 1231, 1231,
+     1231, 1231, 3476, 3476, 1231, 1231,  722,  722,  722, 3476,
+     3476, 3476,  722, 1241, 1241, 1241, 1241, 3476, 3476, 1241,
+     1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,  733,
+      733,  733, 3476, 3476, 3476,  733, 1265, 1265, 1265, 1265,
+     3476, 3476, 1265, 1265,  743,  743,  743, 3476, 3476, 3476,
+      743, 1292, 1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299,
+
+     1299, 1299, 1299, 3476, 3476, 1299, 1299,  766,  766,  766,
+      766, 3476,  766, 3476,  766, 1304, 1304, 1304, 1304, 3476,
+     3476, 1304, 1304,  770,  770,  770, 3476, 3476, 3476,  770,
+     1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317,  780,  780,
+      780,  780, 3476,  780, 3476,  780, 1330, 1330, 1330, 1330,
+     3476, 3476, 1330, 1330,  786,  786,  786,  786, 3476,  786,
+     3476,  786, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,
+      791,  791,  791, 3476, 3476, 3476,  791, 1346, 1346, 1346,
+     1346, 3476, 3476, 1346, 1346,  799,  799,  799, 3476, 3476,
+     3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
+
+      804,  804,  804, 3476, 3476, 3476,  804, 1362, 1362, 1362,
+     1362, 3476, 3476, 1362, 1362,  809,  809,  809,  809, 3476,
+      809, 3476,  809, 1368, 1368, 1368, 1368, 3476, 3476, 1368,
+     1368,  814,  814,  814,  814, 3476,  814, 3476,  814, 1374,
+     1374, 1374, 1374, 3476, 3476, 1374, 1374,  819,  819,  819,
+     3476, 3476, 3476,  819, 1389, 1389, 1389, 1389, 3476, 3476,
+     1389, 1389,  830,  830,  830, 3476, 3476, 3476,  830, 1395,
+     1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,  839,  839,
+     3476, 3476, 3476,  839, 1407, 1407, 1407, 1407, 3476, 3476,
+     1407, 1407,  848,  848,  848, 3476, 3476, 3476,  848, 1416,
+
+     1416, 1416, 1416, 3476, 3476, 1416, 1416,  853,  853,  853,
+     3476, 3476, 3476,  853, 1432, 1432, 1432, 1432, 3476, 3476,
+     1432, 1432,  864,  864,  864, 3476, 3476, 3476,  864, 1441,
+     1441, 1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870,
+     3476, 3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476,
+     1449, 1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459,
+     1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
+     3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
+     1469, 1469,  890,  890,  890,  890, 3476,  890, 3476,  890,
+     1480, 1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,
+
+      898, 3476, 3476, 3476,  898, 1487, 1487, 1487, 1487, 3476,
+     3476, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+     1706,  668,  668,  668, 3476, 3476, 3476,  668,  704,  704,
+      704, 3476, 3476, 3476,  704, 1216, 1216, 1216, 1216, 3476,
+     3476, 1216, 1216,  712,  712,  712,  712, 3476,  712, 3476,
+      712, 1222, 1222, 1222, 1222, 3476, 3476, 1222, 1222,  716,
+      716,  716, 3476, 3476, 3476,  716, 1231, 1231, 1231, 1231,
+     3476, 3476, 1231, 1231,  722,  722,  722, 3476, 3476, 3476,
+      722, 1241, 1241, 1241, 1241, 3476, 3476, 1241, 1241, 1249,
+
+     1249, 1249, 1249, 3476, 3476, 1249, 1249,  733,  733,  733,
+     3476, 3476, 3476,  733, 1265, 1265, 1265, 1265, 3476, 3476,
+     1265, 1265,  743,  743,  743, 3476, 3476, 3476,  743, 1292,
+     1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299, 1299, 1299,
+     1299, 3476, 3476, 1299, 1299, 1304, 1304, 1304, 1304, 3476,
+     3476, 1304, 1304,  770,  770,  770, 3476, 3476, 3476,  770,
+     1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317, 1330, 1330,
+     1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
+     3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
+      791, 1346, 1346, 1346, 1346, 3476, 3476, 1346, 1346,  799,
+
+      799,  799, 3476, 3476, 3476,  799, 1354, 1354, 1354, 1354,
+     3476, 3476, 1354, 1354,  804,  804,  804,  804, 3476,  804,
+     3476,  804, 1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,
+      809,  809,  809, 3476, 3476, 3476,  809, 1368, 1368, 1368,
+     1368, 3476, 3476, 1368, 1368,  814,  814,  814, 3476, 3476,
+     3476,  814, 1374, 1374, 1374, 1374, 3476, 3476, 1374, 1374,
+      819,  819,  819, 3476, 3476, 3476,  819, 1389, 1389, 1389,
+     1389, 3476, 3476, 1389, 1389,  830,  830,  830, 3476, 3476,
+     3476,  830, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,
+      839,  839,  839, 3476, 3476, 3476,  839, 1407, 1407, 1407,
+
+     1407, 3476, 3476, 1407, 1407,  848,  848,  848,  848, 3476,
+      848, 3476,  848, 1416, 1416, 1416, 1416, 3476, 3476, 1416,
+     1416,  853,  853,  853, 3476, 3476, 3476,  853, 1432, 1432,
+     1432, 1432, 3476, 3476, 1432, 1432,  864,  864,  864, 3476,
+     3476, 3476,  864, 1441, 1441, 1441, 1441, 3476, 3476, 1441,
+     1441,  870,  870,  870, 3476, 3476, 3476,  870, 1449, 1449,
+     1449, 1449, 3476, 3476, 1449, 1449,  875,  875,  875, 3476,
+     3476, 3476,  875, 1459, 1459, 1459, 1459, 3476, 3476, 1459,
+     1459,  882,  882,  882, 3476, 3476, 3476,  882, 1469, 1469,
+     1469, 1469, 3476, 3476, 1469, 1469,  890,  890,  890, 3476,
+
+     3476, 3476,  890, 1480, 1480, 1480, 1480, 3476, 3476, 1480,
+     1480,  898,  898,  898, 3476, 3476, 3476,  898, 1487, 1487,
+     1487, 1487, 3476, 3476, 1487, 1487, 1149, 1149, 1149, 1149,
+     1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706, 1706,
+     1706, 1706, 1706, 1706,  668,  668,  668, 3476, 3476, 3476,
+      668,  704,  704,  704,  704, 3476,  704, 3476,  704, 1216,
+     1216, 1216, 1216, 3476, 3476, 1216, 1216, 1222, 1222, 1222,
+     1222, 3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476,
+     3476,  716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231,
+      722,  722,  722,  722, 3476,  722, 3476,  722, 1241, 1241,
+
+     1241, 1241, 3476, 3476, 1241, 1241, 1249, 1249, 1249, 1249,
+     3476, 3476, 1249, 1249,  733,  733,  733,  733, 3476,  733,
+     3476,  733, 1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,
+      743,  743,  743, 3476, 3476, 3476,  743, 1292, 1292, 1292,
+     1292, 3476, 3476, 1292, 1292, 1299, 1299, 1299, 1299, 3476,
+     3476, 1299, 1299,  770,  770,  770, 3476, 3476, 3476,  770,
+     1317, 1317, 1317, 1317, 3476, 3476, 1317, 1317, 1330, 1330,
+     1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
+     3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
+      791, 1346, 1346, 1346, 1346, 3476, 3476, 1346, 1346,  799,
+
+      799,  799, 3476, 3476, 3476,  799, 1354, 1354, 1354, 1354,
+     3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362, 3476, 3476,
+     1362, 1362,  809,  809,  809, 3476, 3476, 3476,  809, 1368,
+     1368, 1368, 1368, 3476, 3476, 1368, 1368,  814,  814,  814,
+      814, 3476,  814, 3476,  814, 1374, 1374, 1374, 1374, 3476,
+     3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,  819,
+     1389, 1389, 1389, 1389, 3476, 3476, 1389, 1389,  830,  830,
+      830, 3476, 3476, 3476,  830, 1395, 1395, 1395, 1395, 3476,
+     3476, 1395, 1395,  839,  839,  839, 3476, 3476, 3476,  839,
+     1407, 1407, 1407, 1407, 3476, 3476, 1407, 1407, 1416, 1416,
+
+     1416, 1416, 3476, 3476, 1416, 1416,  853,  853,  853, 3476,
+     3476, 3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432,
+     1432,  864,  864,  864, 3476, 3476, 3476,  864, 1441, 1441,
+     1441, 1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476,
+     3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449,
+     1449,  875,  875,  875,  875, 3476,  875, 3476,  875, 1459,
+     1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
+     3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
+     1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480,
+     1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898,
+
+     3476, 3476, 3476,  898, 1487, 1487, 1487, 1487, 3476, 3476,
+     1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+      668,  668,  668,  668, 3476,  668, 3476,  668,  704,  704,
+      704, 3476, 3476, 3476,  704, 1216, 1216, 1216, 1216, 3476,
+     3476, 1216, 1216, 1222, 1222, 1222, 1222, 3476, 3476, 1222,
+     1222,  716,  716,  716, 3476, 3476, 3476,  716, 1231, 1231,
+     1231, 1231, 3476, 3476, 1231, 1231, 1241, 1241, 1241, 1241,
+     3476, 3476, 1241, 1241, 1249, 1249, 1249, 1249, 3476, 3476,
+     1249, 1249,  733,  733,  733,  733, 3476,  733, 3476,  733,
+
+     1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,
+      743, 3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476,
+     3476, 1292, 1292, 1299, 1299, 1299, 1299, 3476, 3476, 1299,
+     1299,  770,  770,  770, 3476, 3476, 3476,  770, 1330, 1330,
+     1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335, 1335, 1335,
+     3476, 3476, 1335, 1335,  791,  791,  791, 3476, 3476, 3476,
+      791,  799,  799,  799, 3476, 3476, 3476,  799, 1354, 1354,
+     1354, 1354, 3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362,
+     3476, 3476, 1362, 1362,  809,  809,  809, 3476, 3476, 3476,
+      809, 1368, 1368, 1368, 1368, 3476, 3476, 1368, 1368, 1374,
+
+     1374, 1374, 1374, 3476, 3476, 1374, 1374,  819,  819,  819,
+     3476, 3476, 3476,  819,  830,  830,  830,  830, 3476,  830,
+     3476,  830, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,
+      839,  839,  839, 3476, 3476, 3476,  839, 1407, 1407, 1407,
+     1407, 3476, 3476, 1407, 1407,  853,  853,  853, 3476, 3476,
+     3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
+      864,  864,  864, 3476, 3476, 3476,  864, 1441, 1441, 1441,
+     1441, 3476, 3476, 1441, 1441,  870,  870,  870, 3476, 3476,
+     3476,  870, 1449, 1449, 1449, 1449, 3476, 3476, 1449, 1449,
+      875,  875,  875,  875, 3476,  875, 3476,  875, 1459, 1459,
+
+     1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,  882,
+     3476,  882, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
+     1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1480,
+     1480, 1480, 1480, 3476, 3476, 1480, 1480,  898,  898,  898,
+      898, 3476,  898, 3476,  898, 1487, 1487, 1487, 1487, 3476,
+     3476, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+     1706,  704,  704,  704, 3476, 3476, 3476,  704, 1216, 1216,
+     1216, 1216, 3476, 3476, 1216, 1216, 1222, 1222, 1222, 1222,
+     3476, 3476, 1222, 1222,  716,  716,  716, 3476, 3476, 3476,
+
+      716, 1231, 1231, 1231, 1231, 3476, 3476, 1231, 1231, 1241,
+     1241, 1241, 1241, 3476, 3476, 1241, 1241, 1249, 1249, 1249,
+     1249, 3476, 3476, 1249, 1249, 1265, 1265, 1265, 1265, 3476,
+     3476, 1265, 1265,  743,  743,  743, 3476, 3476, 3476,  743,
+     1292, 1292, 1292, 1292, 3476, 3476, 1292, 1292, 1299, 1299,
+     1299, 1299, 3476, 3476, 1299, 1299,  770,  770,  770, 3476,
+     3476, 3476,  770, 1330, 1330, 1330, 1330, 3476, 3476, 1330,
+     1330, 1335, 1335, 1335, 1335, 3476, 3476, 1335, 1335,  791,
+      791,  791, 3476, 3476, 3476,  791,  799,  799,  799, 3476,
+     3476, 3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354,
+
+     1354, 1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,  809,
+      809,  809, 3476, 3476, 3476,  809, 1374, 1374, 1374, 1374,
+     3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,
+      819, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,
+      839,  839,  839, 3476,  839, 3476,  839, 1407, 1407, 1407,
+     1407, 3476, 3476, 1407, 1407,  853,  853,  853, 3476, 3476,
+     3476,  853, 1432, 1432, 1432, 1432, 3476, 3476, 1432, 1432,
+      864,  864,  864, 3476, 3476, 3476,  864,  870,  870,  870,
+     3476, 3476, 3476,  870, 1449, 1449, 1449, 1449, 3476, 3476,
+     1449, 1449,  875,  875,  875, 3476, 3476, 3476,  875, 1459,
+
+     1459, 1459, 1459, 3476, 3476, 1459, 1459,  882,  882,  882,
+     3476, 3476, 3476,  882, 1469, 1469, 1469, 1469, 3476, 3476,
+     1469, 1469,  890,  890,  890, 3476, 3476, 3476,  890, 1487,
+     1487, 1487, 1487, 3476, 3476, 1487, 1487, 1149, 1149, 1149,
+     1149, 1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706,
+     1706, 1706, 1706, 1706, 1706,  704,  704,  704, 3476, 3476,
+     3476,  704, 1216, 1216, 1216, 1216, 3476, 3476, 1216, 1216,
+     1222, 1222, 1222, 1222, 3476, 3476, 1222, 1222,  716,  716,
+      716,  716, 3476,  716, 3476,  716, 1231, 1231, 1231, 1231,
+     3476, 3476, 1231, 1231, 1241, 1241, 1241, 1241, 3476, 3476,
+
+     1241, 1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,
+     1265, 1265, 1265, 1265, 3476, 3476, 1265, 1265,  743,  743,
+      743, 3476, 3476, 3476,  743, 1292, 1292, 1292, 1292, 3476,
+     3476, 1292, 1292,  770,  770,  770, 3476, 3476, 3476,  770,
+     1330, 1330, 1330, 1330, 3476, 3476, 1330, 1330, 1335, 1335,
+     1335, 1335, 3476, 3476, 1335, 1335,  791,  791,  791,  791,
+     3476,  791, 3476,  791,  799,  799,  799,  799, 3476,  799,
+     3476,  799, 1354, 1354, 1354, 1354, 3476, 3476, 1354, 1354,
+     1362, 1362, 1362, 1362, 3476, 3476, 1362, 1362,  809,  809,
+      809,  809, 3476,  809, 3476,  809, 1374, 1374, 1374, 1374,
+
+     3476, 3476, 1374, 1374,  819,  819,  819, 3476, 3476, 3476,
+      819, 1395, 1395, 1395, 1395, 3476, 3476, 1395, 1395,  839,
+      839,  839,  839, 3476,  839, 3476,  839, 1407, 1407, 1407,
+     1407, 3476, 3476, 1407, 1407,  853,  853,  853,  853, 3476,
+      853, 3476,  853,  864,  864,  864, 3476, 3476, 3476,  864,
+      870,  870,  870, 3476, 3476, 3476,  870,  875,  875,  875,
+     3476, 3476, 3476,  875, 1459, 1459, 1459, 1459, 3476, 3476,
+     1459, 1459,  882,  882,  882, 3476, 3476, 3476,  882, 1469,
+     1469, 1469, 1469, 3476, 3476, 1469, 1469,  890,  890,  890,
+     3476, 3476, 3476,  890, 1487, 1487, 1487, 1487, 3476, 3476,
+
+     1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+     1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+      704,  704,  704, 3476, 3476, 3476,  704, 1222, 1222, 1222,
+     1222, 3476, 3476, 1222, 1222, 1231, 1231, 1231, 1231, 3476,
+     3476, 1231, 1231, 1241, 1241, 1241, 1241, 3476, 3476, 1241,
+     1241, 1249, 1249, 1249, 1249, 3476, 3476, 1249, 1249,  743,
+      743,  743, 3476, 3476, 3476,  743,  770,  770,  770, 3476,
+     3476, 3476,  770, 1330, 1330, 1330, 1330, 3476, 3476, 1330,
+     1330,  791,  791,  791, 3476, 3476, 3476,  791, 1354, 1354,
+     1354, 1354, 3476, 3476, 1354, 1354, 1362, 1362, 1362, 1362,
+
+     3476, 3476, 1362, 1362, 3045, 3045, 3045, 3045, 3045, 3045,
+     3045, 3045, 3045, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+     3046, 3046, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
+     3107, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110,
+     3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3157,
+     3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157,  247, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476
     } ;
 
-static yyconst flex_int16_t yy_chk[12587] =
+static yyconst flex_int16_t yy_chk[12534] =
     {   0,
         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
-        4,   10,  550,    5,    0,    9,    6,    0,   10,    7,
+        4,   10,  549,    5,    0,    9,    6,    0,   10,    7,
         8,    8,    8,  252,   11,   13,   13,   12,   14,   14,
        13,   13,  290,   14,   14,  253,    8,   17,   17,  252,
-       13,   15,   15,   14,   15,  256,   15,   16,   16,  550,
-       16,  253,   16,   18,   18,    0,   15,   21,   21,   21,
-      456,  256,   16,   22,   22,   22,   23,   23,   23,   24,
-       24,   24,  456,   21,   25,   25,   25,  361, 1509,   22,
-      361,   17,   23, 1072,  290,   24,  250,  250,  250, 1072,
+       13,   15,   15,   14,   15,  256,   15,   16,   16,  549,
+       16,  253,   16,   18,   18,  363,   15,   21,   21,   21,
+      363,  256,   16,   22,   22,   22,   23,   23,   23,   24,
+       24,   24, 1071,   21,   25,   25,   25,  456, 1071,   22,
+      662,   17,   23,  662,  290,   24,  250,  250,  250,  456,
 
        25,  251,  251,  251,  255,  255,  255,   18,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-       19,   19,   19,  574,   19,   19,   19,   19,   19,   26,
-       26,   26,   27,   27,   27,   28,   28,   28,  574,   29,
+       19,   19,   19,  573,   19,   19,   19,   19,   19,   26,
+       26,   26,   27,   27,   27,   28,   28,   28,  573,   29,
        29,   29,   30,   30,   30,   26,  278,  295,   27,  299,
-      374,   28,  304,   19,   19,   29,  299, 1291,   30,  275,
-      275,  275,  278,  295,   19,  283,  283,  283,  303, 1291,
+      374,   28,  304,   19,   19,   29,  299, 1290,   30,  275,
+      275,  275,  278,  295,   19,  283,  283,  283,  303, 1290,
       266,  374,  303,   19,   20,   20,   20,   20,   20,   20,
-       20,   20,   20,   20,   20,   20,   20,   20,   20, 1511,
+       20,   20,   20,   20,   20,   20,   20,   20,   20, 1510,
        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
 
        32,   33,   33,   33,  304,   34,   34,   34,   35,   35,
-       35,   31,  266,  309,   32, 1512, 1513,   33,  266,   20,
+       35,   31,  266,  309,   32, 1511,  674,   33,  266,   20,
        20,   34,  319,  266,   35,   36,   36,   36,  266,  309,
-       20,   37,   37,   37,   38,   38,   38,  378,  319,   20,
-      378,   36,   39,   39,   39, 1515,  331,   37,  654,  344,
+       20,   37,   37,   37,   38,   38,   38, 1512,  319,   20,
+      674,   36,   39,   39,   39, 1514,  331,   37,  653,  344,
        38,   40,   40,   40,  292,  292,  292,  339,   39,  301,
-      301,  301,  331,  654,  302,  344, 1516,   40,   41,   41,
+      301,  301,  331,  653,  302,  344, 1515,   40,   41,   41,
        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
        41,   41,   41,  420,   41,   41,   41,   41,   41,   43,
        43,   43,   44,   44,   44,   45,   45,   45,  351,   46,
 
-       46,   46,   47,   47,   47,   43,  379,  663,   44,  339,
-      663,   45,  302,   41,   41,   46,  302,  356,   47,   41,
-      379, 1518,   41,  306,  306,  306,  313,  313,  313,  316,
+       46,   46,   47,   47,   47,   43,  379,  682,   44,  339,
+     1517,   45,  302,   41,   41,   46,  302,  356,   47,   41,
+      379,  682,   41,  306,  306,  306,  313,  313,  313,  316,
       316,  316,  420,  356,   41,   42,   42,   42,   42,   42,
        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
       351,   42,   42,   42,   42,   42,   48,   48,   48,   49,
        49,   49,   50,   50,   50,  377,   53,   53,   53,   54,
-       54,   54,   48,  377,  371,   49,  314, 1519,   50,  377,
-       42,   42,   53,  314,  326,   54,   42, 1520,  385,   42,
+       54,   54,   48,  377,  371,   49,  314, 1518,   50,  377,
+       42,   42,   53,  314,  326,   54,   42, 1519,  385,   42,
       371,  326,  314,  325,  325,  325,  328,  328,  328,  396,
 
       326,   42,   51,   51,   51,   51,   51,   51,   51,   51,
-       51,   51,   51,   51,   51,   51,   51,  675,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,  687,   51,   51,
        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
-       61,   61,  676,   62,   62,   62,   63,   63,   63,   57,
-      385,  675,   58,  676, 1521,   61,  676,   51,   51,   62,
+       61,   61,  675,   62,   62,   62,   63,   63,   63,   57,
+      385,  687,   58,  675, 1520,   61,  675,   51,   51,   62,
       390,  396,   63,   64,   64,   64,  337,  337,  337,  341,
-      341,  341,  338,  349,  349,  349,  390,  773,  350,   64,
-      773,   51,   52,   52,   52,   52,   52,   52,   52,   52,
-       52,   52,   52,   52,   52,   52,   52,  688,   52,   52,
+      341,  341,  338,  349,  349,  349,  390,  772,  350,   64,
+      772,   51,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,  698,   52,   52,
        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
 
-       67,   67,  895,   68,   68,   68,   71,   71,   71,   65,
-      338,  688,   66, 1523,  338,   67,  350,   52,   52,   68,
-      350, 1524,   71,   72,   72,   72,  353,  353,  353,  365,
-      365,  365,  368,  368,  368,  383,  383,  383,  895,   72,
-      933,   52,   55,   55,   55,   55,   55,   55,   55,   55,
-       55,   55,   55,   55,   55,   55,   55,  933,   55,   55,
+       67,   67,  894,   68,   68,   68,   71,   71,   71,   65,
+      338,  698,   66, 1522,  338,   67,  350,   52,   52,   68,
+      350, 1523,   71,   72,   72,   72,  353,  353,  353,  365,
+      365,  365,  368,  368,  368,  383,  383,  383,  894,   72,
+      932,   52,   55,   55,   55,   55,   55,   55,   55,   55,
+       55,   55,   55,   55,   55,   55,   55,  932,   55,   55,
        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
-       75,   75,  683,   76,   76,   76,   77,   77,   77,   73,
-      422,  380,   74,  366,  401,   75,  683,   55,   55,   76,
-      366,   55,   77,  380,  380,  387,  387,  387,   55,  366,
+       75,   75,  694,   76,   76,   76,   77,   77,   77,   73,
+      401,  411,   74,  366,  427,   75,  694,   55,   55,   76,
+      366,   55,   77,  387,  387,  387,  401,  411,   55,  366,
 
-      401,   55,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56, 1525,   56,   56,
+      427,   55,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56, 1524,   56,   56,
        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
-       82,   82,  422,   85,   85,   85,   86,   86,   86,   78,
-      411,  427,   81,  406,  439,   82, 1526,   56,   56,   85,
-      406,   56,   86,  394,  394,  394,  411,  427,   56,  406,
-      439,   56,   59,   59,   59,   59,   59,   59,   59,   59,
-       59,   59,   59,   59,   59,   59,   59,  699,   59,   59,
+       82,   82,  700,   85,   85,   85,   86,   86,   86,   78,
+      417,  439,   81,  406,  417,   82,  700,   56,   56,   85,
+      406,   56,   86,  394,  394,  394,  516,  439,   56,  406,
+      516,   56,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,  701,   59,   59,
        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
-       89,   89,  446,   90,   90,   90,   91,   91,   91,   87,
+       89,   89,  422,   90,   90,   90,   91,   91,   91,   87,
 
-      416,  699,   88, 1527,  416,   89, 1530,   59,   59,   90,
-      451,  465,   91,   59, 1533,  460,   59,  398,  398,  398,
-      405,  405,  405,  408,  408,  408,  451,  465,   59,   60,
+      680,  701,   88, 1525,  680,   89,  380,   59,   59,   90,
+      434,  451,   91,   59,  380,  446,   59,  434,  380,  380,
+      398,  398,  398,  405,  405,  405,  434,  451,   59,   60,
        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,  446,   60,   60,   60,   60,   60,
-       92,   92,   92,   95,   95,   95,   96,   96,   96,  532,
-       97,   97,   97,   98,   98,   98,   92,  460, 1187,   95,
-     1534, 1535,   96, 1536,   60,   60,   97,  476,  487,   98,
-       60, 1187,  534,   60,  419,  419,  419,  424,  424,  424,
-      433,  433,  433,  476,  487,   60,   69,   69,   69,   69,
+       60,   60,   60,   60,  422,   60,   60,   60,   60,   60,
+       92,   92,   92,   95,   95,   95,   96,   96,   96,  460,
+       97,   97,   97,   98,   98,   98,   92,  446, 1186,   95,
+     1526, 1529,   96, 1532,   60,   60,   97,  465,  476,   98,
+       60, 1186,  531,   60,  408,  408,  408,  419,  419,  419,
+      424,  424,  424,  465,  476,   60,   69,   69,   69,   69,
 
        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
-       69,  532,   69,   69,   69,   69,   69,   99,   99,   99,
-      100,  100,  100,  101,  101,  101,  536,  102,  102,  102,
-      105,  105,  105,   99,  534,  498,  100,  434, 1537,  101,
-     1491,   69,   69,  102,  434,  471,  105,   69,  436,  436,
-      436,  498,  471,  434,  443,  443,  443,  448,  448,  448,
-     1491,  471,   69,   70,   70,   70,   70,   70,   70,   70,
-       70,   70,   70,   70,   70,   70,   70,   70,  536,   70,
+       69,  460,   69,   69,   69,   69,   69,   99,   99,   99,
+      100,  100,  100,  101,  101,  101,  533,  102,  102,  102,
+      105,  105,  105,   99,  531, 1533,  100, 1534, 1535,  101,
+     1536,   69,   69,  102,  487,  498,  105,   69,  433,  433,
+      433,  436,  436,  436,  443,  443,  443,  448,  448,  448,
+      487,  498,   69,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,  533,   70,
        70,   70,   70,   70,  106,  106,  106,  109,  109,  109,
-      110,  110,  110,  552,  111,  111,  111,  112,  112,  112,
+      110,  110,  110,  535,  111,  111,  111,  112,  112,  112,
 
-      106,  681, 1541,  109, 1542,  681,  110, 1546,   70,   70,
-      111,  509,  526,  112,   70,  458,  458,  458,  462,  462,
-      462,  470,  470,  470,  473,  473,  473,  509,  526,   70,
+      106,  778, 1540,  109, 1541,  778,  110, 1545,   70,   70,
+      111,  509,  525,  112,   70,  458,  458,  458,  462,  462,
+      462,  470,  470,  470,  473,  473,  473,  509,  525,   70,
        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
-       79,   79,   79,   79,   79,  552,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,  535,   79,   79,   79,   79,
        79,  113,  113,  113,  114,  114,  114,  115,  115,  115,
-      589,  116,  116,  116,  119,  119,  119,  113,  521,  541,
-      114,  482,  557,  115, 1551,   79,   79,  116,  482,   79,
-      119,  481,  481,  481,  521,  541,   79,  482,  557,   79,
-      484,  484,  484,   79, 1552,   79,   79,   80,   80,   80,
+      551,  116,  116,  116,  119,  119,  119,  113,  520,  540,
+      114,  471,  556,  115, 1490,   79,   79,  116,  471,   79,
+      119,  481,  481,  481,  520,  540,   79,  471,  556,   79,
+      484,  484,  484,   79, 1490,   79,   79,   80,   80,   80,
 
        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
-       80,   80,  589,   80,   80,   80,   80,   80,  120,  120,
-      120,  123,  123,  123,  124,  124,  124,  521,  125,  125,
-      125,  126,  126,  126,  120,  568,  582,  123,  493,  594,
-      124, 1557,   80,   80,  125,  493,   80,  126,  492,  492,
-      492,  568,  582,   80,  493,  594,   80,  495,  495,  495,
-       80, 1558,   80,   80,   83,   83,   83,   83,   83,   83,
+       80,   80,  551,   80,   80,   80,   80,   80,  120,  120,
+      120,  123,  123,  123,  124,  124,  124,  520,  125,  125,
+      125,  126,  126,  126,  120,  567,  581,  123,  482,  593,
+      124, 1550,   80,   80,  125,  482,   80,  126,  492,  492,
+      492,  567,  581,   80,  482,  593,   80,  495,  495,  495,
+       80, 1551,   80,   80,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
@@ -3246,1298 +3244,1293 @@ static yyconst flex_int16_t yy_chk[12587] =
        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-       93,   93,   93, 1578,   93,   93,   93,   93,   93,  127,
-      127,  127,  128,  128,  128,  129,  129,  129, 1580,  130,
-      130,  130,  133,  133,  133,  127,  605,  619,  128,  585,
-     1581,  129,  614,   93,   93,  130,  585,  627,  133,  503,
-      503,  503,  605,  619,   93,   94,   94,   94,   94,   94,
+       93,   93,   93, 1556,   93,   93,   93,   93,   93,  127,
+      127,  127,  128,  128,  128,  129,  129,  129, 1557,  130,
+      130,  130,  133,  133,  133,  127,  604,  618,  128,  584,
+     1572,  129,  588,   93,   93,  130,  584,  613,  133,  503,
+      503,  503,  604,  618,   93,   94,   94,   94,   94,   94,
 
        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
-     1587,   94,   94,   94,   94,   94,  134,  134,  134,  135,
-      135,  135,  136,  136,  136, 1588,  137,  137,  137,  138,
-      138,  138,  134,  634,  614,  135,  627,  682,  136,  629,
-       94,   94,  137,  702,  682,  138,  506,  506,  506,  634,
-      682,   94,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,  103,  103,  702,  103,  103,
+     1573,   94,   94,   94,   94,   94,  134,  134,  134,  135,
+      135,  135,  136,  136,  136, 1575,  137,  137,  137,  138,
+      138,  138,  134,  626,  588,  135,  681, 1577,  136,  613,
+       94,   94,  137,  681,  628,  138,  506,  506,  506,  681,
+     1031,   94,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103, 1031,  103,  103,
       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
-      143,  143, 1590,  144,  144,  144,  147,  147,  147,  139,
-     1591,  629,  140,  504,  520,  143,  645,  103,  103,  144,
+      143,  143,  626,  144,  144,  144,  147,  147,  147,  139,
+     1579, 1580,  140,  493,  504,  143,  628,  103,  103,  144,
 
-      504,  520,  147,  519,  519,  519,  523,  523,  523,  504,
-      520, 1592,  645,  103,  104,  104,  104,  104,  104,  104,
-      104,  104,  104,  104,  104,  104,  104,  104,  104, 1593,
+      493,  504,  147,  518,  518,  518,  522,  522,  522,  493,
+      504, 1586, 1135,  103,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104, 1135,
       104,  104,  104,  104,  104,  148,  148,  148,  151,  151,
-      151,  152,  152,  152,  695,  155,  155,  155,  156,  156,
-      156,  148, 1594,  906,  151,  533,  563,  152,  695,  104,
-      104,  155, 1595,  563,  156,  530,  530,  530,  533,  906,
-      533, 1596,  563,  288, 1032,  104,  107,  107,  107,  107,
+      151,  152,  152,  152, 1587,  155,  155,  155,  156,  156,
+      156,  148, 1588, 1589,  151,  519,  562,  152,  633,  104,
+      104,  155,  519,  562,  156,  529,  529,  529,  537,  537,
+      537,  519,  562,  288,  633,  104,  107,  107,  107,  107,
       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
-      107, 1032,  107,  107,  107,  107,  107,  159,  159,  159,
-
-      160,  160,  160,  161,  161,  161,  572,  162,  162,  162,
-      572,  288, 1597,  159,  572, 1603,  160,  689, 1604,  161,
-     1608,  107,  107,  162,  107,  288,  107,  288,  689,  288,
-      588,  689,  107,  538,  538,  538,  549,  549,  549,  107,
-      531, 1136,  107,  108,  108,  108,  108,  108,  108,  108,
-      108,  108,  108,  108,  108,  108,  108,  108, 1136,  108,
+      107, 1590,  107,  107,  107,  107,  107,  159,  159,  159,
+
+      160,  160,  160,  161,  161,  161,  571,  162,  162,  162,
+      571,  288, 1591,  159,  571,  532,  160,  702, 1593,  161,
+     1594,  107,  107,  162,  107,  288,  107,  288,  532,  288,
+      532,  702,  107,  548,  548,  548,  553,  553,  553,  107,
+      530, 1595,  107,  108,  108,  108,  108,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108, 1596,  108,
       108,  108,  108,  108,  165,  165,  165,  166,  166,  166,
-      167,  167,  167,  701,  168,  168,  168,  779,  588,  531,
-      165,  779,  588,  166,  703, 1611,  167,  701,  108,  108,
-      168,  108,  531,  108,  531,  554,  554,  554,  703,  108,
+      167,  167,  167,  688,  168,  168,  168,  888, 1602,  530,
+      165,  888,  644,  166,  688, 1603,  167,  688,  108,  108,
+      168,  108,  530,  108,  530,  561,  561,  561,  644,  108,
 
-      562,  562,  562,  565,  565,  565,  108, 1612, 1619,  108,
+      564,  564,  564,  575,  575,  575,  108, 1606, 1610,  108,
       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
-      117,  117,  117,  117,  117, 1620,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  587,  117,  117,  117,  117,
       117,  169,  169,  169,  170,  170,  170,  171,  171,  171,
-      836,  172,  172,  172,  173,  173,  173,  169, 1621, 1624,
-      170,  577,  686,  171,  836,  117,  117,  172,  577,  686,
-      173,  117,  576,  576,  576,  686,  117,  577,  579,  579,
-      579,  587,  587,  587,  591,  591,  591, 1630,  117,  118,
+      835,  172,  172,  172,  173,  173,  173,  169, 1611, 1618,
+      170,  576,  685,  171,  835,  117,  117,  172,  576,  685,
+      173,  117,  578,  578,  578,  685,  117,  576,  586,  586,
+      586, 1619, 1620,  587,  590,  590,  590,  587,  117,  118,
       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
-      118,  118,  118,  118, 1634,  118,  118,  118,  118,  118,
+      118,  118,  118,  118, 1623,  118,  118,  118,  118,  118,
 
-      174,  174,  174,  175,  175,  175,  176,  176,  176, 1636,
-      177,  177,  177,  178,  178,  178,  174, 1638, 1639,  175,
-      600,  694,  176, 1644,  118,  118,  177,  600,  694,  178,
-      118,  599,  599,  599,  694,  118,  600,  602,  602,  602,
-      612,  612,  612,  616,  616,  616, 1646,  118,  121,  121,
+      174,  174,  174,  175,  175,  175,  176,  176,  176, 1629,
+      177,  177,  177,  178,  178,  178,  174, 1633, 1635,  175,
+      599,  693,  176, 1637,  118,  118,  177,  599,  693,  178,
+      118,  598,  598,  598,  693,  118,  599,  601,  601,  601,
+      611,  611,  611,  615,  615,  615, 1638,  118,  121,  121,
       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
-      121,  121,  121, 1647,  121,  121,  121,  121,  121,  179,
-      179,  179,  180,  180,  180,  181,  181,  181,  834,  182,
-      182,  182,  183,  183,  183,  179,  837, 1649,  180,  834,
-     1650,  181,  834,  121,  121,  182, 1651,  837,  183, 1652,
+      121,  121,  121, 1643,  121,  121,  121,  121,  121,  179,
+      179,  179,  180,  180,  180,  181,  181,  181,  833,  182,
+      182,  182,  183,  183,  183,  179,  836, 1645,  180,  833,
+     1646,  181,  833,  121,  121,  182, 1648,  836,  183, 1649,
 
-      837,  121,  122,  122,  122,  122,  122,  122,  122,  122,
-      122,  122,  122,  122,  122,  122,  122, 1655,  122,  122,
+      836,  121,  122,  122,  122,  122,  122,  122,  122,  122,
+      122,  122,  122,  122,  122,  122,  122, 1650,  122,  122,
       122,  122,  122,  184,  184,  184,  187,  187,  187,  188,
-      188,  188, 1656,  189,  189,  189,  190,  190,  190,  184,
-      889, 1192,  187, 1657,  889,  188, 1153,  122,  122,  189,
-     1153, 1659,  190, 1662, 1192,  122,  131,  131,  131,  131,
+      188,  188, 1651,  189,  189,  189,  190,  190,  190,  184,
+     1152, 1191,  187, 1654, 1152,  188, 1655,  122,  122,  189,
+     1656, 1658,  190, 1661, 1191,  122,  131,  131,  131,  131,
       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
-      131, 1671,  131,  131,  131,  131,  131,  191,  191,  191,
-      192,  192,  192,  193,  193,  193, 1674,  194,  194,  194,
-      197,  197,  197,  191, 1682, 1684,  192,  639, 1400,  193,
-
-     1686,  131,  131,  194,  639,  131,  197,  626,  626,  626,
-     1687, 1400,  131,  639, 1688,  131,  631,  631,  631,  642,
-      642,  642,  131,  132,  132,  132,  132,  132,  132,  132,
-      132,  132,  132,  132,  132,  132,  132,  132, 1690,  132,
+      131, 1670,  131,  131,  131,  131,  131,  191,  191,  191,
+      192,  192,  192,  193,  193,  193, 1673,  194,  194,  194,
+      197,  197,  197,  191,  905, 1681,  192,  638, 1399,  193,
+
+     1683,  131,  131,  194,  638,  131,  197,  625,  625,  625,
+      905, 1399,  131,  638, 1685,  131,  630,  630,  630,  641,
+      641,  641,  131,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132, 1686,  132,
       132,  132,  132,  132,  198,  198,  198,  201,  201,  201,
-      202,  202,  202, 1695,  205,  205,  205,  206,  206,  206,
-      198, 1698, 1699,  201,  652, 1701,  202, 1707,  132,  132,
-      205,  652,  132,  206,  651,  651,  651, 1710, 1713,  132,
-      652, 1714,  132,  653,  653,  653,  662,  662,  662,  132,
+      202,  202,  202, 1687,  205,  205,  205,  206,  206,  206,
+      198, 1689, 1694,  201,  651, 1697,  202, 1698,  132,  132,
+      205,  651,  132,  206,  650,  650,  650, 1700, 1706,  132,
+      651, 1709,  132,  652,  652,  652,  661,  661,  661,  132,
       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
 
-      141,  141,  141,  141,  141, 1715,  141,  141,  141,  141,
+      141,  141,  141,  141,  141, 1712,  141,  141,  141,  141,
       141,  207,  207,  207,  208,  208,  208,  209,  209,  209,
-     1716,  210,  210,  210,  211,  211,  211,  207, 1717, 1718,
-      208,  700, 1719,  209, 1720,  141,  141,  210,  700, 1722,
-      211,  141, 1723, 1725,  700,  662,  141,  142,  142,  142,
+     1713,  210,  210,  210,  211,  211,  211,  207, 1714, 1715,
+      208,  699, 1716,  209, 1717,  141,  141,  210,  699, 1718,
+      211,  141, 1719, 1721,  699,  661,  141,  142,  142,  142,
       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
-      142,  142, 1726,  142,  142,  142,  142,  142,  212,  212,
-      212,  215,  215,  215,  216,  216,  216, 1728,  219,  219,
-      219,  220,  220,  220,  212, 1730, 1731,  215,  835,  838,
-      216, 1733,  142,  142,  219,  835,  838,  220,  142, 1735,
+      142,  142, 1722,  142,  142,  142,  142,  142,  212,  212,
+      212,  215,  215,  215,  216,  216,  216, 1724,  219,  219,
+      219,  220,  220,  220,  212, 1725, 1727,  215,  834,  837,
+      216, 1729,  142,  142,  219,  834,  837,  220,  142, 1730,
 
-     1738,  835,  838,  142,  145,  145,  145,  145,  145,  145,
-      145,  145,  145,  145,  145,  145,  145,  145,  145, 1739,
+     1732,  834,  837,  142,  145,  145,  145,  145,  145,  145,
+      145,  145,  145,  145,  145,  145,  145,  145,  145, 1734,
       145,  145,  145,  145,  145,  221,  221,  221,  222,  222,
-      222,  223,  223,  223, 1740,  224,  224,  224,  225,  225,
-      225,  221,  996, 1741,  222, 1706, 1742,  223, 1744,  145,
-      145,  224,  996, 1745,  225,  226,  226,  226, 1749,  996,
-      145,  909,  909,  909, 1757,  909, 1170, 1170, 1170, 1761,
-     1706,  226, 1762,  145,  146,  146,  146,  146,  146,  146,
-      146,  146,  146,  146,  146,  146,  146,  146,  146, 1774,
+      222,  223,  223,  223, 1737,  224,  224,  224,  225,  225,
+      225,  221,  995, 1738,  222, 1705, 1739,  223, 1740,  145,
+      145,  224,  995, 1741,  225,  226,  226,  226, 1743,  995,
+      145,  908,  908,  908, 1744,  908, 1169, 1169, 1169, 1748,
+     1705,  226, 1756,  145,  146,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  146, 1760,
       146,  146,  146,  146,  146,  229,  229,  229,  230,  230,
 
-      230,  231,  231,  231, 1778,  232,  232,  232,  233,  233,
-      233,  229, 1782, 1783,  230, 1787, 1788,  231, 1789,  146,
-      146,  232, 1790, 1792,  233,  234,  234,  234, 1793, 1801,
-      146,  918,  918,  918, 1802,  918, 1811, 1814,  918, 1823,
-     1824,  234, 1825,  146,  149,  149,  149,  149,  149,  149,
-      149,  149,  149,  149,  149,  149,  149,  149,  149, 1828,
+      230,  231,  231,  231, 1761,  232,  232,  232,  233,  233,
+      233,  229, 1773, 1777,  230, 1781, 1782,  231, 1784,  146,
+      146,  232, 1785, 1786,  233,  234,  234,  234, 1789, 1791,
+      146,  917,  917,  917, 1792,  917, 1800, 1801,  917, 1810,
+     1813,  234, 1822,  146,  149,  149,  149,  149,  149,  149,
+      149,  149,  149,  149,  149,  149,  149,  149,  149, 1823,
       149,  149,  149,  149,  149,  235,  235,  235,  236,  236,
-      236, 1830,  243,  243,  243, 1838, 1845,  244,  244,  244,
-     1849,  235,  239,  239,  236, 1852, 1854,  239,  243,  149,
-      149,  240,  240,  244,  287, 1855,  240,  239, 1857,  444,
+      236, 1824,  243,  243,  243, 1827, 1829,  244,  244,  244,
+     1837,  235,  239,  239,  236, 1844, 1848,  239,  243,  149,
+      149,  240,  240,  244,  287, 1851,  240,  239, 1853,  444,
 
-      922,  922,  922, 1858,  287,  149,  240, 1859, 1860,  444,
+      921,  921,  921, 1854,  287,  149,  240, 1856, 1857,  444,
       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
       150,  150,  150,  150,  150,  150,  239,  150,  150,  150,
-      150,  150,  287, 1864, 1865,  240, 1866, 1868,  444, 1872,
-     1876,  670,  670,  670,  444, 1880,  287, 1882,  287, 1884,
-      287,  444,  719,  719,  719,  444,  150,  150,  670,  735,
-      735,  735, 1890, 1897,  922,  943,  943,  943, 1901,  719,
-     1902, 1904,  150,  956,  956,  956,  735,  150,  153,  153,
+      150,  150,  287, 1858, 1859,  240, 1863, 1864,  444, 1865,
+     1867,  669,  669,  669,  444, 1871,  287, 1875,  287, 1879,
+      287,  444,  718,  718,  718,  444,  150,  150,  669,  734,
+      734,  734, 1881, 1883,  921,  942,  942,  942, 1889,  718,
+     1896, 1900,  150,  955,  955,  955,  734,  150,  153,  153,
       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
-      153,  153,  153, 1916,  153,  153,  153,  153,  153,  736,
+      153,  153,  153, 1901,  153,  153,  153,  153,  153,  735,
 
-      736,  736,  747,  747,  747,  749,  749,  749,  764,  764,
-      764,  774,  774,  774, 1917, 1918,  736, 1920, 1921,  747,
-     1906, 1923,  749,  153,  153,  764, 1906, 1911,  774,  943,
-     1906,  971,  971,  971, 1906,  971, 1924,  956,  971,  153,
-     1912, 1044, 1044, 1044, 1911,  153,  154,  154,  154,  154,
+      735,  735,  746,  746,  746,  748,  748,  748,  763,  763,
+      763,  773,  773,  773, 1903, 1915,  735, 1910, 1916,  746,
+     1905, 1917,  748,  153,  153,  763, 1905, 1919,  773,  942,
+     1905,  970,  970,  970, 1910,  970, 1905,  955,  970,  153,
+     1911, 1043, 1043, 1043, 1920,  153,  154,  154,  154,  154,
       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
-      154, 1913,  154,  154,  154,  154,  154,  783,  783,  783,
-      784,  784,  784,  794,  794,  794,  802,  802,  802,  806,
-      806,  806, 1912, 1925,  783, 1926, 1919,  784, 1928, 1929,
-      794,  154,  154,  802, 1913, 1930,  806,  985,  985,  985,
-
-     1934,  985, 1919, 1936,  985, 1044, 1937,  154, 1178, 1178,
-     1178, 1938, 1940,  154,  157,  157,  157,  157,  157,  157,
-      157,  157,  157,  157,  157,  157,  157,  157,  157, 1941,
-      157,  157,  157,  157,  157,  824,  824,  824,  850,  850,
-      850,  856,  856,  856,  873,  873,  873, 1942,  879,  879,
-      879, 1943,  824, 1946, 1948,  850, 1939, 1953,  856,  157,
-      157,  873,  157,  157,  157,  879, 1955,  987,  987,  987,
-      157,  987, 1939,  157,  987, 1960, 1978,  157, 1984, 1985,
+      154, 1912,  154,  154,  154,  154,  154,  782,  782,  782,
+      783,  783,  783,  793,  793,  793,  801,  801,  801,  805,
+      805,  805, 1911, 1922,  782, 1923, 1918,  783, 1924, 1925,
+      793,  154,  154,  801, 1912, 1927,  805,  984,  984,  984,
+
+     1928,  984, 1918, 1929,  984, 1043, 1933,  154, 1177, 1177,
+     1177, 1935, 1936,  154,  157,  157,  157,  157,  157,  157,
+      157,  157,  157,  157,  157,  157,  157,  157,  157, 1937,
+      157,  157,  157,  157,  157,  823,  823,  823,  849,  849,
+      849,  855,  855,  855,  872,  872,  872, 1939,  878,  878,
+      878, 1940,  823, 1941, 1942,  849, 1938, 1945,  855,  157,
+      157,  872,  157,  157,  157,  878, 1947,  986,  986,  986,
+      157,  986, 1938,  157,  986, 1192, 1192, 1192, 1952, 1954,
       157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
-      158,  158,  158,  158,  158,  158, 1986,  158,  158,  158,
+      158,  158,  158,  158,  158,  158, 1959,  158,  158,  158,
 
-      158,  158,  885,  885,  885,  893,  893,  893,  917,  917,
-      917,  959,  959,  959,  920,  920,  920, 1993, 1994,  885,
-     1995, 1998,  893, 1999, 2002,  917,  158,  158,  959,  158,
-      158,  158,  920, 2003,  998,  998,  998,  158,  998, 2010,
-      158,  998, 2011, 2012,  158, 2016, 2019,  158,  163,  163,
+      158,  158,  884,  884,  884,  892,  892,  892,  916,  916,
+      916,  958,  958,  958,  919,  919,  919, 1977, 1983,  884,
+     1984, 1985,  892, 1989, 1990,  916,  158,  158,  958,  158,
+      158,  158,  919, 1994,  997,  997,  997,  158,  997, 1997,
+      158,  997, 1198, 1198, 1198, 1998, 2001,  158,  163,  163,
       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163, 2021,  163,  163,  163,  163,  163,  921,
-      921,  921,  961,  961,  961, 2023, 2024,  963,  963,  963,
-      962,  962,  962,  960,  960,  960, 2025,  921, 2028,  961,
-      967,  967,  967,  163,  163,  963, 2034,  962, 2039, 2045,
+      163,  163,  163, 2002,  163,  163,  163,  163,  163,  920,
+      920,  920,  960,  960,  960, 2009, 2010,  962,  962,  962,
+      961,  961,  961,  959,  959,  959, 2011,  920, 2015,  960,
+      966,  966,  966,  163,  163,  962, 2018,  961, 2020, 2022,
 
-      960, 2049, 2052, 1001, 1001, 1001,  921, 1001,  967, 2056,
-     1001, 1193, 1193, 1193, 1199, 1199, 1199,  163,  164,  164,
+      959, 2023, 2024, 1000, 1000, 1000,  920, 1000,  966, 2027,
+     1000, 1506, 1506, 1506, 1513, 1513, 1513,  163,  164,  164,
       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      164,  164,  164,  960,  164,  164,  164,  164,  164,  962,
-      964,  964,  964,  970,  970,  970, 2058, 2059,  960,  968,
-      968,  968,  973,  973,  973,  975,  975,  975,  964, 1907,
-      970, 2060, 2061,  164,  164, 1907, 2063,  968, 2069, 1907,
-      973, 2071,  975, 1907, 1016, 1016, 1016,  964, 1016, 2073,
-     2075, 1016, 1507, 1507, 1507, 2088, 2089,  164,  185,  185,
+      164,  164,  164,  959,  164,  164,  164,  164,  164,  961,
+      963,  963,  963,  969,  969,  969, 2033, 2038,  959,  967,
+      967,  967,  972,  972,  972,  974,  974,  974,  963, 2044,
+      969, 2048, 2051,  164,  164, 2055, 2057,  967, 2058, 2059,
+      972, 2060,  974, 2062, 1015, 1015, 1015,  963, 1015, 2068,
+     2070, 1015, 1507, 1507, 1507, 2072, 2074,  164,  185,  185,
       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
 
-      185,  185,  185, 2090,  185,  185,  185,  185,  185,  977,
-      977,  977, 2093,  968,  978,  978,  978,  979,  979,  979,
-      976,  976,  976,  980,  980,  980,  977, 2094, 2095,  974,
-      974,  974,  978,  185,  185,  979, 2095,  976, 2096, 2097,
-      980,  185, 2098,  185, 2100, 2111,  185,  974, 2112, 2113,
-      185, 1514, 1514, 1514,  185,  186,  186,  186,  186,  186,
+      185,  185,  185, 2087,  185,  185,  185,  185,  185,  976,
+      976,  976, 2088,  967,  977,  977,  977,  978,  978,  978,
+      975,  975,  975,  979,  979,  979,  976, 2089, 1507,  973,
+      973,  973,  977,  185,  185,  978, 2092,  975, 2093, 2095,
+      979,  185, 2096,  185, 2097, 2099,  185,  973, 2110, 2111,
+      185, 1516, 1516, 1516,  185,  186,  186,  186,  186,  186,
       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
-      976,  186,  186,  186,  186,  186,  974,  981,  981,  981,
-      982,  982,  982, 2114, 2099,  976, 2118, 2105,  979,  983,
-      983,  983, 2099, 2105,  981,  984,  984,  984,  982, 2120,
-
-      186,  186,  986,  986,  986, 2121, 2106,  983,  186, 2122,
-      186, 2123,  984,  186, 1517, 1517, 1517,  186, 2128,  986,
-     2107,  186,  195,  195,  195,  195,  195,  195,  195,  195,
-      195,  195,  195,  195,  195,  195,  195, 2106,  195,  195,
-      195,  195,  195, 2130,  988,  988,  988,  993,  993,  993,
-     1522, 1522, 1522, 1528, 1528, 1528,  989,  989,  989, 2131,
-      983,  988,  990,  990,  990,  993, 2107,  195,  195,  991,
-      991,  991, 2132,  989, 2135, 1508, 1508, 1508,  195,  990,
-     1026, 1026, 1026, 2139, 1026, 2146,  991, 1026, 1510, 1510,
-     1510,  195,  196,  196,  196,  196,  196,  196,  196,  196,
-
-      196,  196,  196,  196,  196,  196,  196,  989,  196,  196,
-      196,  196,  196, 2148,  990,  997,  997,  997, 1000, 1000,
-     1000, 1508, 2150, 2171,  991,  992,  992,  992, 1002, 1002,
-     1002, 2175,  997, 2176, 1510, 1000, 2177,  196,  196,  994,
-      994,  994,  992, 2183, 2184, 1002, 2185, 2189,  196, 1036,
-     1036, 1036, 2193, 1036, 2194, 2200, 1036,  994, 1532, 1532,
-     1532,  196,  199,  199,  199,  199,  199,  199,  199,  199,
-      199,  199,  199,  199,  199,  199,  199,  992,  199,  199,
-      199,  199,  199, 1013, 1013, 1013,  994, 1015, 1015, 1015,
-     2201, 2204, 1014, 1014, 1014, 1017, 1017, 1017, 1025, 1025,
-
-     1025, 1013, 2207, 2198, 1015, 2208, 2199,  199,  199, 2209,
-     1014, 2198, 2211, 1017, 2199, 1025,  199, 2209,  199, 1038,
-     1038, 1038,  199, 1038, 2212, 2215, 1038,  199,  199,  200,
+      975,  186,  186,  186,  186,  186,  973,  980,  980,  980,
+      981,  981,  981, 2112, 2094,  975, 2113, 2104,  978,  982,
+      982,  982, 2094, 2104,  980,  983,  983,  983,  981, 2117,
+
+      186,  186,  985,  985,  985, 2119, 2105,  982,  186, 2120,
+      186, 2121,  983,  186, 1521, 1521, 1521,  186, 2122,  985,
+     2127,  186,  195,  195,  195,  195,  195,  195,  195,  195,
+      195,  195,  195,  195,  195,  195,  195, 2105,  195,  195,
+      195,  195,  195, 2106,  987,  987,  987,  992,  992,  992,
+     1527, 1527, 1527, 2129, 2130,  988,  988,  988, 2098, 2131,
+      982,  987,  989,  989,  989,  992, 2098,  195,  195,  990,
+      990,  990,  988,  991,  991,  991, 2134, 2138,  195,  989,
+     1025, 1025, 1025, 2145, 1025, 2147,  990, 1025, 2149, 2106,
+      991,  195,  196,  196,  196,  196,  196,  196,  196,  196,
+
+      196,  196,  196,  196,  196,  196,  196,  988,  196,  196,
+      196,  196,  196,  993,  993,  993, 2170,  989, 2174, 2175,
+      990, 2176,  996,  996,  996,  991,  999,  999,  999, 2182,
+     2183,  993, 1001, 1001, 1001, 2184, 2188,  196,  196,  996,
+     1012, 1012, 1012,  999, 1509, 1509, 1509, 2192,  196, 1001,
+     1035, 1035, 1035, 2193, 1035, 2199, 2200, 1035, 1012, 2203,
+      993,  196,  199,  199,  199,  199,  199,  199,  199,  199,
+      199,  199,  199,  199,  199,  199,  199, 2206,  199,  199,
+      199,  199,  199, 1014, 1014, 1014, 1013, 1013, 1013, 2207,
+     1509, 1016, 1016, 1016, 1017, 1017, 1017, 1019, 1019, 1019,
+
+     1014, 1020, 1020, 1020, 1013, 2197, 2198,  199,  199, 1016,
+     2210, 2211, 1017, 2197, 2198, 1019,  199, 2214,  199, 1020,
+     2221, 2225,  199, 1531, 1531, 1531, 2226,  199,  199,  200,
       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
-      200,  200,  200,  200, 2222,  200,  200,  200,  200,  200,
-     1014, 1020, 1020, 1020, 2226, 1021, 1021, 1021, 1018, 1018,
-     1018, 1030, 1030, 1030, 1031, 1031, 1031, 2227, 2228, 1020,
-     1035, 1035, 1035, 1021,  200,  200, 1018, 2240, 2210, 1030,
-     2241, 2244, 1031,  200, 2246,  200, 2210, 1035, 2249,  200,
-     1529, 1529, 1529, 2256,  200,  200,  203,  203,  203,  203,
+      200,  200,  200,  200, 1013,  200,  200,  200,  200,  200,
+     1024, 1024, 1024, 2208, 2209, 1017, 2227, 2239, 1029, 1029,
+     1029, 2208, 2209, 1020, 1030, 1030, 1030, 1024, 2240, 1034,
+     1034, 1034, 2243, 2245,  200,  200, 1029, 1037, 1037, 1037,
+     2248, 1037, 1030,  200, 1037,  200, 1034, 2255, 2262,  200,
+     1720, 1720, 1720, 2264,  200,  200,  203,  203,  203,  203,
 
       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
-      203, 2263,  203,  203,  203,  203,  203, 1021, 2265, 1018,
-     1037, 1037, 1037, 2266, 2267, 1031, 1039, 1039, 1039, 2272,
-     1040, 1040, 1040, 1042, 1042, 1042, 1529, 1037, 1043, 1043,
-     1043,  203,  203, 2273, 1039, 2274, 2275,  203, 1040, 2276,
-     2277, 1042, 2278, 1047, 1047, 1047, 1043, 1047, 2279, 2280,
-     1047, 2281,  203,  204,  204,  204,  204,  204,  204,  204,
-      204,  204,  204,  204,  204,  204,  204,  204, 2292,  204,
-      204,  204,  204,  204, 1046, 1046, 1046, 1051, 1051, 1051,
-     2293, 1040, 2296, 1054, 1054, 1054, 2299, 2304, 1043, 2305,
-
-     2308, 1046, 1052, 1052, 1052, 1051, 2309, 2312,  204,  204,
-     1054, 1055, 1055, 1055,  204, 1055, 2284, 2315, 1055, 2316,
-     1052, 1059, 1059, 1059, 2285, 1059, 2317, 2332, 1059,  204,
+      203, 2265,  203,  203,  203,  203,  203, 1036, 1036, 1036,
+     1038, 1038, 1038, 1906, 2266, 1030, 1039, 1039, 1039, 1906,
+     1041, 1041, 1041, 1906, 1036, 1042, 1042, 1042, 1038, 1906,
+     2271,  203,  203, 2272, 1039, 2273, 2274,  203, 1041, 2275,
+     1046, 1046, 1046, 1042, 1046, 2276, 2277, 1046, 2278, 1528,
+     1528, 1528,  203,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204, 2279,  204,
+      204,  204,  204,  204, 1045, 1045, 1045, 1039, 1050, 1050,
+     1050, 2280, 1055, 1055, 1055, 1042, 2291, 1051, 1051, 1051,
+
+     2292, 1045, 1053, 1053, 1053, 1528, 1050, 2295,  204,  204,
+     1055, 1057, 1057, 1057,  204, 1051, 1054, 1054, 1054, 1053,
+     1054, 2298, 2303, 1054, 1530, 1530, 1530, 2304, 1057,  204,
       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
-      213,  213,  213,  213,  213, 2333,  213,  213,  213,  213,
-      213, 1056, 1056, 1056, 1057, 1057, 1057, 1052, 2334, 2284,
-     1058, 1058, 1058, 1061, 1061, 1061, 1062, 1062, 1062, 1056,
-     2340, 2285, 1057, 2335, 2341,  213,  213, 1058, 2342, 2348,
-      213, 1061, 2349, 2335, 1062, 2350,  213,  214,  214,  214,
+      213,  213,  213,  213,  213, 2307,  213,  213,  213,  213,
+      213, 2308, 1051, 1056, 1056, 1056, 1058, 1058, 1058, 2283,
+     1058, 2311, 2314, 1058, 1060, 1060, 1060, 1061, 1061, 1061,
+     1530, 1056, 1723, 1723, 1723,  213,  213, 1074, 1074, 1074,
+      213, 1074, 1060, 2315, 1074, 1061,  213,  214,  214,  214,
       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
 
-      214,  214, 2351,  214,  214,  214,  214,  214, 2352, 1057,
-     1065, 1065, 1065, 1066, 1066, 1066, 1069, 1069, 1069, 2353,
-     1070, 1070, 1070, 1074, 1074, 1074, 2354, 1062, 1065, 2364,
-     2365, 1066,  214,  214, 1069, 2366, 2367,  214, 1070, 2374,
-     1074, 2375, 2376,  214,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217, 2397,
-      217,  217,  217,  217,  217, 1075, 1075, 1075, 2398, 1075,
-     2404, 2409, 1075, 2411, 1066, 2412, 1076, 1076, 1076, 1079,
-     1079, 1079, 1096, 1096, 1096, 1070, 1080, 1080, 1080,  217,
-      217, 2417,  217, 1076,  217, 2418, 2419, 1079, 2420, 1096,
-
-      217, 1097, 1097, 1097, 1080, 1097, 2421, 2422, 1097, 2423,
-     2424,  217,  218,  218,  218,  218,  218,  218,  218,  218,
-      218,  218,  218,  218,  218,  218,  218, 2425,  218,  218,
-      218,  218,  218, 1083, 1083, 1083, 2426, 1080, 1093, 1093,
-     1093, 2429, 2431, 1084, 1084, 1084, 1094, 1094, 1094, 2432,
-     2433, 1083, 1099, 1099, 1099, 2434, 1093,  218,  218, 2433,
-      218, 1084,  218, 2435, 1094, 1103, 1103, 1103,  218, 1103,
-     1099, 2436, 1103, 2429, 1531, 1531, 1531, 2437, 2439,  218,
+      214,  214, 2283,  214,  214,  214,  214,  214, 1056, 1064,
+     1064, 1064, 1065, 1065, 1065, 2316, 1068, 1068, 1068, 2331,
+     1069, 1069, 1069, 1073, 1073, 1073, 2332, 1064, 1061, 2333,
+     1065, 2334,  214,  214, 1068, 2339, 2284,  214, 1069, 2340,
+     1073, 2334, 2341,  214,  217,  217,  217,  217,  217,  217,
+      217,  217,  217,  217,  217,  217,  217,  217,  217, 2347,
+      217,  217,  217,  217,  217, 1075, 1075, 1075, 1078, 1078,
+     1078, 2348, 2349, 1065, 2350, 1082, 1082, 1082, 1083, 1083,
+     1083, 2351, 1075, 2284, 2352, 1069, 1078, 2353, 2363,  217,
+      217, 2364,  217, 1082,  217, 2365, 1083, 1096, 1096, 1096,
+
+      217, 1096, 2366, 2373, 1096, 1726, 1726, 1726, 1547, 1547,
+     1547,  217,  218,  218,  218,  218,  218,  218,  218,  218,
+      218,  218,  218,  218,  218,  218,  218, 2374,  218,  218,
+      218,  218,  218, 1095, 1095, 1095, 1083, 1092, 1092, 1092,
+     2375, 1093, 1093, 1093, 2396, 1098, 1098, 1098, 2397, 2403,
+     1095, 1079, 1079, 1079, 1547, 1092, 2408,  218,  218, 1093,
+      218, 2410,  218, 1098, 1728, 1728, 1728, 2411,  218, 1079,
+     1102, 1102, 1102, 2416, 1102, 2417, 2418, 1102, 2419,  218,
       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
-      227,  227,  227,  227,  227, 2440,  227,  227,  227,  227,
+      227,  227,  227,  227,  227, 2420,  227,  227,  227,  227,
 
-      227, 1084, 2443, 2444, 1100, 1100, 1100, 1102, 1102, 1102,
-     1094, 1104, 1104, 1104, 1106, 1106, 1106, 1110, 1110, 1110,
-     1531, 2447, 1100, 2450, 1102,  227,  227, 2451, 1104, 2453,
-      227, 1106, 1721, 1721, 1721, 1110,  227, 1119, 1119, 1119,
-      227, 1119, 2454, 2430, 1119, 2456,  227,  228,  228,  228,
+      227, 2421, 1079, 2422, 2423, 1093, 1099, 1099, 1099, 2424,
+     1101, 1101, 1101, 2425, 1103, 1103, 1103, 1105, 1105, 1105,
+     1109, 1109, 1109, 2430, 1099,  227,  227, 1101, 2431, 2433,
+      227, 1103, 2434, 2435, 1105, 2436,  227, 2428, 1109, 2438,
+      227, 1731, 1731, 1731, 2429, 2439,  227,  228,  228,  228,
       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
-      228,  228, 2457,  228,  228,  228,  228,  228, 1100, 1112,
-     1112, 1112, 1113, 1113, 1113, 2458, 2438, 1114, 1114, 1114,
-     2430, 2470, 1111, 1111, 1111, 2438, 1112, 2471, 2472, 1113,
-     2473, 2474,  228,  228, 1114, 2477, 2479,  228, 2485, 2481,
-
-     1111, 2486, 2487,  228, 1125, 1125, 1125,  228, 1125, 2489,
-     2498, 1125, 2481,  228,  237,  237,  237,  237,  237,  237,
-      237,  237,  237,  237,  237,  237,  237,  237,  237, 1111,
-      237,  237,  237,  237,  237, 2499, 1114, 1115, 1115, 1115,
-     1116, 1116, 1116, 2482, 1118, 1118, 1118, 1120, 1120, 1120,
-     1121, 1121, 1121, 2500, 2501, 1115, 2482, 2503, 1116,  237,
-      237, 1118, 1131, 1131, 1131, 1120, 1131,  237, 1121, 1131,
-      237, 2513, 1548, 1548, 1548, 2514, 2531,  237,  238,  238,
+      228,  228, 2442,  228,  228,  228,  228,  228, 2443, 2428,
+     1099, 1111, 1111, 1111, 1112, 1112, 1112, 1113, 1113, 1113,
+     2432, 2429, 1110, 1110, 1110, 1117, 1117, 1117, 1111, 2432,
+     2437, 1112,  228,  228, 1113, 2446, 2449,  228, 2450, 2437,
+
+     1110, 2452, 1117,  228, 1118, 1118, 1118,  228, 1118, 2453,
+     2455, 1118, 2456,  228,  237,  237,  237,  237,  237,  237,
+      237,  237,  237,  237,  237,  237,  237,  237,  237, 1110,
+      237,  237,  237,  237,  237, 2457, 1113, 1114, 1114, 1114,
+     1115, 1115, 1115, 1119, 1119, 1119, 1120, 1120, 1120, 1123,
+     1123, 1123, 1129, 1129, 1129, 1114, 2469, 2470, 1115,  237,
+      237, 1119, 2471, 2472, 1120, 2473, 1123,  237, 2476, 1129,
+      237, 1733, 1733, 1733, 1736, 1736, 1736,  237,  238,  238,
       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
-      238,  238,  238, 2532,  238,  238,  238,  238,  238, 2533,
-
-     2536, 1116, 1124, 1124, 1124, 2538, 2539, 1127, 1127, 1127,
-     2540, 1121, 1128, 1128, 1128, 1130, 1130, 1130, 1548, 1124,
-     1134, 1134, 1134,  238,  238, 1127, 1724, 1724, 1724, 2541,
-     1128,  238, 1130, 2542,  238, 1727, 1727, 1727, 1134, 2543,
-     2544,  238,  241,  241,  241,  241,  241,  241,  241,  241,
-      241,  241,  241,  241,  241,  241,  241, 2545,  241,  241,
-      241,  241,  241, 2546, 2547, 1135, 1135, 1135, 1138, 1138,
-     1138, 2548, 1139, 1139, 1139, 2549, 1139, 2554, 1128, 1139,
-     1142, 1142, 1142, 1135, 2555, 1138, 2556,  241,  241, 1143,
-     1143, 1143, 2557, 2558,  241, 1162, 1162, 1162, 1142, 1162,
-
-      241, 2559, 1162, 1729, 1729, 1729, 2553, 1143, 2551,  241,
+      238,  238,  238, 2478,  238,  238,  238,  238,  238, 2484,
+
+     2480, 1115, 1124, 1124, 1124, 2485, 1124, 1120, 2481, 1124,
+     1126, 1126, 1126, 2480, 1127, 1127, 1127, 2486, 1130, 1130,
+     1130, 2481, 1130,  238,  238, 1130, 2488, 2497, 1126, 2498,
+     2499,  238, 1127, 2500,  238, 1733, 1735, 1735, 1735, 2502,
+     2512,  238,  241,  241,  241,  241,  241,  241,  241,  241,
+      241,  241,  241,  241,  241,  241,  241, 2513,  241,  241,
+      241,  241,  241, 1133, 1133, 1133, 1134, 1134, 1134, 1137,
+     1137, 1137, 1138, 1138, 1138, 2530, 1138, 2531, 2532, 1138,
+     1127, 1133, 1735, 2535, 1134, 2537, 1137,  241,  241, 1141,
+     1141, 1141, 2538, 2539,  241, 1161, 1161, 1161, 2540, 1161,
+
+      241, 2541, 1161, 1742, 1742, 1742, 2542, 1141, 2543,  241,
       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
-      242,  242,  242,  242,  242, 2560,  242,  242,  242,  242,
-      242, 1135, 1148, 1148, 1148, 2552, 1149, 1149, 1149, 1166,
-     1166, 1166, 1167, 1167, 1167, 1169, 1169, 1169, 2551, 2553,
-     1148, 2561, 2562, 1143, 1149,  242,  242, 1166, 2563, 2564,
-     1167, 2565,  242, 1169, 1209, 1209, 1209, 2566,  242, 1210,
-     1210, 1210, 2552, 1210, 2567, 2570, 1210,  242,  284, 2571,
-     2572, 1209, 1213, 1213, 1213,  284, 1214, 1214, 1214, 2573,
-     1214, 2575, 2576, 1214,  284,  284, 1216, 1216, 1216, 1213,
-
-     1149, 1217, 1217, 1217, 1235, 1235, 1235, 1219, 1219, 1219,
-     2587, 1227, 1227, 1227, 1216, 1227, 2588, 2589, 1227, 1217,
-     2591, 1235,  284,  284,  284, 1219, 2595, 2598,  284,  284,
-      284, 2600, 2602,  284,  284, 2603, 2613,  284, 2614,  284,
-      284,  284,  286, 1222, 1222, 1222, 1223, 1223, 1223, 1225,
-     1225, 1225, 1231, 1231, 1231, 1232, 1232, 1232,  286,  286,
-     2615, 1222, 2631, 2650, 1223, 2651, 2655, 1225, 2656, 2599,
-     1231, 1219, 2657, 1232, 1239, 1239, 1239, 1234, 1234, 1234,
-     2599, 1241, 1241, 1241, 2658, 2601,  286,  286,  286, 2659,
-     2660, 1239,  286,  286,  286, 1234, 2601,  286,  286, 1241,
-
-     2661,  286, 1225,  286,  286,  286, 1236, 1236, 1236, 2621,
-     1236, 2662, 2663, 1236, 1240, 1240, 1240, 2664, 1240, 2621,
-     2669, 1240, 1242, 1242, 1242, 2621, 1234, 1244, 1244, 1244,
-     1245, 1245, 1245, 2670, 1246, 1246, 1246, 2671, 1246, 2672,
-     1242, 1246, 1247, 1247, 1247, 1244, 2673, 1245, 1248, 1248,
-     1248, 2666, 1248, 2674, 2675, 1248, 1249, 1249, 1249, 1247,
-     1250, 1250, 1250, 1252, 1252, 1252, 1253, 1253, 1253, 2676,
-     1253, 2677, 2667, 1253, 1249, 1256, 1256, 1256, 1250, 1256,
-     2666, 1252, 1256, 1259, 1259, 1259, 1260, 1260, 1260, 1244,
-     1260, 2678, 2679, 1260, 1265, 1265, 1265, 1266, 1266, 1266,
-
-     1259, 1268, 1268, 1268, 1273, 1273, 1273, 2680, 1273, 2681,
-     2684, 1273, 1265, 2645, 2667, 1266, 1276, 1276, 1276, 1268,
-     1277, 1277, 1277, 2645, 1277, 1252, 2645, 1277, 1280, 1280,
-     1280, 2685, 2686, 1276, 1281, 1281, 1281, 2688, 1281, 2668,
-     2689, 1281, 1292, 1292, 1292, 1280, 1293, 1293, 1293, 1268,
-     1295, 1295, 1295, 2694, 1296, 1296, 1296, 2695, 1296, 2700,
-     1292, 1296, 2704, 2705, 1293, 1299, 1299, 1299, 1295, 1300,
-     1300, 1300, 1302, 1302, 1302, 1303, 1303, 1303, 1304, 1304,
-     1304, 2668, 2706, 1299, 1305, 1305, 1305, 1300, 2707, 2708,
-     1302, 2709, 1303, 1307, 1307, 1307, 1304, 1310, 1310, 1310,
-
-     2710, 2719, 1305, 1311, 1311, 1311, 2721, 1311, 2725, 2726,
-     1311, 1307, 2727, 2728, 1310, 2729, 2730, 1295, 1317, 1317,
-     1317, 1318, 1318, 1318, 1320, 1320, 1320, 1323, 1323, 1323,
-     2732, 2744, 1302, 1324, 1324, 1324, 1317, 1324, 2646, 1318,
-     1324, 2745, 1320, 2747, 1323, 1327, 1327, 1327, 2646, 1327,
-     2748, 2646, 1327, 1330, 1330, 1330, 1331, 1331, 1331, 2739,
-     1307, 1333, 1333, 1333, 1334, 1334, 1334, 1335, 1335, 1335,
-     2761, 1330, 2739, 2762, 1331, 1336, 1336, 1336, 2763, 1333,
-     2764, 1334, 1338, 1338, 1338, 1335, 1346, 1346, 1346, 1320,
-     1340, 1340, 1340, 1336, 1340, 2766, 2767, 1340, 2740, 2768,
-
-     1338, 1347, 1347, 1347, 1346, 1349, 1349, 1349, 1351, 1351,
-     1351, 2740, 1351, 2769, 2622, 1351, 1354, 1354, 1354, 1347,
-     1355, 1355, 1355, 1349, 2622, 2775, 1333, 1357, 1357, 1357,
-     2622, 1338, 2776, 2773, 1354, 1358, 1358, 1358, 1355, 1358,
-     2777, 2778, 1358, 2779, 2772, 1357, 1362, 1362, 1362, 1363,
-     1363, 1363, 1365, 1365, 1365, 1366, 1366, 1366, 1367, 1367,
-     1367, 1368, 1368, 1368, 1362, 1349, 2780, 1363, 2773, 2781,
-     1365, 2782, 1366, 2746, 2783, 1367, 1369, 1369, 1369, 1368,
-     1371, 1371, 1371, 1372, 1372, 1372, 2746, 1357, 2749, 1373,
-     1373, 1373, 2772, 2784, 1369, 1374, 1374, 1374, 1371, 2785,
-
-     1372, 2749, 1365, 2786, 2787, 1367, 1373, 1375, 1375, 1375,
-     1377, 1377, 1377, 1374, 1382, 1382, 1382, 1373, 1382, 2790,
-     2791, 1382, 1385, 1385, 1385, 1375, 2794, 2796, 1377, 1386,
-     1386, 1386, 2800, 1386, 2801, 2809, 1386, 2796, 2810, 1385,
-     1389, 1389, 1389, 1390, 1390, 1390, 2811, 1371, 1392, 1392,
-     1392, 1395, 1395, 1395, 1396, 1396, 1396, 2797, 1389, 2812,
-     2813, 1390, 1398, 1398, 1398, 2814, 1392, 2797, 2815, 1395,
-     2816, 2819, 1396, 1403, 1403, 1403, 1377, 1407, 1407, 1407,
-     1398, 2823, 1408, 1408, 1408, 1410, 1410, 1410, 2826, 2827,
-     1403, 2828, 1416, 1416, 1416, 1407, 1417, 1417, 1417, 1392,
-
-     1408, 2829, 2830, 1410, 1412, 1412, 1412, 2831, 1412, 1398,
-     1416, 1412, 2832, 2835, 1417, 1419, 1419, 1419, 1421, 1421,
-     1421, 2839, 1421, 2840, 2841, 1421, 1424, 1424, 1424, 2842,
-     1425, 1425, 1425, 1419, 1425, 2843, 2844, 1425, 1426, 1426,
-     1426, 2845, 2846, 1424, 2847, 2848, 1410, 1427, 1427, 1427,
-     1428, 1428, 1428, 2849, 1428, 1426, 2850, 1428, 1430, 1430,
-     1430, 1432, 1432, 1432, 1427, 1433, 1433, 1433, 1435, 1435,
-     1435, 1436, 1436, 1436, 2866, 1430, 1419, 2867, 2868, 1432,
-     1437, 1437, 1437, 1433, 1437, 2853, 1435, 1437, 1436, 1438,
-     1438, 1438, 1439, 1439, 1439, 2853, 1439, 2869, 2870, 1439,
-
-     1441, 1441, 1441, 1442, 1442, 1442, 1438, 1444, 1444, 1444,
-     1446, 1446, 1446, 2871, 1446, 2872, 2854, 1446, 1441, 2873,
-     2879, 1442, 1449, 1449, 1449, 1444, 2854, 2880, 1435, 1450,
-     1450, 1450, 1452, 1452, 1452, 1455, 1455, 1455, 2881, 1455,
-     1449, 2884, 1455, 1459, 1459, 1459, 2885, 1450, 2875, 2886,
-     1452, 1460, 1460, 1460, 1462, 1462, 1462, 2887, 1464, 1464,
-     1464, 1459, 1464, 2890, 2897, 1464, 1468, 1468, 1468, 1460,
-     2898, 2899, 1462, 2900, 1444, 1469, 1469, 1469, 1470, 1470,
-     1470, 2904, 2875, 1468, 1472, 1472, 1472, 1474, 1474, 1474,
-     1475, 1475, 1475, 1469, 1475, 2905, 1470, 1475, 2913, 1452,
-
-     2914, 2915, 1472, 2916, 1474, 1478, 1478, 1478, 1480, 1480,
-     1480, 1481, 1481, 1481, 2917, 1462, 1483, 1483, 1483, 1485,
-     1485, 1485, 1478, 1487, 1487, 1487, 1480, 2918, 2919, 1481,
-     1488, 1488, 1488, 2923, 1483, 2929, 1485, 1490, 1490, 1490,
-     2930, 1487, 1492, 1492, 1492, 1472, 2932, 2933, 1488, 1498,
-     1498, 1498, 1538, 1538, 1538, 1490, 1538, 2935, 2936, 1538,
-     1492, 1492, 2937, 1483, 2938, 2939, 1478, 1498, 1543, 1543,
-     1543, 2940, 1543, 2941, 2942, 1543, 1547, 1547, 1547, 1549,
-     1549, 1549, 2943, 2944, 1490, 1550, 1550, 1550, 1553, 1553,
-     1553, 1554, 1554, 1554, 1547, 1554, 1549, 2945, 1554, 2946,
-
-     1559, 1559, 1559, 1550, 1559, 2947, 1553, 1559, 1562, 1562,
-     1562, 1563, 1563, 1563, 2950, 1563, 2951, 2952, 1563, 2953,
-     1566, 1566, 1566, 2961, 1566, 2962, 1562, 1566, 1569, 1569,
-     1569, 1570, 1570, 1570, 2964, 1570, 2965, 1547, 1570, 1573,
-     1573, 1573, 1574, 1574, 1574, 1553, 1569, 1575, 1575, 1575,
-     2966, 2968, 1550, 2976, 2977, 1562, 1573, 2979, 2980, 1574,
-     1576, 1576, 1576, 2981, 1575, 1577, 1577, 1577, 1579, 1579,
-     1579, 1582, 1582, 1582, 2970, 1569, 2983, 1576, 2988, 2989,
-     1583, 1583, 1583, 1577, 1583, 1579, 2990, 1583, 1582, 1584,
-     1584, 1584, 2991, 1584, 1575, 2993, 1584, 1589, 1589, 1589,
-
-     1598, 1598, 1598, 1599, 1599, 1599, 1600, 1600, 1600, 1601,
-     1601, 1601, 1574, 1601, 1589, 2994, 1601, 2970, 1598, 2998,
-     1577, 1599, 3000, 1600, 1602, 1602, 1602, 1605, 1605, 1605,
-     1576, 1606, 1606, 1606, 3001, 1606, 3003, 3004, 1606, 1607,
-     1607, 1607, 1602, 3009, 1605, 1609, 1609, 1609, 1610, 1610,
-     1610, 1613, 1613, 1613, 3010, 1599, 1607, 1614, 1614, 1614,
-     3011, 1614, 1609, 3012, 1614, 1598, 1610, 3013, 1613, 1615,
-     1615, 1615, 1616, 1616, 1616, 1617, 1617, 1617, 3014, 1617,
-     3015, 3016, 1617, 1618, 1618, 1618, 3017, 1615, 3018, 1616,
-     3019, 1609, 1622, 1622, 1622, 1623, 1623, 1623, 1625, 1625,
-
-     1625, 1618, 1626, 1626, 1626, 1627, 1627, 1627, 3020, 1622,
-     1628, 1628, 1628, 1623, 1610, 3021, 1625, 3022, 3023, 1626,
-     1632, 1632, 1632, 1627, 1629, 1629, 1629, 1628, 1629, 3024,
-     3025, 1629, 1631, 1631, 1631, 1615, 3029, 1632, 1622, 3030,
-     3031, 1618, 1633, 1633, 1633, 3032, 1633, 3035, 3036, 1633,
-     1631, 3037, 1623, 3038, 3039, 1625, 1627, 1635, 1635, 1635,
-     1637, 1637, 1637, 1640, 1640, 1640, 3040, 1640, 3049, 3048,
-     1640, 1643, 1643, 1643, 3050, 1635, 3052, 1637, 1645, 1645,
-     1645, 1648, 1648, 1648, 1653, 1653, 1653, 3042, 1643, 1658,
-     1658, 1658, 1631, 1654, 1654, 1654, 1645, 1654, 3044, 1648,
-
-     1654, 1653, 1660, 1660, 1660, 3045, 3053, 1658, 1661, 1661,
-     1661, 3048, 3044, 1663, 1663, 1663, 3045, 1663, 1635, 1660,
-     1663, 3055, 1666, 1666, 1666, 3057, 1661, 1667, 1667, 1667,
-     3051, 1667, 3060, 3042, 1667, 1672, 1672, 1672, 1658, 1666,
-     3061, 3067, 1645, 3069, 1668, 1668, 1668, 1648, 1668, 3071,
-     3082, 1668, 1672, 1673, 1673, 1673, 3084, 1673, 3086, 3087,
-     1673, 1675, 1675, 1675, 1676, 1676, 1676, 3090, 1676, 3051,
-     1661, 1676, 3091, 1679, 1679, 1679, 3094, 1679, 3096, 1675,
-     1679, 1683, 1683, 1683, 1685, 1685, 1685, 1689, 1689, 1689,
-     1691, 1691, 1691, 1692, 1692, 1692, 1693, 1693, 1693, 1683,
-
-     1693, 3098, 1685, 1693, 3100, 1689, 3101, 1691, 3103, 3063,
-     1692, 1675, 1694, 1694, 1694, 1696, 1696, 1696, 1697, 1697,
-     1697, 3063, 1697, 3104, 3110, 1697, 1700, 1700, 1700, 3064,
-     1694, 3076, 1696, 3112, 3077, 1702, 1702, 1702, 1703, 1703,
-     1703, 3064, 1703, 3076, 1700, 1703, 3077, 1683, 3109, 3109,
-     1685, 1689, 1702, 1704, 1704, 1704, 1705, 1705, 1705, 1708,
-     1708, 1708, 1732, 1732, 1732, 1734, 1734, 1734, 3107, 3127,
-     1704, 1736, 1736, 1736, 1705, 1700, 1694, 1708, 1737, 1737,
-     1737, 1743, 1743, 1743, 1746, 1746, 1746, 1747, 1747, 1747,
-     1748, 1748, 1748, 1750, 1750, 1750, 1751, 1751, 1751, 1752,
-
-     1752, 1752, 1753, 1753, 1753, 1705, 1754, 1754, 1754, 3107,
-     1708, 1755, 1755, 1755, 1756, 1756, 1756, 1736, 3120, 1753,
-     1758, 1758, 1758, 1754, 1760, 1760, 1760, 1708, 1755, 1734,
-     3129, 3133, 1756, 3120, 1759, 1759, 1759, 1758, 1759, 1750,
-     3126, 1759, 1760, 1763, 1763, 1763, 3134, 1764, 1764, 1764,
-     1765, 1765, 1765, 3137, 1748, 1766, 1766, 1766, 3108, 3126,
-     1751, 1763, 3116, 1752, 1764, 3115, 3128, 1765, 1767, 1767,
-     1767, 3111, 3108, 1766, 3139, 1755, 1768, 1768, 1768, 3115,
-     3116, 1756, 3111, 1760, 3141, 3128, 1767, 3142, 1769, 1769,
-     1769, 1763, 1769, 1768, 3143, 1769, 1770, 1770, 1770, 1771,
-
-     1771, 1771, 1772, 1772, 1772, 1773, 1773, 1773, 1775, 1775,
-     1775, 3136, 3119, 1770, 3144, 3145, 1771, 3146, 3154, 1772,
-     1766, 3155, 3138, 1773, 3156, 1775, 3119, 1776, 1776, 1776,
-     3136, 1776, 3158, 1767, 1776, 1777, 1777, 1777, 1779, 1779,
-     1779, 3138, 1779, 3159, 3161, 1779, 1784, 1784, 1784, 1785,
-     1785, 1785, 1777, 1785, 3162, 3163, 1785, 1771, 1786, 1786,
-     1786, 3165, 3170, 1784, 3171, 1773, 1791, 1791, 1791, 1794,
-     1794, 1794, 1795, 1795, 1795, 1786, 3172, 1796, 1796, 1796,
-     3173, 1796, 3174, 1791, 1796, 3175, 3176, 1794, 3177, 3180,
-     1795, 1799, 1799, 1799, 1803, 1803, 1803, 3181, 1803, 3182,
-
-     3183, 1803, 1806, 1806, 1806, 3184, 1807, 1807, 1807, 1799,
-     1807, 3185, 3188, 1807, 1808, 1808, 1808, 3189, 3190, 1806,
-     1809, 1809, 1809, 1812, 1812, 1812, 3191, 1795, 1813, 1813,
-     1813, 1808, 1810, 1810, 1810, 1794, 1810, 1809, 3192, 1810,
-     3193, 1812, 1815, 1815, 1815, 3195, 1815, 3196, 3197, 1815,
-     1818, 1818, 1818, 1819, 1819, 1819, 3198, 1819, 3199, 3200,
-     1819, 1822, 1822, 1822, 1826, 1826, 1826, 3201, 1818, 1827,
-     1827, 1827, 3208, 1827, 3209, 3210, 1827, 3211, 3212, 1822,
-     3213, 1826, 1829, 1829, 1829, 1831, 1831, 1831, 1832, 1832,
-     1832, 1833, 1833, 1833, 3219, 1833, 1818, 3220, 1833, 3221,
-
-     1829, 3222, 3206, 1831, 3223, 1832, 1834, 1834, 1834, 1835,
-     1835, 1835, 3224, 1835, 3206, 3228, 1835, 1839, 1839, 1839,
-     1843, 1843, 1843, 3229, 1834, 1840, 1840, 1840, 1822, 1840,
-     3231, 1831, 1840, 3233, 3236, 1839, 3237, 1843, 1844, 1844,
-     1844, 1846, 1846, 1846, 1847, 1847, 1847, 3234, 1847, 3238,
-     3207, 1847, 1848, 1848, 1848, 3239, 1844, 3240, 1846, 1850,
-     1850, 1850, 3207, 3241, 1834, 3242, 1851, 1851, 1851, 1848,
-     1851, 3243, 3234, 1851, 3244, 3245, 1850, 1853, 1853, 1853,
-     1856, 1856, 1856, 1839, 1861, 1861, 1861, 3246, 1861, 3247,
-     3248, 1861, 1867, 1867, 1867, 1853, 3249, 3250, 1856, 1869,
-
-     1869, 1869, 1844, 3251, 1870, 1870, 1870, 3252, 1870, 3253,
-     1867, 1870, 1871, 1871, 1871, 3254, 1869, 1873, 1873, 1873,
-     3255, 1873, 3256, 3257, 1873, 3260, 3261, 1877, 1877, 1877,
-     1871, 1877, 1856, 3263, 1877, 1881, 1881, 1881, 1883, 1883,
-     1883, 3262, 3264, 1867, 1885, 1885, 1885, 1886, 1886, 1886,
-     1887, 1887, 1887, 1881, 3265, 3266, 1883, 1888, 1888, 1888,
-     3262, 3267, 1885, 3268, 1886, 3269, 3270, 1887, 1889, 1889,
-     1889, 1891, 1891, 1891, 1888, 1892, 1892, 1892, 3271, 1892,
-     3272, 3273, 1892, 1893, 1893, 1893, 1889, 1893, 1891, 1883,
-     1893, 1896, 1896, 1896, 3274, 1885, 1881, 1898, 1898, 1898,
-
-     3275, 1898, 3276, 3277, 1898, 1903, 1903, 1903, 3278, 1896,
-     1905, 1905, 1905, 3279, 1905, 1889, 1887, 1905, 1908, 1908,
-     1908, 3280, 3281, 1903, 1909, 1909, 1909, 3282, 1909, 3283,
-     3284, 1909, 1910, 1910, 1910, 1908, 3288, 3289, 1896, 3290,
-     1915, 1915, 1915, 1922, 1922, 1922, 1927, 1927, 1927, 3291,
-     1910, 1931, 1931, 1931, 3292, 3293, 1903, 1915, 1932, 1932,
-     1932, 1933, 1933, 1933, 1935, 1935, 1935, 1944, 1944, 1944,
-     1945, 1945, 1945, 1947, 1947, 1947, 1949, 1949, 1949, 3287,
-     1950, 1950, 1950, 1910, 1950, 3294, 3295, 1950, 1951, 1951,
-     1951, 3296, 3297, 1949, 1952, 1952, 1952, 3298, 1952, 3287,
-
-     3299, 1952, 1954, 1954, 1954, 1951, 1956, 1956, 1956, 3300,
-     1956, 3301, 3302, 1956, 1959, 1959, 1959, 1961, 1961, 1961,
-     1954, 1962, 1962, 1962, 1963, 1963, 1963, 3303, 3304, 1964,
-     1964, 1964, 1959, 1964, 1961, 3305, 1964, 3306, 3307, 1962,
-     3308, 1963, 1965, 1965, 1965, 1966, 1966, 1966, 3309, 1966,
-     3311, 3314, 1966, 1967, 1967, 1967, 1968, 1968, 1968, 1965,
-     1969, 1969, 1969, 3310, 1969, 1959, 3317, 1969, 1954, 3310,
-     3318, 1967, 3319, 3320, 1968, 1972, 1972, 1972, 3321, 1973,
-     1973, 1973, 1962, 1973, 3322, 3324, 1973, 1974, 1974, 1974,
-     3325, 3327, 1972, 1975, 1975, 1975, 1976, 1976, 1976, 3328,
-
-     1976, 3330, 3331, 1976, 1974, 1977, 1977, 1977, 3333, 3334,
-     1975, 3335, 1979, 1979, 1979, 3336, 1979, 3337, 1967, 1979,
-     3338, 1968, 3333, 1977, 1982, 1982, 1982, 1983, 1983, 1983,
-     3339, 1983, 3341, 3343, 1983, 1987, 1987, 1987, 3345, 1987,
-     3347, 1982, 1987, 1990, 1990, 1990, 1991, 1991, 1991, 3349,
-     1991, 3350, 3351, 1991, 3352, 3353, 1977, 1992, 1992, 1992,
-     1990, 1996, 1996, 1996, 1997, 1997, 1997, 3354, 1997, 3355,
-     3356, 1997, 3357, 3358, 1992, 2000, 2000, 2000, 1996, 2001,
-     2001, 2001, 2004, 2004, 2004, 3362, 2004, 3364, 3366, 2004,
-     2007, 2007, 2007, 2000, 2008, 2008, 2008, 2001, 2008, 3367,
-
-     3368, 2008, 2009, 2009, 2009, 3369, 2009, 2007, 3394, 2009,
-     2013, 2013, 2013, 2015, 2015, 2015, 2017, 2017, 2017, 2018,
-     2018, 2018, 2020, 2020, 2020, 3378, 2000, 3379, 2013, 2022,
-     2022, 2022, 2001, 2022, 2017, 3370, 2022, 2018, 1506, 2020,
-     2026, 2026, 2026, 2029, 2029, 2029, 2030, 2030, 2030, 3394,
-     2030, 3382, 3371, 2030, 2033, 2033, 2033, 3383, 2026, 3380,
-     1505, 2029, 2035, 2035, 2035, 2036, 2036, 2036, 2020, 2018,
-     3381, 3370, 2033, 3378, 2017, 3379, 3408, 2037, 2037, 2037,
-     2035, 2037, 2036, 1504, 2037, 2038, 2038, 2038, 3371, 2040,
-     2040, 2040, 2029, 2040, 3386, 3382, 2040, 2043, 2043, 2043,
-
-     2033, 3383, 3386, 2038, 2044, 2044, 2044, 3380, 2044, 3384,
-     3408, 2044, 3387, 3384, 2043, 2046, 2046, 2046, 3381, 2046,
-     3387, 3402, 2046, 2050, 2050, 2050, 2053, 2053, 2053, 2054,
-     2054, 2054, 2038, 2055, 2055, 2055, 2057, 2057, 2057, 3398,
-     1503, 2050, 3390, 2053, 2062, 2062, 2062, 2054, 2064, 2064,
-     2064, 3392, 2064, 3402, 3422, 2064, 2067, 2067, 2067, 2070,
-     2070, 2070, 2062, 2072, 2072, 2072, 2074, 2074, 2074, 2076,
-     2076, 2076, 3388, 3391, 2067, 3389, 2070, 2077, 2077, 2077,
-     3388, 2072, 3385, 3389, 2074, 3398, 3385, 2076, 3392, 3390,
-     2054, 2078, 2078, 2078, 2077, 2078, 3422, 3403, 2078, 2079,
-
-     2079, 2079, 2080, 2080, 2080, 3393, 2081, 2081, 2081, 2062,
-     2081, 3395, 3399, 2081, 1502, 1501, 2079, 3423, 3438, 2080,
-     3391, 1500, 2072, 2082, 2082, 2082, 2083, 2083, 2083, 3403,
-     2084, 2084, 2084, 2076, 2084, 3396, 3397, 2084, 2087, 2087,
-     2087, 2082, 3393, 2083, 3409, 2079, 2091, 2091, 2091, 2092,
-     2092, 2092, 3395, 2101, 2101, 2101, 2087, 2101, 3399, 3423,
-     2101, 2104, 2104, 2104, 2091, 3438, 2092, 2108, 2108, 2108,
-     3396, 3397, 2083, 2109, 2109, 2109, 2082, 2109, 3409, 2104,
-     2109, 2110, 2110, 2110, 2108, 2115, 2115, 2115, 2116, 2116,
-     2116, 2087, 2117, 2117, 2117, 2119, 2119, 2119, 2124, 2124,
-
-     2124, 2125, 2125, 2125, 2126, 2126, 2126, 2104, 2127, 2127,
-     2127, 2129, 2129, 2129, 2133, 2133, 2133, 2134, 2134, 2134,
-     2136, 2136, 2136, 2137, 2137, 2137, 2138, 2138, 2138, 2140,
-     2140, 2140, 3428, 2140, 3404, 3410, 2140, 2143, 2143, 2143,
-     3412, 2143, 3400, 3404, 2143, 2147, 2147, 2147, 2149, 2149,
-     2149, 2151, 2151, 2151, 2127, 2152, 2152, 2152, 3401, 2152,
-     3411, 3428, 2152, 2147, 3442, 3406, 2149, 3405, 2151, 2153,
-     2153, 2153, 2138, 2154, 2154, 2154, 3405, 2154, 3410, 3400,
-     2154, 2157, 2157, 2157, 3407, 2157, 3412, 2153, 2157, 2160,
-     2160, 2160, 2161, 2161, 2161, 3401, 2147, 2162, 2162, 2162,
-
-     3406, 2162, 3414, 3411, 2162, 3442, 3413, 2160, 2149, 2160,
-     2161, 3416, 3417, 2165, 2165, 2165, 2166, 2166, 2166, 3407,
-     2166, 1497, 1496, 2166, 2170, 2170, 2170, 3418, 2161, 2153,
-     2165, 2167, 2167, 2167, 3415, 2167, 3418, 3414, 2167, 2172,
-     2172, 2172, 2170, 2172, 3416, 3417, 2172, 2178, 2178, 2178,
-     3424, 2178, 3413, 3436, 2178, 2181, 2181, 2181, 2182, 2182,
-     2182, 3436, 2182, 3437, 3439, 2182, 2186, 2186, 2186, 3415,
-     2186, 3437, 2181, 2186, 2190, 2190, 2190, 2191, 2191, 2191,
-     2192, 2192, 2192, 3461, 3419, 2195, 2195, 2195, 1495, 2195,
-     2170, 2190, 2195, 3419, 3461, 2191, 3424, 3425, 2192, 2202,
-
-     2202, 2202, 2203, 2203, 2203, 2205, 2205, 2205, 2206, 2206,
-     2206, 3439, 2206, 1486, 3450, 2206, 1484, 2202, 3429, 1479,
-     2203, 3420, 2205, 3421, 2213, 2213, 2213, 2214, 2214, 2214,
-     2216, 2216, 2216, 2218, 2218, 2218, 3426, 2218, 1473, 3444,
-     2218, 2191, 2213, 3425, 1467, 2214, 3450, 3429, 2216, 2221,
-     2221, 2221, 3430, 2203, 2202, 2223, 2223, 2223, 3420, 2223,
-     3421, 3430, 2223, 2229, 2229, 2229, 1463, 2221, 2230, 2230,
-     2230, 1458, 2230, 3426, 3444, 2230, 2231, 2231, 2231, 3431,
-     2229, 2232, 2232, 2232, 2233, 2233, 2233, 3432, 3431, 2214,
-     2213, 2234, 2234, 2234, 2231, 2235, 2235, 2235, 2236, 2236,
-
-     2236, 3434, 2221, 2237, 2237, 2237, 2238, 2238, 2238, 2239,
-     2239, 2239, 2235, 3427, 3435, 2236, 2242, 2242, 2242, 3433,
-     2237, 3432, 3446, 2238, 2243, 2243, 2243, 2239, 2243, 3451,
-     1454, 2243, 3447, 2242, 2245, 2245, 2245, 2247, 2247, 2247,
-     2231, 2250, 2250, 2250, 2251, 2251, 2251, 3434, 2251, 2236,
-     3427, 2251, 2245, 3433, 3443, 2247, 2254, 2254, 2254, 2250,
-     3435, 3451, 2255, 2255, 2255, 2238, 2255, 2237, 3446, 2255,
-     2260, 2260, 2260, 2254, 2239, 2257, 2257, 2257, 3447, 2257,
-     3440, 3441, 2257, 2261, 2261, 2261, 1453, 1445, 2260, 2262,
-     2262, 2262, 1440, 2262, 1431, 3443, 2262, 2264, 2264, 2264,
-
-     2261, 2268, 2268, 2268, 1429, 2270, 2270, 2270, 3445, 2271,
-     2271, 2271, 3448, 2271, 3449, 2264, 2271, 3440, 3441, 2268,
-     1420, 2260, 2270, 2282, 2282, 2282, 2283, 2283, 2283, 2286,
-     2286, 2286, 3460, 2286, 2287, 2287, 2286, 2287, 3452, 2288,
-     2288, 2282, 2288, 3445, 2283, 2287, 3460, 3452, 2264, 3448,
-     2288, 3449, 2287, 2289, 2289, 2289, 1415, 2288, 2290, 2290,
-     2290, 2291, 2291, 2291, 2294, 2294, 2294, 2295, 2295, 2295,
-     1411, 1406, 2282, 2297, 2297, 2297, 2298, 2298, 2298, 2300,
-     2300, 2300, 2301, 2301, 2301, 2302, 2302, 2302, 2303, 2303,
-     2303, 2306, 2306, 2306, 2307, 2307, 2307, 2310, 2310, 2310,
-
-     2311, 2311, 2311, 2313, 2313, 2313, 2314, 2314, 2314, 2318,
-     2318, 2318, 2319, 2319, 2319, 2320, 2320, 2320, 2321, 2321,
-     2321, 2322, 2322, 2322, 3454, 2322, 1405, 2318, 2322, 2325,
-     2325, 2325, 1404, 2320, 3455, 2321, 2326, 2326, 2326, 2327,
-     2327, 2327, 2328, 2328, 2328, 1402, 2328, 2325, 1401, 2328,
-     2331, 2331, 2331, 1399, 2326, 3453, 3454, 2327, 2336, 2336,
-     2336, 1394, 2336, 1393, 3453, 2336, 3455, 1388, 2331, 2339,
-     2339, 2339, 3456, 2326, 2343, 2343, 2343, 2345, 2345, 2345,
-     2325, 2320, 3458, 2344, 2344, 2344, 2339, 2344, 1387, 3459,
-     2344, 2343, 2346, 2346, 2346, 2345, 2355, 2355, 2355, 3457,
-
-     2327, 2356, 2356, 2356, 2357, 2357, 2357, 2358, 2358, 2358,
-     2346, 2359, 2359, 2359, 3458, 2359, 1381, 1380, 2359, 2356,
-     3456, 3459, 2357, 1379, 2358, 2362, 2362, 2362, 2363, 2363,
-     2363, 2368, 2368, 2368, 2369, 2369, 2369, 2370, 2370, 2370,
-     1378, 1361, 2362, 1350, 1345, 2363, 1344, 3457, 2368, 1343,
-     1339, 2369, 1322, 2358, 1321, 2370, 2371, 2371, 2371, 1316,
-     1315, 2356, 2372, 2372, 2372, 2373, 2373, 2373, 2377, 2377,
-     2377, 2378, 2378, 2378, 2371, 2378, 1314, 1309, 2378, 2372,
-     2362, 1308, 2368, 2373, 2381, 2381, 2381, 1290, 1289, 2363,
-     2382, 2382, 2382, 2383, 2383, 2383, 1288, 2370, 1287, 2384,
-
-     2384, 2384, 2381, 2384, 1286, 1285, 2384, 2385, 2385, 2385,
-     2383, 2386, 2386, 2386, 1284, 1283, 2373, 2387, 2387, 2387,
-     2371, 2388, 2388, 2388, 2385, 2389, 2389, 2389, 2386, 2390,
-     2390, 2390, 1282, 1272, 2387, 2394, 2394, 2394, 1271, 2388,
-     2391, 2391, 2391, 2381, 2391, 1270, 2390, 2391, 2395, 2395,
-     2395, 1269, 2394, 2399, 2399, 2399, 2401, 2401, 2401, 1264,
-     2401, 1263, 2386, 2401, 1262, 1261, 2395, 1238, 2387, 1237,
-     1230, 2399, 2405, 2405, 2405, 2406, 2406, 2406, 1226, 2406,
-     1221, 1220, 2406, 1215, 2410, 2410, 2410, 2414, 2414, 2414,
-     2405, 2414, 1212, 1211, 2414, 2427, 2427, 2427, 2428, 2428,
-
-     2428, 2394, 2410, 2441, 2441, 2441, 2442, 2442, 2442, 2445,
-     2445, 2445, 1208, 2427, 1207, 1206, 2428, 2446, 2446, 2446,
-     2448, 2448, 2448, 2449, 2449, 2449, 2452, 2452, 2452, 1205,
-     2410, 2455, 2455, 2455, 2459, 2459, 2459, 2461, 2461, 2461,
-     2462, 2462, 2462, 1204, 2463, 2463, 2463, 2464, 2464, 2464,
-     1203, 2464, 2459, 1202, 2464, 1201, 2427, 1200, 2462, 1198,
-     2428, 2463, 2465, 2465, 2465, 2466, 2466, 2466, 2467, 2467,
-     2467, 2468, 2468, 2468, 2475, 2475, 2475, 2476, 2476, 2476,
-     2465, 2476, 1197, 2466, 2476, 1196, 2467, 1195, 1194, 2468,
-     1191, 2475, 2478, 2478, 2478, 2480, 2480, 2480, 1190, 2480,
-
-     1189, 1188, 2480, 2483, 2483, 2483, 2491, 2491, 2491, 2478,
-     2492, 2492, 2492, 2493, 2493, 2493, 2494, 2494, 2494, 1186,
-     1185, 2483, 1184, 2491, 2496, 2496, 2496, 1183, 1182, 2466,
-     1181, 2493, 1180, 1179, 2494, 2467, 2497, 2497, 2497, 1177,
-     2497, 2496, 1176, 2497, 2505, 2505, 2505, 2506, 2506, 2506,
-     2507, 2507, 2507, 1175, 2507, 1174, 1173, 2507, 2508, 2508,
-     2508, 2505, 1172, 1171, 2506, 2509, 2509, 2509, 1165, 1161,
-     2493, 2510, 2510, 2510, 1158, 1157, 2508, 2511, 2511, 2511,
-     1156, 2511, 1154, 2509, 2511, 2512, 2512, 2512, 2510, 2515,
-     2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517, 2518, 2518,
-
-     2518, 1150, 2518, 2512, 1147, 2518, 2515, 2521, 2521, 2521,
-     2522, 2522, 2522, 2517, 2522, 1146, 1145, 2522, 2523, 2523,
-     2523, 2524, 2524, 2524, 2521, 1141, 2509, 2525, 2525, 2525,
-     2527, 2527, 2527, 1140, 1137, 2523, 1133, 1132, 2524, 2528,
-     2528, 2528, 2529, 2529, 2529, 2525, 2529, 1129, 1126, 2529,
-     2530, 2530, 2530, 2534, 2534, 2534, 2528, 2537, 2537, 2537,
-     2550, 2550, 2550, 2568, 2568, 2568, 1123, 2530, 2569, 2569,
-     2569, 2534, 2574, 2574, 2574, 2537, 1122, 1117, 2550, 2577,
-     2577, 2577, 2578, 2578, 2578, 2580, 2580, 2580, 1109, 2580,
-     1108, 1107, 2580, 2583, 2583, 2583, 2577, 2585, 2585, 2585,
-
-     2578, 2586, 2586, 2586, 1105, 2530, 1101, 2590, 2590, 2590,
-     1098, 2583, 2609, 2609, 2609, 2585, 2596, 2596, 2596, 2586,
-     2550, 1095, 1092, 2537, 2590, 2592, 2592, 2592, 1091, 2592,
-     2609, 1090, 2592, 2596, 2597, 2597, 2597, 1089, 2597, 1088,
-     1087, 2597, 2604, 2604, 2604, 2607, 2607, 2607, 2608, 2608,
-     2608, 1086, 2608, 1085, 1082, 2608, 1081, 1078, 2585, 2604,
-     1077, 1073, 2607, 1071, 2610, 2610, 2610, 2586, 2610, 1068,
-     1067, 2610, 2618, 2618, 2618, 2619, 2619, 2619, 1064, 2619,
-     1063, 1060, 2619, 2620, 2620, 2620, 1053, 2620, 1050, 2618,
-     2620, 2623, 2623, 2623, 2625, 2625, 2625, 2626, 2626, 2626,
-
-     1049, 2626, 1048, 1045, 2626, 2629, 2629, 2629, 1041, 2623,
-     1034, 1033, 2625, 2632, 2632, 2632, 2633, 2633, 2633, 1029,
-     2634, 2634, 2634, 2629, 2634, 1028, 1027, 2634, 1024, 1023,
-     2632, 1022, 1019, 2633, 2635, 2635, 2635, 2637, 2637, 2637,
-     1012, 2637, 1011, 1010, 2637, 2640, 2640, 2640, 2642, 2642,
-     2642, 1009, 2635, 2641, 2641, 2641, 2625, 2641, 1008, 1007,
-     2641, 1006, 2640, 1005, 1004, 2642, 2643, 2643, 2643, 1003,
-     2643,  999,  995, 2643, 2644, 2644, 2644,  972, 2644,  969,
-      966, 2644, 2647, 2647, 2647, 2648, 2648, 2648, 2649, 2649,
-     2649, 2652, 2652, 2652, 2653, 2653, 2653,  965,  958, 2647,
-
-      957,  955, 2648,  954,  953, 2649, 2654, 2654, 2654, 2652,
-     2665, 2665, 2665, 2682, 2682, 2682, 2683, 2683, 2683, 2687,
-     2687, 2687,  952, 2654, 2690, 2690, 2690,  951, 2665, 2691,
-     2691, 2691,  950, 2691,  949,  948, 2691, 2692, 2692, 2692,
-      947, 2690,  946, 2647,  945, 2693, 2693, 2693, 2696, 2696,
-     2696, 2697, 2697, 2697,  944, 2692,  942, 2698, 2698, 2698,
-      941, 2698, 2652, 2693, 2698, 2696,  940,  939, 2697,  938,
-     2665, 2699, 2699, 2699, 2701, 2701, 2701,  937, 2701,  936,
-      935, 2701, 2711, 2711, 2711, 2712, 2712, 2712, 2699,  934,
-     2713, 2713, 2713,  932, 2713,  931, 2693, 2713,  930, 2711,
-
-      929,  928, 2712,  927, 2692, 2714, 2714, 2714,  926, 2714,
-      925,  924, 2714, 2717, 2717, 2717, 2720, 2720, 2720, 2722,
-     2722, 2722,  923, 2722,  919,  915, 2722,  914, 2711,  913,
-      912, 2717,  911, 2720, 2731, 2731, 2731, 2733, 2733, 2733,
-     2734, 2734, 2734,  907, 2734,  905,  904, 2734,  903, 2735,
-     2735, 2735, 2731, 2735, 2733,  902, 2735, 2738, 2738, 2738,
-      901, 2738,  900,  897, 2738, 2741, 2741, 2741,  896, 2741,
-      894,  892, 2741, 2750, 2750, 2750, 2751, 2751, 2751, 2752,
-     2752, 2752,  888, 2752,  887,  886, 2752, 2753, 2753, 2753,
-     2750,  884,  881, 2751, 2754, 2754, 2754,  880, 2754,  878,
-
-      877, 2754,  874,  872, 2753, 2755, 2755, 2755, 2756, 2756,
-     2756, 2757, 2757, 2757, 2758, 2758, 2758, 2759, 2759, 2759,
-      869,  868, 2755,  867,  866, 2756, 2771, 2771, 2771, 2757,
-     2774, 2774, 2774, 2750, 2759, 2760, 2760, 2760,  863, 2760,
-      862,  861, 2760,  860, 2771,  859,  858, 2774, 2774, 2788,
-     2788, 2788, 2789, 2789, 2789, 2792, 2792, 2792, 2793, 2793,
-     2793, 2795, 2795, 2795,  857, 2795,  855,  852, 2795, 2798,
-     2798, 2798,  851, 2757, 2799, 2799, 2799, 2771, 2802, 2802,
-     2802, 2803, 2803, 2803,  847, 2803,  846, 2798, 2803, 2804,
-     2804, 2804, 2799, 2804,  845, 2802, 2804, 2807, 2807, 2807,
-
-     2808, 2808, 2808,  844, 2808,  843,  842, 2808, 2817, 2817,
-     2817, 2818, 2818, 2818, 2807, 2818,  841,  833, 2818, 2820,
-     2820, 2820,  832, 2820,  829, 2817, 2820, 2824, 2824, 2824,
-     2825, 2825, 2825,  828, 2825, 2798,  827, 2825, 2833, 2833,
-     2833, 2836, 2836, 2836, 2824, 2836,  826,  825, 2836, 2851,
-     2851, 2851,  823, 2852, 2852, 2852, 2833, 2852,  822,  821,
-     2852, 2855, 2855, 2855,  818, 2855, 2851,  817, 2855, 2858,
-     2858, 2858, 2859, 2859, 2859,  816, 2859,  813,  812, 2859,
-     2860, 2860, 2860, 2861, 2861, 2861, 2858, 2861,  811,  808,
-     2861, 2862, 2862, 2862, 2863, 2863, 2863, 2860, 2863,  807,
-
-      803, 2863, 2874, 2874, 2874, 2876, 2876, 2876,  801, 2862,
-     2877, 2877, 2877,  798, 2878, 2878, 2878,  797, 2878,  796,
-     2874, 2878, 2876, 2876, 2891, 2891, 2891, 2877, 2877, 2892,
-     2892, 2892, 2878, 2893, 2893, 2893, 2894, 2894, 2894, 2895,
-     2895, 2895, 2862, 2896, 2896, 2896, 2901, 2901, 2901,  795,
-      793, 2874, 2902, 2902, 2902, 2906, 2906, 2906,  790, 2906,
-      789,  788, 2906,  785, 2901, 2909, 2909, 2909,  782, 2909,
-     2902,  778, 2909, 2912, 2912, 2912, 2920, 2920, 2920,  777,
-     2920,  776,  775, 2920, 2924, 2924, 2924, 2925, 2925, 2925,
-     2912, 2925,  772,  769, 2925,  768,  765, 2901, 2928, 2928,
-
-     2928, 2924, 2948, 2948, 2948, 2949, 2949, 2949,  761, 2949,
-      760,  759, 2949,  758,  757, 2928, 2954, 2954, 2954, 2948,
-     2954,  756,  755, 2954, 2957, 2957, 2957,  754, 2957,  753,
-      752, 2957, 2960, 2960, 2960, 2969, 2969, 2969, 2971, 2971,
-     2971, 2972, 2972, 2972,  751, 2972,  750,  748, 2972,  746,
-     2960,  745,  742, 2969,  741, 2971, 2971,  740,  739, 2972,
-     2973, 2973, 2973,  738, 2973,  737,  732, 2973, 2984, 2984,
-     2984, 2985, 2985, 2985, 2986, 2986, 2986,  731, 2973, 2987,
-     2987, 2987, 2992, 2992, 2992, 2996, 2996, 2996,  730, 2996,
-      727,  726, 2996,  725, 2995, 2995, 2995, 2997, 2997, 2997,
-
-     2992, 2969, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
-     2974, 2995,  724, 2974, 2997, 3005, 3005, 3005, 2974, 2974,
-     2974, 2974, 2974, 3006, 3006, 3006,  721, 3006,  720,  718,
-     3006,  715, 3005, 3008, 3008, 3008,  714, 3008,  711,  710,
-     3008, 3007, 3007, 3007, 3033, 3033, 3033, 2974, 2974, 2975,
-     2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 3007,  709,
-     2975,  708, 3033,  707,  706, 2975, 2975, 2975, 2975, 2975,
-     3026, 3026, 3026,  698, 3026,  697,  696, 3026, 3041, 3041,
-     3041, 3043, 3043, 3043,  693, 3043,  692,  691, 3043,  690,
-      687, 3058, 3058, 3058, 2975, 2975, 3041,  685,  684, 3043,
-
-     3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3058,
-      680, 3046, 3065, 3065, 3065,  679, 3046, 3046, 3046, 3046,
-     3046, 3062, 3062, 3062,  678, 3062,  677,  674, 3062, 3065,
-     3066, 3066, 3066,  673, 3066,  672,  671, 3066, 3105, 3105,
-     3105, 3113, 3113, 3113,  667, 3046, 3046, 3047, 3047, 3047,
-     3047, 3047, 3047, 3047, 3047, 3047, 3105,  666, 3047, 3113,
-     3113,  665,  664, 3047, 3047, 3047, 3047, 3047, 3072, 3072,
-     3072,  658, 3072,  657,  655, 3072, 3075, 3075, 3075,  649,
-     3075,  648,  647, 3075, 3124, 3124, 3124, 3125, 3125, 3125,
-      643,  640, 3047, 3047,  638, 3130, 3130, 3130,  637, 3130,
-
-      636, 3124, 3130,  632, 3125, 3135, 3135, 3135, 3140, 3140,
-     3140, 3153, 3153, 3153, 3157, 3157, 3157, 3166, 3166, 3166,
-      628,  624, 3135,  623,  622, 3140, 3167, 3167, 3167, 3153,
-     3167,  621, 3157, 3167, 3166, 3168, 3168, 3168, 3169, 3169,
-     3169,  617, 3169,  613,  610, 3169, 3178, 3178, 3178, 3179,
-     3179, 3179, 3168, 3179,  609,  608, 3179, 3186, 3186, 3186,
-     3187, 3187, 3187, 3178, 3187, 3157,  607, 3187, 3194, 3194,
-     3194, 3202, 3202, 3202, 3186, 3202,  603,  597, 3202,  596,
-     3205, 3205, 3205,  592, 3205,  584, 3194, 3205, 3216, 3216,
-     3216,  580, 3216,  573,  571, 3216, 3225, 3225, 3225,  570,
-
-     3225,  566,  560, 3225,  559, 3194, 3348, 3348, 3348, 3359,
-     3359, 3359,  555, 3359,  551,  547, 3359, 3462, 3462, 3462,
-     3463, 3463, 3463,  546, 3348,  545,  544, 3359,  543,  539,
-      535,  528,  524,  517,  516, 3462,  515,  514, 3463, 3466,
-     3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3467, 3467,
-     3467, 3467, 3467, 3467, 3467, 3467, 3467, 3468, 3468, 3468,
-     3468, 3468, 3468, 3468, 3468, 3468, 3469, 3469, 3469, 3469,
-     3469, 3469, 3469, 3469, 3469, 3470, 3470, 3470, 3470, 3470,
-     3470, 3470, 3470, 3470, 3471, 3471, 3471, 3471, 3471, 3471,
-     3471, 3471, 3471, 3472, 3472, 3472, 3472, 3472, 3472, 3472,
-
-     3472, 3472, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473,
-     3473, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474,
-     3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3476,
-     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3477, 3477,
-     3477, 3477, 3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478,
-     3478, 3478, 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479,
-     3479, 3479, 3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480,
-     3480, 3480, 3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481,
-     3481, 3481, 3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
-     3482, 3482, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
-
-     3483, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
-     3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486,
-     3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487,
-     3487, 3487, 3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488,
-     3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489,
-     3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490,
-     3490, 3490, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491,
-     3491, 3491, 3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
-     3492, 3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
-     3493, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
-
-     3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496,
-     3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497,
-     3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498,
-     3498, 3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499,
-     3499, 3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500,
-     3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501,
-     3501, 3501, 3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
-     3502, 3502, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
-     3503, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
-     3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506,
-
-     3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507,
-     3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508,
-     3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509,
-     3509, 3509, 3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510,
-     3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511,
-     3511, 3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
-     3512, 3512, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
-     3513, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514,
-     3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516,
-     3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517,
-
-     3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518,
-     3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519,
-     3519, 3519, 3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520,
-     3520, 3520, 3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521,
-     3521, 3521, 3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
-     3522, 3522, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
-     3523, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
-     3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526,
-     3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527,
-     3527, 3527, 3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528,
-
-     3528, 3528, 3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529,
-     3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530,  513,  512,
-      511, 3530, 3531, 3531, 3531,  507,  501,  500, 3531, 3532,
-     3532, 3532,  496,  490,  489, 3532, 3533, 3533, 3533,  485,
-      479,  478, 3533, 3534, 3534, 3534,  474,  468,  467, 3534,
-     3535, 3535, 3535,  463,  459,  455, 3535, 3536, 3536, 3536,
-      454,  453,  449, 3536, 3537, 3537, 3537,  445,  441,  437,
-     3537, 3538, 3538, 3538,  431,  430,  429, 3538, 3539, 3539,
-     3539,  425,  421,  417, 3539, 3540, 3540, 3540,  415,  414,
-      413, 3540, 3541, 3541, 3541,  409,  403,  399, 3541, 3542,
-
-     3542, 3542,  395,  392,  388, 3542, 3543, 3543, 3543,  384,
-      381,  376, 3543, 3544, 3544, 3544,  375,  373,  369, 3544,
-     3545, 3545, 3545,  363,  362,  360, 3545, 3546, 3546, 3546,
-      359,  358,  354, 3546, 3547, 3547, 3547,  347,  346,  342,
-     3547, 3548, 3548, 3548,  335,  334,  333, 3548, 3549, 3549,
-     3549,  329,  323,  322, 3549, 3550, 3550, 3550,  321,  317,
-      311, 3550, 3551, 3551, 3551,  307,  298,  297, 3551, 3552,
-     3552, 3552,  293,  289,  285, 3552, 3553, 3553, 3553,  281,
-      280,  276, 3553, 3554, 3554, 3554,  273,  272,  271, 3554,
-     3555, 3555, 3555,  265,  264,  262, 3555, 3556, 3556, 3556,
-
-      259,  247,    0, 3556, 3557, 3557, 3557,    0,    0,    0,
-     3557, 3558, 3558, 3558,    0,    0,    0, 3558, 3559, 3559,
-     3559, 3559, 3559, 3559, 3559,    0, 3559, 3560, 3560, 3560,
-        0,    0,    0, 3560, 3561,    0,    0,    0, 3561, 3562,
-     3562, 3562,    0,    0,    0, 3562, 3563,    0,    0,    0,
-     3563, 3564, 3564, 3564,    0,    0,    0, 3564, 3565,    0,
-        0,    0, 3565, 3566, 3566, 3566,    0,    0,    0, 3566,
-     3567,    0,    0,    0, 3567, 3568, 3568, 3568,    0,    0,
-        0, 3568, 3569,    0,    0,    0, 3569, 3570, 3570, 3570,
-        0,    0,    0, 3570, 3571,    0,    0,    0, 3571, 3572,
-
-     3572, 3572,    0,    0,    0, 3572, 3573,    0,    0,    0,
-     3573, 3574, 3574, 3574,    0,    0,    0, 3574, 3575,    0,
-        0,    0, 3575, 3576, 3576, 3576,    0,    0,    0, 3576,
-     3577,    0,    0,    0, 3577, 3578, 3578, 3578,    0,    0,
-        0, 3578, 3579,    0,    0,    0, 3579, 3580, 3580, 3580,
-        0,    0,    0, 3580, 3581,    0,    0,    0, 3581, 3582,
-     3582, 3582,    0,    0,    0, 3582, 3583,    0,    0,    0,
-     3583, 3584, 3584, 3584,    0,    0,    0, 3584, 3585,    0,
-        0,    0, 3585, 3586, 3586, 3586,    0,    0,    0, 3586,
-     3587,    0,    0,    0, 3587, 3588, 3588, 3588,    0,    0,
-
-        0, 3588, 3589,    0,    0,    0, 3589, 3590, 3590, 3590,
-        0,    0,    0, 3590, 3591,    0,    0,    0, 3591, 3592,
-     3592, 3592,    0,    0,    0, 3592, 3593,    0,    0,    0,
-     3593, 3594, 3594, 3594,    0,    0,    0, 3594, 3595,    0,
-        0,    0, 3595, 3596, 3596, 3596,    0,    0,    0, 3596,
-     3597,    0,    0,    0, 3597, 3598, 3598, 3598,    0,    0,
-        0, 3598, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
-        0,    0,    0, 3600, 3601,    0,    0,    0, 3601, 3602,
-     3602, 3602,    0,    0,    0, 3602, 3603,    0,    0,    0,
-     3603, 3604, 3604, 3604,    0,    0,    0, 3604, 3605,    0,
-
-        0,    0, 3605, 3606, 3606, 3606,    0,    0,    0, 3606,
-     3607,    0,    0,    0, 3607, 3608, 3608, 3608,    0,    0,
-        0, 3608, 3609,    0,    0,    0, 3609, 3610, 3610, 3610,
-        0,    0,    0, 3610, 3611,    0,    0,    0, 3611, 3612,
-     3612, 3612,    0,    0,    0, 3612, 3613,    0,    0,    0,
-     3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615,    0,
-        0,    0, 3615, 3616, 3616, 3616,    0,    0,    0, 3616,
-     3617,    0,    0,    0, 3617, 3618, 3618, 3618, 3618, 3618,
-     3618, 3618, 3618, 3618, 3619,    0,    0,    0,    0, 3619,
-     3620, 3620, 3620,    0,    0,    0, 3620, 3621, 3621, 3621,
-
-     3621,    0,    0, 3621, 3621, 3622, 3622, 3622, 3622,    0,
-     3622,    0, 3622, 3623, 3623, 3623, 3623,    0,    0, 3623,
-     3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625, 3625,
-     3625, 3625,    0,    0, 3625, 3625, 3626, 3626, 3626,    0,
-        0,    0, 3626, 3627, 3627, 3627, 3627,    0,    0, 3627,
-     3627, 3628, 3628, 3628, 3628,    0, 3628,    0, 3628, 3629,
-     3629, 3629, 3629,    0,    0, 3629, 3629, 3630, 3630, 3630,
-     3630,    0, 3630,    0, 3630, 3631, 3631, 3631, 3631,    0,
-        0, 3631, 3631, 3632, 3632, 3632, 3632,    0, 3632,    0,
-     3632, 3633, 3633, 3633, 3633,    0,    0, 3633, 3633, 3634,
-
-     3634, 3634,    0,    0,    0, 3634, 3635, 3635, 3635, 3635,
-        0,    0, 3635, 3635, 3636, 3636, 3636, 3636,    0,    0,
-     3636, 3636, 3637, 3637, 3637,    0,    0,    0, 3637, 3638,
-     3638, 3638, 3638,    0,    0, 3638, 3638, 3639, 3639, 3639,
-        0,    0,    0, 3639, 3640, 3640, 3640, 3640,    0,    0,
-     3640, 3640, 3641, 3641, 3641,    0,    0,    0, 3641, 3642,
-     3642, 3642, 3642,    0,    0, 3642, 3642, 3643, 3643, 3643,
-        0,    0,    0, 3643, 3644, 3644, 3644, 3644,    0,    0,
-     3644, 3644, 3645, 3645, 3645,    0,    0,    0, 3645, 3646,
-     3646, 3646, 3646,    0,    0, 3646, 3646, 3647, 3647, 3647,
-
-        0,    0,    0, 3647, 3648, 3648, 3648, 3648,    0,    0,
-     3648, 3648, 3649, 3649, 3649,    0,    0,    0, 3649, 3650,
-     3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651, 3651,
-        0,    0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0,
-     3652, 3652, 3653, 3653, 3653,    0,    0,    0, 3653, 3654,
-     3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,
-        0,    0,    0, 3655, 3656, 3656, 3656, 3656,    0,    0,
-     3656, 3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658,
-     3658, 3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659,
-        0,    0,    0, 3659, 3660, 3660, 3660, 3660,    0,    0,
-
-     3660, 3660, 3661, 3661, 3661,    0,    0,    0, 3661, 3662,
-     3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,
-        0,    0,    0, 3663, 3664, 3664, 3664, 3664,    0,    0,
-     3664, 3664, 3665, 3665, 3665, 3665,    0, 3665,    0, 3665,
-     3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667,
-     3667,    0,    0,    0, 3667, 3668, 3668, 3668, 3668,    0,
-        0, 3668, 3668, 3669, 3669, 3669,    0,    0,    0, 3669,
-     3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671, 3671,
-     3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,    0,
-        0, 3672, 3672, 3673, 3673, 3673,    0,    0,    0, 3673,
-
-     3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675, 3675,
-     3675,    0,    0,    0, 3675, 3676, 3676, 3676, 3676,    0,
-        0, 3676, 3676, 3677, 3677, 3677, 3677, 3677, 3677, 3677,
-     3677, 3677, 3678,    0, 3678,    0,    0, 3678, 3679, 3679,
-     3679,    0,    0,    0, 3679, 3680, 3680, 3680, 3680,    0,
-        0, 3680, 3680, 3681, 3681, 3681,    0,    0,    0, 3681,
-     3682, 3682, 3682, 3682,    0,    0, 3682, 3682, 3683, 3683,
-     3683,    0,    0,    0, 3683, 3684, 3684, 3684, 3684,    0,
-        0, 3684, 3684, 3685, 3685, 3685,    0,    0,    0, 3685,
-     3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687, 3687,
-
-     3687,    0,    0,    0, 3687, 3688, 3688, 3688, 3688,    0,
-        0, 3688, 3688, 3689, 3689, 3689, 3689,    0,    0, 3689,
-     3689, 3690, 3690, 3690,    0,    0,    0, 3690, 3691, 3691,
-     3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692,    0,
-        0,    0, 3692, 3693, 3693, 3693, 3693,    0,    0, 3693,
-     3693, 3694, 3694, 3694, 3694,    0,    0, 3694, 3694, 3695,
-     3695, 3695, 3695,    0, 3695,    0, 3695, 3696, 3696, 3696,
-     3696,    0,    0, 3696, 3696, 3697, 3697, 3697,    0,    0,
-        0, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698,
-     3699, 3699, 3699, 3699,    0, 3699,    0, 3699, 3700, 3700,
-
-     3700, 3700,    0,    0, 3700, 3700, 3701, 3701, 3701, 3701,
-        0, 3701,    0, 3701, 3702, 3702, 3702, 3702,    0,    0,
-     3702, 3702, 3703, 3703, 3703,    0,    0,    0, 3703, 3704,
-     3704, 3704, 3704,    0,    0, 3704, 3704, 3705, 3705, 3705,
-        0,    0,    0, 3705, 3706, 3706, 3706, 3706,    0,    0,
-     3706, 3706, 3707, 3707, 3707,    0,    0,    0, 3707, 3708,
-     3708, 3708, 3708,    0,    0, 3708, 3708, 3709, 3709, 3709,
-     3709,    0, 3709,    0, 3709, 3710, 3710, 3710, 3710,    0,
-        0, 3710, 3710, 3711, 3711, 3711, 3711,    0, 3711,    0,
-     3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712, 3713,
-
-     3713, 3713,    0,    0,    0, 3713, 3714, 3714, 3714, 3714,
-        0,    0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0,
-     3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
-     3717, 3717,    0,    0,    0, 3717, 3718, 3718, 3718, 3718,
-        0,    0, 3718, 3718, 3719, 3719, 3719,    0,    0,    0,
-     3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721,
-     3721, 3721,    0,    0,    0, 3721, 3722, 3722, 3722, 3722,
-        0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,    0,
-     3723, 3724, 3724, 3724, 3724,    0,    0, 3724, 3724, 3725,
-     3725, 3725,    0,    0,    0, 3725, 3726, 3726, 3726, 3726,
-
-        0,    0, 3726, 3726, 3727, 3727, 3727,    0,    0,    0,
-     3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728, 3729,
-     3729, 3729,    0,    0,    0, 3729, 3730, 3730, 3730, 3730,
-        0,    0, 3730, 3730, 3731, 3731, 3731, 3731,    0, 3731,
-        0, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732, 3732,
-     3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734, 3734,
-     3734,    0,    0, 3734, 3734, 3735, 3735, 3735, 3735, 3735,
-     3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736, 3736, 3736,
-     3736, 3736, 3736, 3737, 3737, 3737,    0,    0,    0, 3737,
-     3738, 3738, 3738,    0,    0,    0, 3738, 3739, 3739, 3739,
-
-     3739,    0,    0, 3739, 3739, 3740, 3740, 3740, 3740,    0,
-     3740,    0, 3740, 3741, 3741, 3741, 3741,    0,    0, 3741,
-     3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743, 3743,
-     3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,    0,
-        0,    0, 3744, 3745, 3745, 3745, 3745,    0,    0, 3745,
-     3745, 3746, 3746, 3746, 3746,    0,    0, 3746, 3746, 3747,
-     3747, 3747, 3747,    0, 3747,    0, 3747, 3748, 3748, 3748,
-     3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,    0,
-        0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750,
-     3751, 3751, 3751, 3751,    0,    0, 3751, 3751, 3752, 3752,
-
-     3752, 3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,
-        0,    0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754,
-     3754, 3755, 3755, 3755, 3755,    0,    0, 3755, 3755, 3756,
-     3756, 3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757,
-        0,    0,    0, 3757, 3758, 3758, 3758, 3758,    0,    0,
-     3758, 3758, 3759, 3759, 3759,    0,    0,    0, 3759, 3760,
-     3760, 3760, 3760,    0,    0, 3760, 3760, 3761, 3761, 3761,
-     3761,    0, 3761,    0, 3761, 3762, 3762, 3762, 3762,    0,
-        0, 3762, 3762, 3763, 3763, 3763,    0,    0,    0, 3763,
-     3764, 3764, 3764, 3764,    0,    0, 3764, 3764, 3765, 3765,
-
-     3765,    0,    0,    0, 3765, 3766, 3766, 3766, 3766,    0,
-        0, 3766, 3766, 3767, 3767, 3767,    0,    0,    0, 3767,
-     3768, 3768, 3768, 3768,    0,    0, 3768, 3768, 3769, 3769,
-     3769,    0,    0,    0, 3769, 3770, 3770, 3770, 3770,    0,
-        0, 3770, 3770, 3771, 3771, 3771,    0,    0,    0, 3771,
-     3772, 3772, 3772, 3772,    0,    0, 3772, 3772, 3773, 3773,
-     3773, 3773,    0, 3773,    0, 3773, 3774, 3774, 3774, 3774,
-        0,    0, 3774, 3774, 3775, 3775, 3775,    0,    0,    0,
-     3775, 3776, 3776, 3776, 3776,    0,    0, 3776, 3776, 3777,
-     3777, 3777,    0,    0,    0, 3777, 3778, 3778, 3778, 3778,
-
-        0,    0, 3778, 3778, 3779, 3779, 3779,    0,    0,    0,
-     3779, 3780, 3780, 3780, 3780,    0,    0, 3780, 3780, 3781,
-     3781, 3781,    0,    0,    0, 3781, 3782, 3782, 3782, 3782,
-        0,    0, 3782, 3782, 3783, 3783, 3783,    0,    0,    0,
-     3783, 3784, 3784, 3784, 3784,    0,    0, 3784, 3784, 3785,
-     3785, 3785,    0,    0,    0, 3785, 3786, 3786, 3786, 3786,
-        0,    0, 3786, 3786, 3787, 3787, 3787,    0,    0,    0,
-     3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
-     3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3790, 3790,
-     3790, 3790, 3790, 3790, 3790, 3790, 3790, 3791, 3791, 3791,
-
-        0,    0,    0, 3791, 3792, 3792, 3792, 3792,    0, 3792,
-        0, 3792, 3793, 3793, 3793, 3793,    0,    0, 3793, 3793,
-     3794, 3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795,
-     3795,    0,    0,    0, 3795, 3796, 3796, 3796, 3796,    0,
-        0, 3796, 3796, 3797, 3797, 3797, 3797,    0, 3797,    0,
-     3797, 3798, 3798, 3798, 3798,    0,    0, 3798, 3798, 3799,
-     3799, 3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800,
-     3800,    0, 3800,    0, 3800, 3801, 3801, 3801, 3801,    0,
-        0, 3801, 3801, 3802, 3802, 3802,    0,    0,    0, 3802,
-     3803, 3803, 3803, 3803,    0,    0, 3803, 3803, 3804, 3804,
-
-     3804, 3804,    0,    0, 3804, 3804, 3805, 3805, 3805,    0,
-        0,    0, 3805, 3806, 3806, 3806, 3806,    0,    0, 3806,
-     3806, 3807, 3807, 3807, 3807,    0,    0, 3807, 3807, 3808,
-     3808, 3808, 3808,    0,    0, 3808, 3808, 3809, 3809, 3809,
-        0,    0,    0, 3809, 3810, 3810, 3810, 3810,    0,    0,
-     3810, 3810, 3811, 3811, 3811,    0,    0,    0, 3811, 3812,
-     3812, 3812, 3812,    0,    0, 3812, 3812, 3813, 3813, 3813,
-     3813,    0,    0, 3813, 3813, 3814, 3814, 3814,    0,    0,
-        0, 3814, 3815, 3815, 3815, 3815,    0,    0, 3815, 3815,
-     3816, 3816, 3816, 3816,    0, 3816,    0, 3816, 3817, 3817,
-
-     3817, 3817,    0,    0, 3817, 3817, 3818, 3818, 3818,    0,
-        0,    0, 3818, 3819, 3819, 3819, 3819,    0,    0, 3819,
-     3819, 3820, 3820, 3820,    0,    0,    0, 3820, 3821, 3821,
-     3821, 3821,    0,    0, 3821, 3821, 3822, 3822, 3822,    0,
-        0,    0, 3822, 3823, 3823, 3823, 3823,    0,    0, 3823,
-     3823, 3824, 3824, 3824, 3824,    0,    0, 3824, 3824, 3825,
-     3825, 3825,    0,    0,    0, 3825, 3826, 3826, 3826, 3826,
-        0,    0, 3826, 3826, 3827, 3827, 3827,    0,    0,    0,
-     3827, 3828, 3828, 3828, 3828,    0,    0, 3828, 3828, 3829,
-     3829, 3829,    0,    0,    0, 3829, 3830, 3830, 3830, 3830,
-
-        0,    0, 3830, 3830, 3831, 3831, 3831, 3831,    0, 3831,
-        0, 3831, 3832, 3832, 3832, 3832,    0,    0, 3832, 3832,
-     3833, 3833, 3833,    0,    0,    0, 3833, 3834, 3834, 3834,
-     3834,    0,    0, 3834, 3834, 3835, 3835, 3835,    0,    0,
-        0, 3835, 3836, 3836, 3836, 3836,    0,    0, 3836, 3836,
-     3837, 3837, 3837,    0,    0,    0, 3837, 3838, 3838, 3838,
-     3838,    0,    0, 3838, 3838, 3839, 3839, 3839, 3839, 3839,
-     3839, 3839, 3839, 3839, 3840, 3840, 3840, 3840, 3840, 3840,
-     3840, 3840, 3840, 3841, 3841, 3841, 3841,    0, 3841,    0,
-     3841, 3842, 3842, 3842,    0,    0,    0, 3842, 3843, 3843,
-
-     3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844, 3844,
-        0,    0, 3844, 3844, 3845, 3845, 3845,    0,    0,    0,
-     3845, 3846, 3846, 3846, 3846,    0,    0, 3846, 3846, 3847,
+      242,  242,  242,  242,  242, 2544,  242,  242,  242,  242,
+      242, 2545, 1134, 1142, 1142, 1142, 1147, 1147, 1147, 1148,
+     1148, 1148, 1165, 1165, 1165, 1166, 1166, 1166, 1168, 1168,
+     1168, 1142, 2546, 2547, 1147,  242,  242, 1148, 2548, 2553,
+     1165, 2554,  242, 1166, 2555, 2551, 1168, 2556,  242, 1208,
+     1208, 1208, 1209, 1209, 1209, 2557, 1209,  242,  284, 1209,
+     2558, 1212, 1212, 1212, 2559,  284, 1208, 2560, 2561, 1213,
+     1213, 1213, 2550, 1213,  284,  284, 1213, 1142, 1212, 1215,
+
+     1215, 1215, 2551, 1148, 1234, 1234, 1234, 1216, 1216, 1216,
+     1238, 1238, 1238, 1218, 1218, 1218, 2562, 1215, 1221, 1221,
+     1221, 1234,  284,  284,  284, 1216, 2563, 1238,  284,  284,
+      284, 1218, 2550,  284,  284, 2564, 1221,  284, 2552,  284,
+      284,  284,  286, 1222, 1222, 1222, 1224, 1224, 1224, 1226,
+     1226, 1226, 2565, 1226, 2566, 2569, 1226, 2570,  286,  286,
+     2571, 1222, 2572, 2574, 1224, 1230, 1230, 1230, 1244, 1244,
+     1244, 1231, 1231, 1231, 1246, 1246, 1246, 1218, 1233, 1233,
+     1233, 2552, 2575, 1230, 2586, 1244,  286,  286,  286, 1231,
+     2587, 1246,  286,  286,  286, 2588, 1233,  286,  286, 1224,
+
+     2590,  286, 2594,  286,  286,  286, 1235, 1235, 1235, 2597,
+     1235, 2599, 2601, 1235, 1239, 1239, 1239, 2602, 1239, 2612,
+     2613, 1239, 1240, 1240, 1240, 2614, 2598, 1233, 1241, 1241,
+     1241, 1243, 1243, 1243, 1245, 1245, 1245, 2598, 1245, 2630,
+     1240, 1245, 2649, 1247, 1247, 1247, 1241, 1247, 2650, 1243,
+     1247, 1248, 1248, 1248, 1249, 1249, 1249, 1251, 1251, 1251,
+     1252, 1252, 1252, 2600, 1252, 2654, 2655, 1252, 2656, 1248,
+     2657, 2658, 1249, 2659, 2600, 1251, 1255, 1255, 1255, 2660,
+     1255, 2661, 2662, 1255, 1258, 1258, 1258, 1259, 1259, 1259,
+     2663, 1259, 2668, 1243, 1259, 1264, 1264, 1264, 1265, 1265,
+
+     1265, 1258, 1267, 1267, 1267, 1272, 1272, 1272, 2669, 1272,
+     2670, 2665, 1272, 1264, 2671, 2672, 1265, 2644, 2666, 1251,
+     1267, 1275, 1275, 1275, 1276, 1276, 1276, 2644, 1276, 2673,
+     2644, 1276, 1279, 1279, 1279, 1280, 1280, 1280, 1275, 1280,
+     2665, 2674, 1280, 1291, 1291, 1291, 1292, 1292, 1292, 1279,
+     1267, 1294, 1294, 1294, 2675, 1295, 1295, 1295, 2676, 1295,
+     2666, 1291, 1295, 2677, 1292, 1298, 1298, 1298, 2678, 1294,
+     1299, 1299, 1299, 1301, 1301, 1301, 1302, 1302, 1302, 1303,
+     1303, 1303, 2679, 1298, 1304, 1304, 1304, 2680, 1299, 2667,
+     2683, 1301, 2684, 1302, 1306, 1306, 1306, 1303, 1309, 1309,
+
+     1309, 2620, 1304, 1310, 1310, 1310, 2685, 1310, 2687, 2688,
+     1310, 2620, 1306, 2693, 2694, 1309, 2699, 2620, 1294, 1316,
+     1316, 1316, 1317, 1317, 1317, 1319, 1319, 1319, 1322, 1322,
+     1322, 2667, 2703, 1301, 1323, 1323, 1323, 1316, 1323, 2645,
+     1317, 1323, 2704, 1319, 2705, 1322, 1326, 1326, 1326, 2645,
+     1326, 2706, 2645, 1326, 1329, 1329, 1329, 1330, 1330, 1330,
+     2707, 1306, 1332, 1332, 1332, 1333, 1333, 1333, 1334, 1334,
+     1334, 2708, 1329, 2709, 2718, 1330, 1335, 1335, 1335, 2720,
+     1332, 2724, 1333, 1337, 1337, 1337, 1334, 1345, 1345, 1345,
+     1319, 1339, 1339, 1339, 1335, 1339, 2725, 2726, 1339, 2727,
+
+     2728, 1337, 1346, 1346, 1346, 1345, 1348, 1348, 1348, 1350,
+     1350, 1350, 2729, 1350, 2731, 2621, 1350, 1353, 1353, 1353,
+     1346, 1354, 1354, 1354, 1348, 2621, 2743, 1332, 1356, 1356,
+     1356, 2621, 1337, 2744, 2746, 1353, 1357, 1357, 1357, 1354,
+     1357, 2747, 2760, 1357, 2761, 2762, 1356, 1361, 1361, 1361,
+     1362, 1362, 1362, 1364, 1364, 1364, 1365, 1365, 1365, 1366,
+     1366, 1366, 1367, 1367, 1367, 1361, 1348, 2763, 1362, 2765,
+     2766, 1364, 2767, 1365, 2738, 2768, 1366, 1368, 1368, 1368,
+     1367, 1370, 1370, 1370, 1371, 1371, 1371, 2738, 1356, 2739,
+     1372, 1372, 1372, 2772, 2774, 1368, 1373, 1373, 1373, 1370,
+
+     2775, 1371, 2739, 1364, 2776, 2777, 1366, 1372, 1374, 1374,
+     1374, 1376, 1376, 1376, 1373, 1381, 1381, 1381, 1372, 1381,
+     2745, 2771, 1381, 1384, 1384, 1384, 1374, 2778, 2772, 1376,
+     1385, 1385, 1385, 2745, 1385, 2779, 2780, 1385, 2781, 2782,
+     1384, 1388, 1388, 1388, 1389, 1389, 1389, 2748, 1370, 1391,
+     1391, 1391, 1394, 1394, 1394, 1395, 1395, 1395, 2783, 1388,
+     2748, 2784, 1389, 1397, 1397, 1397, 2785, 1391, 2786, 2771,
+     1394, 2789, 2790, 1395, 1402, 1402, 1402, 1376, 1406, 1406,
+     1406, 1397, 2793, 1407, 1407, 1407, 1409, 1409, 1409, 2799,
+     2800, 1402, 2795, 1415, 1415, 1415, 1406, 1416, 1416, 1416,
+
+     1391, 1407, 2795, 2796, 1409, 1411, 1411, 1411, 2808, 1411,
+     1397, 1415, 1411, 2796, 2809, 1416, 1418, 1418, 1418, 1420,
+     1420, 1420, 2810, 1420, 2811, 2812, 1420, 1423, 1423, 1423,
+     2813, 1424, 1424, 1424, 1418, 1424, 2814, 2815, 1424, 1425,
+     1425, 1425, 2818, 2822, 1423, 2825, 2826, 1409, 1426, 1426,
+     1426, 1427, 1427, 1427, 2827, 1427, 1425, 2828, 1427, 1429,
+     1429, 1429, 1431, 1431, 1431, 1426, 1432, 1432, 1432, 1434,
+     1434, 1434, 1435, 1435, 1435, 2829, 1429, 1418, 2830, 2831,
+     1431, 1436, 1436, 1436, 1432, 1436, 2834, 1434, 1436, 1435,
+     1437, 1437, 1437, 1438, 1438, 1438, 2838, 1438, 2839, 2840,
+
+     1438, 1440, 1440, 1440, 1441, 1441, 1441, 1437, 1443, 1443,
+     1443, 1445, 1445, 1445, 2841, 1445, 2842, 2843, 1445, 1440,
+     2844, 2845, 1441, 1448, 1448, 1448, 1443, 2846, 2847, 1434,
+     1449, 1449, 1449, 1451, 1451, 1451, 1454, 1454, 1454, 2848,
+     1454, 1448, 2849, 1454, 1458, 1458, 1458, 2865, 1449, 2866,
+     2867, 1451, 1459, 1459, 1459, 1461, 1461, 1461, 2868, 1463,
+     1463, 1463, 1458, 1463, 2852, 2869, 1463, 1467, 1467, 1467,
+     1459, 2870, 2853, 1461, 2852, 1443, 1468, 1468, 1468, 1469,
+     1469, 1469, 2853, 2871, 1467, 1471, 1471, 1471, 1473, 1473,
+     1473, 1474, 1474, 1474, 1468, 1474, 2872, 1469, 1474, 2878,
+
+     1451, 2879, 2874, 1471, 2880, 1473, 1477, 1477, 1477, 1479,
+     1479, 1479, 1480, 1480, 1480, 2883, 1461, 1482, 1482, 1482,
+     1484, 1484, 1484, 1477, 1486, 1486, 1486, 1479, 2884, 2885,
+     1480, 1487, 1487, 1487, 2886, 1482, 2874, 1484, 1489, 1489,
+     1489, 2889, 1486, 1491, 1491, 1491, 1471, 2896, 2897, 1487,
+     1497, 1497, 1497, 1537, 1537, 1537, 1489, 1537, 2898, 2899,
+     1537, 1491, 1491, 2903, 1482, 2904, 2912, 1477, 1497, 1542,
+     1542, 1542, 2913, 1542, 2914, 2915, 1542, 1546, 1546, 1546,
+     1548, 1548, 1548, 2916, 2917, 1489, 1549, 1549, 1549, 1552,
+     1552, 1552, 1553, 1553, 1553, 1546, 1553, 1548, 2918, 1553,
+
+     2922, 1558, 1558, 1558, 1549, 1558, 2928, 1552, 1558, 1561,
+     1561, 1561, 1562, 1562, 1562, 2929, 1562, 2931, 2932, 1562,
+     2934, 1565, 1565, 1565, 2935, 1565, 2936, 1561, 1565, 1568,
+     1568, 1568, 1569, 1569, 1569, 2937, 1569, 2938, 1546, 1569,
+     1574, 1574, 1574, 1576, 1576, 1576, 1552, 1568, 1578, 1578,
+     1578, 2939, 2940, 1549, 2941, 2942, 1561, 1574, 1581, 1581,
+     1581, 1576, 1582, 1582, 1582, 1578, 1582, 2943, 2944, 1582,
+     1583, 1583, 1583, 2945, 1583, 1581, 1568, 1583, 1592, 1592,
+     1592, 1597, 1597, 1597, 1598, 1598, 1598, 1599, 1599, 1599,
+     1600, 1600, 1600, 2946, 1600, 1592, 2949, 1600, 1576, 1597,
+
+     2950, 2951, 1598, 2952, 1599, 1601, 1601, 1601, 1604, 1604,
+     1604, 1605, 1605, 1605, 2960, 1605, 2961, 2963, 1605, 2964,
+     1607, 1607, 1607, 1601, 2965, 1604, 1608, 1608, 1608, 1609,
+     1609, 1609, 1612, 1612, 1612, 2967, 1598, 1607, 1613, 1613,
+     1613, 2975, 1613, 1608, 2976, 1613, 1597, 1609, 2978, 1612,
+     1614, 1614, 1614, 1615, 1615, 1615, 1616, 1616, 1616, 2979,
+     1616, 2980, 2982, 1616, 1617, 1617, 1617, 2969, 1614, 2987,
+     1615, 2988, 1608, 1621, 1621, 1621, 1622, 1622, 1622, 1624,
+     1624, 1624, 1617, 1625, 1625, 1625, 1626, 1626, 1626, 2989,
+     1621, 1627, 1627, 1627, 1622, 1609, 2990, 1624, 2992, 2993,
+
+     1625, 1631, 1631, 1631, 1626, 1628, 1628, 1628, 1627, 1628,
+     2969, 2997, 1628, 1630, 1630, 1630, 1614, 2999, 1631, 1621,
+     3000, 3002, 1617, 1632, 1632, 1632, 3003, 1632, 3008, 3009,
+     1632, 1630, 3010, 1622, 3011, 3012, 1624, 1626, 1634, 1634,
+     1634, 1636, 1636, 1636, 1639, 1639, 1639, 3013, 1639, 3014,
+     3015, 1639, 1642, 1642, 1642, 3016, 1634, 3017, 1636, 1644,
+     1644, 1644, 1647, 1647, 1647, 1652, 1652, 1652, 3018, 1642,
+     1657, 1657, 1657, 1630, 1653, 1653, 1653, 1644, 1653, 3019,
+     1647, 1653, 1652, 1659, 1659, 1659, 3020, 3021, 1657, 1660,
+     1660, 1660, 3022, 3023, 1662, 1662, 1662, 3024, 1662, 1634,
+
+     1659, 1662, 3028, 1665, 1665, 1665, 3029, 1660, 1666, 1666,
+     1666, 3030, 1666, 3031, 3034, 1666, 1671, 1671, 1671, 1657,
+     1665, 3035, 3036, 1644, 3037, 1667, 1667, 1667, 1647, 1667,
+     3038, 3039, 1667, 1671, 1672, 1672, 1672, 3044, 1672, 3041,
+     3048, 1672, 1674, 1674, 1674, 1675, 1675, 1675, 3044, 1675,
+     3049, 1660, 1675, 3051, 1678, 1678, 1678, 3052, 1678, 3054,
+     1674, 1678, 1682, 1682, 1682, 1684, 1684, 1684, 1688, 1688,
+     1688, 1690, 1690, 1690, 1691, 1691, 1691, 1692, 1692, 1692,
+     1682, 1692, 3056, 1684, 1692, 3041, 1688, 3059, 1690, 3060,
+     3043, 1691, 1674, 1693, 1693, 1693, 1695, 1695, 1695, 1696,
+
+     1696, 1696, 3062, 1696, 3043, 3066, 1696, 1699, 1699, 1699,
+     3063, 1693, 3068, 1695, 3062, 3070, 1701, 1701, 1701, 1702,
+     1702, 1702, 3063, 1702, 3081, 1699, 1702, 3083, 1682, 3085,
+     3086, 1684, 1688, 1701, 1703, 1703, 1703, 1704, 1704, 1704,
+     1707, 1707, 1707, 1745, 1745, 1745, 1746, 1746, 1746, 3089,
+     3090, 1703, 1747, 1747, 1747, 1704, 1699, 1693, 1707, 1749,
+     1749, 1749, 1750, 1750, 1750, 1751, 1751, 1751, 1752, 1752,
+     1752, 1753, 1753, 1753, 3093, 1754, 1754, 1754, 1755, 1755,
+     1755, 1757, 1757, 1757, 3095, 1752, 1704, 3075, 1753, 3097,
+     3099, 1707, 1754, 1758, 1758, 1758, 1755, 1758, 1757, 3075,
+
+     1758, 1759, 1759, 1759, 3100, 1749, 3076, 3102, 1707, 1762,
+     1762, 1762, 3103, 1763, 1763, 1763, 1747, 3109, 3076, 1759,
+     1764, 1764, 1764, 1765, 1765, 1765, 1750, 1762, 3111, 1751,
+     1763, 1766, 1766, 1766, 1767, 1767, 1767, 1764, 3106, 1754,
+     3114, 1765, 1768, 1768, 1768, 1755, 1769, 1769, 1769, 1766,
+     3115, 1767, 3108, 3108, 1770, 1770, 1770, 1762, 1770, 1768,
+     1759, 1770, 3107, 1769, 1771, 1771, 1771, 1772, 1772, 1772,
+     1774, 1774, 1774, 1775, 1775, 1775, 3107, 1775, 3110, 3106,
+     1775, 1771, 1776, 1776, 1776, 1772, 3119, 1774, 1765, 3110,
+     1778, 1778, 1778, 3120, 1778, 3050, 1766, 1778, 3128, 1776,
+
+     1768, 1783, 1783, 1783, 1787, 1787, 1787, 1788, 1788, 1788,
+     3121, 1788, 3127, 3050, 1788, 1790, 1790, 1790, 1783, 3116,
+     3129, 1787, 1793, 1793, 1793, 3121, 3050, 1772, 1794, 1794,
+     1794, 3127, 1790, 3130, 1795, 1795, 1795, 3116, 1795, 3129,
+     1793, 1795, 1798, 1798, 1798, 3134, 1794, 1802, 1802, 1802,
+     3135, 1802, 3138, 3140, 1802, 1805, 1805, 1805, 3137, 3142,
+     1798, 1806, 1806, 1806, 1807, 1807, 1807, 3139, 1807, 3143,
+     3144, 1807, 1805, 1808, 1808, 1808, 3145, 3137, 1806, 3047,
+     1809, 1809, 1809, 1794, 1809, 3146, 3139, 1809, 1793, 3147,
+     1808, 1811, 1811, 1811, 1812, 1812, 1812, 1814, 1814, 1814,
+
+     3047, 1814, 3155, 3156, 1814, 1817, 1817, 1817, 3157, 1811,
+     1818, 1818, 1818, 3047, 1818, 3159, 3160, 1818, 1821, 1821,
+     1821, 3162, 3163, 1817, 1825, 1825, 1825, 1826, 1826, 1826,
+     3164, 1826, 3166, 3171, 1826, 3172, 1821, 1828, 1828, 1828,
+     3173, 1825, 1830, 1830, 1830, 1831, 1831, 1831, 1833, 1833,
+     1833, 1817, 1832, 1832, 1832, 1828, 1832, 3174, 3175, 1832,
+     1830, 3176, 1831, 1834, 1834, 1834, 1833, 1834, 3177, 3178,
+     1834, 1838, 1838, 1838, 1839, 1839, 1839, 3181, 1839, 3182,
+     3183, 1839, 1842, 1842, 1842, 1821, 3184, 3185, 1830, 1838,
+     1843, 1843, 1843, 1845, 1845, 1845, 1846, 1846, 1846, 1842,
+
+     1846, 3186, 3189, 1846, 3190, 3191, 1833, 3192, 1843, 3193,
+     1845, 1847, 1847, 1847, 1849, 1849, 1849, 1850, 1850, 1850,
+     3194, 1850, 3196, 3197, 1850, 1852, 1852, 1852, 1847, 3198,
+     3199, 1849, 1855, 1855, 1855, 3200, 3201, 1838, 1860, 1860,
+     1860, 3202, 1860, 1852, 3209, 1860, 1866, 1866, 1866, 3207,
+     1855, 1868, 1868, 1868, 1843, 1869, 1869, 1869, 3210, 1869,
+     3208, 3207, 1869, 3211, 1866, 1870, 1870, 1870, 1868, 1872,
+     1872, 1872, 3208, 1872, 3212, 3213, 1872, 3214, 1876, 1876,
+     1876, 3220, 1876, 1870, 1855, 1876, 1880, 1880, 1880, 1882,
+     1882, 1882, 1884, 1884, 1884, 3221, 3222, 1866, 1885, 1885,
+
+     1885, 1886, 1886, 1886, 1880, 3223, 3224, 1882, 3225, 3229,
+     1884, 1887, 1887, 1887, 3230, 1885, 3232, 3234, 1886, 1888,
+     1888, 1888, 1890, 1890, 1890, 1891, 1891, 1891, 1887, 1891,
+     3237, 3238, 1891, 3239, 1892, 1892, 1892, 1888, 1892, 1890,
+     1882, 1892, 3240, 1884, 1895, 1895, 1895, 1880, 1897, 1897,
+     1897, 3241, 1897, 3242, 3243, 1897, 1902, 1902, 1902, 1907,
+     1907, 1907, 1895, 1914, 1914, 1914, 1888, 1886, 1904, 1904,
+     1904, 3244, 1904, 3245, 1902, 1904, 1907, 1908, 1908, 1908,
+     1914, 1908, 3246, 3247, 1908, 1909, 1909, 1909, 1921, 1921,
+     1921, 1895, 1926, 1926, 1926, 1930, 1930, 1930, 1931, 1931,
+
+     1931, 3235, 3248, 1909, 1932, 1932, 1932, 1902, 1934, 1934,
+     1934, 1943, 1943, 1943, 1944, 1944, 1944, 1946, 1946, 1946,
+     1948, 1948, 1948, 1949, 1949, 1949, 3235, 1949, 3249, 3250,
+     1949, 1950, 1950, 1950, 3251, 3252, 1909, 1948, 1951, 1951,
+     1951, 3253, 1951, 3254, 3255, 1951, 3256, 3257, 1950, 1953,
+     1953, 1953, 1955, 1955, 1955, 3258, 1955, 3261, 3262, 1955,
+     1958, 1958, 1958, 1960, 1960, 1960, 3264, 1953, 1961, 1961,
+     1961, 1962, 1962, 1962, 3265, 1963, 1963, 1963, 1958, 1963,
+     1960, 3266, 1963, 1964, 1964, 1964, 1961, 3267, 1962, 1965,
+     1965, 1965, 3268, 1965, 3263, 3269, 1965, 1968, 1968, 1968,
+
+     1964, 1966, 1966, 1966, 1967, 1967, 1967, 1970, 1970, 1970,
+     3270, 1958, 3271, 3263, 1968, 1953, 1969, 1969, 1969, 1966,
+     1969, 3272, 1967, 1969, 1970, 3273, 1971, 1971, 1971, 1961,
+     1971, 3274, 3275, 1971, 1974, 1974, 1974, 1975, 1975, 1975,
+     3276, 1975, 3277, 3278, 1975, 1976, 1976, 1976, 1978, 1978,
+     1978, 1974, 1978, 3279, 3280, 1978, 1981, 1981, 1981, 3281,
+     1982, 1982, 1982, 1976, 1982, 3282, 1966, 1982, 3283, 1967,
+     1986, 1986, 1986, 1981, 1987, 1987, 1987, 3284, 1987, 3285,
+     3289, 1987, 1988, 1988, 1988, 3291, 3288, 1986, 1991, 1991,
+     1991, 3292, 1991, 3294, 3295, 1991, 1976, 3296, 3297, 1988,
+
+     1995, 1995, 1995, 1996, 1996, 1996, 3288, 1996, 3298, 3299,
+     1996, 1999, 1999, 1999, 2000, 2000, 2000, 1995, 2003, 2003,
+     2003, 2004, 2004, 2004, 3300, 2004, 3301, 3302, 2004, 1999,
+     3303, 3304, 2000, 3305, 3306, 2003, 2005, 2005, 2005, 3307,
+     2005, 3308, 3309, 2005, 2008, 2008, 2008, 3310, 2008, 3312,
+     3314, 2008, 2012, 2012, 2012, 2014, 2014, 2014, 2016, 2016,
+     2016, 3316, 1999, 2017, 2017, 2017, 3317, 2000, 3311, 3318,
+     2012, 2019, 2019, 2019, 3311, 3319, 2016, 3320, 2021, 2021,
+     2021, 2017, 2021, 3321, 3323, 2021, 3324, 3326, 2019, 2025,
+     2025, 2025, 2028, 2028, 2028, 2029, 2029, 2029, 3327, 2029,
+
+     3329, 3330, 2029, 2032, 2032, 2032, 3335, 2025, 3336, 3337,
+     2028, 3338, 3340, 2017, 3332, 3342, 2016, 2019, 2034, 2034,
+     2034, 2032, 2035, 2035, 2035, 2036, 2036, 2036, 3332, 2036,
+     3344, 3346, 2036, 2037, 2037, 2037, 2034, 3348, 3349, 2035,
+     3350, 2028, 3351, 2039, 2039, 2039, 3352, 2039, 3353, 2032,
+     2039, 2037, 2042, 2042, 2042, 2043, 2043, 2043, 3354, 2043,
+     3355, 3357, 2043, 2045, 2045, 2045, 3359, 2045, 3361, 2042,
+     2045, 2049, 2049, 2049, 2052, 2052, 2052, 2053, 2053, 2053,
+     2037, 2054, 2054, 2054, 2056, 2056, 2056, 3362, 3363, 2049,
+     3364, 2052, 2061, 2061, 2061, 2053, 2063, 2063, 2063, 3397,
+
+     2063, 3365, 1508, 2063, 2066, 2066, 2066, 2069, 2069, 2069,
+     2061, 2071, 2071, 2071, 2073, 2073, 2073, 2075, 2075, 2075,
+     3373, 3374, 2066, 3366, 2069, 2076, 2076, 2076, 3387, 2071,
+     3379, 3397, 2073, 3377, 3379, 2075, 3375, 3365, 2053, 2077,
+     2077, 2077, 2076, 2077, 3376, 3381, 2077, 2078, 2078, 2078,
+     2079, 2079, 2079, 3381, 2080, 2080, 2080, 2061, 2080, 3366,
+     3385, 2080, 3378, 3388, 2078, 3387, 3386, 2079, 3373, 3374,
+     2071, 2081, 2081, 2081, 2082, 2082, 2082, 3377, 2083, 2083,
+     2083, 2075, 2083, 1505, 3375, 2083, 2086, 2086, 2086, 2081,
+     3423, 2082, 3376, 2078, 2090, 2090, 2090, 2091, 2091, 2091,
+
+     3388, 2100, 2100, 2100, 2086, 2100, 3378, 3385, 2100, 2103,
+     2103, 2103, 2090, 3386, 2091, 2107, 2107, 2107, 3382, 3423,
+     2082, 2108, 2108, 2108, 2081, 2108, 3382, 2103, 2108, 2109,
+     2109, 2109, 2107, 2114, 2114, 2114, 2115, 2115, 2115, 2086,
+     2116, 2116, 2116, 2118, 2118, 2118, 2123, 2123, 2123, 2124,
+     2124, 2124, 2125, 2125, 2125, 2103, 2126, 2126, 2126, 2128,
+     2128, 2128, 2132, 2132, 2132, 2133, 2133, 2133, 2135, 2135,
+     2135, 2136, 2136, 2136, 2137, 2137, 2137, 2139, 2139, 2139,
+     3383, 2139, 3384, 3389, 2139, 2142, 2142, 2142, 3383, 2142,
+     3384, 3390, 2142, 2146, 2146, 2146, 2148, 2148, 2148, 2150,
+
+     2150, 2150, 2126, 2151, 2151, 2151, 3395, 2151, 3380, 1504,
+     2151, 2146, 3380, 3391, 2148, 3392, 2150, 2152, 2152, 2152,
+     2137, 2153, 2153, 2153, 3389, 2153, 1503, 3398, 2153, 2156,
+     2156, 2156, 3390, 2156, 3401, 2152, 2156, 2159, 2159, 2159,
+     2160, 2160, 2160, 3395, 2146, 2161, 2161, 2161, 3391, 2161,
+     3392, 3399, 2161, 1502, 3393, 2159, 2148, 2159, 2160, 3398,
+     3399, 2164, 2164, 2164, 2165, 2165, 2165, 3403, 2165, 3401,
+     3437, 2165, 2169, 2169, 2169, 3396, 2160, 2152, 2164, 2166,
+     2166, 2166, 3402, 2166, 3400, 3394, 2166, 2171, 2171, 2171,
+     2169, 2171, 1501, 3400, 2171, 2177, 2177, 2177, 3404, 2177,
+
+     3393, 3403, 2177, 2180, 2180, 2180, 2181, 2181, 2181, 3409,
+     2181, 3437, 3396, 2181, 2185, 2185, 2185, 3402, 2185, 3405,
+     2180, 2185, 2189, 2189, 2189, 2190, 2190, 2190, 2191, 2191,
+     2191, 3394, 3404, 2194, 2194, 2194, 3410, 2194, 2169, 2189,
+     2194, 3406, 1500, 2190, 3409, 3407, 2191, 2201, 2201, 2201,
+     2202, 2202, 2202, 2204, 2204, 2204, 2205, 2205, 2205, 3411,
+     2205, 3412, 3405, 2205, 1499, 2201, 3417, 1496, 2202, 3415,
+     2204, 3410, 2212, 2212, 2212, 2213, 2213, 2213, 2215, 2215,
+     2215, 2217, 2217, 2217, 3406, 2217, 3413, 3445, 2217, 2190,
+     2212, 3407, 3411, 2213, 3412, 3413, 2215, 2220, 2220, 2220,
+
+     3414, 2202, 2201, 2222, 2222, 2222, 3415, 2222, 3417, 3414,
+     2222, 2228, 2228, 2228, 3431, 2220, 2229, 2229, 2229, 3445,
+     2229, 3408, 3431, 2229, 2230, 2230, 2230, 3418, 2228, 2231,
+     2231, 2231, 2232, 2232, 2232, 1495, 3427, 2213, 2212, 2233,
+     2233, 2233, 2230, 2234, 2234, 2234, 2235, 2235, 2235, 3419,
+     2220, 2236, 2236, 2236, 2237, 2237, 2237, 2238, 2238, 2238,
+     2234, 3416, 3420, 2235, 2241, 2241, 2241, 3408, 2236, 3418,
+     3427, 2237, 2242, 2242, 2242, 2238, 2242, 1494, 1485, 2242,
+     3424, 2241, 2244, 2244, 2244, 2246, 2246, 2246, 2230, 2249,
+     2249, 2249, 2250, 2250, 2250, 3419, 2250, 2235, 3416, 2250,
+
+     2244, 3438, 1483, 2246, 2253, 2253, 2253, 2249, 3420, 3424,
+     2254, 2254, 2254, 2237, 2254, 2236, 3429, 2254, 2259, 2259,
+     2259, 2253, 2238, 2256, 2256, 2256, 3425, 2256, 3421, 3422,
+     2256, 2260, 2260, 2260, 3426, 3425, 2259, 2261, 2261, 2261,
+     1478, 2261, 3438, 3426, 2261, 2263, 2263, 2263, 2260, 2267,
+     2267, 2267, 3428, 2269, 2269, 2269, 3439, 2270, 2270, 2270,
+     3432, 2270, 3429, 2263, 2270, 3421, 3422, 2267, 3432, 2259,
+     2269, 2281, 2281, 2281, 2282, 2282, 2282, 2285, 2285, 2285,
+     3471, 2285, 2286, 2286, 2285, 2286, 3428, 2287, 2287, 2281,
+     2287, 3439, 2282, 2286, 3471, 3463, 2263, 1472, 2287, 1466,
+
+     2286, 2288, 2288, 2288, 3463, 2287, 2289, 2289, 2289, 2290,
+     2290, 2290, 2293, 2293, 2293, 2294, 2294, 2294, 1462, 1457,
+     2281, 2296, 2296, 2296, 2297, 2297, 2297, 2299, 2299, 2299,
+     2300, 2300, 2300, 2301, 2301, 2301, 2302, 2302, 2302, 2305,
+     2305, 2305, 2306, 2306, 2306, 2309, 2309, 2309, 2310, 2310,
+     2310, 2312, 2312, 2312, 2313, 2313, 2313, 2317, 2317, 2317,
+     2318, 2318, 2318, 2319, 2319, 2319, 2320, 2320, 2320, 2321,
+     2321, 2321, 3435, 2321, 3430, 2317, 2321, 2324, 2324, 2324,
+     3446, 2319, 3461, 2320, 2325, 2325, 2325, 2326, 2326, 2326,
+     2327, 2327, 2327, 3436, 2327, 2324, 3447, 2327, 2330, 2330,
+
+     2330, 3440, 2325, 3448, 3447, 2326, 2335, 2335, 2335, 3435,
+     2335, 3448, 3446, 2335, 3461, 3433, 2330, 2338, 2338, 2338,
+     3430, 2325, 2342, 2342, 2342, 2344, 2344, 2344, 2324, 2319,
+     3436, 2343, 2343, 2343, 2338, 2343, 3440, 3462, 2343, 2342,
+     2345, 2345, 2345, 2344, 2354, 2354, 2354, 3434, 2326, 2355,
+     2355, 2355, 2356, 2356, 2356, 2357, 2357, 2357, 2345, 2358,
+     2358, 2358, 3433, 2358, 1453, 3443, 2358, 2355, 1452, 3462,
+     2356, 3444, 2357, 2361, 2361, 2361, 2362, 2362, 2362, 2367,
+     2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 3451, 3441,
+     2361, 3464, 3452, 2362, 3434, 3453, 2367, 1444, 3442, 2368,
+
+     3464, 2357, 3443, 2369, 2370, 2370, 2370, 3457, 3444, 2355,
+     2371, 2371, 2371, 2372, 2372, 2372, 2376, 2376, 2376, 2377,
+     2377, 2377, 2370, 2377, 1439, 3451, 2377, 2371, 2361, 3452,
+     2367, 2372, 2380, 2380, 2380, 3441, 3453, 2362, 2381, 2381,
+     2381, 2382, 2382, 2382, 3442, 2369, 3449, 2383, 2383, 2383,
+     2380, 2383, 3450, 3457, 2383, 2384, 2384, 2384, 2382, 2385,
+     2385, 2385, 1430, 3458, 2372, 2386, 2386, 2386, 2370, 2387,
+     2387, 2387, 2384, 2388, 2388, 2388, 2385, 2389, 2389, 2389,
+     3455, 3459, 2386, 2393, 2393, 2393, 1428, 2387, 2390, 2390,
+     2390, 2380, 2390, 3449, 2389, 2390, 2394, 2394, 2394, 3450,
+
+     2393, 2398, 2398, 2398, 2400, 2400, 2400, 1419, 2400, 3458,
+     2385, 2400, 1414, 1410, 2394, 3455, 2386, 1405, 3459, 2398,
+     2404, 2404, 2404, 2405, 2405, 2405, 1404, 2405, 3456, 1403,
+     2405, 1401, 2409, 2409, 2409, 2413, 2413, 2413, 2404, 2413,
+     3460, 1400, 2413, 2426, 2426, 2426, 2427, 2427, 2427, 2393,
+     2409, 2440, 2440, 2440, 2441, 2441, 2441, 2444, 2444, 2444,
+     3454, 2426, 1398, 3456, 2427, 2445, 2445, 2445, 2447, 2447,
+     2447, 2448, 2448, 2448, 2451, 2451, 2451, 3460, 2409, 2454,
+     2454, 2454, 2458, 2458, 2458, 2460, 2460, 2460, 2461, 2461,
+     2461, 1393, 2462, 2462, 2462, 2463, 2463, 2463, 3465, 2463,
+
+     2458, 3454, 2463, 3466, 2426, 1392, 2461, 1387, 2427, 2462,
+     2464, 2464, 2464, 2465, 2465, 2465, 2466, 2466, 2466, 2467,
+     2467, 2467, 2474, 2474, 2474, 2475, 2475, 2475, 2464, 2475,
+     3465, 2465, 2475, 3467, 2466, 3466, 1386, 2467, 3469, 2474,
+     2477, 2477, 2477, 2479, 2479, 2479, 3470, 2479, 1380, 1379,
+     2479, 2482, 2482, 2482, 2490, 2490, 2490, 2477, 2491, 2491,
+     2491, 2492, 2492, 2492, 2493, 2493, 2493, 1378, 3468, 2482,
+     3469, 2490, 2495, 2495, 2495, 1377, 3472, 2465, 3470, 2492,
+     1360, 3467, 2493, 2466, 2496, 2496, 2496, 3472, 2496, 2495,
+     1349, 2496, 2504, 2504, 2504, 2505, 2505, 2505, 2506, 2506,
+
+     2506, 1344, 2506, 1343, 1342, 2506, 2507, 2507, 2507, 2504,
+     1338, 1321, 2505, 2508, 2508, 2508, 3468, 1320, 2492, 2509,
+     2509, 2509, 1315, 1314, 2507, 2510, 2510, 2510, 1313, 2510,
+     1308, 2508, 2510, 2511, 2511, 2511, 2509, 2514, 2514, 2514,
+     2515, 2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517, 1307,
+     2517, 2511, 1289, 2517, 2514, 2520, 2520, 2520, 2521, 2521,
+     2521, 2516, 2521, 1288, 1287, 2521, 2522, 2522, 2522, 2523,
+     2523, 2523, 2520, 1286, 2508, 2524, 2524, 2524, 2526, 2526,
+     2526, 1285, 1284, 2522, 1283, 1282, 2523, 2527, 2527, 2527,
+     2528, 2528, 2528, 2524, 2528, 1281, 1271, 2528, 2529, 2529,
+
+     2529, 2533, 2533, 2533, 2527, 2536, 2536, 2536, 2549, 2549,
+     2549, 2567, 2567, 2567, 1270, 2529, 2568, 2568, 2568, 2533,
+     2573, 2573, 2573, 2536, 1269, 1268, 2549, 2576, 2576, 2576,
+     2577, 2577, 2577, 2579, 2579, 2579, 1263, 2579, 1262, 1261,
+     2579, 2582, 2582, 2582, 2576, 2584, 2584, 2584, 2577, 2585,
+     2585, 2585, 1260, 2529, 1237, 2589, 2589, 2589, 1236, 2582,
+     2608, 2608, 2608, 2584, 2595, 2595, 2595, 2585, 2549, 1229,
+     1225, 2536, 2589, 2591, 2591, 2591, 1220, 2591, 2608, 1219,
+     2591, 2595, 2596, 2596, 2596, 1214, 2596, 1211, 1210, 2596,
+     2603, 2603, 2603, 2606, 2606, 2606, 2607, 2607, 2607, 1207,
+
+     2607, 1206, 1205, 2607, 1204, 1203, 2584, 2603, 1202, 1201,
+     2606, 1200, 2609, 2609, 2609, 2585, 2609, 1199, 1197, 2609,
+     2617, 2617, 2617, 2618, 2618, 2618, 1196, 2618, 1195, 1194,
+     2618, 2619, 2619, 2619, 1193, 2619, 1190, 2617, 2619, 2622,
+     2622, 2622, 2624, 2624, 2624, 2625, 2625, 2625, 1189, 2625,
+     1188, 1187, 2625, 2628, 2628, 2628, 1185, 2622, 1184, 1183,
+     2624, 2631, 2631, 2631, 2632, 2632, 2632, 1182, 2633, 2633,
+     2633, 2628, 2633, 1181, 1180, 2633, 1179, 1178, 2631, 1176,
+     1175, 2632, 2634, 2634, 2634, 2636, 2636, 2636, 1174, 2636,
+     1173, 1172, 2636, 2639, 2639, 2639, 2641, 2641, 2641, 1171,
+
+     2634, 2640, 2640, 2640, 2624, 2640, 1170, 1164, 2640, 1160,
+     2639, 1157, 1156, 2641, 2642, 2642, 2642, 1155, 2642, 1153,
+     1149, 2642, 2643, 2643, 2643, 1146, 2643, 1145, 1144, 2643,
+     2646, 2646, 2646, 2647, 2647, 2647, 2648, 2648, 2648, 2651,
+     2651, 2651, 2652, 2652, 2652, 1140, 1139, 2646, 1136, 1132,
+     2647, 1131, 1128, 2648, 2653, 2653, 2653, 2651, 2664, 2664,
+     2664, 2681, 2681, 2681, 2682, 2682, 2682, 2686, 2686, 2686,
+     1125, 2653, 2689, 2689, 2689, 1122, 2664, 2690, 2690, 2690,
+     1121, 2690, 1116, 1108, 2690, 2691, 2691, 2691, 1107, 2689,
+     1106, 2646, 1104, 2692, 2692, 2692, 2695, 2695, 2695, 2696,
+
+     2696, 2696, 1100, 2691, 1097, 2697, 2697, 2697, 1094, 2697,
+     2651, 2692, 2697, 2695, 1091, 1090, 2696, 1089, 2664, 2698,
+     2698, 2698, 2700, 2700, 2700, 1088, 2700, 1087, 1086, 2700,
+     2710, 2710, 2710, 2711, 2711, 2711, 2698, 1085, 2712, 2712,
+     2712, 1084, 2712, 1081, 2692, 2712, 1080, 2710, 1077, 1076,
+     2711, 1072, 2691, 2713, 2713, 2713, 1070, 2713, 1067, 1066,
+     2713, 2716, 2716, 2716, 2719, 2719, 2719, 2721, 2721, 2721,
+     1063, 2721, 1062, 1059, 2721, 1052, 2710, 1049, 1048, 2716,
+     1047, 2719, 2730, 2730, 2730, 2732, 2732, 2732, 2733, 2733,
+     2733, 1044, 2733, 1040, 1033, 2733, 1032, 2734, 2734, 2734,
+
+     2730, 2734, 2732, 1028, 2734, 2737, 2737, 2737, 1027, 2737,
+     1026, 1023, 2737, 2740, 2740, 2740, 1022, 2740, 1021, 1018,
+     2740, 2749, 2749, 2749, 2750, 2750, 2750, 2751, 2751, 2751,
+     1011, 2751, 1010, 1009, 2751, 2752, 2752, 2752, 2749, 1008,
+     1007, 2750, 2753, 2753, 2753, 1006, 2753, 1005, 1004, 2753,
+     1003, 1002, 2752, 2754, 2754, 2754, 2755, 2755, 2755, 2756,
+     2756, 2756, 2757, 2757, 2757, 2758, 2758, 2758,  998,  994,
+     2754,  971,  968, 2755, 2770, 2770, 2770, 2756, 2773, 2773,
+     2773, 2749, 2758, 2759, 2759, 2759,  965, 2759,  964,  957,
+     2759,  956, 2770,  954,  953, 2773, 2773, 2787, 2787, 2787,
+
+     2788, 2788, 2788, 2791, 2791, 2791, 2792, 2792, 2792, 2794,
+     2794, 2794,  952, 2794,  951,  950, 2794, 2797, 2797, 2797,
+      949, 2756, 2798, 2798, 2798, 2770, 2801, 2801, 2801, 2802,
+     2802, 2802,  948, 2802,  947, 2797, 2802, 2803, 2803, 2803,
+     2798, 2803,  946, 2801, 2803, 2806, 2806, 2806, 2807, 2807,
+     2807,  945, 2807,  944,  943, 2807, 2816, 2816, 2816, 2817,
+     2817, 2817, 2806, 2817,  941,  940, 2817, 2819, 2819, 2819,
+      939, 2819,  938, 2816, 2819, 2823, 2823, 2823, 2824, 2824,
+     2824,  937, 2824, 2797,  936, 2824, 2832, 2832, 2832, 2835,
+     2835, 2835, 2823, 2835,  935,  934, 2835, 2850, 2850, 2850,
+
+      933, 2851, 2851, 2851, 2832, 2851,  931,  930, 2851, 2854,
+     2854, 2854,  929, 2854, 2850,  928, 2854, 2857, 2857, 2857,
+     2858, 2858, 2858,  927, 2858,  926,  925, 2858, 2859, 2859,
+     2859, 2860, 2860, 2860, 2857, 2860,  924,  923, 2860, 2861,
+     2861, 2861, 2862, 2862, 2862, 2859, 2862,  922,  918, 2862,
+     2873, 2873, 2873, 2875, 2875, 2875,  914, 2861, 2876, 2876,
+     2876,  913, 2877, 2877, 2877,  912, 2877,  911, 2873, 2877,
+     2875, 2875, 2890, 2890, 2890, 2876, 2876, 2891, 2891, 2891,
+     2877, 2892, 2892, 2892, 2893, 2893, 2893, 2894, 2894, 2894,
+     2861, 2895, 2895, 2895, 2900, 2900, 2900,  910,  906, 2873,
+
+     2901, 2901, 2901, 2905, 2905, 2905,  904, 2905,  903,  902,
+     2905,  901, 2900, 2908, 2908, 2908,  900, 2908, 2901,  899,
+     2908, 2911, 2911, 2911, 2919, 2919, 2919,  896, 2919,  895,
+      893, 2919, 2923, 2923, 2923, 2924, 2924, 2924, 2911, 2924,
+      891,  887, 2924,  886,  885, 2900, 2927, 2927, 2927, 2923,
+     2947, 2947, 2947, 2948, 2948, 2948,  883, 2948,  880,  879,
+     2948,  877,  876, 2927, 2953, 2953, 2953, 2947, 2953,  873,
+      871, 2953, 2956, 2956, 2956,  868, 2956,  867,  866, 2956,
+     2959, 2959, 2959, 2968, 2968, 2968, 2970, 2970, 2970, 2971,
+     2971, 2971,  865, 2971,  862,  861, 2971,  860, 2959,  859,
+
+      858, 2968,  857, 2970, 2970,  856,  854, 2971, 2972, 2972,
+     2972,  851, 2972,  850,  846, 2972, 2983, 2983, 2983, 2984,
+     2984, 2984, 2985, 2985, 2985,  845, 2972, 2986, 2986, 2986,
+     2991, 2991, 2991, 2995, 2995, 2995,  844, 2995,  843,  842,
+     2995,  841, 2994, 2994, 2994, 2996, 2996, 2996, 2991, 2968,
+     2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2973, 2994,
+      840, 2973, 2996, 3004, 3004, 3004, 2973, 2973, 2973, 2973,
+     2973, 3005, 3005, 3005,  832, 3005,  831,  828, 3005,  827,
+     3004, 3007, 3007, 3007,  826, 3007,  825,  824, 3007, 3006,
+     3006, 3006, 3032, 3032, 3032, 2973, 2973, 2974, 2974, 2974,
+
+     2974, 2974, 2974, 2974, 2974, 2974, 3006,  822, 2974,  821,
+     3032,  820,  817, 2974, 2974, 2974, 2974, 2974, 3025, 3025,
+     3025,  816, 3025,  815,  812, 3025, 3040, 3040, 3040, 3042,
+     3042, 3042,  811, 3042,  810,  807, 3042,  806,  802, 3057,
+     3057, 3057, 2974, 2974, 3040,  800,  797, 3042, 3045, 3045,
+     3045, 3045, 3045, 3045, 3045, 3045, 3045, 3057,  796, 3045,
+     3064, 3064, 3064,  795, 3045, 3045, 3045, 3045, 3045, 3061,
+     3061, 3061,  794, 3061,  792,  789, 3061, 3064, 3065, 3065,
+     3065,  788, 3065,  787,  784, 3065, 3104, 3104, 3104, 3112,
+     3112, 3112,  781, 3045, 3045, 3046, 3046, 3046, 3046, 3046,
+
+     3046, 3046, 3046, 3046, 3104,  777, 3046, 3112, 3112,  776,
+      775, 3046, 3046, 3046, 3046, 3046, 3071, 3071, 3071,  774,
+     3071,  771,  768, 3071, 3074, 3074, 3074,  767, 3074,  764,
+      760, 3074, 3125, 3125, 3125, 3126, 3126, 3126,  759,  758,
+     3046, 3046,  757, 3131, 3131, 3131,  756, 3131,  755, 3125,
+     3131,  754, 3126, 3136, 3136, 3136, 3141, 3141, 3141, 3154,
+     3154, 3154, 3158, 3158, 3158, 3167, 3167, 3167,  753,  752,
+     3136,  751,  750, 3141, 3168, 3168, 3168, 3154, 3168,  749,
+     3158, 3168, 3167, 3169, 3169, 3169, 3170, 3170, 3170,  747,
+     3170,  745,  744, 3170, 3179, 3179, 3179, 3180, 3180, 3180,
+
+     3169, 3180,  741,  740, 3180, 3187, 3187, 3187, 3188, 3188,
+     3188, 3179, 3188, 3158,  739, 3188, 3195, 3195, 3195, 3203,
+     3203, 3203, 3187, 3203,  738,  737, 3203,  736, 3206, 3206,
+     3206,  731, 3206,  730, 3195, 3206, 3217, 3217, 3217,  729,
+     3217,  726,  725, 3217, 3226, 3226, 3226,  724, 3226,  723,
+      720, 3226,  719, 3195, 3347, 3347, 3347, 3356, 3356, 3356,
+      717, 3356,  714,  713, 3356, 3473, 3473, 3473, 3474, 3474,
+     3474,  710, 3347,  709,  708, 3356,  707,  706,  705,  697,
+      696,  695,  692, 3473,  691,  690, 3474, 3477, 3477, 3477,
+     3477, 3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478, 3478,
+
+     3478, 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479, 3479,
+     3479, 3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480, 3480,
+     3480, 3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481, 3481,
+     3481, 3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
+     3482, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
+     3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3485,
+     3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486,
+     3486, 3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487, 3487,
+     3487, 3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488, 3488,
+     3488, 3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489, 3489,
+
+     3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, 3490,
+     3490, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
+     3491, 3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+     3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
+     3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3495,
+     3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496, 3496,
+     3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497, 3497,
+     3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498, 3498,
+     3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499, 3499,
+     3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500, 3500,
+
+     3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
+     3501, 3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
+     3502, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
+     3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3505,
+     3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3506,
+     3506, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507, 3507,
+     3507, 3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508, 3508,
+     3508, 3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509, 3509,
+     3509, 3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510, 3510,
+     3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511, 3511,
+
+     3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
+     3512, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
+     3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3515,
+     3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516, 3516,
+     3516, 3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517, 3517,
+     3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518, 3518,
+     3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519,
+     3519, 3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520,
+     3520, 3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521, 3521,
+     3521, 3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
+
+     3522, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
+     3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3525,
+     3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, 3526,
+     3526, 3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527,
+     3527, 3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528, 3528,
+     3528, 3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529, 3529,
+     3529, 3529, 3529, 3529, 3530, 3530, 3530, 3530, 3530, 3530,
+     3530, 3530, 3530, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
+     3531, 3531, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
+     3532, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
+
+     3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3535,
+     3535, 3535, 3535, 3535, 3535, 3535, 3535, 3535, 3536, 3536,
+     3536, 3536, 3536, 3536, 3536, 3536, 3536, 3537, 3537, 3537,
+     3537, 3537, 3537, 3537, 3537, 3537, 3538, 3538, 3538, 3538,
+     3538, 3538, 3538, 3538, 3538, 3539, 3539, 3539, 3539, 3539,
+     3539, 3539, 3539, 3539, 3540, 3540, 3540, 3540, 3540, 3540,
+     3540, 3540, 3540, 3541, 3541, 3541,  689,  686,  684, 3541,
+     3542, 3542, 3542,  683,  679,  678, 3542, 3543, 3543, 3543,
+      677,  676,  673, 3543, 3544, 3544, 3544,  672,  671,  670,
+     3544, 3545, 3545, 3545,  666,  665,  664, 3545, 3546, 3546,
+
+     3546,  663,  657,  656, 3546, 3547, 3547, 3547,  654,  648,
+      647, 3547, 3548, 3548, 3548,  646,  642,  639, 3548, 3549,
+     3549, 3549,  637,  636,  635, 3549, 3550, 3550, 3550,  631,
+      627,  623, 3550, 3551, 3551, 3551,  622,  621,  620, 3551,
+     3552, 3552, 3552,  616,  612,  609, 3552, 3553, 3553, 3553,
+      608,  607,  606, 3553, 3554, 3554, 3554,  602,  596,  595,
+     3554, 3555, 3555, 3555,  591,  583,  579, 3555, 3556, 3556,
+     3556,  572,  570,  569, 3556, 3557, 3557, 3557,  565,  559,
+      558, 3557, 3558, 3558, 3558,  554,  550,  546, 3558, 3559,
+     3559, 3559,  545,  544,  543, 3559, 3560, 3560, 3560,  542,
+
+      538,  534, 3560, 3561, 3561, 3561,  527,  523,  515, 3561,
+     3562, 3562, 3562,  514,  513,  512, 3562, 3563, 3563, 3563,
+      511,  507,  501, 3563, 3564, 3564, 3564,  500,  496,  490,
+     3564, 3565, 3565, 3565,  489,  485,  479, 3565, 3566, 3566,
+     3566,  478,  474,  468, 3566, 3567, 3567, 3567,  467,  463,
+      459, 3567, 3568, 3568, 3568,  455,  454,  453, 3568, 3569,
+     3569, 3569,  449,  445,  441, 3569, 3570, 3570, 3570, 3570,
+     3570, 3570, 3570,  437, 3570, 3571, 3571, 3571,  431,  430,
+      429, 3571, 3572,  425,  421,  416, 3572, 3573, 3573, 3573,
+      415,  414,  413, 3573, 3574,  409,  403,  399, 3574, 3575,
+
+     3575, 3575,  395,  392,  388, 3575, 3576,  384,  381,  378,
+     3576, 3577, 3577, 3577,  376,  375,  373, 3577, 3578,  369,
+      362,  361, 3578, 3579, 3579, 3579,  360,  359,  358, 3579,
+     3580,  354,  347,  346, 3580, 3581, 3581, 3581,  342,  335,
+      334, 3581, 3582,  333,  329,  323, 3582, 3583, 3583, 3583,
+      322,  321,  317, 3583, 3584,  311,  307,  298, 3584, 3585,
+     3585, 3585,  297,  293,  289, 3585, 3586,  285,  281,  280,
+     3586, 3587, 3587, 3587,  276,  273,  272, 3587, 3588,  271,
+      265,  264, 3588, 3589, 3589, 3589,  262,  259,  247, 3589,
+     3590,    0,    0,    0, 3590, 3591, 3591, 3591,    0,    0,
+
+        0, 3591, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
+        0,    0,    0, 3593, 3594,    0,    0,    0, 3594, 3595,
+     3595, 3595,    0,    0,    0, 3595, 3596,    0,    0,    0,
+     3596, 3597, 3597, 3597,    0,    0,    0, 3597, 3598,    0,
+        0,    0, 3598, 3599, 3599, 3599,    0,    0,    0, 3599,
+     3600,    0,    0,    0, 3600, 3601, 3601, 3601,    0,    0,
+        0, 3601, 3602,    0,    0,    0, 3602, 3603, 3603, 3603,
+        0,    0,    0, 3603, 3604,    0,    0,    0, 3604, 3605,
+     3605, 3605,    0,    0,    0, 3605, 3606,    0,    0,    0,
+     3606, 3607, 3607, 3607,    0,    0,    0, 3607, 3608,    0,
+
+        0,    0, 3608, 3609, 3609, 3609,    0,    0,    0, 3609,
+     3610,    0,    0,    0, 3610, 3611, 3611, 3611,    0,    0,
+        0, 3611, 3612,    0,    0,    0, 3612, 3613, 3613, 3613,
+        0,    0,    0, 3613, 3614,    0,    0,    0, 3614, 3615,
+     3615, 3615,    0,    0,    0, 3615, 3616,    0,    0,    0,
+     3616, 3617, 3617, 3617,    0,    0,    0, 3617, 3618,    0,
+        0,    0, 3618, 3619, 3619, 3619,    0,    0,    0, 3619,
+     3620,    0,    0,    0, 3620, 3621, 3621, 3621,    0,    0,
+        0, 3621, 3622,    0,    0,    0, 3622, 3623, 3623, 3623,
+        0,    0,    0, 3623, 3624,    0,    0,    0, 3624, 3625,
+
+     3625, 3625,    0,    0,    0, 3625, 3626,    0,    0,    0,
+     3626, 3627, 3627, 3627,    0,    0,    0, 3627, 3628,    0,
+        0,    0, 3628, 3629, 3629, 3629, 3629, 3629, 3629, 3629,
+     3629, 3629, 3630,    0,    0,    0,    0, 3630, 3631, 3631,
+     3631,    0,    0,    0, 3631, 3632, 3632, 3632, 3632,    0,
+        0, 3632, 3632, 3633, 3633, 3633, 3633,    0, 3633,    0,
+     3633, 3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635,
+     3635, 3635,    0,    0,    0, 3635, 3636, 3636, 3636, 3636,
+        0,    0, 3636, 3636, 3637, 3637, 3637,    0,    0,    0,
+     3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638, 3639,
+
+     3639, 3639, 3639,    0, 3639,    0, 3639, 3640, 3640, 3640,
+     3640,    0,    0, 3640, 3640, 3641, 3641, 3641, 3641,    0,
+     3641,    0, 3641, 3642, 3642, 3642, 3642,    0,    0, 3642,
+     3642, 3643, 3643, 3643, 3643,    0, 3643,    0, 3643, 3644,
+     3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
+        0,    0,    0, 3645, 3646, 3646, 3646, 3646,    0,    0,
+     3646, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647, 3647,
+     3648, 3648, 3648,    0,    0,    0, 3648, 3649, 3649, 3649,
+     3649,    0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,
+        0, 3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651,
+
+     3652, 3652, 3652,    0,    0,    0, 3652, 3653, 3653, 3653,
+     3653,    0,    0, 3653, 3653, 3654, 3654, 3654,    0,    0,
+        0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
+     3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657, 3657,
+     3657,    0,    0, 3657, 3657, 3658, 3658, 3658,    0,    0,
+        0, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659, 3659,
+     3660, 3660, 3660,    0,    0,    0, 3660, 3661, 3661, 3661,
+     3661,    0,    0, 3661, 3661, 3662, 3662, 3662,    0,    0,
+        0, 3662, 3663, 3663, 3663, 3663,    0,    0, 3663, 3663,
+     3664, 3664, 3664,    0,    0,    0, 3664, 3665, 3665, 3665,
+
+     3665,    0,    0, 3665, 3665, 3666, 3666, 3666,    0,    0,
+        0, 3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667,
+     3668, 3668, 3668,    0,    0,    0, 3668, 3669, 3669, 3669,
+     3669,    0,    0, 3669, 3669, 3670, 3670, 3670,    0,    0,
+        0, 3670, 3671, 3671, 3671, 3671,    0,    0, 3671, 3671,
+     3672, 3672, 3672,    0,    0,    0, 3672, 3673, 3673, 3673,
+     3673,    0,    0, 3673, 3673, 3674, 3674, 3674,    0,    0,
+        0, 3674, 3675, 3675, 3675, 3675,    0,    0, 3675, 3675,
+     3676, 3676, 3676, 3676,    0, 3676,    0, 3676, 3677, 3677,
+     3677, 3677,    0,    0, 3677, 3677, 3678, 3678, 3678,    0,
+
+        0,    0, 3678, 3679, 3679, 3679, 3679,    0,    0, 3679,
+     3679, 3680, 3680, 3680,    0,    0,    0, 3680, 3681, 3681,
+     3681, 3681,    0,    0, 3681, 3681, 3682, 3682, 3682,    0,
+        0,    0, 3682, 3683, 3683, 3683, 3683,    0,    0, 3683,
+     3683, 3684, 3684, 3684,    0,    0,    0, 3684, 3685, 3685,
+     3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686,    0,
+        0,    0, 3686, 3687, 3687, 3687, 3687,    0,    0, 3687,
+     3687, 3688, 3688, 3688, 3688, 3688, 3688, 3688, 3688, 3688,
+     3689,    0, 3689,    0,    0, 3689, 3690, 3690, 3690,    0,
+        0,    0, 3690, 3691, 3691, 3691, 3691,    0,    0, 3691,
+
+     3691, 3692, 3692, 3692,    0,    0,    0, 3692, 3693, 3693,
+     3693, 3693,    0,    0, 3693, 3693, 3694, 3694, 3694,    0,
+        0,    0, 3694, 3695, 3695, 3695, 3695,    0,    0, 3695,
+     3695, 3696, 3696, 3696,    0,    0,    0, 3696, 3697, 3697,
+     3697, 3697,    0,    0, 3697, 3697, 3698, 3698, 3698,    0,
+        0,    0, 3698, 3699, 3699, 3699, 3699,    0,    0, 3699,
+     3699, 3700, 3700, 3700, 3700,    0,    0, 3700, 3700, 3701,
+     3701, 3701,    0,    0,    0, 3701, 3702, 3702, 3702, 3702,
+        0,    0, 3702, 3702, 3703, 3703, 3703,    0,    0,    0,
+     3703, 3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705,
+
+     3705, 3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706,
+     3706,    0, 3706,    0, 3706, 3707, 3707, 3707, 3707,    0,
+        0, 3707, 3707, 3708, 3708, 3708,    0,    0,    0, 3708,
+     3709, 3709, 3709, 3709,    0,    0, 3709, 3709, 3710, 3710,
+     3710, 3710,    0, 3710,    0, 3710, 3711, 3711, 3711, 3711,
+        0,    0, 3711, 3711, 3712, 3712, 3712, 3712,    0, 3712,
+        0, 3712, 3713, 3713, 3713, 3713,    0,    0, 3713, 3713,
+     3714, 3714, 3714,    0,    0,    0, 3714, 3715, 3715, 3715,
+     3715,    0,    0, 3715, 3715, 3716, 3716, 3716,    0,    0,
+        0, 3716, 3717, 3717, 3717, 3717,    0,    0, 3717, 3717,
+
+     3718, 3718, 3718,    0,    0,    0, 3718, 3719, 3719, 3719,
+     3719,    0,    0, 3719, 3719, 3720, 3720, 3720, 3720,    0,
+     3720,    0, 3720, 3721, 3721, 3721, 3721,    0,    0, 3721,
+     3721, 3722, 3722, 3722, 3722,    0, 3722,    0, 3722, 3723,
+     3723, 3723, 3723,    0,    0, 3723, 3723, 3724, 3724, 3724,
+        0,    0,    0, 3724, 3725, 3725, 3725, 3725,    0,    0,
+     3725, 3725, 3726, 3726, 3726,    0,    0,    0, 3726, 3727,
+     3727, 3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728,
+        0,    0,    0, 3728, 3729, 3729, 3729, 3729,    0,    0,
+     3729, 3729, 3730, 3730, 3730,    0,    0,    0, 3730, 3731,
+
+     3731, 3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,
+        0,    0,    0, 3732, 3733, 3733, 3733, 3733,    0,    0,
+     3733, 3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735,
+     3735, 3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736,
+        0,    0,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
+     3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
+     3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
+        0,    0,    0, 3740, 3741, 3741, 3741, 3741,    0,    0,
+     3741, 3741, 3742, 3742, 3742, 3742,    0, 3742,    0, 3742,
+     3743, 3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744,
+
+     3744,    0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,
+        0, 3745, 3745, 3746, 3746, 3746, 3746, 3746, 3746, 3746,
+     3746, 3746, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747,
+     3747, 3748, 3748, 3748,    0,    0,    0, 3748, 3749, 3749,
+     3749,    0,    0,    0, 3749, 3750, 3750, 3750, 3750,    0,
+        0, 3750, 3750, 3751, 3751, 3751, 3751,    0, 3751,    0,
+     3751, 3752, 3752, 3752, 3752,    0,    0, 3752, 3752, 3753,
+     3753, 3753,    0,    0,    0, 3753, 3754, 3754, 3754, 3754,
+        0,    0, 3754, 3754, 3755, 3755, 3755,    0,    0,    0,
+     3755, 3756, 3756, 3756, 3756,    0,    0, 3756, 3756, 3757,
+
+     3757, 3757, 3757,    0,    0, 3757, 3757, 3758, 3758, 3758,
+        0,    0,    0, 3758, 3759, 3759, 3759, 3759,    0,    0,
+     3759, 3759, 3760, 3760, 3760,    0,    0,    0, 3760, 3761,
+     3761, 3761, 3761,    0,    0, 3761, 3761, 3762, 3762, 3762,
+     3762,    0,    0, 3762, 3762, 3763, 3763, 3763, 3763,    0,
+        0, 3763, 3763, 3764, 3764, 3764,    0,    0,    0, 3764,
+     3765, 3765, 3765, 3765,    0,    0, 3765, 3765, 3766, 3766,
+     3766, 3766,    0,    0, 3766, 3766, 3767, 3767, 3767, 3767,
+        0,    0, 3767, 3767, 3768, 3768, 3768,    0,    0,    0,
+     3768, 3769, 3769, 3769, 3769,    0,    0, 3769, 3769, 3770,
+
+     3770, 3770,    0,    0,    0, 3770, 3771, 3771, 3771, 3771,
+        0,    0, 3771, 3771, 3772, 3772, 3772, 3772,    0, 3772,
+        0, 3772, 3773, 3773, 3773, 3773,    0,    0, 3773, 3773,
+     3774, 3774, 3774,    0,    0,    0, 3774, 3775, 3775, 3775,
+     3775,    0,    0, 3775, 3775, 3776, 3776, 3776,    0,    0,
+        0, 3776, 3777, 3777, 3777, 3777,    0,    0, 3777, 3777,
+     3778, 3778, 3778,    0,    0,    0, 3778, 3779, 3779, 3779,
+     3779,    0,    0, 3779, 3779, 3780, 3780, 3780,    0,    0,
+        0, 3780, 3781, 3781, 3781, 3781,    0,    0, 3781, 3781,
+     3782, 3782, 3782,    0,    0,    0, 3782, 3783, 3783, 3783,
+
+     3783,    0,    0, 3783, 3783, 3784, 3784, 3784, 3784,    0,
+     3784,    0, 3784, 3785, 3785, 3785, 3785,    0,    0, 3785,
+     3785, 3786, 3786, 3786,    0,    0,    0, 3786, 3787, 3787,
+     3787, 3787,    0,    0, 3787, 3787, 3788, 3788, 3788,    0,
+        0,    0, 3788, 3789, 3789, 3789, 3789,    0,    0, 3789,
+     3789, 3790, 3790, 3790,    0,    0,    0, 3790, 3791, 3791,
+     3791, 3791,    0,    0, 3791, 3791, 3792, 3792, 3792,    0,
+        0,    0, 3792, 3793, 3793, 3793, 3793,    0,    0, 3793,
+     3793, 3794, 3794, 3794,    0,    0,    0, 3794, 3795, 3795,
+     3795, 3795,    0,    0, 3795, 3795, 3796, 3796, 3796,    0,
+
+        0,    0, 3796, 3797, 3797, 3797, 3797,    0,    0, 3797,
+     3797, 3798, 3798, 3798,    0,    0,    0, 3798, 3799, 3799,
+     3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800, 3800,
+     3800, 3800, 3800, 3800, 3800, 3801, 3801, 3801, 3801, 3801,
+     3801, 3801, 3801, 3801, 3802, 3802, 3802,    0,    0,    0,
+     3802, 3803, 3803, 3803, 3803,    0, 3803,    0, 3803, 3804,
+     3804, 3804, 3804,    0,    0, 3804, 3804, 3805, 3805, 3805,
+     3805,    0,    0, 3805, 3805, 3806, 3806, 3806,    0,    0,
+        0, 3806, 3807, 3807, 3807, 3807,    0,    0, 3807, 3807,
+     3808, 3808, 3808, 3808,    0, 3808,    0, 3808, 3809, 3809,
+
+     3809, 3809,    0,    0, 3809, 3809, 3810, 3810, 3810, 3810,
+        0,    0, 3810, 3810, 3811, 3811, 3811, 3811,    0, 3811,
+        0, 3811, 3812, 3812, 3812, 3812,    0,    0, 3812, 3812,
+     3813, 3813, 3813,    0,    0,    0, 3813, 3814, 3814, 3814,
+     3814,    0,    0, 3814, 3814, 3815, 3815, 3815, 3815,    0,
+        0, 3815, 3815, 3816, 3816, 3816,    0,    0,    0, 3816,
+     3817, 3817, 3817, 3817,    0,    0, 3817, 3817, 3818, 3818,
+     3818, 3818,    0,    0, 3818, 3818, 3819, 3819, 3819, 3819,
+        0,    0, 3819, 3819, 3820, 3820, 3820,    0,    0,    0,
+     3820, 3821, 3821, 3821, 3821,    0,    0, 3821, 3821, 3822,
+
+     3822, 3822,    0,    0,    0, 3822, 3823, 3823, 3823, 3823,
+        0,    0, 3823, 3823, 3824, 3824, 3824, 3824,    0,    0,
+     3824, 3824, 3825, 3825, 3825,    0,    0,    0, 3825, 3826,
+     3826, 3826, 3826,    0,    0, 3826, 3826, 3827, 3827, 3827,
+     3827,    0, 3827,    0, 3827, 3828, 3828, 3828, 3828,    0,
+        0, 3828, 3828, 3829, 3829, 3829,    0,    0,    0, 3829,
+     3830, 3830, 3830, 3830,    0,    0, 3830, 3830, 3831, 3831,
+     3831,    0,    0,    0, 3831, 3832, 3832, 3832, 3832,    0,
+        0, 3832, 3832, 3833, 3833, 3833,    0,    0,    0, 3833,
+     3834, 3834, 3834, 3834,    0,    0, 3834, 3834, 3835, 3835,
+
+     3835, 3835,    0,    0, 3835, 3835, 3836, 3836, 3836,    0,
+        0,    0, 3836, 3837, 3837, 3837, 3837,    0,    0, 3837,
+     3837, 3838, 3838, 3838,    0,    0,    0, 3838, 3839, 3839,
+     3839, 3839,    0,    0, 3839, 3839, 3840, 3840, 3840,    0,
+        0,    0, 3840, 3841, 3841, 3841, 3841,    0,    0, 3841,
+     3841, 3842, 3842, 3842, 3842,    0, 3842,    0, 3842, 3843,
+     3843, 3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844,
+        0,    0,    0, 3844, 3845, 3845, 3845, 3845,    0,    0,
+     3845, 3845, 3846, 3846, 3846,    0,    0,    0, 3846, 3847,
      3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848, 3848,
-     3848,    0,    0, 3848, 3848, 3849, 3849, 3849, 3849,    0,
-     3849,    0, 3849, 3850, 3850, 3850, 3850,    0,    0, 3850,
-     3850, 3851, 3851, 3851,    0,    0,    0, 3851, 3852, 3852,
-     3852, 3852,    0,    0, 3852, 3852, 3853, 3853, 3853, 3853,
-        0,    0, 3853, 3853, 3854, 3854, 3854,    0,    0,    0,
-     3854, 3855, 3855, 3855, 3855,    0,    0, 3855, 3855, 3856,
-
-     3856, 3856, 3856,    0,    0, 3856, 3856, 3857, 3857, 3857,
-        0,    0,    0, 3857, 3858, 3858, 3858,    0,    0,    0,
-     3858, 3859, 3859, 3859, 3859,    0,    0, 3859, 3859, 3860,
-     3860, 3860, 3860,    0,    0, 3860, 3860, 3861, 3861, 3861,
-        0,    0,    0, 3861, 3862, 3862, 3862, 3862,    0,    0,
-     3862, 3862, 3863, 3863, 3863, 3863,    0,    0, 3863, 3863,
-     3864, 3864, 3864,    0,    0,    0, 3864, 3865, 3865, 3865,
-     3865,    0, 3865,    0, 3865, 3866, 3866, 3866, 3866,    0,
-        0, 3866, 3866, 3867, 3867, 3867,    0,    0,    0, 3867,
-     3868, 3868, 3868, 3868,    0,    0, 3868, 3868, 3869, 3869,
-
-     3869,    0,    0,    0, 3869, 3870, 3870, 3870, 3870,    0,
-        0, 3870, 3870, 3871, 3871, 3871,    0,    0,    0, 3871,
-     3872, 3872, 3872, 3872,    0,    0, 3872, 3872, 3873, 3873,
-     3873,    0,    0,    0, 3873, 3874, 3874, 3874, 3874,    0,
-        0, 3874, 3874, 3875, 3875, 3875, 3875,    0, 3875,    0,
-     3875, 3876, 3876, 3876, 3876,    0,    0, 3876, 3876, 3877,
-     3877, 3877, 3877,    0, 3877,    0, 3877, 3878, 3878, 3878,
-     3878,    0,    0, 3878, 3878, 3879, 3879, 3879,    0,    0,
-        0, 3879, 3880, 3880, 3880, 3880,    0,    0, 3880, 3880,
-     3881, 3881, 3881, 3881,    0, 3881,    0, 3881, 3882, 3882,
-
-     3882, 3882,    0,    0, 3882, 3882, 3883, 3883, 3883, 3883,
-     3883, 3883, 3883, 3883, 3883, 3884, 3884, 3884, 3884, 3884,
-     3884, 3884, 3884, 3884, 3885, 3885, 3885,    0,    0,    0,
-     3885, 3886, 3886, 3886, 3886,    0,    0, 3886, 3886, 3887,
-     3887, 3887, 3887,    0,    0, 3887, 3887, 3888, 3888, 3888,
-        0,    0,    0, 3888, 3889, 3889, 3889, 3889,    0,    0,
-     3889, 3889, 3890, 3890, 3890, 3890,    0,    0, 3890, 3890,
-     3891, 3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892,
-     3892, 3892,    0,    0, 3892, 3892, 3893, 3893, 3893,    0,
-        0,    0, 3893, 3894, 3894, 3894, 3894,    0,    0, 3894,
-
-     3894, 3895, 3895, 3895, 3895,    0,    0, 3895, 3895, 3896,
-     3896, 3896,    0,    0,    0, 3896, 3897, 3897, 3897, 3897,
-        0,    0, 3897, 3897, 3898, 3898, 3898, 3898,    0,    0,
-     3898, 3898, 3899, 3899, 3899,    0,    0,    0, 3899, 3900,
-     3900, 3900,    0,    0,    0, 3900, 3901, 3901, 3901, 3901,
-        0,    0, 3901, 3901, 3902, 3902, 3902, 3902,    0,    0,
-     3902, 3902, 3903, 3903, 3903,    0,    0,    0, 3903, 3904,
-     3904, 3904, 3904,    0,    0, 3904, 3904, 3905, 3905, 3905,
-        0,    0,    0, 3905, 3906, 3906, 3906, 3906,    0,    0,
-     3906, 3906, 3907, 3907, 3907, 3907,    0, 3907,    0, 3907,
-
-     3908, 3908, 3908, 3908,    0,    0, 3908, 3908, 3909, 3909,
-     3909,    0,    0,    0, 3909, 3910, 3910, 3910, 3910,    0,
-        0, 3910, 3910, 3911, 3911, 3911,    0,    0,    0, 3911,
-     3912, 3912, 3912,    0,    0,    0, 3912, 3913, 3913, 3913,
-     3913,    0,    0, 3913, 3913, 3914, 3914, 3914,    0,    0,
-        0, 3914, 3915, 3915, 3915, 3915,    0,    0, 3915, 3915,
-     3916, 3916, 3916,    0,    0,    0, 3916, 3917, 3917, 3917,
-     3917,    0,    0, 3917, 3917, 3918, 3918, 3918,    0,    0,
-        0, 3918, 3919, 3919, 3919, 3919,    0,    0, 3919, 3919,
-     3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3921,
-
-     3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3922, 3922,
-     3922,    0,    0,    0, 3922, 3923, 3923, 3923, 3923,    0,
-        0, 3923, 3923, 3924, 3924, 3924, 3924,    0,    0, 3924,
-     3924, 3925, 3925, 3925, 3925,    0, 3925,    0, 3925, 3926,
+
+        0,    0,    0, 3848, 3849, 3849, 3849, 3849,    0,    0,
+     3849, 3849, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850,
+     3850, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
+     3852, 3852, 3852, 3852,    0, 3852,    0, 3852, 3853, 3853,
+     3853,    0,    0,    0, 3853, 3854, 3854, 3854, 3854,    0,
+        0, 3854, 3854, 3855, 3855, 3855, 3855,    0,    0, 3855,
+     3855, 3856, 3856, 3856,    0,    0,    0, 3856, 3857, 3857,
+     3857, 3857,    0,    0, 3857, 3857, 3858, 3858, 3858, 3858,
+        0,    0, 3858, 3858, 3859, 3859, 3859, 3859,    0,    0,
+     3859, 3859, 3860, 3860, 3860, 3860,    0, 3860,    0, 3860,
+
+     3861, 3861, 3861, 3861,    0,    0, 3861, 3861, 3862, 3862,
+     3862,    0,    0,    0, 3862, 3863, 3863, 3863, 3863,    0,
+        0, 3863, 3863, 3864, 3864, 3864, 3864,    0,    0, 3864,
+     3864, 3865, 3865, 3865,    0,    0,    0, 3865, 3866, 3866,
+     3866, 3866,    0,    0, 3866, 3866, 3867, 3867, 3867, 3867,
+        0,    0, 3867, 3867, 3868, 3868, 3868,    0,    0,    0,
+     3868, 3869, 3869, 3869,    0,    0,    0, 3869, 3870, 3870,
+     3870, 3870,    0,    0, 3870, 3870, 3871, 3871, 3871, 3871,
+        0,    0, 3871, 3871, 3872, 3872, 3872,    0,    0,    0,
+     3872, 3873, 3873, 3873, 3873,    0,    0, 3873, 3873, 3874,
+
+     3874, 3874, 3874,    0,    0, 3874, 3874, 3875, 3875, 3875,
+        0,    0,    0, 3875, 3876, 3876, 3876, 3876,    0, 3876,
+        0, 3876, 3877, 3877, 3877, 3877,    0,    0, 3877, 3877,
+     3878, 3878, 3878,    0,    0,    0, 3878, 3879, 3879, 3879,
+     3879,    0,    0, 3879, 3879, 3880, 3880, 3880,    0,    0,
+        0, 3880, 3881, 3881, 3881, 3881,    0,    0, 3881, 3881,
+     3882, 3882, 3882,    0,    0,    0, 3882, 3883, 3883, 3883,
+     3883,    0,    0, 3883, 3883, 3884, 3884, 3884,    0,    0,
+        0, 3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885,
+     3886, 3886, 3886, 3886,    0, 3886,    0, 3886, 3887, 3887,
+
+     3887, 3887,    0,    0, 3887, 3887, 3888, 3888, 3888, 3888,
+        0, 3888,    0, 3888, 3889, 3889, 3889, 3889,    0,    0,
+     3889, 3889, 3890, 3890, 3890,    0,    0,    0, 3890, 3891,
+     3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892,
+     3892,    0, 3892,    0, 3892, 3893, 3893, 3893, 3893,    0,
+        0, 3893, 3893, 3894, 3894, 3894, 3894, 3894, 3894, 3894,
+     3894, 3894, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895,
+     3895, 3896, 3896, 3896,    0,    0,    0, 3896, 3897, 3897,
+     3897, 3897,    0,    0, 3897, 3897, 3898, 3898, 3898, 3898,
+        0,    0, 3898, 3898, 3899, 3899, 3899,    0,    0,    0,
+
+     3899, 3900, 3900, 3900, 3900,    0,    0, 3900, 3900, 3901,
+     3901, 3901, 3901,    0,    0, 3901, 3901, 3902, 3902, 3902,
+     3902,    0,    0, 3902, 3902, 3903, 3903, 3903, 3903,    0,
+        0, 3903, 3903, 3904, 3904, 3904,    0,    0,    0, 3904,
+     3905, 3905, 3905, 3905,    0,    0, 3905, 3905, 3906, 3906,
+     3906, 3906,    0,    0, 3906, 3906, 3907, 3907, 3907,    0,
+        0,    0, 3907, 3908, 3908, 3908, 3908,    0,    0, 3908,
+     3908, 3909, 3909, 3909, 3909,    0,    0, 3909, 3909, 3910,
+     3910, 3910,    0,    0,    0, 3910, 3911, 3911, 3911,    0,
+        0,    0, 3911, 3912, 3912, 3912, 3912,    0,    0, 3912,
+
+     3912, 3913, 3913, 3913, 3913,    0,    0, 3913, 3913, 3914,
+     3914, 3914,    0,    0,    0, 3914, 3915, 3915, 3915, 3915,
+        0,    0, 3915, 3915, 3916, 3916, 3916,    0,    0,    0,
+     3916, 3917, 3917, 3917, 3917,    0,    0, 3917, 3917, 3918,
+     3918, 3918, 3918,    0, 3918,    0, 3918, 3919, 3919, 3919,
+     3919,    0,    0, 3919, 3919, 3920, 3920, 3920,    0,    0,
+        0, 3920, 3921, 3921, 3921, 3921,    0,    0, 3921, 3921,
+     3922, 3922, 3922,    0,    0,    0, 3922, 3923, 3923, 3923,
+        0,    0,    0, 3923, 3924, 3924, 3924, 3924,    0,    0,
+     3924, 3924, 3925, 3925, 3925,    0,    0,    0, 3925, 3926,
+
      3926, 3926, 3926,    0,    0, 3926, 3926, 3927, 3927, 3927,
-     3927,    0,    0, 3927, 3927, 3928, 3928, 3928, 3928,    0,
-        0, 3928, 3928, 3929, 3929, 3929, 3929,    0,    0, 3929,
-     3929, 3930, 3930, 3930,    0,    0,    0, 3930, 3931, 3931,
-     3931, 3931,    0,    0, 3931, 3931, 3932, 3932, 3932,    0,
-        0,    0, 3932, 3933, 3933, 3933, 3933,    0,    0, 3933,
-
-     3933, 3934, 3934, 3934, 3934,    0,    0, 3934, 3934, 3935,
-     3935, 3935, 3935,    0, 3935,    0, 3935, 3936, 3936, 3936,
-     3936,    0, 3936,    0, 3936, 3937, 3937, 3937, 3937,    0,
-        0, 3937, 3937, 3938, 3938, 3938, 3938,    0,    0, 3938,
-     3938, 3939, 3939, 3939, 3939,    0, 3939,    0, 3939, 3940,
-     3940, 3940, 3940,    0,    0, 3940, 3940, 3941, 3941, 3941,
-        0,    0,    0, 3941, 3942, 3942, 3942, 3942,    0,    0,
-     3942, 3942, 3943, 3943, 3943, 3943,    0, 3943,    0, 3943,
+        0,    0,    0, 3927, 3928, 3928, 3928, 3928,    0,    0,
+     3928, 3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930,
+     3930, 3930, 3930,    0,    0, 3930, 3930, 3931, 3931, 3931,
+     3931, 3931, 3931, 3931, 3931, 3931, 3932, 3932, 3932, 3932,
+     3932, 3932, 3932, 3932, 3932, 3933, 3933, 3933,    0,    0,
+        0, 3933, 3934, 3934, 3934, 3934,    0,    0, 3934, 3934,
+     3935, 3935, 3935, 3935,    0,    0, 3935, 3935, 3936, 3936,
+     3936, 3936,    0, 3936,    0, 3936, 3937, 3937, 3937, 3937,
+        0,    0, 3937, 3937, 3938, 3938, 3938, 3938,    0,    0,
+
+     3938, 3938, 3939, 3939, 3939, 3939,    0,    0, 3939, 3939,
+     3940, 3940, 3940, 3940,    0,    0, 3940, 3940, 3941, 3941,
+     3941,    0,    0,    0, 3941, 3942, 3942, 3942, 3942,    0,
+        0, 3942, 3942, 3943, 3943, 3943,    0,    0,    0, 3943,
      3944, 3944, 3944, 3944,    0,    0, 3944, 3944, 3945, 3945,
-     3945, 3945,    0, 3945,    0, 3945, 3946, 3946, 3946,    0,
-
-        0,    0, 3946, 3947, 3947, 3947,    0,    0,    0, 3947,
-     3948, 3948, 3948,    0,    0,    0, 3948, 3949, 3949, 3949,
-     3949,    0,    0, 3949, 3949, 3950, 3950, 3950,    0,    0,
-        0, 3950, 3951, 3951, 3951, 3951,    0,    0, 3951, 3951,
-     3952, 3952, 3952,    0,    0,    0, 3952, 3953, 3953, 3953,
-     3953,    0,    0, 3953, 3953, 3954, 3954, 3954, 3954, 3954,
-     3954, 3954, 3954, 3954, 3955, 3955, 3955, 3955, 3955, 3955,
-     3955, 3955, 3955, 3956, 3956, 3956,    0,    0,    0, 3956,
-     3957, 3957, 3957, 3957,    0,    0, 3957, 3957, 3958, 3958,
-     3958, 3958,    0,    0, 3958, 3958, 3959, 3959, 3959, 3959,
-
-        0,    0, 3959, 3959, 3960, 3960, 3960, 3960,    0,    0,
+     3945, 3945,    0,    0, 3945, 3945, 3946, 3946, 3946, 3946,
+        0, 3946,    0, 3946, 3947, 3947, 3947, 3947,    0, 3947,
+        0, 3947, 3948, 3948, 3948, 3948,    0,    0, 3948, 3948,
+     3949, 3949, 3949, 3949,    0,    0, 3949, 3949, 3950, 3950,
+     3950, 3950,    0, 3950,    0, 3950, 3951, 3951, 3951, 3951,
+
+        0,    0, 3951, 3951, 3952, 3952, 3952,    0,    0,    0,
+     3952, 3953, 3953, 3953, 3953,    0,    0, 3953, 3953, 3954,
+     3954, 3954, 3954,    0, 3954,    0, 3954, 3955, 3955, 3955,
+     3955,    0,    0, 3955, 3955, 3956, 3956, 3956, 3956,    0,
+     3956,    0, 3956, 3957, 3957, 3957,    0,    0,    0, 3957,
+     3958, 3958, 3958,    0,    0,    0, 3958, 3959, 3959, 3959,
+        0,    0,    0, 3959, 3960, 3960, 3960, 3960,    0,    0,
      3960, 3960, 3961, 3961, 3961,    0,    0,    0, 3961, 3962,
-     3962, 3962,    0,    0,    0, 3962, 3963, 3963, 3963, 3963,
-        0,    0, 3963, 3963, 3964, 3964, 3964,    0,    0,    0,
-     3964, 3965, 3965, 3965, 3965,    0,    0, 3965, 3965, 3966,
-     3966, 3966, 3966,    0,    0, 3966, 3966, 3967, 3967, 3967,
-     3967, 3967, 3967, 3967, 3967, 3967, 3968, 3968, 3968, 3968,
-     3968, 3968, 3968, 3968, 3968, 3969, 3969, 3969, 3969, 3969,
-     3969, 3969, 3969, 3969, 3970, 3970, 3970, 3970, 3970, 3970,
-     3970, 3970, 3970, 3971, 3971, 3971, 3971, 3971, 3971, 3971,
-
-     3971, 3971, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
-     3972, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
-     3465, 3465, 3465, 3465, 3465, 3465
+     3962, 3962, 3962,    0,    0, 3962, 3962, 3963, 3963, 3963,
+        0,    0,    0, 3963, 3964, 3964, 3964, 3964,    0,    0,
+
+     3964, 3964, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+     3965, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
+     3967, 3967, 3967,    0,    0,    0, 3967, 3968, 3968, 3968,
+     3968,    0,    0, 3968, 3968, 3969, 3969, 3969, 3969,    0,
+        0, 3969, 3969, 3970, 3970, 3970, 3970,    0,    0, 3970,
+     3970, 3971, 3971, 3971, 3971,    0,    0, 3971, 3971, 3972,
+     3972, 3972,    0,    0,    0, 3972, 3973, 3973, 3973,    0,
+        0,    0, 3973, 3974, 3974, 3974, 3974,    0,    0, 3974,
+     3974, 3975, 3975, 3975,    0,    0,    0, 3975, 3976, 3976,
+     3976, 3976,    0,    0, 3976, 3976, 3977, 3977, 3977, 3977,
+
+        0,    0, 3977, 3977, 3978, 3978, 3978, 3978, 3978, 3978,
+     3978, 3978, 3978, 3979, 3979, 3979, 3979, 3979, 3979, 3979,
+     3979, 3979, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+     3980, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981,
+     3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3983,
+     3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
+     3476, 3476, 3476
     } ;
 
 /* Table of booleans, true if rule could match eol. */
 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
     {   0,
 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
-    0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
-    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
-    1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
+    0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
+    0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
+    1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
+    1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
+    0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
+    0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
-    0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
-    1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
+    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
+    1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
+    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
+    0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
+    0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
-    0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
-    1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
+    1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
+    0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
-    1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
-    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
-    0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
-    0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
-    1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
-    0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
+    1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
 
 static yy_state_type yy_last_accepting_state;
@@ -4554,7 +4547,7 @@ int surf_parse__flex_debug = 0;
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *surf_parse_text;
-/* Validating XML processor for src/surf/simgrid.dtd.
+/* Validating XML processor for src/surf/xml/simgrid.dtd.
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
@@ -4696,15 +4689,15 @@ short int surfxml_cabinet_id_isset;
 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
 short int surfxml_cabinet_lat_isset;
-AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
-#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
-short int surfxml_cabinet_power_isset;
 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
 short int surfxml_cabinet_prefix_isset;
 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
 short int surfxml_cabinet_radical_isset;
+AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
+#define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
+short int surfxml_cabinet_speed_isset;
 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
 short int surfxml_cabinet_suffix_isset;
@@ -4741,9 +4734,6 @@ short int surfxml_cluster_loopback___bw_isset;
 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
 short int surfxml_cluster_loopback___lat_isset;
-AT_surfxml_cluster_power AX_surfxml_cluster_power;
-#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
-short int surfxml_cluster_power_isset;
 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
 short int surfxml_cluster_prefix_isset;
@@ -4756,6 +4746,9 @@ short int surfxml_cluster_router___id_isset;
 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
 short int surfxml_cluster_sharing___policy_isset;
+AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
+#define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
+short int surfxml_cluster_speed_isset;
 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
 short int surfxml_cluster_state___file_isset;
@@ -4789,12 +4782,12 @@ short int surfxml_host_core_isset;
 AT_surfxml_host_id AX_surfxml_host_id;
 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
 short int surfxml_host_id_isset;
-AT_surfxml_host_power AX_surfxml_host_power;
-#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
-short int surfxml_host_power_isset;
 AT_surfxml_host_pstate AX_surfxml_host_pstate;
 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
 short int surfxml_host_pstate_isset;
+AT_surfxml_host_speed AX_surfxml_host_speed;
+#define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
+short int surfxml_host_speed_isset;
 AT_surfxml_host_state AX_surfxml_host_state;
 #define A_surfxml_host_state AX_surfxml_host_state
 short int surfxml_host_state_isset;
@@ -4879,9 +4872,9 @@ short int surfxml_peer_id_isset;
 AT_surfxml_peer_lat AX_surfxml_peer_lat;
 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
 short int surfxml_peer_lat_isset;
-AT_surfxml_peer_power AX_surfxml_peer_power;
-#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
-short int surfxml_peer_power_isset;
+AT_surfxml_peer_speed AX_surfxml_peer_speed;
+#define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
+short int surfxml_peer_speed_isset;
 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
 short int surfxml_peer_state___file_isset;
@@ -5461,9 +5454,9 @@ extern int surf_parse_lex (void);
  */
 YY_DECL
 {
-       register yy_state_type yy_current_state;
-       register char *yy_cp, *yy_bp;
-       register int yy_act;
+       yy_state_type yy_current_state;
+       char *yy_cp, *yy_bp;
+       int yy_act;
     
        if ( !(yy_init) )
                {
@@ -5521,7 +5514,7 @@ YY_DECL
   surfxml_bufferliteral('\0', &bnext, "0.0");
   surfxml_bufferliteral('\0', &bnext, "txt_unix");
   surfxml_bufferliteral('\0', &bnext, "1");
-  surfxml_bufferliteral('\0', &bnext, "0.0");
+  surfxml_bufferliteral('\0', &bnext, "0s");
   surfxml_bufferliteral('\0', &bnext, "-1.0");
   surfxml_bufferliteral('\0', &bnext, "-1.0");
   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
@@ -5533,31 +5526,7 @@ YY_DECL
   surfxml_statenames[VALUE1] = NULL;
   surfxml_statenames[VALUE2] = NULL;
   surfxml_statenames[CDATA] = NULL;
-  surfxml_statenames[ROOT_surfxml_platform] = NULL;
-  surfxml_statenames[AL_surfxml_platform] = NULL;
-  surfxml_statenames[E_surfxml_platform] = "platform";
-  surfxml_statenames[S_surfxml_platform] = "platform";
-  surfxml_statenames[S_surfxml_platform_1] = "platform";
-  surfxml_statenames[S_surfxml_platform_2] = "platform";
-  surfxml_statenames[S_surfxml_platform_3] = "platform";
-  surfxml_statenames[S_surfxml_platform_4] = "platform";
-  surfxml_statenames[S_surfxml_platform_5] = "platform";
-  surfxml_statenames[S_surfxml_platform_6] = "platform";
-  surfxml_statenames[S_surfxml_platform_7] = "platform";
-  surfxml_statenames[S_surfxml_platform_8] = "platform";
-  surfxml_statenames[AL_surfxml_include] = NULL;
-  surfxml_statenames[E_surfxml_include] = "include";
-  surfxml_statenames[S_surfxml_include] = "include";
-  surfxml_statenames[S_surfxml_include_1] = "include";
-  surfxml_statenames[S_surfxml_include_2] = "include";
-  surfxml_statenames[AL_surfxml_trace] = NULL;
-  surfxml_statenames[IN_trace] = "trace";
-  surfxml_statenames[AL_surfxml_random] = NULL;
-  surfxml_statenames[E_surfxml_random] = "random";
-  surfxml_statenames[AL_surfxml_trace___connect] = NULL;
-  surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
   surfxml_statenames[AL_surfxml_AS] = NULL;
-  surfxml_statenames[E_surfxml_AS] = "AS";
   surfxml_statenames[S_surfxml_AS] = "AS";
   surfxml_statenames[S_surfxml_AS_1] = "AS";
   surfxml_statenames[S_surfxml_AS_2] = "AS";
@@ -5567,85 +5536,109 @@ YY_DECL
   surfxml_statenames[S_surfxml_AS_6] = "AS";
   surfxml_statenames[S_surfxml_AS_7] = "AS";
   surfxml_statenames[S_surfxml_AS_8] = "AS";
-  surfxml_statenames[AL_surfxml_storage___type] = NULL;
-  surfxml_statenames[E_surfxml_storage___type] = "storage_type";
-  surfxml_statenames[S_surfxml_storage___type] = "storage_type";
-  surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
-  surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
-  surfxml_statenames[AL_surfxml_mount] = NULL;
-  surfxml_statenames[E_surfxml_mount] = "mount";
-  surfxml_statenames[AL_surfxml_mstorage] = NULL;
-  surfxml_statenames[E_surfxml_mstorage] = "mstorage";
+  surfxml_statenames[E_surfxml_AS] = "AS";
+  surfxml_statenames[AL_surfxml_ASroute] = NULL;
+  surfxml_statenames[S_surfxml_ASroute] = "ASroute";
+  surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
+  surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
+  surfxml_statenames[E_surfxml_ASroute] = "ASroute";
+  surfxml_statenames[AL_surfxml_argument] = NULL;
+  surfxml_statenames[E_surfxml_argument] = "argument";
+  surfxml_statenames[AL_surfxml_backbone] = NULL;
+  surfxml_statenames[E_surfxml_backbone] = "backbone";
+  surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
+  surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
+  surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
+  surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
+  surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
+  surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
+  surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
+  surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
+  surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
+  surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
+  surfxml_statenames[AL_surfxml_cabinet] = NULL;
+  surfxml_statenames[E_surfxml_cabinet] = "cabinet";
+  surfxml_statenames[AL_surfxml_cluster] = NULL;
+  surfxml_statenames[S_surfxml_cluster] = "cluster";
+  surfxml_statenames[S_surfxml_cluster_1] = "cluster";
+  surfxml_statenames[S_surfxml_cluster_2] = "cluster";
+  surfxml_statenames[E_surfxml_cluster] = "cluster";
+  surfxml_statenames[AL_surfxml_config] = NULL;
+  surfxml_statenames[S_surfxml_config] = "config";
+  surfxml_statenames[S_surfxml_config_1] = "config";
+  surfxml_statenames[S_surfxml_config_2] = "config";
+  surfxml_statenames[E_surfxml_config] = "config";
+  surfxml_statenames[AL_surfxml_gpu] = NULL;
+  surfxml_statenames[E_surfxml_gpu] = "gpu";
   surfxml_statenames[AL_surfxml_host] = NULL;
-  surfxml_statenames[E_surfxml_host] = "host";
   surfxml_statenames[S_surfxml_host] = "host";
   surfxml_statenames[S_surfxml_host_1] = "host";
   surfxml_statenames[S_surfxml_host_2] = "host";
-  surfxml_statenames[AL_surfxml_storage] = NULL;
-  surfxml_statenames[E_surfxml_storage] = "storage";
-  surfxml_statenames[S_surfxml_storage] = "storage";
-  surfxml_statenames[S_surfxml_storage_1] = "storage";
-  surfxml_statenames[S_surfxml_storage_2] = "storage";
-  surfxml_statenames[AL_surfxml_gpu] = NULL;
-  surfxml_statenames[E_surfxml_gpu] = "gpu";
+  surfxml_statenames[E_surfxml_host] = "host";
   surfxml_statenames[AL_surfxml_host___link] = NULL;
   surfxml_statenames[E_surfxml_host___link] = "host_link";
-  surfxml_statenames[AL_surfxml_cluster] = NULL;
-  surfxml_statenames[E_surfxml_cluster] = "cluster";
-  surfxml_statenames[S_surfxml_cluster] = "cluster";
-  surfxml_statenames[S_surfxml_cluster_1] = "cluster";
-  surfxml_statenames[S_surfxml_cluster_2] = "cluster";
-  surfxml_statenames[AL_surfxml_cabinet] = NULL;
-  surfxml_statenames[E_surfxml_cabinet] = "cabinet";
-  surfxml_statenames[AL_surfxml_peer] = NULL;
-  surfxml_statenames[E_surfxml_peer] = "peer";
-  surfxml_statenames[AL_surfxml_router] = NULL;
-  surfxml_statenames[E_surfxml_router] = "router";
-  surfxml_statenames[AL_surfxml_backbone] = NULL;
-  surfxml_statenames[E_surfxml_backbone] = "backbone";
+  surfxml_statenames[AL_surfxml_include] = NULL;
+  surfxml_statenames[S_surfxml_include] = "include";
+  surfxml_statenames[S_surfxml_include_1] = "include";
+  surfxml_statenames[S_surfxml_include_2] = "include";
+  surfxml_statenames[E_surfxml_include] = "include";
   surfxml_statenames[AL_surfxml_link] = NULL;
-  surfxml_statenames[E_surfxml_link] = "link";
   surfxml_statenames[S_surfxml_link] = "link";
   surfxml_statenames[S_surfxml_link_1] = "link";
   surfxml_statenames[S_surfxml_link_2] = "link";
-  surfxml_statenames[AL_surfxml_route] = NULL;
-  surfxml_statenames[E_surfxml_route] = "route";
-  surfxml_statenames[S_surfxml_route] = "route";
-  surfxml_statenames[S_surfxml_route_1] = "route";
-  surfxml_statenames[S_surfxml_route_2] = "route";
-  surfxml_statenames[AL_surfxml_ASroute] = NULL;
-  surfxml_statenames[E_surfxml_ASroute] = "ASroute";
-  surfxml_statenames[S_surfxml_ASroute] = "ASroute";
-  surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
-  surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
+  surfxml_statenames[E_surfxml_link] = "link";
   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
-  surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
-  surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
-  surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
-  surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
-  surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
-  surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
-  surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
-  surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
-  surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
-  surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
+  surfxml_statenames[AL_surfxml_model___prop] = NULL;
+  surfxml_statenames[E_surfxml_model___prop] = "model_prop";
+  surfxml_statenames[AL_surfxml_mount] = NULL;
+  surfxml_statenames[E_surfxml_mount] = "mount";
+  surfxml_statenames[AL_surfxml_mstorage] = NULL;
+  surfxml_statenames[E_surfxml_mstorage] = "mstorage";
+  surfxml_statenames[AL_surfxml_peer] = NULL;
+  surfxml_statenames[E_surfxml_peer] = "peer";
+  surfxml_statenames[ROOT_surfxml_platform] = NULL;
+  surfxml_statenames[AL_surfxml_platform] = NULL;
+  surfxml_statenames[S_surfxml_platform] = "platform";
+  surfxml_statenames[S_surfxml_platform_1] = "platform";
+  surfxml_statenames[S_surfxml_platform_2] = "platform";
+  surfxml_statenames[S_surfxml_platform_3] = "platform";
+  surfxml_statenames[S_surfxml_platform_4] = "platform";
+  surfxml_statenames[S_surfxml_platform_5] = "platform";
+  surfxml_statenames[S_surfxml_platform_6] = "platform";
+  surfxml_statenames[S_surfxml_platform_7] = "platform";
+  surfxml_statenames[S_surfxml_platform_8] = "platform";
+  surfxml_statenames[E_surfxml_platform] = "platform";
   surfxml_statenames[AL_surfxml_process] = NULL;
-  surfxml_statenames[E_surfxml_process] = "process";
   surfxml_statenames[S_surfxml_process] = "process";
   surfxml_statenames[S_surfxml_process_1] = "process";
   surfxml_statenames[S_surfxml_process_2] = "process";
-  surfxml_statenames[AL_surfxml_argument] = NULL;
-  surfxml_statenames[E_surfxml_argument] = "argument";
-  surfxml_statenames[AL_surfxml_config] = NULL;
-  surfxml_statenames[E_surfxml_config] = "config";
-  surfxml_statenames[S_surfxml_config] = "config";
-  surfxml_statenames[S_surfxml_config_1] = "config";
-  surfxml_statenames[S_surfxml_config_2] = "config";
+  surfxml_statenames[E_surfxml_process] = "process";
   surfxml_statenames[AL_surfxml_prop] = NULL;
   surfxml_statenames[E_surfxml_prop] = "prop";
-  surfxml_statenames[AL_surfxml_model___prop] = NULL;
-  surfxml_statenames[E_surfxml_model___prop] = "model_prop";
+  surfxml_statenames[AL_surfxml_random] = NULL;
+  surfxml_statenames[E_surfxml_random] = "random";
+  surfxml_statenames[AL_surfxml_route] = NULL;
+  surfxml_statenames[S_surfxml_route] = "route";
+  surfxml_statenames[S_surfxml_route_1] = "route";
+  surfxml_statenames[S_surfxml_route_2] = "route";
+  surfxml_statenames[E_surfxml_route] = "route";
+  surfxml_statenames[AL_surfxml_router] = NULL;
+  surfxml_statenames[E_surfxml_router] = "router";
+  surfxml_statenames[AL_surfxml_storage] = NULL;
+  surfxml_statenames[S_surfxml_storage] = "storage";
+  surfxml_statenames[S_surfxml_storage_1] = "storage";
+  surfxml_statenames[S_surfxml_storage_2] = "storage";
+  surfxml_statenames[E_surfxml_storage] = "storage";
+  surfxml_statenames[AL_surfxml_storage___type] = NULL;
+  surfxml_statenames[S_surfxml_storage___type] = "storage_type";
+  surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
+  surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
+  surfxml_statenames[E_surfxml_storage___type] = "storage_type";
+  surfxml_statenames[AL_surfxml_trace] = NULL;
+  surfxml_statenames[IN_trace] = "trace";
+  surfxml_statenames[AL_surfxml_trace___connect] = NULL;
+  surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
   }
 
  /* COMMENTS and PIs: handled uniformly for efficiency. */
@@ -5666,7 +5659,7 @@ YY_DECL
 yy_match:
                do
                        {
-                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
                        if ( yy_accept[yy_current_state] )
                                {
                                (yy_last_accepting_state) = yy_current_state;
@@ -5675,13 +5668,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 3466 )
+                               if ( yy_current_state >= 3477 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 12512 );
+               while ( yy_base[yy_current_state] != 12459 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -5792,3420 +5785,3497 @@ FAIL("EOF in prolog.");
        YY_BREAK
 
 /* RULES DERIVED FROM DTD. */
-/* <!-- Small DTD for SURF based tools. -->  */
 case 16:
 /* rule 16 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <platform> is not allowed here.");
+FAIL("Starting tag <AS> is not allowed here.");
        YY_BREAK
 case 17:
 /* rule 17 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_platform_version = 1;
-  surfxml_platform_version_isset = 0;
-  ENTER(AL_surfxml_platform); pushbuffer(0);
+  AX_surfxml_AS_id = 0;
+  surfxml_AS_id_isset = 0;
+  AX_surfxml_AS_routing = AU_surfxml_AS_routing;
+  surfxml_AS_routing_isset = 0;
+  ENTER(AL_surfxml_AS); pushbuffer(0);
   }
        YY_BREAK
 
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
+if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
        YY_BREAK
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
-if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
+if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
        YY_BREAK
 case 20:
-YY_RULE_SETUP
-{
-  LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
- }
-       YY_BREAK
+/* rule 20 can match eol */
 case 21:
+/* rule 21 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case ROOT_surfxml_platform: SET(EPILOG); break;
-  }
- }
+A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
        YY_BREAK
 case 22:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
-       YY_BREAK
+/* rule 22 can match eol */
 case 23:
+/* rule 23 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_platform):
-FAIL("EOF in attribute list of `platform' element.");
+A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
        YY_BREAK
-
 case 24:
 /* rule 24 can match eol */
-YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_platform();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case ROOT_surfxml_platform: SET(EPILOG); break;
-  }
- }
-       YY_BREAK
 case 25:
 /* rule 25 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
+A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
        YY_BREAK
 case 26:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_platform_1):
-case YY_STATE_EOF(S_surfxml_platform_6):
-case YY_STATE_EOF(S_surfxml_platform_4):
-case YY_STATE_EOF(S_surfxml_platform_3):
-case YY_STATE_EOF(S_surfxml_platform):
-case YY_STATE_EOF(E_surfxml_platform):
-case YY_STATE_EOF(S_surfxml_platform_8):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
-       YY_BREAK
-
+/* rule 26 can match eol */
 case 27:
 /* rule 27 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <include> is not allowed here.");
+A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
        YY_BREAK
 case 28:
 /* rule 28 can match eol */
-YY_RULE_SETUP
-{
-  AX_surfxml_include_file = 0;
-  surfxml_include_file_isset = 0;
-  ENTER(AL_surfxml_include); pushbuffer(0);
-  }
-       YY_BREAK
-
 case 29:
 /* rule 29 can match eol */
 YY_RULE_SETUP
-if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
+A_surfxml_AS_routing = A_surfxml_AS_routing_None;
        YY_BREAK
 case 30:
 /* rule 30 can match eol */
-YY_RULE_SETUP
-if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
-       YY_BREAK
 case 31:
+/* rule 31 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
-  LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
- }
+A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
        YY_BREAK
 case 32:
-YY_RULE_SETUP
-{
-  if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
-  LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
-       YY_BREAK
+/* rule 32 can match eol */
 case 33:
+/* rule 33 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
+A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
        YY_BREAK
 case 34:
-YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_include):
-FAIL("EOF in attribute list of `include' element.");
-       YY_BREAK
-
+/* rule 34 can match eol */
 case 35:
 /* rule 35 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_include();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
        YY_BREAK
 case 36:
 /* rule 36 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
-       YY_BREAK
 case 37:
+/* rule 37 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
+A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
        YY_BREAK
-case YY_STATE_EOF(S_surfxml_include_2):
-case YY_STATE_EOF(E_surfxml_include):
-case YY_STATE_EOF(S_surfxml_include):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
-       YY_BREAK
-
 case 38:
-/* rule 38 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <trace> is not allowed here.");
+{
+  if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
+  if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
+  LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
+ }
        YY_BREAK
 case 39:
-/* rule 39 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_trace_id = 0;
-  surfxml_trace_id_isset = 0;
-  AX_surfxml_trace_file = 0;
-  surfxml_trace_file_isset = 0;
-  AX_surfxml_trace_periodicity = 0;
-  surfxml_trace_periodicity_isset = 0;
-  ENTER(AL_surfxml_trace); pushbuffer(0);
+  if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
+  if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
+  LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
+ }
        YY_BREAK
-
 case 40:
-/* rule 40 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
+FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
        YY_BREAK
 case 41:
-/* rule 41 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
+FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
        YY_BREAK
+case YY_STATE_EOF(AL_surfxml_AS):
+FAIL("EOF in attribute list of `AS' element.");
+       YY_BREAK
+
 case 42:
 /* rule 42 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
+{
+  LEAVE;
+  ETag_surfxml_AS();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 43:
 /* rule 43 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
+FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
        YY_BREAK
 case 44:
-/* rule 44 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
+FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_AS):
+case YY_STATE_EOF(S_surfxml_AS):
+case YY_STATE_EOF(S_surfxml_AS_1):
+case YY_STATE_EOF(S_surfxml_AS_3):
+case YY_STATE_EOF(S_surfxml_AS_4):
+case YY_STATE_EOF(S_surfxml_AS_6):
+case YY_STATE_EOF(S_surfxml_AS_8):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
        YY_BREAK
+
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
+FAIL("Starting tag <ASroute> is not allowed here.");
        YY_BREAK
 case 46:
+/* rule 46 can match eol */
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
-  if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
-  LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
- }
+  AX_surfxml_ASroute_dst = 0;
+  surfxml_ASroute_dst_isset = 0;
+  AX_surfxml_ASroute_gw___dst = 0;
+  surfxml_ASroute_gw___dst_isset = 0;
+  AX_surfxml_ASroute_gw___src = 0;
+  surfxml_ASroute_gw___src_isset = 0;
+  AX_surfxml_ASroute_src = 0;
+  surfxml_ASroute_src_isset = 0;
+  AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
+  surfxml_ASroute_symmetrical_isset = 0;
+  ENTER(AL_surfxml_ASroute); pushbuffer(0);
+  }
        YY_BREAK
+
 case 47:
+/* rule 47 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
-  if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
-  LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
        YY_BREAK
 case 48:
+/* rule 48 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
+if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
        YY_BREAK
 case 49:
+/* rule 49 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_trace):
-FAIL("EOF in attribute list of `trace' element.");
+if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
        YY_BREAK
-
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  BUFFERDONE;
-  ETag_surfxml_trace();
-  surfxml_pcdata_ix = popbuffer();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
        YY_BREAK
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(IN_trace):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
+if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
        YY_BREAK
-
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <random> is not allowed here.");
+if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
        YY_BREAK
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_random_id = 0;
-  surfxml_random_id_isset = 0;
-  AX_surfxml_random_min = 0;
-  surfxml_random_min_isset = 0;
-  AX_surfxml_random_max = 0;
-  surfxml_random_max_isset = 0;
-  AX_surfxml_random_mean = 0;
-  surfxml_random_mean_isset = 0;
-  AX_surfxml_random_std___deviation = 0;
-  surfxml_random_std___deviation_isset = 0;
-  AX_surfxml_random_seed = 5;
-  surfxml_random_seed_isset = 0;
-  AX_surfxml_random_radical = 0;
-  surfxml_random_radical_isset = 0;
-  AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
-  surfxml_random_generator_isset = 0;
-  ENTER(AL_surfxml_random); pushbuffer(0);
-  }
+if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
        YY_BREAK
-
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
+if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
        YY_BREAK
 case 55:
 /* rule 55 can match eol */
-YY_RULE_SETUP
-if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
-       YY_BREAK
 case 56:
 /* rule 56 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
+A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
        YY_BREAK
 case 57:
 /* rule 57 can match eol */
-YY_RULE_SETUP
-if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
-       YY_BREAK
 case 58:
 /* rule 58 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
+A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
        YY_BREAK
 case 59:
-/* rule 59 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
+{
+  if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
+  LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
+ }
        YY_BREAK
 case 60:
-/* rule 60 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
+{
+  if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
+  if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
+  LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+  }
+ }
        YY_BREAK
 case 61:
-/* rule 61 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
+FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
        YY_BREAK
 case 62:
-/* rule 62 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
+FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_ASroute):
+FAIL("EOF in attribute list of `ASroute' element.");
        YY_BREAK
+
 case 63:
 /* rule 63 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
+{
+  LEAVE;
+  ETag_surfxml_ASroute();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+  }
+ }
        YY_BREAK
 case 64:
 /* rule 64 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
+FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
        YY_BREAK
 case 65:
-/* rule 65 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
+FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_surfxml_ASroute):
+case YY_STATE_EOF(S_surfxml_ASroute):
+case YY_STATE_EOF(S_surfxml_ASroute_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
+       YY_BREAK
+
 case 66:
 /* rule 66 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
+FAIL("Starting tag <argument> is not allowed here.");
        YY_BREAK
 case 67:
 /* rule 67 can match eol */
 YY_RULE_SETUP
-if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
+{
+  AX_surfxml_argument_value = 0;
+  surfxml_argument_value_isset = 0;
+  ENTER(AL_surfxml_argument); pushbuffer(0);
+  }
        YY_BREAK
+
 case 68:
 /* rule 68 can match eol */
+YY_RULE_SETUP
+if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
+       YY_BREAK
 case 69:
 /* rule 69 can match eol */
 YY_RULE_SETUP
-A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
+if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
        YY_BREAK
 case 70:
-/* rule 70 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
+  LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
+ }
+       YY_BREAK
 case 71:
-/* rule 71 can match eol */
 YY_RULE_SETUP
-A_surfxml_random_generator = A_surfxml_random_generator_RAND;
+{
+  if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
+  LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+  }
+ }
        YY_BREAK
 case 72:
-/* rule 72 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
+       YY_BREAK
 case 73:
-/* rule 73 can match eol */
 YY_RULE_SETUP
-A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
+FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
        YY_BREAK
+case YY_STATE_EOF(AL_surfxml_argument):
+FAIL("EOF in attribute list of `argument' element.");
+       YY_BREAK
+
 case 74:
 /* rule 74 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_argument();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+  }
+ }
+       YY_BREAK
 case 75:
 /* rule 75 can match eol */
 YY_RULE_SETUP
-A_surfxml_random_generator = A_surfxml_random_generator_NONE;
+FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
-  if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
-  if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
-  if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
-  if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
-  LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
- }
+FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_argument):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
        YY_BREAK
+
 case 77:
+/* rule 77 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
-  if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
-  if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
-  if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
-  if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
-  LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
-  }
- }
+FAIL("Starting tag <backbone> is not allowed here.");
        YY_BREAK
 case 78:
+/* rule 78 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
+{
+  AX_surfxml_backbone_bandwidth = 0;
+  surfxml_backbone_bandwidth_isset = 0;
+  AX_surfxml_backbone_id = 0;
+  surfxml_backbone_id_isset = 0;
+  AX_surfxml_backbone_latency = 0;
+  surfxml_backbone_latency_isset = 0;
+  ENTER(AL_surfxml_backbone); pushbuffer(0);
+  }
        YY_BREAK
+
 case 79:
+/* rule 79 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_random):
-FAIL("EOF in attribute list of `random' element.");
+if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
        YY_BREAK
-
 case 80:
 /* rule 80 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_random();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
-  }
- }
+if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
        YY_BREAK
 case 81:
 /* rule 81 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
+if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
        YY_BREAK
 case 82:
+/* rule 82 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_random):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
+if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
        YY_BREAK
-
 case 83:
 /* rule 83 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <trace_connect> is not allowed here.");
+if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
        YY_BREAK
 case 84:
 /* rule 84 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
-  surfxml_trace___connect_kind_isset = 0;
-  AX_surfxml_trace___connect_trace = 0;
-  surfxml_trace___connect_trace_isset = 0;
-  AX_surfxml_trace___connect_element = 0;
-  surfxml_trace___connect_element_isset = 0;
-  ENTER(AL_surfxml_trace___connect); pushbuffer(0);
-  }
+if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
        YY_BREAK
-
 case 85:
-/* rule 85 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
+  if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
+  if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
+  LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
+ }
+       YY_BREAK
 case 86:
-/* rule 86 can match eol */
 YY_RULE_SETUP
-A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
+{
+  if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
+  if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
+  if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
+  LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 87:
-/* rule 87 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
+       YY_BREAK
 case 88:
-/* rule 88 can match eol */
 YY_RULE_SETUP
-A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
+FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_backbone):
+FAIL("EOF in attribute list of `backbone' element.");
        YY_BREAK
+
 case 89:
 /* rule 89 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_backbone();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
+       YY_BREAK
 case 90:
 /* rule 90 can match eol */
 YY_RULE_SETUP
-A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
+FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
        YY_BREAK
 case 91:
-/* rule 91 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_backbone):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
+       YY_BREAK
+
 case 92:
 /* rule 92 can match eol */
 YY_RULE_SETUP
-A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
+FAIL("Starting tag <bypassASroute> is not allowed here.");
        YY_BREAK
 case 93:
 /* rule 93 can match eol */
+YY_RULE_SETUP
+{
+  AX_surfxml_bypassASroute_dst = 0;
+  surfxml_bypassASroute_dst_isset = 0;
+  AX_surfxml_bypassASroute_gw___dst = 0;
+  surfxml_bypassASroute_gw___dst_isset = 0;
+  AX_surfxml_bypassASroute_gw___src = 0;
+  surfxml_bypassASroute_gw___src_isset = 0;
+  AX_surfxml_bypassASroute_src = 0;
+  surfxml_bypassASroute_src_isset = 0;
+  ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
+  }
+       YY_BREAK
+
 case 94:
 /* rule 94 can match eol */
 YY_RULE_SETUP
-A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
+if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
        YY_BREAK
 case 95:
 /* rule 95 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
+if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
        YY_BREAK
 case 96:
 /* rule 96 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
+if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
        YY_BREAK
 case 97:
 /* rule 97 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
+if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
        YY_BREAK
 case 98:
 /* rule 98 can match eol */
 YY_RULE_SETUP
-if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
+if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
        YY_BREAK
 case 99:
+/* rule 99 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
-  if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
-  LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
- }
+if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
        YY_BREAK
 case 100:
+/* rule 100 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
-  if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
-  LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
        YY_BREAK
 case 101:
+/* rule 101 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
+if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_trace___connect):
-FAIL("EOF in attribute list of `trace_connect' element.");
+{
+  if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
+  LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
+ }
        YY_BREAK
-
 case 103:
-/* rule 103 can match eol */
 YY_RULE_SETUP
 {
-  LEAVE;
-  ETag_surfxml_trace___connect();
-  popbuffer(); /* attribute */
+  if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
+  if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
+  LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
  }
        YY_BREAK
 case 104:
-/* rule 104 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
+FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
+FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(E_surfxml_trace___connect):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
+case YY_STATE_EOF(AL_surfxml_bypassASroute):
+FAIL("EOF in attribute list of `bypassASroute' element.");
        YY_BREAK
 
 case 106:
 /* rule 106 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <AS> is not allowed here.");
+{
+  LEAVE;
+  ETag_surfxml_bypassASroute();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+  }
+ }
        YY_BREAK
 case 107:
 /* rule 107 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_AS_id = 0;
-  surfxml_AS_id_isset = 0;
-  AX_surfxml_AS_routing = AU_surfxml_AS_routing;
-  surfxml_AS_routing_isset = 0;
-  ENTER(AL_surfxml_AS); pushbuffer(0);
-  }
+FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
        YY_BREAK
-
 case 108:
-/* rule 108 can match eol */
 YY_RULE_SETUP
-if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
+FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_bypassASroute):
+case YY_STATE_EOF(S_surfxml_bypassASroute):
+case YY_STATE_EOF(S_surfxml_bypassASroute_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
        YY_BREAK
+
 case 109:
 /* rule 109 can match eol */
 YY_RULE_SETUP
-if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
+FAIL("Starting tag <bypassRoute> is not allowed here.");
        YY_BREAK
 case 110:
 /* rule 110 can match eol */
+YY_RULE_SETUP
+{
+  AX_surfxml_bypassRoute_dst = 0;
+  surfxml_bypassRoute_dst_isset = 0;
+  AX_surfxml_bypassRoute_src = 0;
+  surfxml_bypassRoute_src_isset = 0;
+  ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
+  }
+       YY_BREAK
+
 case 111:
 /* rule 111 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
+if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
        YY_BREAK
 case 112:
 /* rule 112 can match eol */
+YY_RULE_SETUP
+if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
+       YY_BREAK
 case 113:
 /* rule 113 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
+if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
        YY_BREAK
 case 114:
 /* rule 114 can match eol */
+YY_RULE_SETUP
+if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
+       YY_BREAK
 case 115:
-/* rule 115 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
+{
+  if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
+  if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
+  LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
+ }
        YY_BREAK
 case 116:
-/* rule 116 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
+  if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
+  LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+  }
+ }
+       YY_BREAK
 case 117:
-/* rule 117 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
+FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
        YY_BREAK
 case 118:
-/* rule 118 can match eol */
+YY_RULE_SETUP
+FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_bypassRoute):
+FAIL("EOF in attribute list of `bypassRoute' element.");
+       YY_BREAK
+
 case 119:
 /* rule 119 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_None;
+{
+  LEAVE;
+  ETag_surfxml_bypassRoute();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+  }
+ }
        YY_BREAK
 case 120:
 /* rule 120 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
+       YY_BREAK
 case 121:
-/* rule 121 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
+FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_bypassRoute):
+case YY_STATE_EOF(S_surfxml_bypassRoute):
+case YY_STATE_EOF(S_surfxml_bypassRoute_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
        YY_BREAK
+
 case 122:
 /* rule 122 can match eol */
+YY_RULE_SETUP
+FAIL("Starting tag <cabinet> is not allowed here.");
+       YY_BREAK
 case 123:
 /* rule 123 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
+{
+  AX_surfxml_cabinet_bw = 0;
+  surfxml_cabinet_bw_isset = 0;
+  AX_surfxml_cabinet_id = 0;
+  surfxml_cabinet_id_isset = 0;
+  AX_surfxml_cabinet_lat = 0;
+  surfxml_cabinet_lat_isset = 0;
+  AX_surfxml_cabinet_prefix = 0;
+  surfxml_cabinet_prefix_isset = 0;
+  AX_surfxml_cabinet_radical = 0;
+  surfxml_cabinet_radical_isset = 0;
+  AX_surfxml_cabinet_speed = 0;
+  surfxml_cabinet_speed_isset = 0;
+  AX_surfxml_cabinet_suffix = 0;
+  surfxml_cabinet_suffix_isset = 0;
+  ENTER(AL_surfxml_cabinet); pushbuffer(0);
+  }
        YY_BREAK
+
 case 124:
 /* rule 124 can match eol */
+YY_RULE_SETUP
+if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
+       YY_BREAK
 case 125:
 /* rule 125 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
+if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
        YY_BREAK
 case 126:
 /* rule 126 can match eol */
+YY_RULE_SETUP
+if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
+       YY_BREAK
 case 127:
 /* rule 127 can match eol */
 YY_RULE_SETUP
-A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___fat___tree;
+if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
        YY_BREAK
 case 128:
+/* rule 128 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
-  if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
-  LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
- }
+if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
        YY_BREAK
 case 129:
+/* rule 129 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
-  if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
-  LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
        YY_BREAK
 case 130:
+/* rule 130 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
+if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
        YY_BREAK
 case 131:
+/* rule 131 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_AS):
-FAIL("EOF in attribute list of `AS' element.");
+if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
        YY_BREAK
-
 case 132:
 /* rule 132 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_AS();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
        YY_BREAK
 case 133:
 /* rule 133 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
+if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
        YY_BREAK
 case 134:
+/* rule 134 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
+if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
        YY_BREAK
-case YY_STATE_EOF(S_surfxml_AS_8):
-case YY_STATE_EOF(E_surfxml_AS):
-case YY_STATE_EOF(S_surfxml_AS):
-case YY_STATE_EOF(S_surfxml_AS_4):
-case YY_STATE_EOF(S_surfxml_AS_6):
-case YY_STATE_EOF(S_surfxml_AS_3):
-case YY_STATE_EOF(S_surfxml_AS_1):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
-       YY_BREAK
-
 case 135:
 /* rule 135 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <storage_type> is not allowed here.");
+if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
        YY_BREAK
 case 136:
 /* rule 136 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_storage___type_id = 0;
-  surfxml_storage___type_id_isset = 0;
-  AX_surfxml_storage___type_model = 0;
-  surfxml_storage___type_model_isset = 0;
-  AX_surfxml_storage___type_size = 0;
-  surfxml_storage___type_size_isset = 0;
-  AX_surfxml_storage___type_content = 0;
-  surfxml_storage___type_content_isset = 0;
-  AX_surfxml_storage___type_content___type = 16;
-  surfxml_storage___type_content___type_isset = 0;
-  ENTER(AL_surfxml_storage___type); pushbuffer(0);
-  }
+if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
        YY_BREAK
-
 case 137:
 /* rule 137 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
+if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
        YY_BREAK
 case 138:
-/* rule 138 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
+{
+  if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
+  LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
+ }
        YY_BREAK
 case 139:
-/* rule 139 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
+{
+  if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
+  if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
+  LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 140:
-/* rule 140 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
+FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
        YY_BREAK
 case 141:
-/* rule 141 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
+FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_cabinet):
+FAIL("EOF in attribute list of `cabinet' element.");
        YY_BREAK
+
 case 142:
 /* rule 142 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
+{
+  LEAVE;
+  ETag_surfxml_cabinet();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 143:
 /* rule 143 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
+FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
        YY_BREAK
 case 144:
-/* rule 144 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
+FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_surfxml_cabinet):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
+       YY_BREAK
+
 case 145:
 /* rule 145 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
+FAIL("Starting tag <cluster> is not allowed here.");
        YY_BREAK
 case 146:
 /* rule 146 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
+{
+  AX_surfxml_cluster_availability___file = 0;
+  surfxml_cluster_availability___file_isset = 0;
+  AX_surfxml_cluster_bb___bw = 0;
+  surfxml_cluster_bb___bw_isset = 0;
+  AX_surfxml_cluster_bb___lat = 46;
+  surfxml_cluster_bb___lat_isset = 0;
+  AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
+  surfxml_cluster_bb___sharing___policy_isset = 0;
+  AX_surfxml_cluster_bw = 0;
+  surfxml_cluster_bw_isset = 0;
+  AX_surfxml_cluster_core = 44;
+  surfxml_cluster_core_isset = 0;
+  AX_surfxml_cluster_id = 0;
+  surfxml_cluster_id_isset = 0;
+  AX_surfxml_cluster_lat = 0;
+  surfxml_cluster_lat_isset = 0;
+  AX_surfxml_cluster_limiter___link = 0;
+  surfxml_cluster_limiter___link_isset = 0;
+  AX_surfxml_cluster_loopback___bw = 0;
+  surfxml_cluster_loopback___bw_isset = 0;
+  AX_surfxml_cluster_loopback___lat = 0;
+  surfxml_cluster_loopback___lat_isset = 0;
+  AX_surfxml_cluster_prefix = 0;
+  surfxml_cluster_prefix_isset = 0;
+  AX_surfxml_cluster_radical = 0;
+  surfxml_cluster_radical_isset = 0;
+  AX_surfxml_cluster_router___id = 0;
+  surfxml_cluster_router___id_isset = 0;
+  AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
+  surfxml_cluster_sharing___policy_isset = 0;
+  AX_surfxml_cluster_speed = 0;
+  surfxml_cluster_speed_isset = 0;
+  AX_surfxml_cluster_state___file = 0;
+  surfxml_cluster_state___file_isset = 0;
+  AX_surfxml_cluster_suffix = 0;
+  surfxml_cluster_suffix_isset = 0;
+  AX_surfxml_cluster_topo___parameters = 0;
+  surfxml_cluster_topo___parameters_isset = 0;
+  AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
+  surfxml_cluster_topology_isset = 0;
+  ENTER(AL_surfxml_cluster); pushbuffer(0);
+  }
        YY_BREAK
+
 case 147:
+/* rule 147 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
-  if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
-  if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
-  LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
- }
+if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
        YY_BREAK
 case 148:
+/* rule 148 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
-  if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
-  if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
-  LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
        YY_BREAK
 case 149:
+/* rule 149 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
+if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
        YY_BREAK
 case 150:
+/* rule 150 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_storage___type):
-FAIL("EOF in attribute list of `storage_type' element.");
+if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
        YY_BREAK
-
 case 151:
 /* rule 151 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_storage___type();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
        YY_BREAK
 case 152:
 /* rule 152 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
+if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
        YY_BREAK
 case 153:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_storage___type_2):
-case YY_STATE_EOF(S_surfxml_storage___type):
-case YY_STATE_EOF(E_surfxml_storage___type):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
-       YY_BREAK
-
+/* rule 153 can match eol */
 case 154:
 /* rule 154 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <mount> is not allowed here.");
+A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
        YY_BREAK
 case 155:
 /* rule 155 can match eol */
-YY_RULE_SETUP
-{
-  AX_surfxml_mount_storageId = 0;
-  surfxml_mount_storageId_isset = 0;
-  AX_surfxml_mount_name = 0;
-  surfxml_mount_name_isset = 0;
-  ENTER(AL_surfxml_mount); pushbuffer(0);
-  }
-       YY_BREAK
-
 case 156:
 /* rule 156 can match eol */
 YY_RULE_SETUP
-if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
+A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
        YY_BREAK
 case 157:
 /* rule 157 can match eol */
 YY_RULE_SETUP
-if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
+if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
        YY_BREAK
 case 158:
 /* rule 158 can match eol */
 YY_RULE_SETUP
-if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
+if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
        YY_BREAK
 case 159:
 /* rule 159 can match eol */
 YY_RULE_SETUP
-if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
+if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
        YY_BREAK
 case 160:
+/* rule 160 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
-  if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
-  LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
- }
+if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
        YY_BREAK
 case 161:
+/* rule 161 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
-  if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
-  LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-  }
- }
+if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
        YY_BREAK
 case 162:
+/* rule 162 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
+if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
        YY_BREAK
 case 163:
+/* rule 163 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_mount):
-FAIL("EOF in attribute list of `mount' element.");
+if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
        YY_BREAK
-
 case 164:
 /* rule 164 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_mount();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-  }
- }
+if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
        YY_BREAK
 case 165:
 /* rule 165 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
+if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
        YY_BREAK
 case 166:
+/* rule 166 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_mount):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
+if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
        YY_BREAK
-
 case 167:
 /* rule 167 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <mstorage> is not allowed here.");
+if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
        YY_BREAK
 case 168:
 /* rule 168 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_mstorage_typeId = 0;
-  surfxml_mstorage_typeId_isset = 0;
-  AX_surfxml_mstorage_name = 0;
-  surfxml_mstorage_name_isset = 0;
-  ENTER(AL_surfxml_mstorage); pushbuffer(0);
-  }
+if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
        YY_BREAK
-
 case 169:
 /* rule 169 can match eol */
 YY_RULE_SETUP
-if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
+if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
        YY_BREAK
 case 170:
 /* rule 170 can match eol */
 YY_RULE_SETUP
-if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
+if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
        YY_BREAK
 case 171:
 /* rule 171 can match eol */
 YY_RULE_SETUP
-if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
+if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
        YY_BREAK
 case 172:
 /* rule 172 can match eol */
 YY_RULE_SETUP
-if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
+if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
        YY_BREAK
 case 173:
+/* rule 173 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
-  if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
-  LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
- }
+if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
        YY_BREAK
 case 174:
+/* rule 174 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
-  if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
-  LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-  }
- }
+if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
        YY_BREAK
 case 175:
+/* rule 175 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
+if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
        YY_BREAK
 case 176:
+/* rule 176 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_mstorage):
-FAIL("EOF in attribute list of `mstorage' element.");
+if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
        YY_BREAK
-
 case 177:
 /* rule 177 can match eol */
-YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_mstorage();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-  }
- }
-       YY_BREAK
 case 178:
 /* rule 178 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
+A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
        YY_BREAK
 case 179:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_mstorage):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
-       YY_BREAK
-
+/* rule 179 can match eol */
 case 180:
 /* rule 180 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <host> is not allowed here.");
+A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
        YY_BREAK
 case 181:
 /* rule 181 can match eol */
-YY_RULE_SETUP
-{
-  AX_surfxml_host_id = 0;
-  surfxml_host_id_isset = 0;
-  AX_surfxml_host_power = 0;
-  surfxml_host_power_isset = 0;
-  AX_surfxml_host_core = 25;
-  surfxml_host_core_isset = 0;
-  AX_surfxml_host_availability = 27;
-  surfxml_host_availability_isset = 0;
-  AX_surfxml_host_availability___file = 0;
-  surfxml_host_availability___file_isset = 0;
-  AX_surfxml_host_state = A_surfxml_host_state_ON;
-  surfxml_host_state_isset = 0;
-  AX_surfxml_host_state___file = 0;
-  surfxml_host_state___file_isset = 0;
-  AX_surfxml_host_coordinates = 0;
-  surfxml_host_coordinates_isset = 0;
-  AX_surfxml_host_pstate = 31;
-  surfxml_host_pstate_isset = 0;
-  ENTER(AL_surfxml_host); pushbuffer(0);
-  }
-       YY_BREAK
-
 case 182:
 /* rule 182 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
+A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
        YY_BREAK
 case 183:
 /* rule 183 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
+if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
        YY_BREAK
 case 184:
 /* rule 184 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
+if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
        YY_BREAK
 case 185:
 /* rule 185 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
+if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
        YY_BREAK
 case 186:
 /* rule 186 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
+if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
        YY_BREAK
 case 187:
 /* rule 187 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
+if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
        YY_BREAK
 case 188:
 /* rule 188 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
+if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
        YY_BREAK
 case 189:
 /* rule 189 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
+if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
        YY_BREAK
 case 190:
 /* rule 190 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
+if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
        YY_BREAK
 case 191:
 /* rule 191 can match eol */
-YY_RULE_SETUP
-if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
-       YY_BREAK
 case 192:
 /* rule 192 can match eol */
-case 193:
-/* rule 193 can match eol */
 YY_RULE_SETUP
-A_surfxml_host_state = A_surfxml_host_state_ON;
+A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
        YY_BREAK
+case 193:
+/* rule 193 can match eol */
 case 194:
 /* rule 194 can match eol */
-case 195:
-/* rule 195 can match eol */
 YY_RULE_SETUP
-A_surfxml_host_state = A_surfxml_host_state_OFF;
+A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
        YY_BREAK
+case 195:
+/* rule 195 can match eol */
 case 196:
 /* rule 196 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
+A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
        YY_BREAK
 case 197:
-/* rule 197 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
+{
+  if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
+  LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
+ }
        YY_BREAK
 case 198:
-/* rule 198 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
+{
+  if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
+  if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
+  LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 199:
-/* rule 199 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
+FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
        YY_BREAK
 case 200:
-/* rule 200 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
+FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_cluster):
+FAIL("EOF in attribute list of `cluster' element.");
        YY_BREAK
+
 case 201:
 /* rule 201 can match eol */
 YY_RULE_SETUP
-if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
+{
+  LEAVE;
+  ETag_surfxml_cluster();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 202:
+/* rule 202 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
-  if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
-  LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
- }
+FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
        YY_BREAK
 case 203:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
-  if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
-  LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_cluster):
+case YY_STATE_EOF(S_surfxml_cluster):
+case YY_STATE_EOF(S_surfxml_cluster_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
        YY_BREAK
+
 case 204:
+/* rule 204 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
+FAIL("Starting tag <config> is not allowed here.");
        YY_BREAK
 case 205:
+/* rule 205 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_host):
-FAIL("EOF in attribute list of `host' element.");
+{
+  AX_surfxml_config_id = 0;
+  surfxml_config_id_isset = 0;
+  ENTER(AL_surfxml_config); pushbuffer(0);
+  }
        YY_BREAK
 
 case 206:
 /* rule 206 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_host();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
        YY_BREAK
 case 207:
 /* rule 207 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
+if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
        YY_BREAK
 case 208:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_host_2):
-case YY_STATE_EOF(S_surfxml_host):
-case YY_STATE_EOF(E_surfxml_host):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
+{
+  LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
+ }
        YY_BREAK
-
 case 209:
-/* rule 209 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <storage> is not allowed here.");
+{
+  LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
+  }
+ }
        YY_BREAK
 case 210:
-/* rule 210 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_storage_id = 0;
-  surfxml_storage_id_isset = 0;
-  AX_surfxml_storage_typeId = 0;
-  surfxml_storage_typeId_isset = 0;
-  AX_surfxml_storage_content = 0;
-  surfxml_storage_content_isset = 0;
-  AX_surfxml_storage_content___type = 35;
-  surfxml_storage_content___type_isset = 0;
-  AX_surfxml_storage_attach = 0;
-  surfxml_storage_attach_isset = 0;
-  ENTER(AL_surfxml_storage); pushbuffer(0);
-  }
+FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
        YY_BREAK
-
 case 211:
-/* rule 211 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
+FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
        YY_BREAK
+case YY_STATE_EOF(AL_surfxml_config):
+FAIL("EOF in attribute list of `config' element.");
+       YY_BREAK
+
 case 212:
 /* rule 212 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
+{
+  LEAVE;
+  ETag_surfxml_config();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
+  }
+ }
        YY_BREAK
 case 213:
 /* rule 213 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
+FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
        YY_BREAK
 case 214:
-/* rule 214 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
+FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_config):
+case YY_STATE_EOF(S_surfxml_config):
+case YY_STATE_EOF(S_surfxml_config_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
        YY_BREAK
+
 case 215:
 /* rule 215 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
+FAIL("Starting tag <gpu> is not allowed here.");
        YY_BREAK
 case 216:
 /* rule 216 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
+{
+  AX_surfxml_gpu_name = 0;
+  surfxml_gpu_name_isset = 0;
+  ENTER(AL_surfxml_gpu); pushbuffer(0);
+  }
        YY_BREAK
+
 case 217:
 /* rule 217 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
+if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
        YY_BREAK
 case 218:
 /* rule 218 can match eol */
 YY_RULE_SETUP
-if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
+if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
        YY_BREAK
 case 219:
-/* rule 219 can match eol */
-YY_RULE_SETUP
-if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
-       YY_BREAK
-case 220:
-/* rule 220 can match eol */
-YY_RULE_SETUP
-if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
-       YY_BREAK
-case 221:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
-  if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
-  if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
-  LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
+  if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
+  LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
  }
        YY_BREAK
-case 222:
+case 220:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
-  if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
-  if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
-  LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
+  if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
+  LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
-case 223:
+case 221:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
        YY_BREAK
-case 224:
+case 222:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_storage):
-FAIL("EOF in attribute list of `storage' element.");
+case YY_STATE_EOF(AL_surfxml_gpu):
+FAIL("EOF in attribute list of `gpu' element.");
        YY_BREAK
 
-case 225:
-/* rule 225 can match eol */
+case 223:
+/* rule 223 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_storage();
+  ETag_surfxml_gpu();
   popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
+case 224:
+/* rule 224 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
+       YY_BREAK
+case 225:
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_gpu):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
+       YY_BREAK
+
 case 226:
 /* rule 226 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
+FAIL("Starting tag <host> is not allowed here.");
        YY_BREAK
 case 227:
+/* rule 227 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_storage_2):
-case YY_STATE_EOF(S_surfxml_storage):
-case YY_STATE_EOF(E_surfxml_storage):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
+{
+  AX_surfxml_host_availability = 27;
+  surfxml_host_availability_isset = 0;
+  AX_surfxml_host_availability___file = 0;
+  surfxml_host_availability___file_isset = 0;
+  AX_surfxml_host_coordinates = 0;
+  surfxml_host_coordinates_isset = 0;
+  AX_surfxml_host_core = 25;
+  surfxml_host_core_isset = 0;
+  AX_surfxml_host_id = 0;
+  surfxml_host_id_isset = 0;
+  AX_surfxml_host_pstate = 31;
+  surfxml_host_pstate_isset = 0;
+  AX_surfxml_host_speed = 0;
+  surfxml_host_speed_isset = 0;
+  AX_surfxml_host_state = A_surfxml_host_state_ON;
+  surfxml_host_state_isset = 0;
+  AX_surfxml_host_state___file = 0;
+  surfxml_host_state___file_isset = 0;
+  ENTER(AL_surfxml_host); pushbuffer(0);
+  }
        YY_BREAK
 
 case 228:
 /* rule 228 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <gpu> is not allowed here.");
+if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
        YY_BREAK
 case 229:
 /* rule 229 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_gpu_name = 0;
-  surfxml_gpu_name_isset = 0;
-  ENTER(AL_surfxml_gpu); pushbuffer(0);
-  }
+if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
        YY_BREAK
-
 case 230:
 /* rule 230 can match eol */
 YY_RULE_SETUP
-if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
+if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
        YY_BREAK
 case 231:
 /* rule 231 can match eol */
 YY_RULE_SETUP
-if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
+if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
        YY_BREAK
 case 232:
+/* rule 232 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
-  LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
- }
+if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
        YY_BREAK
 case 233:
+/* rule 233 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
-  LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
        YY_BREAK
 case 234:
+/* rule 234 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
+if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
        YY_BREAK
 case 235:
+/* rule 235 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_gpu):
-FAIL("EOF in attribute list of `gpu' element.");
+if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
        YY_BREAK
-
 case 236:
 /* rule 236 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_gpu();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
        YY_BREAK
 case 237:
 /* rule 237 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
+if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
        YY_BREAK
 case 238:
+/* rule 238 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_gpu):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
+if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
        YY_BREAK
-
 case 239:
 /* rule 239 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <host_link> is not allowed here.");
+if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
        YY_BREAK
 case 240:
 /* rule 240 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_host___link_id = 0;
-  surfxml_host___link_id_isset = 0;
-  AX_surfxml_host___link_up = 0;
-  surfxml_host___link_up_isset = 0;
-  AX_surfxml_host___link_down = 0;
-  surfxml_host___link_down_isset = 0;
-  ENTER(AL_surfxml_host___link); pushbuffer(0);
-  }
+if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
        YY_BREAK
-
 case 241:
 /* rule 241 can match eol */
 YY_RULE_SETUP
-if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
+if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
        YY_BREAK
 case 242:
 /* rule 242 can match eol */
-YY_RULE_SETUP
-if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
-       YY_BREAK
 case 243:
 /* rule 243 can match eol */
 YY_RULE_SETUP
-if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
+A_surfxml_host_state = A_surfxml_host_state_ON;
        YY_BREAK
 case 244:
 /* rule 244 can match eol */
-YY_RULE_SETUP
-if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
-       YY_BREAK
 case 245:
 /* rule 245 can match eol */
 YY_RULE_SETUP
-if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
+A_surfxml_host_state = A_surfxml_host_state_OFF;
        YY_BREAK
 case 246:
 /* rule 246 can match eol */
 YY_RULE_SETUP
-if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
+if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
        YY_BREAK
 case 247:
+/* rule 247 can match eol */
+YY_RULE_SETUP
+if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
+       YY_BREAK
+case 248:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
-  if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
-  if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
-  LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
+  if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
+  if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
+  LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
  }
        YY_BREAK
-case 248:
+case 249:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
-  if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
-  if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
-  LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
+  if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
+  if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
+  LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
-case 249:
+case 250:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
        YY_BREAK
-case 250:
+case 251:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_host___link):
-FAIL("EOF in attribute list of `host_link' element.");
+case YY_STATE_EOF(AL_surfxml_host):
+FAIL("EOF in attribute list of `host' element.");
        YY_BREAK
 
-case 251:
-/* rule 251 can match eol */
+case 252:
+/* rule 252 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_host___link();
+  ETag_surfxml_host();
   popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
-case 252:
-/* rule 252 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
-       YY_BREAK
 case 253:
+/* rule 253 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_host___link):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
+FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
        YY_BREAK
-
 case 254:
-/* rule 254 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <cluster> is not allowed here.");
+FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_host):
+case YY_STATE_EOF(S_surfxml_host):
+case YY_STATE_EOF(S_surfxml_host_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
        YY_BREAK
+
 case 255:
 /* rule 255 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_cluster_id = 0;
-  surfxml_cluster_id_isset = 0;
-  AX_surfxml_cluster_prefix = 0;
-  surfxml_cluster_prefix_isset = 0;
-  AX_surfxml_cluster_suffix = 0;
-  surfxml_cluster_suffix_isset = 0;
-  AX_surfxml_cluster_radical = 0;
-  surfxml_cluster_radical_isset = 0;
-  AX_surfxml_cluster_power = 0;
-  surfxml_cluster_power_isset = 0;
-  AX_surfxml_cluster_core = 44;
-  surfxml_cluster_core_isset = 0;
-  AX_surfxml_cluster_bw = 0;
-  surfxml_cluster_bw_isset = 0;
-  AX_surfxml_cluster_lat = 0;
-  surfxml_cluster_lat_isset = 0;
-  AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
-  surfxml_cluster_sharing___policy_isset = 0;
-  AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
-  surfxml_cluster_topology_isset = 0;
-  AX_surfxml_cluster_topo___parameters = 0;
-  surfxml_cluster_topo___parameters_isset = 0;
-  AX_surfxml_cluster_bb___bw = 0;
-  surfxml_cluster_bb___bw_isset = 0;
-  AX_surfxml_cluster_bb___lat = 0;
-  surfxml_cluster_bb___lat_isset = 0;
-  AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
-  surfxml_cluster_bb___sharing___policy_isset = 0;
-  AX_surfxml_cluster_availability___file = 0;
-  surfxml_cluster_availability___file_isset = 0;
-  AX_surfxml_cluster_state___file = 0;
-  surfxml_cluster_state___file_isset = 0;
-  AX_surfxml_cluster_router___id = 0;
-  surfxml_cluster_router___id_isset = 0;
-  AX_surfxml_cluster_limiter___link = 0;
-  surfxml_cluster_limiter___link_isset = 0;
-  AX_surfxml_cluster_loopback___bw = 0;
-  surfxml_cluster_loopback___bw_isset = 0;
-  AX_surfxml_cluster_loopback___lat = 0;
-  surfxml_cluster_loopback___lat_isset = 0;
-  ENTER(AL_surfxml_cluster); pushbuffer(0);
-  }
+FAIL("Starting tag <host_link> is not allowed here.");
        YY_BREAK
-
 case 256:
 /* rule 256 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
+{
+  AX_surfxml_host___link_down = 0;
+  surfxml_host___link_down_isset = 0;
+  AX_surfxml_host___link_id = 0;
+  surfxml_host___link_id_isset = 0;
+  AX_surfxml_host___link_up = 0;
+  surfxml_host___link_up_isset = 0;
+  ENTER(AL_surfxml_host___link); pushbuffer(0);
+  }
        YY_BREAK
+
 case 257:
 /* rule 257 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
+if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
        YY_BREAK
 case 258:
 /* rule 258 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
+if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
        YY_BREAK
 case 259:
 /* rule 259 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
+if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
        YY_BREAK
 case 260:
 /* rule 260 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
+if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
        YY_BREAK
 case 261:
 /* rule 261 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
+if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
        YY_BREAK
 case 262:
 /* rule 262 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
+if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
        YY_BREAK
 case 263:
-/* rule 263 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
+{
+  if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
+  if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
+  if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
+  LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
+ }
        YY_BREAK
 case 264:
-/* rule 264 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
+{
+  if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
+  if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
+  if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
+  LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 265:
-/* rule 265 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
+FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
        YY_BREAK
 case 266:
-/* rule 266 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
+FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_host___link):
+FAIL("EOF in attribute list of `host_link' element.");
        YY_BREAK
+
 case 267:
 /* rule 267 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
+{
+  LEAVE;
+  ETag_surfxml_host___link();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 268:
 /* rule 268 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
+FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
        YY_BREAK
 case 269:
-/* rule 269 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
+FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_surfxml_host___link):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
+       YY_BREAK
+
 case 270:
 /* rule 270 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
+FAIL("Starting tag <include> is not allowed here.");
        YY_BREAK
 case 271:
 /* rule 271 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
+{
+  AX_surfxml_include_file = 0;
+  surfxml_include_file_isset = 0;
+  ENTER(AL_surfxml_include); pushbuffer(0);
+  }
        YY_BREAK
+
 case 272:
 /* rule 272 can match eol */
+YY_RULE_SETUP
+if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
+       YY_BREAK
 case 273:
 /* rule 273 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
+if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
        YY_BREAK
 case 274:
-/* rule 274 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
+  LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
+ }
+       YY_BREAK
 case 275:
-/* rule 275 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
+{
+  if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
+  LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 276:
-/* rule 276 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
+       YY_BREAK
 case 277:
-/* rule 277 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
+FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_include):
+FAIL("EOF in attribute list of `include' element.");
        YY_BREAK
+
 case 278:
 /* rule 278 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_include();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
+       YY_BREAK
 case 279:
 /* rule 279 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
+FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
        YY_BREAK
 case 280:
-/* rule 280 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_include):
+case YY_STATE_EOF(S_surfxml_include):
+case YY_STATE_EOF(S_surfxml_include_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
+       YY_BREAK
+
 case 281:
 /* rule 281 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
+FAIL("Starting tag <link> is not allowed here.");
        YY_BREAK
 case 282:
 /* rule 282 can match eol */
+YY_RULE_SETUP
+{
+  AX_surfxml_link_bandwidth = 0;
+  surfxml_link_bandwidth_isset = 0;
+  AX_surfxml_link_bandwidth___file = 0;
+  surfxml_link_bandwidth___file_isset = 0;
+  AX_surfxml_link_id = 0;
+  surfxml_link_id_isset = 0;
+  AX_surfxml_link_latency = 0;
+  surfxml_link_latency_isset = 0;
+  AX_surfxml_link_latency___file = 0;
+  surfxml_link_latency___file_isset = 0;
+  AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
+  surfxml_link_sharing___policy_isset = 0;
+  AX_surfxml_link_state = A_surfxml_link_state_ON;
+  surfxml_link_state_isset = 0;
+  AX_surfxml_link_state___file = 0;
+  surfxml_link_state___file_isset = 0;
+  ENTER(AL_surfxml_link); pushbuffer(0);
+  }
+       YY_BREAK
+
 case 283:
 /* rule 283 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
+if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
        YY_BREAK
 case 284:
 /* rule 284 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
+if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
        YY_BREAK
 case 285:
 /* rule 285 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
+if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
        YY_BREAK
 case 286:
 /* rule 286 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
+if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
        YY_BREAK
 case 287:
 /* rule 287 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
+if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
        YY_BREAK
 case 288:
 /* rule 288 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
+if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
        YY_BREAK
 case 289:
 /* rule 289 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
+if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
        YY_BREAK
 case 290:
 /* rule 290 can match eol */
+YY_RULE_SETUP
+if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
+       YY_BREAK
 case 291:
 /* rule 291 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
+if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
        YY_BREAK
 case 292:
 /* rule 292 can match eol */
-case 293:
-/* rule 293 can match eol */
 YY_RULE_SETUP
-A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
+if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
        YY_BREAK
+case 293:
+/* rule 293 can match eol */
 case 294:
 /* rule 294 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
+A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
        YY_BREAK
 case 295:
 /* rule 295 can match eol */
-YY_RULE_SETUP
-if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
-       YY_BREAK
 case 296:
 /* rule 296 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
+A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
        YY_BREAK
 case 297:
 /* rule 297 can match eol */
-YY_RULE_SETUP
-if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
-       YY_BREAK
 case 298:
 /* rule 298 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
+A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
        YY_BREAK
 case 299:
 /* rule 299 can match eol */
-YY_RULE_SETUP
-if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
-       YY_BREAK
 case 300:
 /* rule 300 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
+A_surfxml_link_state = A_surfxml_link_state_ON;
        YY_BREAK
 case 301:
 /* rule 301 can match eol */
-YY_RULE_SETUP
-if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
-       YY_BREAK
 case 302:
 /* rule 302 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
+A_surfxml_link_state = A_surfxml_link_state_OFF;
        YY_BREAK
 case 303:
 /* rule 303 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
+if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
        YY_BREAK
 case 304:
 /* rule 304 can match eol */
 YY_RULE_SETUP
-if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
+if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
        YY_BREAK
 case 305:
-/* rule 305 can match eol */
-YY_RULE_SETUP
-if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
-       YY_BREAK
-case 306:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
-  LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
+  if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
+  if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
+  LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
  }
        YY_BREAK
-case 307:
+case 306:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
-  if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
-  LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
+  if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
+  if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
+  LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
  }
        YY_BREAK
-case 308:
+case 307:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
        YY_BREAK
-case 309:
+case 308:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_cluster):
-FAIL("EOF in attribute list of `cluster' element.");
+case YY_STATE_EOF(AL_surfxml_link):
+FAIL("EOF in attribute list of `link' element.");
        YY_BREAK
 
-case 310:
-/* rule 310 can match eol */
+case 309:
+/* rule 309 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_cluster();
+  ETag_surfxml_link();
   popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
  }
        YY_BREAK
-case 311:
-/* rule 311 can match eol */
+case 310:
+/* rule 310 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
+FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
        YY_BREAK
-case 312:
+case 311:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
+FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
        YY_BREAK
-case YY_STATE_EOF(S_surfxml_cluster):
-case YY_STATE_EOF(S_surfxml_cluster_2):
-case YY_STATE_EOF(E_surfxml_cluster):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
+case YY_STATE_EOF(E_surfxml_link):
+case YY_STATE_EOF(S_surfxml_link):
+case YY_STATE_EOF(S_surfxml_link_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
        YY_BREAK
 
-case 313:
-/* rule 313 can match eol */
+case 312:
+/* rule 312 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <cabinet> is not allowed here.");
+FAIL("Starting tag <link_ctn> is not allowed here.");
        YY_BREAK
-case 314:
-/* rule 314 can match eol */
+case 313:
+/* rule 313 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_cabinet_id = 0;
-  surfxml_cabinet_id_isset = 0;
-  AX_surfxml_cabinet_prefix = 0;
-  surfxml_cabinet_prefix_isset = 0;
-  AX_surfxml_cabinet_suffix = 0;
-  surfxml_cabinet_suffix_isset = 0;
-  AX_surfxml_cabinet_radical = 0;
-  surfxml_cabinet_radical_isset = 0;
-  AX_surfxml_cabinet_power = 0;
-  surfxml_cabinet_power_isset = 0;
-  AX_surfxml_cabinet_bw = 0;
-  surfxml_cabinet_bw_isset = 0;
-  AX_surfxml_cabinet_lat = 0;
-  surfxml_cabinet_lat_isset = 0;
-  ENTER(AL_surfxml_cabinet); pushbuffer(0);
+  AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
+  surfxml_link___ctn_direction_isset = 0;
+  AX_surfxml_link___ctn_id = 0;
+  surfxml_link___ctn_id_isset = 0;
+  ENTER(AL_surfxml_link___ctn); pushbuffer(0);
   }
        YY_BREAK
 
+case 314:
+/* rule 314 can match eol */
 case 315:
 /* rule 315 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
+A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
        YY_BREAK
 case 316:
 /* rule 316 can match eol */
-YY_RULE_SETUP
-if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
-       YY_BREAK
 case 317:
 /* rule 317 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
+A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
        YY_BREAK
 case 318:
 /* rule 318 can match eol */
-YY_RULE_SETUP
-if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
-       YY_BREAK
 case 319:
 /* rule 319 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
+A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
        YY_BREAK
 case 320:
 /* rule 320 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
+if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
        YY_BREAK
 case 321:
 /* rule 321 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
+if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
        YY_BREAK
 case 322:
-/* rule 322 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
+{
+  if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
+  LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
+ }
        YY_BREAK
 case 323:
-/* rule 323 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
+{
+  if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
+  LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
+   case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
+   case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
+   case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
+  }
+ }
        YY_BREAK
 case 324:
-/* rule 324 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
+FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
        YY_BREAK
 case 325:
-/* rule 325 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
+FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_link___ctn):
+FAIL("EOF in attribute list of `link_ctn' element.");
        YY_BREAK
+
 case 326:
 /* rule 326 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
+{
+  LEAVE;
+  ETag_surfxml_link___ctn();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
+   case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
+   case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
+   case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
+  }
+ }
        YY_BREAK
 case 327:
 /* rule 327 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
+FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
        YY_BREAK
 case 328:
-/* rule 328 can match eol */
 YY_RULE_SETUP
-if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
+FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_link___ctn):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
        YY_BREAK
+
+/* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
+  * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
 case 329:
+/* rule 329 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
-  LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
- }
+FAIL("Starting tag <model_prop> is not allowed here.");
        YY_BREAK
 case 330:
+/* rule 330 can match eol */
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
-  if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
-  LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  AX_surfxml_model___prop_id = 0;
+  surfxml_model___prop_id_isset = 0;
+  AX_surfxml_model___prop_value = 0;
+  surfxml_model___prop_value_isset = 0;
+  ENTER(AL_surfxml_model___prop); pushbuffer(0);
   }
- }
        YY_BREAK
+
 case 331:
+/* rule 331 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
+if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
        YY_BREAK
 case 332:
+/* rule 332 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_cabinet):
-FAIL("EOF in attribute list of `cabinet' element.");
+if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
        YY_BREAK
-
 case 333:
 /* rule 333 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_cabinet();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
        YY_BREAK
 case 334:
 /* rule 334 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
+if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
        YY_BREAK
 case 335:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_cabinet):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
+{
+  if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
+  if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
+  LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
+ }
        YY_BREAK
-
 case 336:
-/* rule 336 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <peer> is not allowed here.");
+{
+  if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
+  if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
+  LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
+  }
+ }
        YY_BREAK
 case 337:
-/* rule 337 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_peer_id = 0;
-  surfxml_peer_id_isset = 0;
-  AX_surfxml_peer_power = 0;
-  surfxml_peer_power_isset = 0;
-  AX_surfxml_peer_bw___in = 0;
-  surfxml_peer_bw___in_isset = 0;
-  AX_surfxml_peer_bw___out = 0;
-  surfxml_peer_bw___out_isset = 0;
-  AX_surfxml_peer_lat = 0;
-  surfxml_peer_lat_isset = 0;
-  AX_surfxml_peer_coordinates = 0;
-  surfxml_peer_coordinates_isset = 0;
-  AX_surfxml_peer_availability___file = 0;
-  surfxml_peer_availability___file_isset = 0;
-  AX_surfxml_peer_state___file = 0;
-  surfxml_peer_state___file_isset = 0;
-  ENTER(AL_surfxml_peer); pushbuffer(0);
-  }
+FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
        YY_BREAK
-
 case 338:
-/* rule 338 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
+FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_model___prop):
+FAIL("EOF in attribute list of `model_prop' element.");
        YY_BREAK
+
 case 339:
 /* rule 339 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
+{
+  LEAVE;
+  ETag_surfxml_model___prop();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
+  }
+ }
        YY_BREAK
 case 340:
 /* rule 340 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
+FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
        YY_BREAK
 case 341:
-/* rule 341 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
+FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_model___prop):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
        YY_BREAK
+
 case 342:
 /* rule 342 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
+FAIL("Starting tag <mount> is not allowed here.");
        YY_BREAK
 case 343:
 /* rule 343 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
+{
+  AX_surfxml_mount_name = 0;
+  surfxml_mount_name_isset = 0;
+  AX_surfxml_mount_storageId = 0;
+  surfxml_mount_storageId_isset = 0;
+  ENTER(AL_surfxml_mount); pushbuffer(0);
+  }
        YY_BREAK
+
 case 344:
 /* rule 344 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
+if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
        YY_BREAK
 case 345:
 /* rule 345 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
+if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
        YY_BREAK
 case 346:
 /* rule 346 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
+if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
        YY_BREAK
 case 347:
 /* rule 347 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
+if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
        YY_BREAK
 case 348:
-/* rule 348 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
+{
+  if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
+  if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
+  LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
+ }
        YY_BREAK
 case 349:
-/* rule 349 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
+{
+  if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
+  if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
+  LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+  }
+ }
        YY_BREAK
 case 350:
-/* rule 350 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
+FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
        YY_BREAK
 case 351:
-/* rule 351 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
+FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_mount):
+FAIL("EOF in attribute list of `mount' element.");
        YY_BREAK
+
 case 352:
 /* rule 352 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
+{
+  LEAVE;
+  ETag_surfxml_mount();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+  }
+ }
        YY_BREAK
 case 353:
 /* rule 353 can match eol */
 YY_RULE_SETUP
-if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
+FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
        YY_BREAK
 case 354:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
-  if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
-  if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
-  if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
-  if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
-  LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
- }
+FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_mount):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
        YY_BREAK
+
 case 355:
+/* rule 355 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
-  if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
-  if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
-  if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
-  if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
-  LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+FAIL("Starting tag <mstorage> is not allowed here.");
        YY_BREAK
 case 356:
+/* rule 356 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
+{
+  AX_surfxml_mstorage_name = 0;
+  surfxml_mstorage_name_isset = 0;
+  AX_surfxml_mstorage_typeId = 0;
+  surfxml_mstorage_typeId_isset = 0;
+  ENTER(AL_surfxml_mstorage); pushbuffer(0);
+  }
        YY_BREAK
+
 case 357:
+/* rule 357 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_peer):
-FAIL("EOF in attribute list of `peer' element.");
+if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
        YY_BREAK
-
 case 358:
 /* rule 358 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_peer();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
-  }
- }
+if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
        YY_BREAK
 case 359:
 /* rule 359 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
+if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
        YY_BREAK
 case 360:
+/* rule 360 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_peer):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
+if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
        YY_BREAK
-
 case 361:
-/* rule 361 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <router> is not allowed here.");
+{
+  if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
+  if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
+  LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
+ }
        YY_BREAK
 case 362:
-/* rule 362 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_router_id = 0;
-  surfxml_router_id_isset = 0;
-  AX_surfxml_router_coordinates = 0;
-  surfxml_router_coordinates_isset = 0;
-  ENTER(AL_surfxml_router); pushbuffer(0);
+  if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
+  if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
+  LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
   }
+ }
        YY_BREAK
-
 case 363:
-/* rule 363 can match eol */
 YY_RULE_SETUP
-if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
+FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
        YY_BREAK
 case 364:
-/* rule 364 can match eol */
 YY_RULE_SETUP
-if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
+FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_mstorage):
+FAIL("EOF in attribute list of `mstorage' element.");
        YY_BREAK
+
 case 365:
 /* rule 365 can match eol */
 YY_RULE_SETUP
-if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
+{
+  LEAVE;
+  ETag_surfxml_mstorage();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+  }
+ }
        YY_BREAK
 case 366:
 /* rule 366 can match eol */
 YY_RULE_SETUP
-if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
+FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
        YY_BREAK
 case 367:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
-  LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
- }
+FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_mstorage):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
        YY_BREAK
+
 case 368:
+/* rule 368 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
-  LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+FAIL("Starting tag <peer> is not allowed here.");
        YY_BREAK
 case 369:
+/* rule 369 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
+{
+  AX_surfxml_peer_availability___file = 0;
+  surfxml_peer_availability___file_isset = 0;
+  AX_surfxml_peer_bw___in = 0;
+  surfxml_peer_bw___in_isset = 0;
+  AX_surfxml_peer_bw___out = 0;
+  surfxml_peer_bw___out_isset = 0;
+  AX_surfxml_peer_coordinates = 0;
+  surfxml_peer_coordinates_isset = 0;
+  AX_surfxml_peer_id = 0;
+  surfxml_peer_id_isset = 0;
+  AX_surfxml_peer_lat = 0;
+  surfxml_peer_lat_isset = 0;
+  AX_surfxml_peer_speed = 0;
+  surfxml_peer_speed_isset = 0;
+  AX_surfxml_peer_state___file = 0;
+  surfxml_peer_state___file_isset = 0;
+  ENTER(AL_surfxml_peer); pushbuffer(0);
+  }
        YY_BREAK
+
 case 370:
+/* rule 370 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_router):
-FAIL("EOF in attribute list of `router' element.");
+if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
        YY_BREAK
-
 case 371:
 /* rule 371 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_router();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
        YY_BREAK
 case 372:
 /* rule 372 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
+if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
        YY_BREAK
 case 373:
+/* rule 373 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_router):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
+if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
        YY_BREAK
-
 case 374:
 /* rule 374 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <backbone> is not allowed here.");
+if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
        YY_BREAK
 case 375:
 /* rule 375 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_backbone_id = 0;
-  surfxml_backbone_id_isset = 0;
-  AX_surfxml_backbone_bandwidth = 0;
-  surfxml_backbone_bandwidth_isset = 0;
-  AX_surfxml_backbone_latency = 0;
-  surfxml_backbone_latency_isset = 0;
-  ENTER(AL_surfxml_backbone); pushbuffer(0);
-  }
+if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
        YY_BREAK
-
 case 376:
 /* rule 376 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
+if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
        YY_BREAK
 case 377:
 /* rule 377 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
+if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
        YY_BREAK
 case 378:
 /* rule 378 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
+if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
        YY_BREAK
 case 379:
 /* rule 379 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
+if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
        YY_BREAK
 case 380:
 /* rule 380 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
+if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
        YY_BREAK
 case 381:
 /* rule 381 can match eol */
 YY_RULE_SETUP
-if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
+if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
        YY_BREAK
 case 382:
+/* rule 382 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
-  if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
-  if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
-  LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
- }
+if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
        YY_BREAK
 case 383:
+/* rule 383 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
-  if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
-  if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
-  LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
        YY_BREAK
 case 384:
+/* rule 384 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
+if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
        YY_BREAK
 case 385:
+/* rule 385 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_backbone):
-FAIL("EOF in attribute list of `backbone' element.");
+if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
        YY_BREAK
-
 case 386:
-/* rule 386 can match eol */
 YY_RULE_SETUP
 {
-  LEAVE;
-  ETag_surfxml_backbone();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
+  if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
+  if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
+  if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
+  if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
+  if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
+  LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
  }
        YY_BREAK
 case 387:
-/* rule 387 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
+{
+  if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
+  if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
+  if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
+  if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
+  if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
+  LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 388:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_backbone):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
+FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
        YY_BREAK
-
 case 389:
-/* rule 389 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <link> is not allowed here.");
+FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_peer):
+FAIL("EOF in attribute list of `peer' element.");
        YY_BREAK
+
 case 390:
 /* rule 390 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_link_id = 0;
-  surfxml_link_id_isset = 0;
-  AX_surfxml_link_bandwidth = 0;
-  surfxml_link_bandwidth_isset = 0;
-  AX_surfxml_link_bandwidth___file = 0;
-  surfxml_link_bandwidth___file_isset = 0;
-  AX_surfxml_link_latency = 46;
-  surfxml_link_latency_isset = 0;
-  AX_surfxml_link_latency___file = 0;
-  surfxml_link_latency___file_isset = 0;
-  AX_surfxml_link_state = A_surfxml_link_state_ON;
-  surfxml_link_state_isset = 0;
-  AX_surfxml_link_state___file = 0;
-  surfxml_link_state___file_isset = 0;
-  AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
-  surfxml_link_sharing___policy_isset = 0;
-  ENTER(AL_surfxml_link); pushbuffer(0);
+  LEAVE;
+  ETag_surfxml_peer();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
+ }
        YY_BREAK
-
 case 391:
 /* rule 391 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
+FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
        YY_BREAK
 case 392:
-/* rule 392 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
+FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_peer):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
        YY_BREAK
+
+/* <!-- 
+  *              DTD of SimGrid platform and deployment files.
+  * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
+  * To upgrade your files, use the tool simgrid_update_xml
+  * * New in DTD version 4 (in SimGrid 3.13):
+  *    - Rename (power->speed) the attributes describing the amount of flop
+  *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
+  *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+  *    - The DOCTYPE points to the right URL (this file):
+  *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+  *    - A warning is emited for unit-less values (they are still accepted).
+  *      - speed. Default: 'f' or 'flops'. Also defined:
+  *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
+  *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+  *      - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
+  *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+  *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
+  *      - latency. Default: 's' second. Also defined:
+  *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
+  * * New in DTD version 3 (in SimGrid 3.5):
+  *    - The AS tag were introduced. Every platform should now
+  *      contain an englobing AS tag.
+  *    - Routes are now symmetric by default.
+  *    - Renamed tags (for sake of XML sanity):
+  *      - LINK:CTN -> LINK_CTN
+  *      - TRACE:CONNECT -> TRACE_CONNECT
+  * * New in DTD version 2 (in SimGrid 3.4):
+  *    - Renamed tags:
+  *      - CPU -> HOST
+  *      - NETWORK_LINK -> LINK
+  *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
+  *      - PLATFORM_DESCRIPTION -> PLATFORM
+  * * New in DTD version 1 (in SimGrid 3.3):
+  *    - DTD is now versionned with the version attribute of platform
+  *    - Unit change: 
+  *      - Link bandwidth: from Mb/s to b/s
+  *      - CPU speed: from MFlop/s to Flop/s
+  * -->  */
 case 393:
 /* rule 393 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
+FAIL("Starting tag <platform> is not allowed here.");
        YY_BREAK
 case 394:
 /* rule 394 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
+{
+  AX_surfxml_platform_version = 1;
+  surfxml_platform_version_isset = 0;
+  ENTER(AL_surfxml_platform); pushbuffer(0);
+  }
        YY_BREAK
+
 case 395:
 /* rule 395 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
+if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
        YY_BREAK
 case 396:
 /* rule 396 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
+if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
        YY_BREAK
 case 397:
-/* rule 397 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
+{
+  LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
+ }
        YY_BREAK
 case 398:
-/* rule 398 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
+{
+  LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case ROOT_surfxml_platform: SET(EPILOG); break;
+  }
+ }
        YY_BREAK
 case 399:
-/* rule 399 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
+FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
        YY_BREAK
 case 400:
-/* rule 400 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
+FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_platform):
+FAIL("EOF in attribute list of `platform' element.");
        YY_BREAK
+
 case 401:
 /* rule 401 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_platform();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case ROOT_surfxml_platform: SET(EPILOG); break;
+  }
+ }
+       YY_BREAK
 case 402:
 /* rule 402 can match eol */
 YY_RULE_SETUP
-A_surfxml_link_state = A_surfxml_link_state_ON;
+FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
        YY_BREAK
 case 403:
-/* rule 403 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_platform):
+case YY_STATE_EOF(S_surfxml_platform):
+case YY_STATE_EOF(S_surfxml_platform_1):
+case YY_STATE_EOF(S_surfxml_platform_3):
+case YY_STATE_EOF(S_surfxml_platform_4):
+case YY_STATE_EOF(S_surfxml_platform_6):
+case YY_STATE_EOF(S_surfxml_platform_8):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
+       YY_BREAK
+
 case 404:
 /* rule 404 can match eol */
 YY_RULE_SETUP
-A_surfxml_link_state = A_surfxml_link_state_OFF;
+FAIL("Starting tag <process> is not allowed here.");
        YY_BREAK
 case 405:
 /* rule 405 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
+{
+  AX_surfxml_process_function = 0;
+  surfxml_process_function_isset = 0;
+  AX_surfxml_process_host = 0;
+  surfxml_process_host_isset = 0;
+  AX_surfxml_process_kill___time = 54;
+  surfxml_process_kill___time_isset = 0;
+  AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
+  surfxml_process_on___failure_isset = 0;
+  AX_surfxml_process_start___time = 49;
+  surfxml_process_start___time_isset = 0;
+  ENTER(AL_surfxml_process); pushbuffer(0);
+  }
        YY_BREAK
+
 case 406:
 /* rule 406 can match eol */
 YY_RULE_SETUP
-if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
+if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
        YY_BREAK
 case 407:
 /* rule 407 can match eol */
+YY_RULE_SETUP
+if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
+       YY_BREAK
 case 408:
 /* rule 408 can match eol */
 YY_RULE_SETUP
-A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
+if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
        YY_BREAK
 case 409:
 /* rule 409 can match eol */
+YY_RULE_SETUP
+if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
+       YY_BREAK
 case 410:
 /* rule 410 can match eol */
 YY_RULE_SETUP
-A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
+if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
        YY_BREAK
 case 411:
 /* rule 411 can match eol */
-case 412:
-/* rule 412 can match eol */
 YY_RULE_SETUP
-A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
+if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
        YY_BREAK
+case 412:
+/* rule 412 can match eol */
 case 413:
+/* rule 413 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
-  if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
-  LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
- }
+A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
        YY_BREAK
 case 414:
-YY_RULE_SETUP
-{
-  if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
-  if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
-  LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
-       YY_BREAK
+/* rule 414 can match eol */
 case 415:
+/* rule 415 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
+A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
        YY_BREAK
 case 416:
+/* rule 416 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_link):
-FAIL("EOF in attribute list of `link' element.");
+if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
        YY_BREAK
-
 case 417:
 /* rule 417 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_link();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
-  }
- }
+if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
        YY_BREAK
 case 418:
-/* rule 418 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
+{
+  if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
+  if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
+  LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
+ }
        YY_BREAK
 case 419:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_link):
-case YY_STATE_EOF(S_surfxml_link_2):
-case YY_STATE_EOF(E_surfxml_link):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
+{
+  if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
+  if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
+  LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
+  }
+ }
        YY_BREAK
-
 case 420:
-/* rule 420 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <route> is not allowed here.");
+FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
        YY_BREAK
 case 421:
-/* rule 421 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_route_src = 0;
-  surfxml_route_src_isset = 0;
-  AX_surfxml_route_dst = 0;
-  surfxml_route_dst_isset = 0;
-  AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
-  surfxml_route_symmetrical_isset = 0;
-  ENTER(AL_surfxml_route); pushbuffer(0);
-  }
+FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_process):
+FAIL("EOF in attribute list of `process' element.");
        YY_BREAK
 
 case 422:
 /* rule 422 can match eol */
 YY_RULE_SETUP
-if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
+{
+  LEAVE;
+  ETag_surfxml_process();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
+  }
+ }
        YY_BREAK
 case 423:
 /* rule 423 can match eol */
 YY_RULE_SETUP
-if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
+FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
        YY_BREAK
 case 424:
-/* rule 424 can match eol */
 YY_RULE_SETUP
-if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
+FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_process):
+case YY_STATE_EOF(S_surfxml_process):
+case YY_STATE_EOF(S_surfxml_process_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
        YY_BREAK
+
+/* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
+  * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
 case 425:
 /* rule 425 can match eol */
 YY_RULE_SETUP
-if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
+FAIL("Starting tag <prop> is not allowed here.");
        YY_BREAK
 case 426:
 /* rule 426 can match eol */
+YY_RULE_SETUP
+{
+  AX_surfxml_prop_id = 0;
+  surfxml_prop_id_isset = 0;
+  AX_surfxml_prop_value = 0;
+  surfxml_prop_value_isset = 0;
+  ENTER(AL_surfxml_prop); pushbuffer(0);
+  }
+       YY_BREAK
+
 case 427:
 /* rule 427 can match eol */
 YY_RULE_SETUP
-A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
+if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
        YY_BREAK
 case 428:
 /* rule 428 can match eol */
+YY_RULE_SETUP
+if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
+       YY_BREAK
 case 429:
 /* rule 429 can match eol */
 YY_RULE_SETUP
-A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
+if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
        YY_BREAK
 case 430:
+/* rule 430 can match eol */
+YY_RULE_SETUP
+if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
+       YY_BREAK
+case 431:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
-  if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
-  LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
+  if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
+  if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
+  LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
  }
        YY_BREAK
-case 431:
+case 432:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
-  if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
-  LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
+  if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
+  if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
+  LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
+   case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
+   case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+   case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
+   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+   case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
+   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
   }
  }
        YY_BREAK
-case 432:
+case 433:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
        YY_BREAK
-case 433:
+case 434:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_route):
-FAIL("EOF in attribute list of `route' element.");
+case YY_STATE_EOF(AL_surfxml_prop):
+FAIL("EOF in attribute list of `prop' element.");
        YY_BREAK
 
-case 434:
-/* rule 434 can match eol */
+case 435:
+/* rule 435 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_route();
+  ETag_surfxml_prop();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
+   case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
+   case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
+   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
+   case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
+   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+   case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
+   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
   }
  }
        YY_BREAK
-case 435:
-/* rule 435 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
-       YY_BREAK
 case 436:
+/* rule 436 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_route_2):
-case YY_STATE_EOF(E_surfxml_route):
-case YY_STATE_EOF(S_surfxml_route):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
+FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
        YY_BREAK
-
 case 437:
-/* rule 437 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <ASroute> is not allowed here.");
+FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_prop):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
        YY_BREAK
+
 case 438:
 /* rule 438 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_ASroute_src = 0;
-  surfxml_ASroute_src_isset = 0;
-  AX_surfxml_ASroute_dst = 0;
-  surfxml_ASroute_dst_isset = 0;
-  AX_surfxml_ASroute_gw___src = 0;
-  surfxml_ASroute_gw___src_isset = 0;
-  AX_surfxml_ASroute_gw___dst = 0;
-  surfxml_ASroute_gw___dst_isset = 0;
-  AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
-  surfxml_ASroute_symmetrical_isset = 0;
-  ENTER(AL_surfxml_ASroute); pushbuffer(0);
-  }
+FAIL("Starting tag <random> is not allowed here.");
        YY_BREAK
-
 case 439:
 /* rule 439 can match eol */
 YY_RULE_SETUP
-if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
+{
+  AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
+  surfxml_random_generator_isset = 0;
+  AX_surfxml_random_id = 0;
+  surfxml_random_id_isset = 0;
+  AX_surfxml_random_max = 0;
+  surfxml_random_max_isset = 0;
+  AX_surfxml_random_mean = 0;
+  surfxml_random_mean_isset = 0;
+  AX_surfxml_random_min = 0;
+  surfxml_random_min_isset = 0;
+  AX_surfxml_random_radical = 0;
+  surfxml_random_radical_isset = 0;
+  AX_surfxml_random_seed = 5;
+  surfxml_random_seed_isset = 0;
+  AX_surfxml_random_std___deviation = 0;
+  surfxml_random_std___deviation_isset = 0;
+  ENTER(AL_surfxml_random); pushbuffer(0);
+  }
        YY_BREAK
+
 case 440:
 /* rule 440 can match eol */
-YY_RULE_SETUP
-if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
-       YY_BREAK
 case 441:
 /* rule 441 can match eol */
 YY_RULE_SETUP
-if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
+A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
        YY_BREAK
 case 442:
 /* rule 442 can match eol */
-YY_RULE_SETUP
-if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
-       YY_BREAK
 case 443:
 /* rule 443 can match eol */
 YY_RULE_SETUP
-if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
+A_surfxml_random_generator = A_surfxml_random_generator_RAND;
        YY_BREAK
 case 444:
 /* rule 444 can match eol */
-YY_RULE_SETUP
-if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
-       YY_BREAK
 case 445:
 /* rule 445 can match eol */
 YY_RULE_SETUP
-if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
+A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
        YY_BREAK
 case 446:
 /* rule 446 can match eol */
-YY_RULE_SETUP
-if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
-       YY_BREAK
 case 447:
 /* rule 447 can match eol */
+YY_RULE_SETUP
+A_surfxml_random_generator = A_surfxml_random_generator_NONE;
+       YY_BREAK
 case 448:
 /* rule 448 can match eol */
 YY_RULE_SETUP
-A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
+if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
        YY_BREAK
 case 449:
 /* rule 449 can match eol */
+YY_RULE_SETUP
+if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
+       YY_BREAK
 case 450:
 /* rule 450 can match eol */
 YY_RULE_SETUP
-A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
+if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
        YY_BREAK
 case 451:
+/* rule 451 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
-  LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
- }
+if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
        YY_BREAK
 case 452:
+/* rule 452 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
-  if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
-  LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
-   case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-  }
- }
+if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
        YY_BREAK
 case 453:
+/* rule 453 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
+if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
        YY_BREAK
 case 454:
+/* rule 454 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_ASroute):
-FAIL("EOF in attribute list of `ASroute' element.");
+if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
        YY_BREAK
-
 case 455:
 /* rule 455 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_ASroute();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
-   case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-  }
- }
+if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
        YY_BREAK
 case 456:
 /* rule 456 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
+if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
        YY_BREAK
 case 457:
+/* rule 457 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_ASroute_2):
-case YY_STATE_EOF(S_surfxml_ASroute):
-case YY_STATE_EOF(E_surfxml_ASroute):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
+if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
        YY_BREAK
-
 case 458:
 /* rule 458 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <link_ctn> is not allowed here.");
+if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
        YY_BREAK
 case 459:
 /* rule 459 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_link___ctn_id = 0;
-  surfxml_link___ctn_id_isset = 0;
-  AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
-  surfxml_link___ctn_direction_isset = 0;
-  ENTER(AL_surfxml_link___ctn); pushbuffer(0);
-  }
+if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
        YY_BREAK
-
 case 460:
 /* rule 460 can match eol */
 YY_RULE_SETUP
-if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
+if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
        YY_BREAK
 case 461:
 /* rule 461 can match eol */
 YY_RULE_SETUP
-if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
+if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
        YY_BREAK
 case 462:
-/* rule 462 can match eol */
+YY_RULE_SETUP
+{
+  if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
+  if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
+  if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
+  if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
+  if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+  LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
+ }
+       YY_BREAK
 case 463:
-/* rule 463 can match eol */
 YY_RULE_SETUP
-A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
+{
+  if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
+  if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
+  if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
+  if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
+  if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
+  LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
+  }
+ }
        YY_BREAK
 case 464:
-/* rule 464 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
+       YY_BREAK
 case 465:
-/* rule 465 can match eol */
 YY_RULE_SETUP
-A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
+FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_random):
+FAIL("EOF in attribute list of `random' element.");
        YY_BREAK
+
 case 466:
 /* rule 466 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_random();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
+  }
+ }
+       YY_BREAK
 case 467:
 /* rule 467 can match eol */
 YY_RULE_SETUP
-A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
+FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
        YY_BREAK
 case 468:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
-  LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
- }
+FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
        YY_BREAK
+case YY_STATE_EOF(E_surfxml_random):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
+       YY_BREAK
+
 case 469:
+/* rule 469 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
-  LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
-   case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
-   case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
-   case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
-  }
- }
+FAIL("Starting tag <route> is not allowed here.");
        YY_BREAK
 case 470:
+/* rule 470 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
+{
+  AX_surfxml_route_dst = 0;
+  surfxml_route_dst_isset = 0;
+  AX_surfxml_route_src = 0;
+  surfxml_route_src_isset = 0;
+  AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
+  surfxml_route_symmetrical_isset = 0;
+  ENTER(AL_surfxml_route); pushbuffer(0);
+  }
        YY_BREAK
+
 case 471:
+/* rule 471 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_link___ctn):
-FAIL("EOF in attribute list of `link_ctn' element.");
+if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
        YY_BREAK
-
 case 472:
 /* rule 472 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_link___ctn();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
-   case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
-   case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
-   case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
-  }
- }
+if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
        YY_BREAK
 case 473:
 /* rule 473 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
+if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
        YY_BREAK
 case 474:
+/* rule 474 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_link___ctn):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
+if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
        YY_BREAK
-
 case 475:
 /* rule 475 can match eol */
-YY_RULE_SETUP
-FAIL("Starting tag <bypassRoute> is not allowed here.");
-       YY_BREAK
 case 476:
 /* rule 476 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_bypassRoute_src = 0;
-  surfxml_bypassRoute_src_isset = 0;
-  AX_surfxml_bypassRoute_dst = 0;
-  surfxml_bypassRoute_dst_isset = 0;
-  ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
-  }
+A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
        YY_BREAK
-
 case 477:
 /* rule 477 can match eol */
-YY_RULE_SETUP
-if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
-       YY_BREAK
 case 478:
 /* rule 478 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
+A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
        YY_BREAK
 case 479:
-/* rule 479 can match eol */
-YY_RULE_SETUP
-if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
-       YY_BREAK
-case 480:
-/* rule 480 can match eol */
-YY_RULE_SETUP
-if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
-       YY_BREAK
-case 481:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
-  if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
-  LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
+  if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
+  if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
+  LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
  }
        YY_BREAK
-case 482:
+case 480:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
-  if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
-  LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
+  if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
+  if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
+  LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
   }
  }
        YY_BREAK
-case 483:
+case 481:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
        YY_BREAK
-case 484:
+case 482:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_bypassRoute):
-FAIL("EOF in attribute list of `bypassRoute' element.");
+case YY_STATE_EOF(AL_surfxml_route):
+FAIL("EOF in attribute list of `route' element.");
        YY_BREAK
 
-case 485:
-/* rule 485 can match eol */
+case 483:
+/* rule 483 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_bypassRoute();
+  ETag_surfxml_route();
   popbuffer(); /* attribute */
   switch (YY_START) {
    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
   }
  }
        YY_BREAK
+case 484:
+/* rule 484 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
+       YY_BREAK
+case 485:
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_route):
+case YY_STATE_EOF(S_surfxml_route):
+case YY_STATE_EOF(S_surfxml_route_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
+       YY_BREAK
+
 case 486:
 /* rule 486 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
+FAIL("Starting tag <router> is not allowed here.");
        YY_BREAK
 case 487:
+/* rule 487 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_bypassRoute_2):
-case YY_STATE_EOF(E_surfxml_bypassRoute):
-case YY_STATE_EOF(S_surfxml_bypassRoute):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
+{
+  AX_surfxml_router_coordinates = 0;
+  surfxml_router_coordinates_isset = 0;
+  AX_surfxml_router_id = 0;
+  surfxml_router_id_isset = 0;
+  ENTER(AL_surfxml_router); pushbuffer(0);
+  }
        YY_BREAK
 
 case 488:
 /* rule 488 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <bypassASroute> is not allowed here.");
+if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
        YY_BREAK
 case 489:
 /* rule 489 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_bypassASroute_src = 0;
-  surfxml_bypassASroute_src_isset = 0;
-  AX_surfxml_bypassASroute_dst = 0;
-  surfxml_bypassASroute_dst_isset = 0;
-  AX_surfxml_bypassASroute_gw___src = 0;
-  surfxml_bypassASroute_gw___src_isset = 0;
-  AX_surfxml_bypassASroute_gw___dst = 0;
-  surfxml_bypassASroute_gw___dst_isset = 0;
-  ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
-  }
+if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
        YY_BREAK
-
 case 490:
 /* rule 490 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
+if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
        YY_BREAK
 case 491:
 /* rule 491 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
+if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
        YY_BREAK
 case 492:
-/* rule 492 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
+{
+  if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
+  LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
+ }
        YY_BREAK
 case 493:
-/* rule 493 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
+{
+  if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
+  LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 494:
-/* rule 494 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
+FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
        YY_BREAK
 case 495:
-/* rule 495 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
+FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
        YY_BREAK
+case YY_STATE_EOF(AL_surfxml_router):
+FAIL("EOF in attribute list of `router' element.");
+       YY_BREAK
+
 case 496:
 /* rule 496 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
+{
+  LEAVE;
+  ETag_surfxml_router();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 497:
 /* rule 497 can match eol */
 YY_RULE_SETUP
-if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
+FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
        YY_BREAK
 case 498:
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
-  LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
- }
+FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_router):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
        YY_BREAK
+
 case 499:
+/* rule 499 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
-  if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
-  LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-  }
- }
+FAIL("Starting tag <storage> is not allowed here.");
        YY_BREAK
 case 500:
+/* rule 500 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
+{
+  AX_surfxml_storage_attach = 0;
+  surfxml_storage_attach_isset = 0;
+  AX_surfxml_storage_content = 0;
+  surfxml_storage_content_isset = 0;
+  AX_surfxml_storage_content___type = 35;
+  surfxml_storage_content___type_isset = 0;
+  AX_surfxml_storage_id = 0;
+  surfxml_storage_id_isset = 0;
+  AX_surfxml_storage_typeId = 0;
+  surfxml_storage_typeId_isset = 0;
+  ENTER(AL_surfxml_storage); pushbuffer(0);
+  }
        YY_BREAK
+
 case 501:
+/* rule 501 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_bypassASroute):
-FAIL("EOF in attribute list of `bypassASroute' element.");
+if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
        YY_BREAK
-
 case 502:
 /* rule 502 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_bypassASroute();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
-  }
- }
+if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
        YY_BREAK
 case 503:
 /* rule 503 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
+if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
        YY_BREAK
 case 504:
+/* rule 504 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_bypassASroute):
-case YY_STATE_EOF(S_surfxml_bypassASroute_2):
-case YY_STATE_EOF(S_surfxml_bypassASroute):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
+if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
        YY_BREAK
-
 case 505:
 /* rule 505 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <process> is not allowed here.");
+if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
        YY_BREAK
 case 506:
 /* rule 506 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_process_host = 0;
-  surfxml_process_host_isset = 0;
-  AX_surfxml_process_function = 0;
-  surfxml_process_function_isset = 0;
-  AX_surfxml_process_start___time = 50;
-  surfxml_process_start___time_isset = 0;
-  AX_surfxml_process_kill___time = 55;
-  surfxml_process_kill___time_isset = 0;
-  AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
-  surfxml_process_on___failure_isset = 0;
-  ENTER(AL_surfxml_process); pushbuffer(0);
-  }
+if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
        YY_BREAK
-
 case 507:
 /* rule 507 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
+if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
        YY_BREAK
 case 508:
 /* rule 508 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
+if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
        YY_BREAK
 case 509:
 /* rule 509 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
+if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
        YY_BREAK
 case 510:
 /* rule 510 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
+if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
        YY_BREAK
 case 511:
-/* rule 511 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
+{
+  if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
+  if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
+  if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
+  LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
+ }
        YY_BREAK
 case 512:
-/* rule 512 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
+{
+  if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
+  if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
+  if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
+  LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
        YY_BREAK
 case 513:
-/* rule 513 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
+FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
        YY_BREAK
 case 514:
-/* rule 514 can match eol */
 YY_RULE_SETUP
-if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
+FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_storage):
+FAIL("EOF in attribute list of `storage' element.");
        YY_BREAK
+
 case 515:
 /* rule 515 can match eol */
+YY_RULE_SETUP
+{
+  LEAVE;
+  ETag_surfxml_storage();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
+  }
+ }
+       YY_BREAK
 case 516:
 /* rule 516 can match eol */
 YY_RULE_SETUP
-A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
+FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
        YY_BREAK
 case 517:
-/* rule 517 can match eol */
+YY_RULE_SETUP
+FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_surfxml_storage):
+case YY_STATE_EOF(S_surfxml_storage):
+case YY_STATE_EOF(S_surfxml_storage_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
+       YY_BREAK
+
 case 518:
 /* rule 518 can match eol */
 YY_RULE_SETUP
-A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
+FAIL("Starting tag <storage_type> is not allowed here.");
        YY_BREAK
 case 519:
+/* rule 519 can match eol */
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
-  if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
-  LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
- }
+  AX_surfxml_storage___type_content = 0;
+  surfxml_storage___type_content_isset = 0;
+  AX_surfxml_storage___type_content___type = 16;
+  surfxml_storage___type_content___type_isset = 0;
+  AX_surfxml_storage___type_id = 0;
+  surfxml_storage___type_id_isset = 0;
+  AX_surfxml_storage___type_model = 0;
+  surfxml_storage___type_model_isset = 0;
+  AX_surfxml_storage___type_size = 0;
+  surfxml_storage___type_size_isset = 0;
+  ENTER(AL_surfxml_storage___type); pushbuffer(0);
+  }
        YY_BREAK
+
 case 520:
+/* rule 520 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
-  if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
-  LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
-  }
- }
+if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
        YY_BREAK
 case 521:
+/* rule 521 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
+if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
        YY_BREAK
 case 522:
+/* rule 522 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_process):
-FAIL("EOF in attribute list of `process' element.");
+if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
        YY_BREAK
-
 case 523:
 /* rule 523 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_process();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
-  }
- }
+if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
        YY_BREAK
 case 524:
 /* rule 524 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
+if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
        YY_BREAK
 case 525:
+/* rule 525 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_process):
-case YY_STATE_EOF(E_surfxml_process):
-case YY_STATE_EOF(S_surfxml_process_2):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
+if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
        YY_BREAK
-
 case 526:
 /* rule 526 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <argument> is not allowed here.");
+if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
        YY_BREAK
 case 527:
 /* rule 527 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_argument_value = 0;
-  surfxml_argument_value_isset = 0;
-  ENTER(AL_surfxml_argument); pushbuffer(0);
-  }
+if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
        YY_BREAK
-
 case 528:
 /* rule 528 can match eol */
 YY_RULE_SETUP
-if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
+if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
        YY_BREAK
 case 529:
 /* rule 529 can match eol */
 YY_RULE_SETUP
-if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
+if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
        YY_BREAK
 case 530:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
-  LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
+  if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
+  if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
+  if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
+  LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
  }
        YY_BREAK
 case 531:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
-  LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
+  if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
+  if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
+  if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
+  LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
 case 532:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
        YY_BREAK
 case 533:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_argument):
-FAIL("EOF in attribute list of `argument' element.");
+case YY_STATE_EOF(AL_surfxml_storage___type):
+FAIL("EOF in attribute list of `storage_type' element.");
        YY_BREAK
 
 case 534:
@@ -9213,282 +9283,240 @@ case 534:
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_argument();
+  ETag_surfxml_storage___type();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
   }
  }
        YY_BREAK
 case 535:
 /* rule 535 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
+FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
        YY_BREAK
 case 536:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
+FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
        YY_BREAK
-case YY_STATE_EOF(E_surfxml_argument):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
+case YY_STATE_EOF(E_surfxml_storage___type):
+case YY_STATE_EOF(S_surfxml_storage___type):
+case YY_STATE_EOF(S_surfxml_storage___type_2):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
        YY_BREAK
 
 case 537:
 /* rule 537 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <config> is not allowed here.");
+FAIL("Starting tag <trace> is not allowed here.");
        YY_BREAK
 case 538:
 /* rule 538 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_config_id = 0;
-  surfxml_config_id_isset = 0;
-  ENTER(AL_surfxml_config); pushbuffer(0);
+  AX_surfxml_trace_file = 0;
+  surfxml_trace_file_isset = 0;
+  AX_surfxml_trace_id = 0;
+  surfxml_trace_id_isset = 0;
+  AX_surfxml_trace_periodicity = 0;
+  surfxml_trace_periodicity_isset = 0;
+  ENTER(AL_surfxml_trace); pushbuffer(0);
   }
        YY_BREAK
 
 case 539:
 /* rule 539 can match eol */
 YY_RULE_SETUP
-if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
+if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
        YY_BREAK
 case 540:
 /* rule 540 can match eol */
 YY_RULE_SETUP
-if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
+if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
        YY_BREAK
 case 541:
+/* rule 541 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
- }
+if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
        YY_BREAK
 case 542:
+/* rule 542 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
-  }
- }
+if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
        YY_BREAK
 case 543:
+/* rule 543 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
+if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
        YY_BREAK
 case 544:
+/* rule 544 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_config):
-FAIL("EOF in attribute list of `config' element.");
+if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
        YY_BREAK
-
 case 545:
-/* rule 545 can match eol */
 YY_RULE_SETUP
 {
-  LEAVE;
-  ETag_surfxml_config();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
-  }
+  if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
+  if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
+  LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
  }
        YY_BREAK
 case 546:
-/* rule 546 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
+{
+  if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
+  if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
+  LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
+  }
+ }
        YY_BREAK
 case 547:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_surfxml_config):
-case YY_STATE_EOF(S_surfxml_config_2):
-case YY_STATE_EOF(E_surfxml_config):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
+FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
        YY_BREAK
-
-/* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
-  * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
 case 548:
-/* rule 548 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <prop> is not allowed here.");
+FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_surfxml_trace):
+FAIL("EOF in attribute list of `trace' element.");
        YY_BREAK
+
 case 549:
 /* rule 549 can match eol */
 YY_RULE_SETUP
 {
-  AX_surfxml_prop_id = 0;
-  surfxml_prop_id_isset = 0;
-  AX_surfxml_prop_value = 0;
-  surfxml_prop_value_isset = 0;
-  ENTER(AL_surfxml_prop); pushbuffer(0);
+  LEAVE;
+  BUFFERDONE;
+  ETag_surfxml_trace();
+  surfxml_pcdata_ix = popbuffer();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
+ }
        YY_BREAK
-
 case 550:
 /* rule 550 can match eol */
 YY_RULE_SETUP
-if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
+FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
        YY_BREAK
+case YY_STATE_EOF(IN_trace):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
+       YY_BREAK
+
 case 551:
 /* rule 551 can match eol */
 YY_RULE_SETUP
-if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
+FAIL("Starting tag <trace_connect> is not allowed here.");
        YY_BREAK
 case 552:
 /* rule 552 can match eol */
 YY_RULE_SETUP
-if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
+{
+  AX_surfxml_trace___connect_element = 0;
+  surfxml_trace___connect_element_isset = 0;
+  AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
+  surfxml_trace___connect_kind_isset = 0;
+  AX_surfxml_trace___connect_trace = 0;
+  surfxml_trace___connect_trace_isset = 0;
+  ENTER(AL_surfxml_trace___connect); pushbuffer(0);
+  }
        YY_BREAK
+
 case 553:
 /* rule 553 can match eol */
 YY_RULE_SETUP
-if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
+if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
        YY_BREAK
 case 554:
+/* rule 554 can match eol */
 YY_RULE_SETUP
-{
-  if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
-  if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
-  LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
- }
+if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
        YY_BREAK
 case 555:
-YY_RULE_SETUP
-{
-  if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
-  if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
-  LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
-   case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
-   case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-   case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
-   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
-   case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
-   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
-  }
- }
-       YY_BREAK
+/* rule 555 can match eol */
 case 556:
+/* rule 556 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
+A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
        YY_BREAK
 case 557:
-YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_surfxml_prop):
-FAIL("EOF in attribute list of `prop' element.");
-       YY_BREAK
-
+/* rule 557 can match eol */
 case 558:
 /* rule 558 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_surfxml_prop();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
-   case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
-   case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
-   case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
-   case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
-   case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
-   case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
-   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
-  }
- }
+A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
        YY_BREAK
 case 559:
 /* rule 559 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
-       YY_BREAK
 case 560:
+/* rule 560 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_surfxml_prop):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
+A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
        YY_BREAK
-
-/* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
-  * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
 case 561:
 /* rule 561 can match eol */
-YY_RULE_SETUP
-FAIL("Starting tag <model_prop> is not allowed here.");
-       YY_BREAK
 case 562:
 /* rule 562 can match eol */
 YY_RULE_SETUP
-{
-  AX_surfxml_model___prop_id = 0;
-  surfxml_model___prop_id_isset = 0;
-  AX_surfxml_model___prop_value = 0;
-  surfxml_model___prop_value_isset = 0;
-  ENTER(AL_surfxml_model___prop); pushbuffer(0);
-  }
+A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
        YY_BREAK
-
 case 563:
 /* rule 563 can match eol */
-YY_RULE_SETUP
-if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
-       YY_BREAK
 case 564:
 /* rule 564 can match eol */
 YY_RULE_SETUP
-if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
+A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
        YY_BREAK
 case 565:
 /* rule 565 can match eol */
 YY_RULE_SETUP
-if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
+if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
        YY_BREAK
 case 566:
 /* rule 566 can match eol */
 YY_RULE_SETUP
-if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
+if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
        YY_BREAK
 case 567:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
-  if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
-  LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
+  if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
+  if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
+  LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
  }
        YY_BREAK
 case 568:
 YY_RULE_SETUP
 {
-  if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
-  if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
-  LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
+  if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
+  if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
+  LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
  }
        YY_BREAK
 case 569:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
        YY_BREAK
 case 570:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
+FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_surfxml_model___prop):
-FAIL("EOF in attribute list of `model_prop' element.");
+case YY_STATE_EOF(AL_surfxml_trace___connect):
+FAIL("EOF in attribute list of `trace_connect' element.");
        YY_BREAK
 
 case 571:
@@ -9496,24 +9524,26 @@ case 571:
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_surfxml_model___prop();
+  ETag_surfxml_trace___connect();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
+   case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
+   case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
+   case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
   }
  }
        YY_BREAK
 case 572:
 /* rule 572 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
+FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
        YY_BREAK
 case 573:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
+FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
        YY_BREAK
-case YY_STATE_EOF(E_surfxml_model___prop):
-if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
+case YY_STATE_EOF(E_surfxml_trace___connect):
+if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
        YY_BREAK
 
 /* EPILOG: after the root element. */
@@ -9795,9 +9825,9 @@ case YY_STATE_EOF(IMPOSSIBLE):
  */
 static int yy_get_next_buffer (void)
 {
-       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-       register char *source = (yytext_ptr);
-       register int number_to_move, i;
+       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+       char *source = (yytext_ptr);
+       int number_to_move, i;
        int ret_val;
 
        if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
@@ -9929,14 +9959,14 @@ static int yy_get_next_buffer (void)
 
     static yy_state_type yy_get_previous_state (void)
 {
-       register yy_state_type yy_current_state;
-       register char *yy_cp;
+       yy_state_type yy_current_state;
+       char *yy_cp;
     
        yy_current_state = (yy_start);
 
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
                {
-               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
                if ( yy_accept[yy_current_state] )
                        {
                        (yy_last_accepting_state) = yy_current_state;
@@ -9945,7 +9975,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 3466 )
+                       if ( yy_current_state >= 3477 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -9961,10 +9991,10 @@ static int yy_get_next_buffer (void)
  */
     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
 {
-       register int yy_is_jam;
-       register char *yy_cp = (yy_c_buf_p);
+       int yy_is_jam;
+       char *yy_cp = (yy_c_buf_p);
 
-       register YY_CHAR yy_c = 1;
+       YY_CHAR yy_c = 1;
        if ( yy_accept[yy_current_state] )
                {
                (yy_last_accepting_state) = yy_current_state;
@@ -9973,11 +10003,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 3466 )
+               if ( yy_current_state >= 3477 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 3465);
+       yy_is_jam = (yy_current_state == 3476);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -10617,7 +10647,7 @@ int surf_parse_lex_destroy  (void)
 #ifndef yytext_ptr
 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 {
-       register int i;
+       int i;
        for ( i = 0; i < n; ++i )
                s1[i] = s2[i];
 }
@@ -10626,7 +10656,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
 #ifdef YY_NEED_STRLEN
 static int yy_flex_strlen (yyconst char * s )
 {
-       register int n;
+       int n;
        for ( n = 0; s[n]; ++n )
                ;
 
similarity index 96%
rename from include/surf/simgrid_dtd.h
rename to src/surf/xml/simgrid_dtd.h
index 23f16c7..58a929e 100644 (file)
@@ -1,4 +1,4 @@
-/* XML processor/application API for src/surf/simgrid.dtd.
+/* XML processor/application API for src/surf/xml/simgrid.dtd.
  *
  * This program was generated with the FleXML XML processor generator.
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
@@ -110,7 +110,7 @@ XBT_PUBLIC(void) ETag_surfxml_trace___connect(void);
 /* XML application data. */
 typedef int AT_surfxml_AS_id;
 #define AU_surfxml_AS_id NULL
-typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_Cluster___torus,A_surfxml_AS_routing_Cluster___fat___tree } AT_surfxml_AS_routing;
+typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_ClusterTorus,A_surfxml_AS_routing_ClusterFatTree } AT_surfxml_AS_routing;
 typedef int AT_surfxml_ASroute_dst;
 #define AU_surfxml_ASroute_dst NULL
 typedef int AT_surfxml_ASroute_gw___dst;
@@ -146,12 +146,12 @@ typedef int AT_surfxml_cabinet_id;
 #define AU_surfxml_cabinet_id NULL
 typedef int AT_surfxml_cabinet_lat;
 #define AU_surfxml_cabinet_lat NULL
-typedef int AT_surfxml_cabinet_power;
-#define AU_surfxml_cabinet_power NULL
 typedef int AT_surfxml_cabinet_prefix;
 #define AU_surfxml_cabinet_prefix NULL
 typedef int AT_surfxml_cabinet_radical;
 #define AU_surfxml_cabinet_radical NULL
+typedef int AT_surfxml_cabinet_speed;
+#define AU_surfxml_cabinet_speed NULL
 typedef int AT_surfxml_cabinet_suffix;
 #define AU_surfxml_cabinet_suffix NULL
 typedef int AT_surfxml_cluster_availability___file;
@@ -175,8 +175,6 @@ typedef int AT_surfxml_cluster_loopback___bw;
 #define AU_surfxml_cluster_loopback___bw NULL
 typedef int AT_surfxml_cluster_loopback___lat;
 #define AU_surfxml_cluster_loopback___lat NULL
-typedef int AT_surfxml_cluster_power;
-#define AU_surfxml_cluster_power NULL
 typedef int AT_surfxml_cluster_prefix;
 #define AU_surfxml_cluster_prefix NULL
 typedef int AT_surfxml_cluster_radical;
@@ -184,6 +182,8 @@ typedef int AT_surfxml_cluster_radical;
 typedef int AT_surfxml_cluster_router___id;
 #define AU_surfxml_cluster_router___id NULL
 typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy;
+typedef int AT_surfxml_cluster_speed;
+#define AU_surfxml_cluster_speed NULL
 typedef int AT_surfxml_cluster_state___file;
 #define AU_surfxml_cluster_state___file NULL
 typedef int AT_surfxml_cluster_suffix;
@@ -205,10 +205,10 @@ typedef int AT_surfxml_host_core;
 #define AU_surfxml_host_core NULL
 typedef int AT_surfxml_host_id;
 #define AU_surfxml_host_id NULL
-typedef int AT_surfxml_host_power;
-#define AU_surfxml_host_power NULL
 typedef int AT_surfxml_host_pstate;
 #define AU_surfxml_host_pstate NULL
+typedef int AT_surfxml_host_speed;
+#define AU_surfxml_host_speed NULL
 typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state;
 typedef int AT_surfxml_host_state___file;
 #define AU_surfxml_host_state___file NULL
@@ -261,8 +261,8 @@ typedef int AT_surfxml_peer_id;
 #define AU_surfxml_peer_id NULL
 typedef int AT_surfxml_peer_lat;
 #define AU_surfxml_peer_lat NULL
-typedef int AT_surfxml_peer_power;
-#define AU_surfxml_peer_power NULL
+typedef int AT_surfxml_peer_speed;
+#define AU_surfxml_peer_speed NULL
 typedef int AT_surfxml_peer_state___file;
 #define AU_surfxml_peer_state___file NULL
 typedef int AT_surfxml_platform_version;
@@ -332,7 +332,7 @@ typedef int AT_surfxml_trace_periodicity;
 #define AU_surfxml_trace_periodicity NULL
 typedef int AT_surfxml_trace___connect_element;
 #define AU_surfxml_trace___connect_element NULL
-typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind;
+typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_SPEED,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind;
 typedef int AT_surfxml_trace___connect_trace;
 #define AU_surfxml_trace___connect_trace NULL
 
@@ -400,15 +400,15 @@ XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat;
 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
 XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power;
-#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
-XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix;
 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
 XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical;
 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
 XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cabinet_speed) AX_surfxml_cabinet_speed;
+#define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
+XBT_PUBLIC_DATA(short int) surfxml_cabinet_speed_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix;
 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
 XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset;
@@ -445,9 +445,6 @@ XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___bw_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___lat) AX_surfxml_cluster_loopback___lat;
 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
 XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_cluster_power) AX_surfxml_cluster_power;
-#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
-XBT_PUBLIC_DATA(short int) surfxml_cluster_power_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix;
 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
 XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset;
@@ -460,6 +457,9 @@ XBT_PUBLIC_DATA(short int) surfxml_cluster_router___id_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy;
 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
 XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset;
+XBT_PUBLIC_DATA(AT_surfxml_cluster_speed) AX_surfxml_cluster_speed;
+#define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
+XBT_PUBLIC_DATA(short int) surfxml_cluster_speed_isset;
 XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file) AX_surfxml_cluster_state___file;
 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
 XBT_PUBLIC_DATA(short int) surfxml_cluster_state___file_isset;
@@ -493,12 +493,12 @@ XBT_PUBLIC_DATA(short int) surfxml_host_core_isset;
 XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id;
 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
 XBT_PUBLIC_DATA(short int) surfxml_host_id_isset;
-XBT_PUBLIC_DATA(AT_surfxml_host_power) AX_surfxml_host_power;
-#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
-XBT_PUBLIC_DATA(short int) surfxml_host_power_isset;
 XBT_PUBLIC_DATA(AT_surfxml_host_pstate) AX_surfxml_host_pstate;
 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
 XBT_PUBLIC_DATA(short int) surfxml_host_pstate_isset;
+XBT_PUBLIC_DATA(AT_surfxml_host_speed) AX_surfxml_host_speed;
+#define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
+XBT_PUBLIC_DATA(short int) surfxml_host_speed_isset;
 XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state;
 #define A_surfxml_host_state AX_surfxml_host_state
 XBT_PUBLIC_DATA(short int) surfxml_host_state_isset;
@@ -583,9 +583,9 @@ XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset;
 XBT_PUBLIC_DATA(AT_surfxml_peer_lat) AX_surfxml_peer_lat;
 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
 XBT_PUBLIC_DATA(short int) surfxml_peer_lat_isset;
-XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power;
-#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
-XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset;
+XBT_PUBLIC_DATA(AT_surfxml_peer_speed) AX_surfxml_peer_speed;
+#define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
+XBT_PUBLIC_DATA(short int) surfxml_peer_speed_isset;
 XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file;
 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
 XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset;
similarity index 59%
rename from src/surf/surfxml_parseplatf.cpp
rename to src/surf/xml/surfxml_parseplatf.cpp
index 7ab9cb9..0c85993 100644 (file)
@@ -8,10 +8,10 @@
 #include "xbt/log.h"
 #include "xbt/str.h"
 #include "xbt/dict.h"
-#include "simgrid/platf.h"
-#include "surf/surfxml_parse.h"
 #include "src/surf/cpu_interface.hpp"
-#include "src/surf/surf_private.h"
+#include "src/surf/network_interface.hpp"
+
+#include "src/surf/xml/platf.hpp"
 
 #ifdef HAVE_LUA
 extern "C" {
@@ -64,18 +64,57 @@ void surfxml_bufferstack_pop(int new_one)
  */
 
 xbt_dict_t traces_set_list = NULL;
-xbt_dict_t trace_connect_list_host_avail = NULL;
-xbt_dict_t trace_connect_list_host_speed = NULL;
-xbt_dict_t trace_connect_list_link_avail = NULL;
-xbt_dict_t trace_connect_list_link_bw = NULL;
-xbt_dict_t trace_connect_list_link_lat = NULL;
+XBT_PRIVATE xbt_dict_t trace_connect_list_host_avail = NULL;
+XBT_PRIVATE xbt_dict_t trace_connect_list_host_speed = NULL;
+XBT_PRIVATE xbt_dict_t trace_connect_list_link_avail = NULL;
+XBT_PRIVATE xbt_dict_t trace_connect_list_link_bw = NULL;
+XBT_PRIVATE xbt_dict_t trace_connect_list_link_lat = NULL;
+
+void sg_platf_trace_connect(sg_platf_trace_connect_cbarg_t trace_connect)
+{
+  xbt_assert(xbt_dict_get_or_null(traces_set_list, trace_connect->trace),
+              "Cannot connect trace %s to %s: trace unknown",
+              trace_connect->trace,
+              trace_connect->element);
+
+  switch (trace_connect->kind) {
+  case SURF_TRACE_CONNECT_KIND_HOST_AVAIL:
+    xbt_dict_set(trace_connect_list_host_avail,
+        trace_connect->trace,
+        xbt_strdup(trace_connect->element), NULL);
+    break;
+  case SURF_TRACE_CONNECT_KIND_SPEED:
+    xbt_dict_set(trace_connect_list_host_speed, trace_connect->trace,
+        xbt_strdup(trace_connect->element), NULL);
+    break;
+  case SURF_TRACE_CONNECT_KIND_LINK_AVAIL:
+    xbt_dict_set(trace_connect_list_link_avail,
+        trace_connect->trace,
+        xbt_strdup(trace_connect->element), NULL);
+    break;
+  case SURF_TRACE_CONNECT_KIND_BANDWIDTH:
+    xbt_dict_set(trace_connect_list_link_bw,
+        trace_connect->trace,
+        xbt_strdup(trace_connect->element), NULL);
+    break;
+  case SURF_TRACE_CONNECT_KIND_LATENCY:
+    xbt_dict_set(trace_connect_list_link_lat, trace_connect->trace,
+        xbt_strdup(trace_connect->element), NULL);
+    break;
+  default:
+  surf_parse_error("Cannot connect trace %s to %s: kind of trace unknown",
+        trace_connect->trace, trace_connect->element);
+    break;
+  }
+}
+
 
 /* ***************************************** */
 
 static int after_config_done;
 void parse_after_config() {
   if (!after_config_done) {
-         TRACE_start();
+    TRACE_start();
 
     /* Register classical callbacks */
     storage_register_callbacks();
@@ -93,7 +132,7 @@ void parse_platform_file(const char *file)
         && file[strlen(file)-1] == 'a');
 #endif
 
-  surf_parse_init_callbacks();
+  sg_platf_init();
 
 #ifdef HAVE_LUA
   /* Check if file extension is "lua". If so, we will use
@@ -152,6 +191,39 @@ void parse_platform_file(const char *file)
 
       cpu->set_state_trace(trace);
     }
+    xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) {
+      tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+      xbt_assert(trace, "Trace %s undefined", trace_name);
+
+      simgrid::s4u::Host *host = sg_host_by_name(elm);
+      xbt_assert(host, "Host %s undefined", elm);
+      simgrid::surf::Cpu *cpu = host->pimpl_cpu;
+
+      cpu->set_speed_trace(trace);
+    }
+    xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
+      tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+      xbt_assert(trace, "Trace %s undefined", trace_name);
+      Link *link = Link::byName(elm);
+      xbt_assert(link, "Link %s undefined", elm);
+      link->set_state_trace(trace);
+    }
+
+    xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) {
+      tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+      xbt_assert(trace, "Trace %s undefined", trace_name);
+      Link *link = Link::byName(elm);
+      xbt_assert(link, "Link %s undefined", elm);
+      link->set_bandwidth_trace(trace);
+    }
+
+    xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) {
+      tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
+      xbt_assert(trace, "Trace %s undefined", trace_name);
+      Link *link = Link::byName(elm);
+      xbt_assert(link, "Link %s undefined", elm);
+      link->set_latency_trace(trace);
+    }
 
     /* Free my data */
     xbt_dict_free(&trace_connect_list_host_avail);
@@ -160,7 +232,6 @@ void parse_platform_file(const char *file)
     xbt_dict_free(&trace_connect_list_link_bw);
     xbt_dict_free(&trace_connect_list_link_lat);
     xbt_dict_free(&traces_set_list);
-    xbt_dict_free(&random_data_list);
     xbt_dynar_free(&surfxml_bufferstack_stack);
 
     surf_parse_close();
similarity index 82%
rename from src/surf/surfxml_parse.c
rename to src/surf/xml/surfxml_sax_cb.cpp
index 50c47f4..b36b0e2 100644 (file)
 #include "xbt/str.h"
 #include "xbt/file.h"
 #include "xbt/dict.h"
-#include "surf/surfxml_parse.h"
 #include "src/surf/surf_private.h"
-#include "surf/random_mgr.h"
 #include "simgrid/sg_config.h"
 
+#include "src/surf/xml/platf_private.hpp"
+
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_parse, surf,
                                 "Logging specific to the SURF parsing module");
 #undef CLEANUP
@@ -31,6 +31,19 @@ xbt_dynar_t parsed_link_list = NULL;   /* temporary store of current list link o
 /*
  * Helping functions
  */
+void surf_parse_assert(bool cond, const char *fmt, ...) {
+  if (!cond ) {
+    va_list va;
+    va_start(va,fmt);
+    int lineno = surf_parse_lineno;
+    char *msg = bvprintf(fmt,va);
+    va_end(va);
+    cleanup();
+    XBT_ERROR("Parse error at %s:%d: %s", surf_parsed_filename, lineno, msg);
+    surf_exit();
+    xbt_die("Exiting now");
+  }
+}
 void surf_parse_error(const char *fmt, ...) {
   va_list va;
   va_start(va,fmt);
@@ -56,7 +69,6 @@ double surf_parse_get_double(const char *string) {
   int ret = sscanf(string, "%lg", &res);
   if (ret != 1)
     surf_parse_error("%s is not a double", string);
-  //printf("Parsed double [%g] %s\n", res, string);
   return res;
 }
 
@@ -73,10 +85,11 @@ struct unit_scale {
   double scale;
 };
 
-/* Note: field `unit' for the last element of parametre `units' should be
+/* Note: field `unit' for the last element of parameter `units' should be
  * NULL. */
-static double surf_parse_get_value_with_unit(const char *string,
-                                             const struct unit_scale *units)
+static double surf_parse_get_value_with_unit(const char *string, const struct unit_scale *units,
+    const char *entity_kind, const char *name,
+    const char *error_msg, const char *default_unit)
 {
   char* ptr;
   double res;
@@ -87,6 +100,13 @@ static double surf_parse_get_value_with_unit(const char *string,
     surf_parse_error("value out of range: %s", string);
   if (ptr == string)
     surf_parse_error("cannot parse number: %s", string);
+  if (ptr[0] == '\0') {
+    if (res == 0)
+      return res; // Ok, 0 can be unit-less
+
+    XBT_WARN("Deprecated unit-less value '%s' for %s %s. %s",string, entity_kind, name, error_msg);
+    ptr = (char*)default_unit;
+  }
   for (i = 0; units[i].unit != NULL && strcmp(ptr, units[i].unit) != 0; i++) {
   }
   if (units[i].unit != NULL)
@@ -96,7 +116,7 @@ static double surf_parse_get_value_with_unit(const char *string,
   return res;
 }
 
-double surf_parse_get_time(const char *string)
+double surf_parse_get_time(const char *string, const char *entity_kind, const char *name)
 {
   const struct unit_scale units[] = {
     { "w",  7 * 24 * 60 * 60 },
@@ -104,17 +124,17 @@ double surf_parse_get_time(const char *string)
     { "h",  60 * 60 },
     { "m",  60 },
     { "s",  1.0 },
-    { "",   1.0 },              /* default unit is seconds */
     { "ms", 1e-3 },
     { "us", 1e-6 },
     { "ns", 1e-9 },
     { "ps", 1e-12 },
     { NULL, 0 }
   };
-  return surf_parse_get_value_with_unit(string, units);
+  return surf_parse_get_value_with_unit(string, units, entity_kind, name,
+      "Append 's' to your time to get seconds", "s");
 }
 
-double surf_parse_get_size(const char *string)
+double surf_parse_get_size(const char *string, const char *entity_kind, const char *name)
 {
   const struct unit_scale units[] = {
     { "TiB", pow(1024, 4) },
@@ -126,7 +146,6 @@ double surf_parse_get_size(const char *string)
     { "MB",  1e6 },
     { "kB",  1e3 },
     { "B",   1.0 },
-    { "",      1.0 },           /* default unit is bytes*/
     { "Tib", 0.125 * pow(1024, 4) },
     { "Gib", 0.125 * pow(1024, 3) },
     { "Mib", 0.125 * pow(1024, 2) },
@@ -138,10 +157,11 @@ double surf_parse_get_size(const char *string)
     { "b",   0.125 },
     { NULL,    0 }
   };
-  return surf_parse_get_value_with_unit(string, units);
+  return surf_parse_get_value_with_unit(string, units, entity_kind, name,
+      "Append 'B' to get bytes (or 'b' for bits but 1B = 8b).", "B");
 }
 
-double surf_parse_get_bandwidth(const char *string)
+double surf_parse_get_bandwidth(const char *string, const char *entity_kind, const char *name)
 {
   const struct unit_scale units[] = {
     { "TiBps", pow(1024, 4) },
@@ -153,7 +173,6 @@ double surf_parse_get_bandwidth(const char *string)
     { "MBps",  1e6 },
     { "kBps",  1e3 },
     { "Bps",   1.0 },
-    { "",      1.0 },           /* default unit is bytes per second */
     { "Tibps", 0.125 * pow(1024, 4) },
     { "Gibps", 0.125 * pow(1024, 3) },
     { "Mibps", 0.125 * pow(1024, 2) },
@@ -165,10 +184,11 @@ double surf_parse_get_bandwidth(const char *string)
     { "bps",   0.125 },
     { NULL,    0 }
   };
-  return surf_parse_get_value_with_unit(string, units);
+  return surf_parse_get_value_with_unit(string, units, entity_kind, name,
+      "Append 'Bps' to get bytes per second (or 'bps' for bits but 1Bps = 8bps)", "Bps");
 }
 
-double surf_parse_get_speed(const char *string)
+double surf_parse_get_speed(const char *string, const char *entity_kind, const char *name)
 {
   const struct unit_scale units[] = {
     { "yottaflops", 1e24 },
@@ -189,10 +209,10 @@ double surf_parse_get_speed(const char *string)
     { "kf",         1e3 },
     { "flops",      1.0 },
     { "f",          1.0 },
-    { "",           1.0 },      /* default unit is flops */
     { NULL,         0 }
   };
-  return surf_parse_get_value_with_unit(string, units);
+  return surf_parse_get_value_with_unit(string, units, entity_kind, name,
+      "Append 'f' or 'flops' to your speed to get flop per second", "f");
 }
 
 /*
@@ -259,7 +279,8 @@ void ETag_surfxml_storage___type(void)
   storage_type.model            = A_surfxml_storage___type_model;
   storage_type.properties       = current_property_set;
   storage_type.model_properties = current_model_property_set;
-  storage_type.size             = surf_parse_get_size(A_surfxml_storage___type_size);
+  storage_type.size             = surf_parse_get_size(A_surfxml_storage___type_size,
+        "size of storage type", storage_type.id);
   sg_platf_new_storage_type(&storage_type);
   current_property_set       = NULL;
   current_model_property_set = NULL;
@@ -308,8 +329,8 @@ void STag_surfxml_include(void)
   xbt_dynar_push(surf_file_to_parse_stack, &surf_file_to_parse); //save old file descriptor
 
   surf_file_to_parse = surf_fopen(A_surfxml_include_file, "r"); // read new file descriptor
-  xbt_assert((surf_file_to_parse), "Unable to open \"%s\"\n",
-              A_surfxml_include_file);
+  xbt_assert((surf_file_to_parse), "Unable to open \"%s\"\n", A_surfxml_include_file);
+
   xbt_dynar_push(surf_input_buffer_stack,&surf_input_buffer);
   surf_input_buffer = surf_parse__create_buffer(surf_file_to_parse, YY_BUF_SIZE);
   surf_parse_push_buffer_state(surf_input_buffer);
@@ -354,23 +375,6 @@ int ETag_surfxml_include_state(void)
   return 1;
 }
 
-
-void surf_parse_init_callbacks(void)
-{
-    sg_platf_init();
-}
-
-void surf_parse_reset_callbacks(void)
-{
-  surf_parse_free_callbacks();
-  surf_parse_init_callbacks();
-}
-
-void surf_parse_free_callbacks(void)
-{
-  sg_platf_exit();
-}
-
 /* Stag and Etag parse functions */
 
 void STag_surfxml_platform(void) {
@@ -395,6 +399,16 @@ void STag_surfxml_platform(void) {
       "Use simgrid_update_xml to update your file automatically. "
       "This program is installed automatically with SimGrid, or "
       "available in the tools/ directory of the source archive.");
+  xbt_assert((version >= 4.0), "******* FILE %s IS TOO OLD (v:%.1f) *********\n "
+      "Changes introduced in SimGrid 3.13:\n"
+      "  - 'power' attribute of hosts (and others) got renamed to 'speed'.\n"
+      "  - In <trace_connect>, attribute kind=\"POWER\" is now kind=\"SPEED\".\n"
+      "  - DOCTYPE now point to the rignt URL: http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\n"
+      "  - speed, bandwidth and latency attributes now MUST have an explicit unit (f, Bps, s by default)"
+      "\n\n"
+      "Use simgrid_update_xml to update your file automatically. "
+      "This program is installed automatically with SimGrid, or "
+      "available in the tools/ directory of the source archive.",surf_parsed_filename, version);
 
   sg_platf_begin();
 }
@@ -439,27 +453,27 @@ void ETag_surfxml_host(void)    {
 
   host.id = A_surfxml_host_id;
 
-  buf = A_surfxml_host_power;
+  buf = A_surfxml_host_speed;
   XBT_DEBUG("Buffer: %s", buf);
   host.speed_peak = xbt_dynar_new(sizeof(double), NULL);
   if (strchr(buf, ',') == NULL){
-         double speed = parse_cpu_speed(A_surfxml_host_power);
-         xbt_dynar_push_as(host.speed_peak,double, speed);
+    double speed = surf_parse_get_speed(A_surfxml_host_speed,"speed of host", host.id);
+    xbt_dynar_push_as(host.speed_peak,double, speed);
   }
   else {
-         xbt_dynar_t pstate_list = xbt_str_split(buf, ",");
-         int i;
-         for (i = 0; i < xbt_dynar_length(pstate_list); i++) {
-                 double speed;
-                 char* speed_str;
-
-                 xbt_dynar_get_cpy(pstate_list, i, &speed_str);
-                 xbt_str_trim(speed_str, NULL);
-                 speed = parse_cpu_speed(speed_str);
-                 xbt_dynar_push_as(host.speed_peak, double, speed);
-                 XBT_DEBUG("Speed value: %f", speed);
-         }
-         xbt_dynar_free(&pstate_list);
+    xbt_dynar_t pstate_list = xbt_str_split(buf, ",");
+    unsigned int i;
+    for (i = 0; i < xbt_dynar_length(pstate_list); i++) {
+      double speed;
+      char* speed_str;
+
+      xbt_dynar_get_cpy(pstate_list, i, &speed_str);
+      xbt_str_trim(speed_str, NULL);
+      speed = surf_parse_get_speed(speed_str,"speed of host", host.id);
+      xbt_dynar_push_as(host.speed_peak, double, speed);
+      XBT_DEBUG("Speed value: %f", speed);
+    }
+    xbt_dynar_free(&pstate_list);
   }
 
   XBT_DEBUG("pstate: %s", A_surfxml_host_pstate);
@@ -490,7 +504,7 @@ void STag_surfxml_host___link(void){
   host_link.id        = A_surfxml_host___link_id;
   host_link.link_up   = A_surfxml_host___link_up;
   host_link.link_down = A_surfxml_host___link_down;
-  sg_platf_new_netcard(&host_link);
+  sg_platf_new_hostlink(&host_link);
 }
 
 void STag_surfxml_router(void){
@@ -512,20 +526,20 @@ void ETag_surfxml_cluster(void){
   cluster.prefix      = A_surfxml_cluster_prefix;
   cluster.suffix      = A_surfxml_cluster_suffix;
   cluster.radical     = A_surfxml_cluster_radical;
-  cluster.speed       = surf_parse_get_speed(A_surfxml_cluster_power);
+  cluster.speed       = surf_parse_get_speed(A_surfxml_cluster_speed, "speed of cluster", cluster.id);
   cluster.core_amount = surf_parse_get_int(A_surfxml_cluster_core);
-  cluster.bw          = surf_parse_get_bandwidth(A_surfxml_cluster_bw);
-  cluster.lat         = surf_parse_get_time(A_surfxml_cluster_lat);
+  cluster.bw          = surf_parse_get_bandwidth(A_surfxml_cluster_bw, "bw of cluster", cluster.id);
+  cluster.lat         = surf_parse_get_time(A_surfxml_cluster_lat, "lat of cluster", cluster.id);
   if(strcmp(A_surfxml_cluster_bb___bw,""))
-    cluster.bb_bw = surf_parse_get_bandwidth(A_surfxml_cluster_bb___bw);
+    cluster.bb_bw = surf_parse_get_bandwidth(A_surfxml_cluster_bb___bw, "bb_bw of cluster", cluster.id);
   if(strcmp(A_surfxml_cluster_bb___lat,""))
-    cluster.bb_lat = surf_parse_get_time(A_surfxml_cluster_bb___lat);
+    cluster.bb_lat = surf_parse_get_time(A_surfxml_cluster_bb___lat, "bb_lat of cluster", cluster.id);
   if(strcmp(A_surfxml_cluster_limiter___link,""))
     cluster.limiter_link = surf_parse_get_double(A_surfxml_cluster_limiter___link);
   if(strcmp(A_surfxml_cluster_loopback___bw,""))
-    cluster.loopback_bw = surf_parse_get_bandwidth(A_surfxml_cluster_loopback___bw);
+    cluster.loopback_bw = surf_parse_get_bandwidth(A_surfxml_cluster_loopback___bw, "loopback_bw of cluster", cluster.id);
   if(strcmp(A_surfxml_cluster_loopback___lat,""))
-    cluster.loopback_lat = surf_parse_get_time(A_surfxml_cluster_loopback___lat);
+    cluster.loopback_lat = surf_parse_get_time(A_surfxml_cluster_loopback___lat, "loopback_lat of cluster", cluster.id);
 
   switch(AX_surfxml_cluster_topology){
   case A_surfxml_cluster_topology_FLAT:
@@ -592,9 +606,9 @@ void STag_surfxml_cabinet(void){
   cabinet.id      = A_surfxml_cabinet_id;
   cabinet.prefix  = A_surfxml_cabinet_prefix;
   cabinet.suffix  = A_surfxml_cabinet_suffix;
-  cabinet.speed   = surf_parse_get_speed(A_surfxml_cabinet_power);
-  cabinet.bw      = surf_parse_get_bandwidth(A_surfxml_cabinet_bw);
-  cabinet.lat     = surf_parse_get_time(A_surfxml_cabinet_lat);
+  cabinet.speed   = surf_parse_get_speed(A_surfxml_cabinet_speed, "speed of cabinet", cabinet.id);
+  cabinet.bw      = surf_parse_get_bandwidth(A_surfxml_cabinet_bw, "bw of cabinet", cabinet.id);
+  cabinet.lat     = surf_parse_get_time(A_surfxml_cabinet_lat, "lat of cabinet", cabinet.id);
   cabinet.radical = A_surfxml_cabinet_radical;
 
   sg_platf_new_cabinet(&cabinet);
@@ -605,10 +619,10 @@ void STag_surfxml_peer(void){
   s_sg_platf_peer_cbarg_t peer = SG_PLATF_PEER_INITIALIZER;
   memset(&peer,0,sizeof(peer));
   peer.id                 = A_surfxml_peer_id;
-  peer.speed              = surf_parse_get_speed(A_surfxml_peer_power);
-  peer.bw_in              = surf_parse_get_bandwidth(A_surfxml_peer_bw___in);
-  peer.bw_out             = surf_parse_get_bandwidth(A_surfxml_peer_bw___out);
-  peer.lat                = surf_parse_get_time(A_surfxml_peer_lat);
+  peer.speed              = surf_parse_get_speed(A_surfxml_peer_speed, "speed of peer", peer.id);
+  peer.bw_in              = surf_parse_get_bandwidth(A_surfxml_peer_bw___in, "bw_in of peer", peer.id);
+  peer.bw_out             = surf_parse_get_bandwidth(A_surfxml_peer_bw___out, "bw_out of peer", peer.id);
+  peer.lat                = surf_parse_get_time(A_surfxml_peer_lat, "lat of peer", peer.id);
   peer.coord              = A_surfxml_peer_coordinates;
   peer.availability_trace = tmgr_trace_new_from_file(A_surfxml_peer_availability___file);
   peer.state_trace        = tmgr_trace_new_from_file(A_surfxml_peer_state___file);
@@ -628,10 +642,10 @@ void ETag_surfxml_link(void){
   link.properties = current_property_set;
 
   link.id                                            = A_surfxml_link_id;
-  link.bandwidth                                     = surf_parse_get_bandwidth(A_surfxml_link_bandwidth);
+  link.bandwidth                                     = surf_parse_get_bandwidth(A_surfxml_link_bandwidth, "bandwidth of link", link.id);
   //printf("Link bandwidth [%g]\n", link.bandwidth);
   link.bandwidth_trace                               = tmgr_trace_new_from_file(A_surfxml_link_bandwidth___file);
-  link.latency                                       = surf_parse_get_time(A_surfxml_link_latency);
+  link.latency                                       = surf_parse_get_time(A_surfxml_link_latency, "latency of link", link.id);
   //printf("Link latency [%g]\n", link.latency);
   link.latency_trace                                 = tmgr_trace_new_from_file(A_surfxml_link_latency___file);
 
@@ -696,8 +710,8 @@ void ETag_surfxml_backbone(void){
   link.properties = NULL;
 
   link.id = A_surfxml_backbone_id;
-  link.bandwidth = surf_parse_get_bandwidth(A_surfxml_backbone_bandwidth);
-  link.latency = surf_parse_get_time(A_surfxml_backbone_latency);
+  link.bandwidth = surf_parse_get_bandwidth(A_surfxml_backbone_bandwidth, "bandwidth of backbone", link.id);
+  link.latency = surf_parse_get_time(A_surfxml_backbone_latency, "latency of backbone", link.id);
   link.initiallyOn = 1;
   link.policy = SURF_LINK_SHARED;
 
@@ -706,44 +720,51 @@ void ETag_surfxml_backbone(void){
 }
 
 void STag_surfxml_route(void){
-  xbt_assert(strlen(A_surfxml_route_src) > 0 || strlen(A_surfxml_route_dst) > 0,
-      "Missing end-points while defining route \"%s\"->\"%s\"",
-      A_surfxml_route_src, A_surfxml_route_dst);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_route_src),
+      "Route src='%s' does name a node.", A_surfxml_route_src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_route_dst),
+      "Route dst='%s' does name a node.", A_surfxml_route_dst);
   parsed_link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
 }
 
 void STag_surfxml_ASroute(void){
-  xbt_assert(strlen(A_surfxml_ASroute_src) > 0
-             || strlen(A_surfxml_ASroute_dst) > 0
-             || strlen(A_surfxml_ASroute_gw___src) > 0
-             || strlen(A_surfxml_ASroute_gw___dst) > 0,
-             "Missing end-points while defining route \"%s\"->\"%s\" (with %s and %s as gateways)",
-             A_surfxml_ASroute_src, A_surfxml_ASroute_dst,
-             A_surfxml_ASroute_gw___src, A_surfxml_ASroute_gw___dst);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_ASroute_src),
+      "ASroute src='%s' does name a node.", A_surfxml_route_src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_ASroute_dst),
+      "ASroute dst='%s' does name a node.", A_surfxml_route_dst);
+
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___src),
+      "ASroute gw_src='%s' does name a node.", A_surfxml_ASroute_gw___src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_ASroute_gw___dst),
+      "ASroute gw_dst='%s' does name a node.", A_surfxml_ASroute_gw___dst);
+
   parsed_link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
 }
 
 void STag_surfxml_bypassRoute(void){
-  xbt_assert(strlen(A_surfxml_bypassRoute_src) > 0
-             || strlen(A_surfxml_bypassRoute_dst) > 0,
-             "Missing end-points while defining bupass route \"%s\"->\"%s\"",
-             A_surfxml_bypassRoute_src, A_surfxml_bypassRoute_dst);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassRoute_src),
+      "bypassRoute src='%s' does name a node.", A_surfxml_bypassRoute_src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassRoute_dst),
+      "bypassRoute dst='%s' does name a node.", A_surfxml_bypassRoute_dst);
+
   parsed_link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
 }
 
 void STag_surfxml_bypassASroute(void){
-  xbt_assert(strlen(A_surfxml_bypassASroute_src) > 0
-             || strlen(A_surfxml_bypassASroute_dst) > 0
-             || strlen(A_surfxml_bypassASroute_gw___src) > 0
-             || strlen(A_surfxml_bypassASroute_gw___dst) > 0,
-             "Missing end-points while defining route \"%s\"->\"%s\" (with %s and %s as gateways)",
-             A_surfxml_bypassASroute_src, A_surfxml_bypassASroute_dst,
-             A_surfxml_bypassASroute_gw___src,A_surfxml_bypassASroute_gw___dst);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassASroute_src),
+      "bypassASroute src='%s' does name a node.", A_surfxml_bypassASroute_src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassASroute_dst),
+      "bypassASroute dst='%s' does name a node.", A_surfxml_bypassASroute_dst);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassASroute_gw___src),
+      "bypassASroute gw_src='%s' does name a node.", A_surfxml_bypassASroute_gw___src);
+  surf_parse_assert(sg_netcard_by_name_or_null(A_surfxml_bypassASroute_gw___dst),
+      "bypassASroute gw_dst='%s' does name a node.", A_surfxml_bypassASroute_gw___dst);
+
   parsed_link_list = xbt_dynar_new(sizeof(char *), &xbt_free_ref);
 }
 
 void ETag_surfxml_route(void){
-  s_sg_platf_route_cbarg_t route = SG_PLATF_ROUTE_INITIALIZER;
+  s_sg_platf_route_cbarg_t route;
   memset(&route,0,sizeof(route));
 
   route.src       = A_surfxml_route_src;
@@ -767,7 +788,7 @@ void ETag_surfxml_route(void){
 }
 
 void ETag_surfxml_ASroute(void){
-  s_sg_platf_route_cbarg_t ASroute = SG_PLATF_ROUTE_INITIALIZER;
+  s_sg_platf_route_cbarg_t ASroute;
   memset(&ASroute,0,sizeof(ASroute));
 
   ASroute.src = A_surfxml_ASroute_src;
@@ -795,12 +816,12 @@ void ETag_surfxml_ASroute(void){
     break;
   }
 
-  sg_platf_new_ASroute(&ASroute);
+  sg_platf_new_route(&ASroute);
   parsed_link_list = NULL;
 }
 
 void ETag_surfxml_bypassRoute(void){
-  s_sg_platf_route_cbarg_t route = SG_PLATF_ROUTE_INITIALIZER;
+  s_sg_platf_route_cbarg_t route;
   memset(&route,0,sizeof(route));
 
   route.src = A_surfxml_bypassRoute_src;
@@ -811,11 +832,11 @@ void ETag_surfxml_bypassRoute(void){
   route.symmetrical = FALSE;
 
   sg_platf_new_bypassRoute(&route);
-  parsed_link_list = NULL;
+  xbt_dynar_free(&parsed_link_list);
 }
 
 void ETag_surfxml_bypassASroute(void){
-  s_sg_platf_route_cbarg_t ASroute = SG_PLATF_ROUTE_INITIALIZER;
+  s_sg_platf_route_cbarg_t ASroute;
   memset(&ASroute,0,sizeof(ASroute));
 
   ASroute.src         = A_surfxml_bypassASroute_src;
@@ -826,8 +847,8 @@ void ETag_surfxml_bypassASroute(void){
   ASroute.gw_src = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_gw___src);
   ASroute.gw_dst = sg_netcard_by_name_or_null(A_surfxml_bypassASroute_gw___dst);
 
-  sg_platf_new_bypassASroute(&ASroute);
-  parsed_link_list = NULL;
+  sg_platf_new_bypassRoute(&ASroute);
+  xbt_dynar_free(&parsed_link_list);
 }
 
 void ETag_surfxml_trace(void){
@@ -852,8 +873,8 @@ void STag_surfxml_trace___connect(void){
 
   switch (A_surfxml_trace___connect_kind) {
   case AU_surfxml_trace___connect_kind:
-  case A_surfxml_trace___connect_kind_POWER:
-    trace_connect.kind =  SURF_TRACE_CONNECT_KIND_POWER;
+  case A_surfxml_trace___connect_kind_SPEED:
+    trace_connect.kind =  SURF_TRACE_CONNECT_KIND_SPEED;
     break;
   case A_surfxml_trace___connect_kind_BANDWIDTH:
     trace_connect.kind =  SURF_TRACE_CONNECT_KIND_BANDWIDTH;
@@ -885,7 +906,7 @@ void STag_surfxml_AS(void){
 void ETag_surfxml_AS(void){
   if(as_prop_nb){
     char *name      = as_name_tab[as_prop_nb-1];
-    xbt_dict_t dict = as_dict_tab[as_prop_nb-1];
+    xbt_dict_t dict = (xbt_dict_t) as_dict_tab[as_prop_nb-1];
     as_prop_nb--;
     XBT_DEBUG("POP prop %p for AS '%s'",dict,name);
     xbt_lib_set(as_router_lib,
@@ -963,7 +984,7 @@ void ETag_surfxml_process(void){
 
 void STag_surfxml_argument(void){
   argc++;
-  argv = xbt_realloc(argv, (argc) * sizeof(char *));
+  argv = (char**)xbt_realloc(argv, (argc) * sizeof(char **));
   argv[(argc) - 1] = xbt_strdup(A_surfxml_argument_value);
 }
 
@@ -1033,7 +1054,7 @@ void surf_parse_close(void)
   xbt_dynar_free(&surf_parsed_filename_stack);
   if (surf_parsed_filename) {
     char *dir = NULL;
-    xbt_dynar_pop(surf_path, dir);
+    xbt_dynar_pop(surf_path, &dir);
     free(dir);
   }
 
@@ -1060,36 +1081,8 @@ int_f_void_t surf_parse = _surf_parse;
 /**
  * With XML parser
  */
-
-double parse_cpu_speed(const char *str_speed)
-{
-  double speed = 0.0;
-  const char *p, *q;
-  char *generator;
-  random_data_t random = NULL;
-  /* randomness is inserted like this: power="$rand(my_random)" */
-  if (((p = strstr(str_speed, "$rand(")) != NULL)
-      && ((q = strstr(str_speed, ")")) != NULL)) {
-    if (p < q) {
-      generator = xbt_malloc(q - (p + 6) + 1);
-      memcpy(generator, p + 6, q - (p + 6));
-      generator[q - (p + 6)] = '\0';
-      random = xbt_dict_get_or_null(random_data_list, generator);
-      xbt_assert(random, "Random generator %s undefined", generator);
-      speed = random_generate(random);
-    }
-  } else {
-    speed = surf_parse_get_speed(str_speed);
-  }
-  return speed;
-}
-
-double random_min, random_max, random_mean, random_std_deviation;
-e_random_generator_t random_generator;
-char *random_id;
-
 xbt_dict_t get_as_router_properties(const char* name)
 {
-  return xbt_lib_get_or_null(as_router_lib, name, ROUTING_PROP_ASR_LEVEL);
+  return (xbt_dict_t)xbt_lib_get_or_null(as_router_lib, name, ROUTING_PROP_ASR_LEVEL);
 }
 
index 45934d2..35a829f 100644 (file)
@@ -149,24 +149,22 @@ xbt_automaton_state_t xbt_automaton_state_exists(xbt_automaton_t a, char *id){
 }
 
 void xbt_automaton_display(xbt_automaton_t a){
-  unsigned int cursor = 0;
+  unsigned int cursor;
   xbt_automaton_state_t state = NULL;
 
-  printf("\n\nEtat courant : %s\n", a->current_state->id);
+  printf("\n\nCurrent state: %s\n", a->current_state->id);
 
-  printf("\nListe des Ã©tats : %lu\n\n", xbt_dynar_length(a->states));
+  printf("\nStates' List: %lu\n\n", xbt_dynar_length(a->states));
  
   
-  xbt_dynar_foreach(a->states, cursor, state){
-    printf("ID : %s, type : %d\n", state->id, state->type);
-  }
+  xbt_dynar_foreach(a->states, cursor, state)
+    printf("ID: %s, type: %d\n", state->id, state->type);
 
-  cursor=0;
-  xbt_automaton_transition_t transition = NULL;
-  printf("\nListe des transitions : %lu\n\n", xbt_dynar_length(a->transitions));
+  xbt_automaton_transition_t transition;
+  printf("\nTransitions: %lu\n\n", xbt_dynar_length(a->transitions));
   
   xbt_dynar_foreach(a->transitions, cursor, transition){
-    printf("label :");
+    printf("label:");
     xbt_automaton_exp_label_display(transition->label);
     printf(", %s -> %s\n", transition->src->id, transition->dst->id);
   }
index 67892ec..46e1170 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "3.0.4"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -143,7 +143,7 @@ extern int xbt_automaton_parser_debug;
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
+
 union YYSTYPE
 {
 #line 20 "parserPromela.yacc" /* yacc.c:355  */
@@ -155,6 +155,8 @@ union YYSTYPE
 
 #line 157 "parserPromela.tab.cacc" /* yacc.c:355  */
 };
+
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
 #endif
@@ -168,7 +170,7 @@ int xbt_automaton_parser_parse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 172 "parserPromela.tab.cacc" /* yacc.c:358  */
+#line 174 "parserPromela.tab.cacc" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -1256,53 +1258,53 @@ yyreduce:
         case 4:
 #line 61 "parserPromela.yacc" /* yacc.c:1646  */
     { new_state((yyvsp[-1].string), 1);}
-#line 1260 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1262 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 7:
 #line 65 "parserPromela.yacc" /* yacc.c:1646  */
     { new_transition((yyvsp[-1].string), (yyvsp[-4].label));}
-#line 1266 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1268 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 8:
 #line 68 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = (yyvsp[-1].label); }
-#line 1272 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1274 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 9:
 #line 69 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = new_label(0, (yyvsp[-2].label), (yyvsp[0].label)); }
-#line 1278 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1280 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 10:
 #line 70 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = new_label(1, (yyvsp[-2].label), (yyvsp[0].label)); }
-#line 1284 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1286 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 11:
 #line 71 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = new_label(2, (yyvsp[0].label)); }
-#line 1290 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1292 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 12:
 #line 72 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = new_label(4); }
-#line 1296 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1298 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
   case 13:
 #line 73 "parserPromela.yacc" /* yacc.c:1646  */
     { (yyval.label) = new_label(3, (yyvsp[0].string)); }
-#line 1302 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1304 "parserPromela.tab.cacc" /* yacc.c:1646  */
     break;
 
 
-#line 1306 "parserPromela.tab.cacc" /* yacc.c:1646  */
+#line 1308 "parserPromela.tab.cacc" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
index bfab886..f2e24d9 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 3.0.4.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -70,7 +70,7 @@ extern int xbt_automaton_parser_debug;
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
+
 union YYSTYPE
 {
 #line 20 "parserPromela.yacc" /* yacc.c:1909  */
@@ -82,6 +82,8 @@ union YYSTYPE
 
 #line 84 "parserPromela.tab.hacc" /* yacc.c:1909  */
 };
+
+typedef union YYSTYPE YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
 #endif
index 55813c4..4842e83 100644 (file)
@@ -388,7 +388,7 @@ int xbt_libunwind_backtrace(void* bt[XBT_BACKTRACE_SIZE], int size){
   unw_context_t uc;
 
   unw_getcontext (&uc);
-       unw_init_local (&c, &uc);
+  unw_init_local (&c, &uc);
  
   unw_word_t ip;
 
index 0798011..e5d71a4 100644 (file)
@@ -37,10 +37,8 @@ typedef struct {
 
   /* Callbacks */
   xbt_cfg_cb_t cb_set;
-  xbt_cfg_cb_t cb_rm;
 
-  /* actual content
-     (cannot be an union because type peer used to use both str and i, but it could be converted now) */
+  /* actual content (could be an union or something) */
   xbt_dynar_t content;
 } s_xbt_cfgelm_t, *xbt_cfgelm_t;
 
@@ -95,8 +93,7 @@ void xbt_cfg_cpy(xbt_cfg_t tocopy, xbt_cfg_t * whereto)
 
   xbt_dict_foreach((xbt_dict_t) tocopy, cursor, name, variable) {
     xbt_cfg_register(whereto, name, variable->desc, variable->type,
-                     variable->min, variable->max, variable->cb_set,
-                     variable->cb_rm);
+                     variable->min, variable->max, variable->cb_set);
   }
 }
 
@@ -110,7 +107,7 @@ void xbt_cfg_free(xbt_cfg_t * cfg)
 /** @brief Dump a config set for debuging purpose
  *
  * @param name The name to give to this config set
- * @param indent what to write at the begining of each line (right number of spaces)
+ * @param indent what to write at the beginning of each line (right number of spaces)
  * @param cfg the config set
  */
 void xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg)
@@ -127,16 +124,14 @@ void xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg)
 
   if (name)
     printf("%s>> Dumping of the config set '%s':\n", indent, name);
-  xbt_dict_foreach(dict, cursor, key, variable) {
 
+  xbt_dict_foreach(dict, cursor, key, variable) {
     printf("%s  %s:", indent, key);
 
     size = xbt_dynar_length(variable->content);
     printf
-        ("%d_to_%d_%s. Actual size=%d. prerm=%p,postset=%p, List of values:\n",
-         variable->min, variable->max,
-         xbt_cfgelm_type_name[variable->type], size, variable->cb_rm,
-         variable->cb_set);
+        ("%d_to_%d_%s. Actual size=%d. postset=%p, List of values:\n",
+         variable->min, variable->max, xbt_cfgelm_type_name[variable->type], size, variable->cb_set);
 
     switch (variable->type) {
 
@@ -168,8 +163,13 @@ void xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg)
       }
       break;
 
+    case xbt_cfgelm_alias:
+      /* no content */
+      break;
+
     default:
       printf("%s    Invalid type!!\n", indent);
+      break;
     }
 
   }
@@ -179,7 +179,6 @@ void xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cfg)
   fflush(stdout);
 
   xbt_dict_cursor_free(&cursor);
-  return;
 }
 
 /*
@@ -194,7 +193,8 @@ void xbt_cfgelm_free(void *data)
   if (!c)
     return;
   xbt_free(c->desc);
-  xbt_dynar_free(&(c->content));
+  if (c->type != xbt_cfgelm_alias)
+    xbt_dynar_free(&(c->content));
   free(c);
 }
 
@@ -209,14 +209,12 @@ void xbt_cfgelm_free(void *data)
  *  @param min the minimum number of values for this config element
  *  @param max the maximum number of values for this config element
  *  @param cb_set callback function called when a value is set
- *  @param cb_rm callback function called when a value is removed
  */
 
-void
-xbt_cfg_register(xbt_cfg_t * cfg,
+void xbt_cfg_register(xbt_cfg_t * cfg,
                  const char *name, const char *desc,
                  e_xbt_cfgelm_type_t type, int min,
-                 int max, xbt_cfg_cb_t cb_set, xbt_cfg_cb_t cb_rm)
+                 int max, xbt_cfg_cb_t cb_set)
 {
   xbt_cfgelm_t res;
 
@@ -226,23 +224,17 @@ xbt_cfg_register(xbt_cfg_t * cfg,
               "type of %s not valid (%d should be between %d and %d)",
              name, (int)type, xbt_cfgelm_int, xbt_cfgelm_boolean);
   res = xbt_dict_get_or_null((xbt_dict_t) * cfg, name);
-
-  if (res) {
-    XBT_WARN("Config elem %s registered twice.", name);
-    /* Will be removed by the insertion of the new one */
-  }
+  xbt_assert(NULL == res, "Refusing to register the config element '%s' twice.", name);
 
   res = xbt_new(s_xbt_cfgelm_t, 1);
   XBT_DEBUG("Register cfg elm %s (%s) (%d to %d %s (=%d) @%p in set %p)",
-            name, desc, min, max, xbt_cfgelm_type_name[type], (int)type, res,
-         *cfg);
+            name, desc, min, max, xbt_cfgelm_type_name[type], (int)type, res, *cfg);
 
   res->desc = xbt_strdup(desc);
   res->type = type;
   res->min = min;
   res->max = max;
   res->cb_set = cb_set;
-  res->cb_rm = cb_rm;
   res->isdefault = 1;
 
   switch (type) {
@@ -264,11 +256,35 @@ xbt_cfg_register(xbt_cfg_t * cfg,
 
   default:
     XBT_ERROR("%d is an invalid type code", (int)type);
+    break;
   }
 
   xbt_dict_set((xbt_dict_t) * cfg, name, res, NULL);
 }
 
+void xbt_cfg_register_alias(xbt_cfg_t * cfg, const char *newname, const char *oldname)
+{
+  if (*cfg == NULL)
+    *cfg = xbt_cfg_new();
+
+  xbt_cfgelm_t res = xbt_dict_get_or_null((xbt_dict_t) * cfg, oldname);
+  xbt_assert(NULL == res, "Refusing to register the option '%s' twice.", oldname);
+
+  res = xbt_dict_get_or_null((xbt_dict_t) * cfg, newname);
+  xbt_assert(res, "Cannot define an alias to the non-existing option '%s'.", newname);
+
+  res = xbt_new0(s_xbt_cfgelm_t, 1);
+  XBT_DEBUG("Register cfg alias %s -> %s in set %p)",oldname,newname, *cfg);
+
+  res->desc = bprintf("Deprecated alias for %s",newname);
+  res->type = xbt_cfgelm_alias;
+  res->min = 1;
+  res->max = 1;
+  res->isdefault = 1;
+  res->content = (xbt_dynar_t)newname;
+
+  xbt_dict_set((xbt_dict_t) * cfg, oldname, res, NULL);
+}
 /** @brief Unregister an element from a config set.
  *
  *  @param cfg the config set
@@ -294,7 +310,7 @@ void xbt_cfg_unregister(xbt_cfg_t cfg, const char *name)
  * Each of them must use the following syntax: \<name\>:\<min nb\>_to_\<max nb\>_\<type\>
  * with type being one of  'string','int' or 'double'.
  *
- * FIXME: this does not allow to set the description
+ * Note that this does not allow to set the description, so you should prefer the other interface
  */
 
 void xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry)
@@ -336,16 +352,31 @@ void xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry)
               "Invalid type in config element descriptor: %s%s", entry,
               "; Should be one of 'string', 'int' or 'double'.");
 
-  xbt_cfg_register(cfg, entrycpy, NULL, type, min, max, NULL, NULL);
+  xbt_cfg_register(cfg, entrycpy, NULL, type, min, max, NULL);
 
   free(entrycpy);               /* strdup'ed by dict mechanism, but cannot be const */
 }
 
-static int strcmp_voidp(const void *pa, const void *pb)
+/** @brief Displays the declared aliases and their description */
+void xbt_cfg_aliases(xbt_cfg_t cfg)
 {
-  return strcmp(*(const char **)pa, *(const char **)pb);
-}
+  xbt_dict_cursor_t dict_cursor;
+  unsigned int dynar_cursor;
+  xbt_cfgelm_t variable;
+  char *name;
+  xbt_dynar_t names = xbt_dynar_new(sizeof(char *), NULL);
+
+  xbt_dict_foreach((xbt_dict_t )cfg, dict_cursor, name, variable)
+    xbt_dynar_push(names, &name);
+  xbt_dynar_sort_strings(names);
 
+  xbt_dynar_foreach(names, dynar_cursor, name) {
+    variable = xbt_dict_get((xbt_dict_t )cfg, name);
+
+    if (variable->type == xbt_cfgelm_alias)
+      printf("   %s: %s\n", name, variable->desc);
+  }
+}
 /** @brief Displays the declared options and their description */
 void xbt_cfg_help(xbt_cfg_t cfg)
 {
@@ -355,15 +386,16 @@ void xbt_cfg_help(xbt_cfg_t cfg)
   char *name;
   xbt_dynar_t names = xbt_dynar_new(sizeof(char *), NULL);
 
-  xbt_dict_foreach((xbt_dict_t )cfg, dict_cursor, name, variable) {
+  xbt_dict_foreach((xbt_dict_t )cfg, dict_cursor, name, variable)
     xbt_dynar_push(names, &name);
-  }
-  xbt_dynar_sort(names, strcmp_voidp);
+  xbt_dynar_sort_strings(names);
 
   xbt_dynar_foreach(names, dynar_cursor, name) {
     int i;
     int size;
     variable = xbt_dict_get((xbt_dict_t )cfg, name);
+    if (variable->type == xbt_cfgelm_alias)
+      continue;
 
     printf("   %s: %s\n", name, variable->desc);
     printf("       Type: %s; ", xbt_cfgelm_type_name[variable->type]);
@@ -427,6 +459,9 @@ void xbt_cfg_check(xbt_cfg_t cfg)
   XBT_DEBUG("Check cfg set %p", cfg);
 
   xbt_dict_foreach((xbt_dict_t) cfg, cursor, name, variable) {
+    if (variable->type == xbt_cfgelm_alias)
+      continue;
+
     size = xbt_dynar_length(variable->content);
     if (variable->min > size) {
       xbt_dict_cursor_free(&cursor);
@@ -455,17 +490,21 @@ void xbt_cfg_check(xbt_cfg_t cfg)
   xbt_dict_cursor_free(&cursor);
 }
 
-static xbt_cfgelm_t xbt_cfgelm_get(xbt_cfg_t cfg,
-                                   const char *name,
-                                   e_xbt_cfgelm_type_t type)
+static xbt_cfgelm_t xbt_cfgelm_get(xbt_cfg_t cfg, const char *name, e_xbt_cfgelm_type_t type)
 {
-  xbt_cfgelm_t res = NULL;
+  xbt_cfgelm_t res = xbt_dict_get_or_null((xbt_dict_t) cfg, name);
+
+  // The user used the old name. Switch to the new one after a short warning
+  while (res && res->type == xbt_cfgelm_alias) {
+    const char* newname = (const char *)res->content;
+    XBT_INFO("Option %s has been renamed to %s. Consider switching.", name, newname);
+    res = xbt_cfgelm_get(cfg, newname, type);
+  }
 
-  res = xbt_dict_get_or_null((xbt_dict_t) cfg, name);
   if (!res) {
     xbt_cfg_help(cfg);
-    THROWF(not_found_error, 0,
-           "No registered variable '%s' in this config set", name);
+    fflush(stdout);
+    THROWF(not_found_error, 0, "No registered variable '%s' in this config set.", name);
   }
 
   xbt_assert(type == xbt_cfgelm_any || res->type == type,
@@ -679,13 +718,20 @@ void *xbt_cfg_set_as_string(xbt_cfg_t cfg, const char *key, const char *value) {
   double d;
 
   TRY {
-    variable = xbt_dict_get((xbt_dict_t) cfg, key);
+    while (variable == NULL) {
+      variable = xbt_dict_get((xbt_dict_t) cfg, key);
+      if (variable->type == xbt_cfgelm_alias) {
+        const char *newname = (const char*)variable->content;
+        XBT_INFO("Note: configuration '%s' is deprecated. Please use '%s' instead.", key, newname);
+        key = newname;
+        variable = NULL;
+      }
+    }
   }
   CATCH(e) {
     if (e.category == not_found_error) {
       xbt_ex_free(e);
-      THROWF(not_found_error, 0,
-          "No registered variable corresponding to '%s'.", key);
+      THROWF(not_found_error, 0, "No registered variable corresponding to '%s'.", key);
     }
     RETHROW;
   }
@@ -812,15 +858,11 @@ void xbt_cfg_setdefault_boolean(xbt_cfg_t cfg, const char *name, const char *val
  */
 void xbt_cfg_set_int(xbt_cfg_t cfg, const char *name, int val)
 {
-  xbt_cfgelm_t variable;
 
   XBT_VERB("Configuration setting: %s=%d", name, val);
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_int);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_int);
 
   if (variable->max == 1) {
-    if (variable->cb_rm && !xbt_dynar_is_empty(variable->content))
-      variable->cb_rm(name, 0);
-
     xbt_dynar_set(variable->content, 0, &val);
   } else {
     if (variable->max
@@ -847,15 +889,11 @@ void xbt_cfg_set_int(xbt_cfg_t cfg, const char *name, int val)
 
 void xbt_cfg_set_double(xbt_cfg_t cfg, const char *name, double val)
 {
-  xbt_cfgelm_t variable;
 
   XBT_VERB("Configuration setting: %s=%f", name, val);
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_double);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_double);
 
   if (variable->max == 1) {
-    if (variable->cb_rm && !xbt_dynar_is_empty(variable->content))
-      variable->cb_rm(name, 0);
-
     xbt_dynar_set(variable->content, 0, &val);
   } else {
     if (variable->max
@@ -882,23 +920,18 @@ void xbt_cfg_set_double(xbt_cfg_t cfg, const char *name, double val)
 
 void xbt_cfg_set_string(xbt_cfg_t cfg, const char *name, const char *val)
 {
-  xbt_cfgelm_t variable;
   char *newval = xbt_strdup(val);
 
   XBT_VERB("Configuration setting: %s=%s", name, val);
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_string);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_string);
+
   XBT_DEBUG("Variable: %d to %d %s (=%d) @%p",
-         variable->min, variable->max,
-            xbt_cfgelm_type_name[variable->type], (int)variable->type, variable);
+         variable->min, variable->max, xbt_cfgelm_type_name[variable->type], (int)variable->type, variable);
 
   if (variable->max == 1) {
     if (!xbt_dynar_is_empty(variable->content)) {
-      if (variable->cb_rm)
-        variable->cb_rm(name, 0);
-      else if (variable->type == xbt_cfgelm_string) {
-        char *sval = xbt_dynar_get_as(variable->content, 0, char *);
-        free(sval);
-      }
+      char *sval = xbt_dynar_get_as(variable->content, 0, char *);
+      free(sval);
     }
 
     xbt_dynar_set(variable->content, 0, &newval);
@@ -925,30 +958,26 @@ void xbt_cfg_set_string(xbt_cfg_t cfg, const char *name, const char *val)
  */
 void xbt_cfg_set_boolean(xbt_cfg_t cfg, const char *name, const char *val)
 {
-  xbt_cfgelm_t variable;
   int i, bval;
 
   XBT_VERB("Configuration setting: %s=%s", name, val);
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_boolean);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_boolean);
 
   for (i = 0; xbt_cfgelm_boolean_values[i].true_val != NULL; i++) {
-       if (strcmp(val, xbt_cfgelm_boolean_values[i].true_val) == 0){
-         bval = 1;
-         break;
-       }
-       if (strcmp(val, xbt_cfgelm_boolean_values[i].false_val) == 0){
-         bval = 0;
-         break;
-       }
+  if (strcmp(val, xbt_cfgelm_boolean_values[i].true_val) == 0){
+    bval = 1;
+    break;
+  }
+  if (strcmp(val, xbt_cfgelm_boolean_values[i].false_val) == 0){
+    bval = 0;
+    break;
+  }
   }
   if (xbt_cfgelm_boolean_values[i].true_val == NULL) {
     xbt_die("Value of option '%s' not valid. Should be a boolean (yes,no,on,off,true,false,0,1)", val);
   }
 
   if (variable->max == 1) {
-    if (variable->cb_rm && !xbt_dynar_is_empty(variable->content))
-      variable->cb_rm(name, 0);
-
     xbt_dynar_set(variable->content, 0, &bval);
   } else {
     if (variable->max
@@ -977,11 +1006,10 @@ void xbt_cfg_set_boolean(xbt_cfg_t cfg, const char *name, const char *val)
 void xbt_cfg_rm_int(xbt_cfg_t cfg, const char *name, int val)
 {
 
-  xbt_cfgelm_t variable;
   unsigned int cpt;
   int seen;
 
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_int);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_int);
 
   if (xbt_dynar_length(variable->content) == variable->min)
     THROWF(mismatch_error, 0,
@@ -990,8 +1018,6 @@ void xbt_cfg_rm_int(xbt_cfg_t cfg, const char *name, int val)
 
   xbt_dynar_foreach(variable->content, cpt, seen) {
     if (seen == val) {
-      if (variable->cb_rm)
-        variable->cb_rm(name, cpt);
       xbt_dynar_cursor_rm(variable->content, &cpt);
       return;
     }
@@ -1011,11 +1037,10 @@ void xbt_cfg_rm_int(xbt_cfg_t cfg, const char *name, int val)
 
 void xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name, double val)
 {
-  xbt_cfgelm_t variable;
   unsigned int cpt;
   double seen;
 
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_double);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_double);
 
   if (xbt_dynar_length(variable->content) == variable->min)
     THROWF(mismatch_error, 0,
@@ -1025,8 +1050,6 @@ void xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name, double val)
   xbt_dynar_foreach(variable->content, cpt, seen) {
     if (seen == val) {
       xbt_dynar_cursor_rm(variable->content, &cpt);
-      if (variable->cb_rm)
-        variable->cb_rm(name, cpt);
       return;
     }
   }
@@ -1044,11 +1067,9 @@ void xbt_cfg_rm_double(xbt_cfg_t cfg, const char *name, double val)
  */
 void xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name, const char *val)
 {
-  xbt_cfgelm_t variable;
   unsigned int cpt;
   char *seen;
-
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_string);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_string);
 
   if (xbt_dynar_length(variable->content) == variable->min)
     THROWF(mismatch_error, 0,
@@ -1057,8 +1078,6 @@ void xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name, const char *val)
 
   xbt_dynar_foreach(variable->content, cpt, seen) {
     if (!strcpy(seen, val)) {
-      if (variable->cb_rm)
-        variable->cb_rm(name, cpt);
       xbt_dynar_cursor_rm(variable->content, &cpt);
       return;
     }
@@ -1078,11 +1097,9 @@ void xbt_cfg_rm_string(xbt_cfg_t cfg, const char *name, const char *val)
 void xbt_cfg_rm_boolean(xbt_cfg_t cfg, const char *name, int val)
 {
 
-  xbt_cfgelm_t variable;
   unsigned int cpt;
   int seen;
-
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_boolean);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_boolean);
 
   if (xbt_dynar_length(variable->content) == variable->min)
     THROWF(mismatch_error, 0,
@@ -1091,8 +1108,6 @@ void xbt_cfg_rm_boolean(xbt_cfg_t cfg, const char *name, int val)
 
   xbt_dynar_foreach(variable->content, cpt, seen) {
     if (seen == val) {
-      if (variable->cb_rm)
-        variable->cb_rm(name, cpt);
       xbt_dynar_cursor_rm(variable->content, &cpt);
       return;
     }
@@ -1108,17 +1123,13 @@ void xbt_cfg_rm_boolean(xbt_cfg_t cfg, const char *name, int val)
 void xbt_cfg_rm_at(xbt_cfg_t cfg, const char *name, int pos)
 {
 
-  xbt_cfgelm_t variable;
-
-  variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_any);
+  xbt_cfgelm_t variable = xbt_cfgelm_get(cfg, name, xbt_cfgelm_any);
 
   if (xbt_dynar_length(variable->content) == variable->min)
     THROWF(mismatch_error, 0,
            "Cannot remove %dth value from the config element %s since it's already at its minimal size (=%d)",
            pos, name, variable->min);
 
-  if (variable->cb_rm)
-    variable->cb_rm(name, pos);
   xbt_dynar_remove_at(variable->content, pos, NULL);
 }
 
@@ -1141,21 +1152,11 @@ void xbt_cfg_empty(xbt_cfg_t cfg, const char *name)
       RETHROW;
 
     xbt_ex_free(e);
-    THROWF(not_found_error, 0,
-           "Can't empty  '%s' since this config element does not exist",
-           name);
+    THROWF(not_found_error, 0, "Can't empty  '%s' since this option does not exist", name);
   }
 
-  if (variable) {
-    if (variable->cb_rm) {
-      unsigned int cpt;
-      void *ignored;
-      xbt_dynar_foreach(variable->content, cpt, ignored) {
-        variable->cb_rm(name, cpt);
-      }
-    }
+  if (variable)
     xbt_dynar_reset(variable->content);
-  }
 }
 /*
  * Say if the value is the default value
@@ -1176,8 +1177,6 @@ int xbt_cfg_is_default_value(xbt_cfg_t cfg, const char *name)
  * Returns the first value from the config set under the given name.
  * If there is more than one value, it will issue a warning. Consider using
  * xbt_cfg_get_dynar() instead.
- *
- * \warning the returned value is the actual content of the config set
  */
 int xbt_cfg_get_int(xbt_cfg_t cfg, const char *name)
 {
@@ -1200,8 +1199,6 @@ int xbt_cfg_get_int(xbt_cfg_t cfg, const char *name)
  * Returns the first value from the config set under the given name.
  * If there is more than one value, it will issue a warning. Consider using
  * xbt_cfg_get_dynar() instead.
- *
- * \warning the returned value is the actual content of the config set
  */
 
 double xbt_cfg_get_double(xbt_cfg_t cfg, const char *name)
@@ -1252,8 +1249,6 @@ char *xbt_cfg_get_string(xbt_cfg_t cfg, const char *name)
  * Returns the first value from the config set under the given name.
  * If there is more than one value, it will issue a warning. Consider using
  * xbt_cfg_get_dynar() instead.
- *
- * \warning the returned value is the actual content of the config set
  */
 int xbt_cfg_get_boolean(xbt_cfg_t cfg, const char *name)
 {
index 8208fe5..95bda63 100644 (file)
 #include "dict_private.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_dict, xbt,
-                                "Dictionaries provide the same functionalities than hash tables");
+                                "Dictionaries provide the same functionalities as hash tables");
 
 /**
  * \brief Constructor
  * \return pointer to the destination
- * \see xbt_dict_free()
+ * \see xbt_dict_new_homogenous(), xbt_dict_free()
  *
  * Creates and initialize a new dictionary with a default hashtable size.
  * The dictionary is heterogeneous: each element can have a different free
@@ -156,7 +156,9 @@ static void xbt_dict_rehash(xbt_dict_t dict)
  * \param key_len the size of the \a key
  * \param data the data to add in the dict
  * \param free_ctn function to call with (\a data as argument) when
- *        \a data is removed from the dictionary
+ *        \a data is removed from the dictionary. This param
+ *        will only be considered when the dict was instantiated with
+ *        xbt_dict_new() and not xbt_dict_new_homogeneous()
  *
  * Set the \a data in the structure under the \a key, which can be any kind
  * of data, as long as its length is provided in \a key_len.
@@ -210,7 +212,9 @@ XBT_INLINE void xbt_dict_set_ext(xbt_dict_t dict,
  * \param key the key to set the new data
  * \param data the data to add in the dict
  * \param free_ctn function to call with (\a data as argument) when
- *        \a data is removed from the dictionary
+ *        \a data is removed from the dictionary. This param
+ *        will only be considered when the dict was instantiated with
+ *        xbt_dict_new() and not xbt_dict_new_homogeneous()
  *
  * set the \a data in the structure under the \a key, which is a
  * null terminated string.
index 28c6efc..5885ce2 100644 (file)
@@ -471,8 +471,8 @@ unsigned int xbt_dynar_search(xbt_dynar_t const dynar, void *const elem)
       return it;
     }
 
-  THROWF(not_found_error, 0, "Element %p not part of dynar %p", elem,
-         dynar);
+  THROWF(not_found_error, 0, "Element %p not part of dynar %p", elem, dynar);
+  return -1; // Won't happen, just to please eclipse
 }
 
 /** @brief Returns the position of the element in the dynar (or -1 if not found)
@@ -630,6 +630,16 @@ XBT_INLINE void xbt_dynar_sort(xbt_dynar_t dynar,
   qsort(dynar->data, dynar->used, dynar->elmsize, compar_fn);
 }
 
+static int strcmp_voidp(const void *pa, const void *pb) {
+  return strcmp(*(const char **)pa, *(const char **)pb);
+}
+/** @brief Sorts a dynar of strings (ie, char* data) */
+xbt_dynar_t xbt_dynar_sort_strings(xbt_dynar_t dynar)
+{
+  xbt_dynar_sort(dynar, strcmp_voidp);
+  return dynar; // to enable functional uses
+}
+
 /** @brief Sorts a dynar according to their color assuming elements can have only three colors.
  * Since there are only three colors, it is linear and much faster than a classical sort.
  * See for example http://en.wikipedia.org/wiki/Dutch_national_flag_problem
index 5fffc76..680b110 100644 (file)
@@ -150,8 +150,8 @@ void xbt_ex_display(xbt_ex_t * e)
   xbt_free(thrower);
 
   if (xbt_initialized==0 || smx_cleaned) {
-         fprintf(stderr, "Ouch. SimGrid is not initialized yet, or already closing. No backtrace available.\n");
-         return; /* Not started yet or already closing. Trying to generate a backtrace would probably fail */
+    fprintf(stderr, "Ouch. SimGrid is not initialized yet, or already closing. No backtrace available.\n");
+    return; /* Not started yet or already closing. Trying to generate a backtrace would probably fail */
   }
 
   if (!e->bt_strings)
index 1db1686..5e47cf9 100644 (file)
@@ -316,7 +316,6 @@ double *xbt_graph_get_length_matrix(xbt_graph_t g)
   }
 
   xbt_dynar_foreach(g->nodes, cursor, node) {
-    in_cursor = 0;
     D(cursor, cursor) = 0;
 
     xbt_dynar_foreach(node->out, in_cursor, edge) {
index 0df74b0..3a9aa36 100644 (file)
@@ -52,7 +52,7 @@
 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
+ * if you want the limit (max/min) macros for int types. 
  */
 #ifndef __STDC_LIMIT_MACROS
 #define __STDC_LIMIT_MACROS 1
@@ -69,7 +69,7 @@ typedef uint32_t flex_uint32_t;
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
 typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t;
+typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
 
@@ -195,14 +195,14 @@ extern FILE *xbt_graph_parse_in, *xbt_graph_parse_out;
 
     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
      *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE xbt_graph_parse_lex.
+     *       existing scanners that call yyless() from OUTSIDE xbt_graph_parse_lex. 
      *       One obvious solution it to make yy_act a global. I tried that, and saw
      *       a 5% performance hit in a non-xbt_graph_parse_lineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
+     *       normally declared as a variable-- so it is not worth it.
      */
     #define  YY_LESS_LINENO(n) \
             do { \
-                int yyl;\
+                unsigned int yyl;\
                 for ( yyl = n; yyl < xbt_graph_parse_leng; ++yyl )\
                     if ( xbt_graph_parse_text[yyl] == '\n' )\
                         --xbt_graph_parse_lineno;\
@@ -214,7 +214,7 @@ extern FILE *xbt_graph_parse_in, *xbt_graph_parse_out;
                     if ( *p == '\n' )\
                         --xbt_graph_parse_lineno;\
             }while(0)
-
+    
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
        do \
@@ -271,7 +271,7 @@ struct yy_buffer_state
 
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
-
+    
        /* Whether to try to fill the input buffer when we reach the
         * end of it.
         */
@@ -428,49 +428,49 @@ static yyconst flex_int16_t yy_accept[564] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        93,   91,   17,   10,   10,   17,   17,   71,   10,   71,
         5,    6,    5,    8,    9,    8,   87,   79,   80,   88,
-       85,   88,   86,   90,   79,   80,   90,   91,   26,   10,
-       26,   26,   26,   24,   26,   30,   10,   30,   30,   91,
-       91,   30,   91,   45,   10,   45,   45,   45,   43,   45,
+       85,   88,   86,   90,   79,   80,   90,   91,   34,   10,
+       34,   34,   34,   32,   34,   34,   34,   34,   34,   38,
+       10,   38,   91,   47,   10,   47,   47,   47,   45,   47,
 
-       45,   45,   45,   49,   10,   49,   91,   66,   10,   66,
-       66,   66,   64,   66,   66,   66,   66,   66,   70,   10,
+       51,   10,   51,   51,   91,   91,   51,   91,   66,   10,
+       66,   66,   66,   64,   66,   66,   66,   66,   70,   10,
        70,   88,   87,   10,    0,    2,    2,    0,    4,    7,
-       82,   81,    0,    0,    0,    0,    0,    0,    0,   25,
-       27,   27,    0,    0,    0,    0,    0,    0,   44,   46,
-       46,   46,   46,   46,    0,   65,   67,   67,   67,   67,
+       82,   81,    0,    0,    0,    0,    0,    0,    0,   33,
+       35,   35,   35,   35,   35,   35,   35,    0,    0,   46,
+       48,   48,    0,    0,    0,    0,    0,   65,   67,   67,
        67,   67,   67,    0,    0,    0,    0,    0,    0,    0,
         3,    0,    0,    0,    0,    0,    0,    0,   89,    0,
-       27,    0,    0,    0,    0,    0,    0,    0,   46,   46,
-       46,   46,    0,    0,   67,   67,   67,   67,   67,   67,
+       35,   35,   35,   35,   35,   35,    0,    0,    0,   48,
+        0,    0,    0,    0,    0,    0,   67,   67,   67,   67,
 
         0,    0,    0,   84,    0,   16,    1,    0,    0,   77,
-        0,    0,    0,   74,   73,    0,    0,   27,    0,    0,
-       29,    0,    0,    0,    0,    0,    0,   46,   46,   46,
-       46,    0,    0,   48,    0,   67,   67,   67,   67,   67,
+        0,    0,    0,   74,   73,    0,    0,   35,   35,   35,
+       35,   35,   35,    0,    0,   37,    0,    0,   48,    0,
+        0,   50,    0,    0,    0,    0,    0,   67,   67,   67,
        67,    0,    0,   69,    0,    0,    0,    0,   78,   72,
-        0,    0,    0,   27,    0,   51,    0,   32,   31,   50,
-        0,    0,   46,    0,    0,   46,    0,    0,    0,   67,
-       67,    0,    0,   67,   67,    0,    0,    0,    0,    0,
-       12,    0,   75,   76,   19,   27,    0,   51,   18,   32,
-       31,   50,    0,   38,   37,    0,    0,    0,   36,   35,
-
-       46,    0,    0,   63,   62,    0,    0,   67,    0,   55,
-       54,   67,   67,    0,    0,    0,    0,    0,   11,   19,
-       27,    0,   18,    0,   34,   33,   46,    0,   47,    0,
-       53,   52,    0,    0,    0,    0,    0,    0,    0,   68,
-        0,    0,    0,    0,   27,    0,   28,   46,    0,   61,
-       60,    0,   57,   56,    0,   59,   58,    0,    0,    0,
-        0,   27,   46,   83,    0,    0,    0,   27,   46,   46,
+        0,    0,   19,    0,    0,   35,   35,    0,    0,   35,
+       35,    0,    0,   48,    0,    0,   53,   52,   18,    0,
+        0,   67,    0,    0,   67,    0,    0,    0,    0,    0,
+       12,    0,   75,   76,   19,    0,   21,   20,    0,    0,
+       35,    0,   27,   26,   35,   35,    0,   40,   48,    0,
+
+       39,   53,   52,   18,    0,   55,   54,    0,    0,    0,
+       59,   58,   67,    0,    0,    0,    0,    0,   11,    0,
+       23,   22,    0,    0,    0,    0,    0,    0,    0,   36,
+       40,   48,    0,   39,    0,   57,   56,   67,    0,   68,
+        0,    0,    0,    0,    0,   25,   24,    0,   29,   28,
+        0,   31,   30,   48,    0,   49,   67,    0,    0,    0,
+        0,   48,   67,   83,    0,    0,    0,   48,   67,   67,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       40,   39,    0,   42,   41,    0,    0,    0,    0,    0,
+       61,   60,    0,   63,   62,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   12,    0,   12,    0,    0,   21,    0,
-       20,    0,    0,    0,    0,    0,    0,    0,   23,   22,
+        0,    0,    0,   12,    0,   12,    0,    0,   42,    0,
+       41,    0,    0,    0,    0,    0,    0,    0,   44,   43,
         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -481,8 +481,8 @@ static yyconst flex_int16_t yy_accept[564] =
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   14,    0,    0,   15,
-        0,   13,    0
+        0,    0,    0,    0,    0,    0,   13,    0,    0,   15,
+        0,   14,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -531,69 +531,69 @@ static yyconst flex_int16_t yy_base[594] =
     {   0,
         0,    0,    0,    3,    6,    9,   24,   27,   11,   14,
        15,   17,   29,   38,   45,   52,   59,   61,   67,   70,
-       93,  135,   73,   76,  111,  114,  117,  153,  156,  159,
-      176,  179,  182,  185,  200,  203,  206,  209,  225,    0,
-      279,  282,  285,  288,  304,    0,  358,  361,  363,  365,
-     1585, 1586, 1586,  380,  383,   47,   62, 1586,  386,  171,
-     1586, 1586, 1574, 1586, 1586, 1565, 1586, 1578, 1578,  365,
-     1586, 1586, 1586, 1586, 1576, 1576, 1546,  375, 1586,  389,
-     1559,    0,  195, 1586, 1526, 1586,  398,  391,  399,  402,
-      411,  414,  393, 1586,  420, 1557,    0,  401, 1586, 1540,
-
-     1539, 1538, 1525, 1586,  458,  422,  427, 1586,  464, 1552,
-        0,  409, 1586, 1535,    1, 1534, 1521, 1532, 1586,  467,
-      438, 1560, 1532,  470,   34, 1509, 1586, 1552, 1543, 1586,
-     1586, 1586,   69,   40, 1509, 1508, 1506, 1539, 1507, 1586,
-        0, 1532, 1514, 1516, 1503, 1505, 1504, 1512, 1586,    0,
-     1497, 1512, 1502, 1495, 1499, 1586,    0, 1492, 1507, 1496,
-     1496, 1487, 1489, 1499, 1505, 1517, 1516, 1523,  108, 1488,
-     1586,   75,    0, 1484, 1484, 1514, 1513, 1481, 1586, 1492,
-     1483,  473,  476, 1484, 1489, 1485, 1484, 1480, 1485, 1480,
-     1479, 1474,  479,  482, 1481, 1476, 1473, 1474, 1462, 1470,
-
-      485,  502, 1487, 1586, 1490, 1586, 1586,  110, 1464, 1586,
-     1491, 1490, 1454, 1586, 1586, 1452, 1455, 1452,  505,  508,
-     1586,  511, 1462, 1452, 1460, 1459, 1458,  514, 1452,  530,
-     1443,  533,  538, 1586,  546,  550, 1450, 1373,  555, 1387,
-     1375,  558,  566, 1586,  571, 1387,  435,  575, 1586, 1586,
-     1392, 1389, 1356, 1354,  578,  583, 1346,  588,  595,  598,
-      601,  604,  612,  617,  624, 1263,  620,  633,  637,  645,
-     1263,  649,  661, 1264, 1250,  653, 1280,  472, 1280,  657,
-     1586, 1279, 1586, 1586,  670, 1260,  674,  677,  680,  683,
-      686,  694,  697, 1586, 1586,  705,  710,  721, 1586, 1586,
-
-     1248,  729,  732, 1586, 1586,  740,  746,  756,  759, 1586,
-     1586,  767,  772,  775, 1264,   32,  104,  153, 1586,  778,
-     1226,  783,  788,  793, 1586, 1586, 1230,  801, 1586,  804,
-     1586, 1586,  812,  818,  828,  831,  839,  844,  855, 1586,
-     1234,  146,  179,  147, 1212,  858, 1586, 1215,  861, 1586,
-     1586,  875, 1586, 1586,  883, 1586, 1586, 1111,  891,  175,
-      445, 1066,  119, 1586,  894,  181,   89,  897,  900,  903,
-      501,  360,  399,  480,  475,  919,  922,  938,  941,  949,
-      954,  506,  509,  526,  599,  624,  965,  654,  678,  973,
-     1586, 1586,  981, 1586, 1586,  417,  176,  594,  548,  989,
-
-     1058, 1003, 1016,  937,  992,  407,  995,  998, 1001, 1018,
-      930,  918,  922,  910, 1026, 1029, 1035, 1038, 1055, 1063,
-     1081, 1113,  819,  790,  733,  616,  710, 1073,  721, 1131,
-      748,  284, 1149, 1181,  557,  565,  458,  449,  537,  770,
-      676,  805,  278,  369,  285,  291, 1076,  293, 1586,  211,
-     1586,  708,  693,  727,  162,  110,   76, 1105, 1586, 1586,
-      352,  735,  794,    5,  199,  820,  474, 1586, 1144,  850,
-     1173, 1199, 1207, 1212,  591,  754, 1220,  799,  831,  749,
-      833,  834,  848,  862,  897,  684,  791,  900,  912,  895,
-      901,  483,  808,  920,  930,  836,  890,  627,  892,  941,
-
-      962,  971,  993,  818,  873, 1005, 1007,  954,  960,  702,
-      872,  963, 1008, 1027, 1092, 1017, 1025, 1151, 1160, 1031,
-     1084, 1093, 1152, 1176, 1188, 1161, 1209, 1033, 1087, 1217,
-     1221, 1123, 1155, 1088, 1108, 1215, 1216, 1120, 1156, 1218,
-     1219, 1222, 1223, 1224, 1225, 1239, 1240, 1226, 1228, 1241,
-     1242, 1264, 1258, 1260, 1268, 1277, 1586, 1281, 1285, 1586,
-     1288, 1586, 1586, 1306, 1313, 1320, 1327, 1334, 1341, 1348,
-     1355, 1362, 1369, 1376, 1381, 1386, 1391, 1398, 1401, 1404,
-     1407, 1414, 1418, 1424, 1430, 1436, 1443, 1450, 1457, 1464,
-     1471, 1478, 1485
+       93,    0,   73,   76,  147,  150,  166,  208,  184,  187,
+      190,  226,  229,  232,  249,  252,  255,  258,  273,  276,
+      279,  282,  297,  300,  316,    0,  370,  373,  375,  377,
+     1585, 1586, 1586,  153,  156,   47,   62, 1586,  303,  244,
+     1586, 1586, 1574, 1586, 1586, 1565, 1586, 1578, 1578,  377,
+     1586, 1586, 1586, 1586, 1576, 1576, 1546,  377, 1586,  306,
+     1559,    0,  268, 1586, 1542,    1, 1541, 1528, 1539, 1586,
+      395,  382,  383, 1586,  401, 1554,    0,  292, 1586, 1521,
+
+     1586,  410,  414,  417,  405,  411,  423,  387, 1586,  435,
+     1552,    0,  422, 1586, 1535, 1534, 1533, 1520, 1586,  444,
+      448, 1560, 1532,  462,   34, 1509, 1586, 1552, 1543, 1586,
+     1586, 1586,  148,   38, 1509, 1508, 1506, 1539, 1519, 1586,
+        0, 1504, 1519, 1508, 1508, 1499, 1501, 1511, 1499, 1586,
+        0, 1524, 1506, 1496, 1498, 1497, 1505, 1586,    0, 1490,
+     1505, 1495, 1488, 1492, 1505, 1517, 1516, 1523,  178, 1488,
+     1586,   75,    0, 1484, 1484, 1514, 1513, 1481, 1586, 1486,
+     1491, 1486, 1483, 1484, 1472, 1480,  467,  470, 1485, 1476,
+      473,  476, 1483, 1479, 1478, 1474, 1479, 1474, 1473, 1468,
+
+      479,  496, 1487, 1586, 1490, 1586, 1586,  177, 1464, 1586,
+     1491, 1490, 1454, 1586, 1586, 1452, 1464,  499, 1458, 1449,
+      502, 1463, 1392,  506,  509, 1586,  518, 1382, 1370,  526,
+      529, 1586,  535, 1369, 1375, 1372, 1365,  546, 1355,  553,
+     1342,  557,  562, 1586,  569, 1288,  466,  574, 1586, 1586,
+     1295, 1293,  579,  582,  592,  586, 1266,  605,  608, 1268,
+     1253,  616, 1262, 1263,  621, 1259,  624,  627,  633,  638,
+      641,  649,  654,  658, 1237,  670, 1245,  505, 1244,  673,
+     1586, 1239, 1586, 1586,  676,  680, 1586, 1586,  690,  693,
+      701,  710, 1586, 1586,  718,  721,  725,  728, 1136,  737,
+
+      742,  745,  748,  754,  757, 1586, 1586,  765,  768,  777,
+     1586, 1586, 1097,  785, 1111,   32,  162,  226, 1586,  788,
+     1586, 1586,  796,  802,  812,  815,  823,  828,  839, 1586,
+      842, 1053,  845,  848,  852, 1586, 1586, 1030,  862, 1586,
+     1004,  219,  252,  220,  865, 1586, 1586,  873, 1586, 1586,
+      881, 1586, 1586,  943,  889, 1586,  938,  929,  892,  248,
+      390,  912,  110, 1586,  895,  204,  249,  898,  901,  917,
+      275,  372,  440,  254,  469,  920,  923,  939,  942,  950,
+      955,  478,  400,  508,  472,  522,  966,  495,  523,  974,
+     1586, 1586,  982, 1586, 1586,  595,  550,  631,  598,  990,
+
+      878,  824,  838,  761,  993,  561,  996,  999, 1002, 1019,
+      750,  723,  694,  684, 1027, 1030, 1036, 1039, 1056, 1064,
+     1082, 1114,  684,  695,  554,  516,  680, 1074,  724, 1132,
+      747,  534, 1150, 1182,  455,  486,  451,  435,  523,  746,
+      587,  767,  228,  389,  582,  305, 1077,  199, 1586,  192,
+     1586,  603,  672,  630,  156,   68,   75, 1106, 1586, 1586,
+      663,  688,  691,    5,  645,  777,  784, 1586, 1145,  810,
+     1174, 1200, 1208, 1213,  744,  820, 1221,  841,  868,  382,
+      804,  871,  888,  821,  860,  667,  778,  898,  913,  789,
+      802,  815,  870,  896,  921,  918,  932,  948,  969,  997,
+
+     1000,  972,  994,  920,  955, 1008, 1009, 1018, 1051, 1093,
+     1152, 1053, 1085, 1161, 1177,  272, 1189, 1190, 1202, 1210,
+     1211, 1035, 1153, 1215, 1217, 1162, 1225,  628,  945, 1226,
+     1227, 1075, 1088, 1109, 1110, 1156, 1222, 1124, 1223, 1224,
+     1229, 1230, 1231, 1232, 1233, 1045, 1043, 1234, 1238, 1249,
+     1254, 1274, 1262, 1255, 1281, 1284, 1586, 1287, 1291, 1586,
+     1294, 1586, 1586, 1312, 1319, 1326, 1333, 1340, 1347, 1354,
+     1361, 1368, 1375, 1382, 1387, 1392, 1397, 1404, 1407, 1410,
+     1413, 1420, 1424, 1430, 1436, 1442, 1449, 1456, 1463, 1470,
+     1477, 1484, 1491
 
     } ;
 
@@ -601,44 +601,44 @@ static yyconst flex_int16_t yy_def[594] =
     {   0,
       564,  564,  565,  565,  565,  565,  566,  566,  567,  567,
       568,  568,  569,  569,  569,  569,  570,  570,  564,  564,
-      571,  571,  572,  572,  572,  572,  564,  564,  572,  572,
-      564,  564,  572,  572,  572,  572,  564,  564,  563,   39,
+      563,   21,  571,  571,  564,  564,  572,  572,  573,  573,
+      573,  573,  564,  564,  573,  573,  564,  564,  573,  573,
       573,  573,  564,  564,  563,   45,  574,  574,  569,  569,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
-      563,  575,  563,  563,  575,  563,  563,  563,  563,  563,
+      563,  575,  563,  563,  575,  575,  575,  575,  575,  563,
       563,  563,  563,  563,  563,  563,  576,  563,  563,  576,
 
-      576,  576,  576,  563,  563,  563,  563,  563,  563,  563,
-      577,  563,  563,  577,  577,  577,  577,  577,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  577,  563,  563,  577,  577,  577,  577,  563,  563,
       563,  563,  563,  563,  578,  563,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
-      575,  575,  579,  563,  563,  563,  563,  563,  563,  576,
-      576,  576,  576,  576,  580,  563,  577,  577,  577,  577,
+      575,  575,  575,  575,  575,  575,  575,  579,  563,  563,
+      576,  576,  580,  563,  563,  563,  563,  563,  577,  577,
       577,  577,  577,  581,  563,  563,  582,  563,  582,  563,
       563,  563,  583,  563,  563,  563,  563,  563,  563,  563,
-      575,  584,  584,  563,  563,  563,  563,  563,  576,  576,
-      576,  576,  585,  585,  577,  577,  577,  577,  577,  577,
+      575,  575,  575,  575,  575,  575,  584,  584,  563,  576,
+      585,  585,  563,  563,  563,  563,  577,  577,  577,  577,
 
       586,  586,  563,  563,  582,  563,  563,  582,  563,  563,
-      583,  563,  563,  563,  563,  563,  563,  575,  563,  584,
-      563,  584,  563,  563,  563,  563,  563,  576,  576,  576,
-      576,  563,  585,  563,  585,  577,  577,  577,  577,  577,
+      583,  563,  563,  563,  563,  563,  563,  575,  575,  575,
+      575,  575,  575,  563,  584,  563,  584,  563,  576,  563,
+      585,  563,  585,  563,  563,  563,  563,  577,  577,  577,
       577,  563,  586,  563,  586,  563,  582,  587,  563,  563,
-      563,  563,  563,  575,  584,  563,  563,  563,  563,  563,
-      563,  563,  576,  563,  563,  576,  585,  563,  563,  577,
-      577,  563,  563,  577,  577,  586,  563,  582,  587,  587,
-      563,  587,  563,  563,  563,  575,  584,  563,  563,  563,
-      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  575,  575,  563,  563,  575,
+      575,  584,  563,  576,  585,  563,  563,  563,  563,  563,
+      563,  577,  563,  563,  577,  586,  563,  582,  587,  587,
+      563,  587,  563,  563,  563,  563,  563,  563,  563,  563,
+      575,  563,  563,  563,  575,  575,  584,  563,  576,  585,
 
-      576,  585,  563,  563,  563,  563,  563,  577,  563,  563,
-      563,  577,  577,  586,  563,  582,  587,  587,  563,  563,
-      575,  584,  563,  563,  563,  563,  576,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
-      563,  582,  587,  587,  575,  563,  563,  576,  563,  563,
-      563,  563,  563,  563,  563,  563,  563,  563,  582,  587,
-      587,  575,  576,  563,  582,  587,  587,  575,  576,  576,
+      563,  563,  577,  586,  563,  582,  587,  587,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  576,  585,  563,  563,  563,  563,  577,  563,  563,
+      563,  582,  587,  587,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  576,  563,  563,  577,  563,  582,  587,
+      587,  576,  577,  563,  582,  587,  587,  576,  577,  577,
       582,  582,  582,  587,  587,  563,  563,  563,  563,  563,
       563,  582,  582,  582,  587,  587,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  582,  582,  582,  587,  587,
@@ -672,176 +672,176 @@ static yyconst flex_int16_t yy_nxt[1642] =
       563,   54,   55,   54,   54,   55,   54,   54,   55,   54,
        54,   55,   54,   62,  563,   56,   62,   65,   56,   65,
        63,   57,  468,   63,   57,   59,   55,   59,   59,   55,
-       59,   68,   69,   66,  159,   66,   70,   71,  160,   60,
+       59,   68,   69,   66,  143,   66,   70,   71,  144,   60,
        68,   69,   60,  168,   72,   70,   71,   68,   69,  206,
        73,  125,   70,   72,   68,   69,  169,   73,  342,   70,
        72,   75,   76,   75,   76,  126,  125,   72,   55,   55,
-       55,   55,   55,   55,   87,   55,   87,   87,   55,   87,
-      127,  172,   78,  174,  456,   78,  175,  172,   88,  210,
-       77,   88,   77,   79,   80,   55,   80,   79,   79,   79,
-
-       79,   79,   79,   79,   81,   79,  281,   79,   83,   79,
-       84,   79,   87,   55,   87,   87,   55,   87,   55,   55,
-       55,  281,  173,   79,   79,  206,   89,  206,  464,   89,
-      375,  247,   90,  208,   85,   79,   80,   55,   80,   79,
-       79,   79,   79,   79,   79,   79,   81,   79,  343,   79,
-       83,   79,   84,   79,   55,   55,   55,   87,   55,   87,
-       87,   55,   87,  206,  281,   79,   79,  456,   90,  359,
-      281,   88,  369,  370,   88,  128,   85,   55,   55,   55,
-       55,   55,   55,   87,   55,   87,   87,   55,   87,  127,
-      344,   91,  281,  206,   91,  361,  281,   89,  281,  128,
-
-       89,   87,   55,   87,   87,   55,   87,   55,   55,   55,
-       55,   55,   55,  127,  360,   92,  206,  374,   92,  460,
-      366,   93,  406,  469,   93,   94,   95,   55,   95,   94,
-       94,   94,   94,   94,   94,   94,   96,   94,   97,   94,
-       98,   94,   99,   94,   97,   97,   97,   97,   97,   97,
-       97,   97,   97,   97,   97,   94,   94,   97,   97,   97,
-       97,  100,   97,   97,   97,   97,   97,  101,   97,  102,
-       97,  103,   97,   97,   97,   97,   97,   97,   97,   97,
-      105,   55,  105,  105,   55,  105,   55,   55,   55,   55,
-       55,   55,  443,  443,  106,  281,  282,  106,  459,  456,
-
-      107,  446,  446,  107,  108,  109,   55,  109,  108,  108,
-      108,  108,  108,  108,  108,  110,  108,  111,  108,  112,
-      108,  113,  108,  111,  111,  111,  111,  111,  111,  111,
-      111,  111,  111,  111,  108,  108,  111,  111,  111,  111,
-      114,  111,  111,  111,  111,  111,  115,  111,  116,  111,
-      111,  111,  111,  117,  118,  111,  111,  111,  111,  120,
-       55,  120,  120,   55,  120,   68,   69,   68,   69,  206,
-       70,  133,   70,  121,  456,  465,  121,  206,  122,  128,
-      122,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-      124,  124,  124,  127,  123,  128,  123,  128,  134,  124,
-
-      124,  124,  143,  128,  135,  128,  128,  136,  383,  127,
-      143,  127,  137,  128,  139,  128,  206,  127,  128,  127,
-      127,  124,  124,  124,  206,  143,  128,  127,  144,  127,
-      145,  128,  127,  155,  206,  146,  144,  146,  145,  148,
-      127,  145,  128,  147,  384,  127,  146,  416,  144,  164,
-      145,  148,  206,  145,  405,  147,  127,  451,  147,  124,
-      124,  124,  281,  278,  144,  124,  124,  124,  124,  124,
-      124,  124,  124,  124,  219,  219,  219,  219,  219,  219,
-      232,  232,  232,  232,  232,  232,  242,  242,  242,  206,
-      221,  206,  281,  221,  367,  450,  234,  281,  471,  234,
-
-      206,  316,  244,  242,  242,  242,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  261,  261,  261,  206,  244,
-      386,  385,  221,  206,  222,  221,  206,  235,  221,  498,
-      262,  264,  264,  264,  232,  232,  232,  382,  245,  232,
-      232,  232,  397,  206,  255,  396,  265,  232,  232,  232,
-      234,  268,  268,  268,  206,  234,  272,  272,  272,  242,
-      242,  242,  398,  234,  452,  281,  269,  242,  242,  242,
-      449,  273,  242,  242,  242,  244,  280,  280,  280,  219,
-      219,  219,  267,  244,  288,  288,  288,  408,  244,  290,
-      290,  290,  281,  282,  448,  221,  291,  291,  291,  292,
-
-      292,  292,  261,  261,  261,  293,  293,  293,  206,  294,
-      276,  206,  295,  296,  296,  296,  281,  262,  264,  264,
-      264,  232,  232,  232,  287,  298,  298,  298,  297,  299,
-      480,  407,  300,  265,  268,  268,  268,  234,  303,  303,
-      303,  281,  304,  399,  206,  305,  306,  306,  306,  269,
-      272,  272,  272,  438,  242,  242,  242,  302,  280,  280,
-      280,  307,  309,  309,  309,  273,  310,  504,  400,  311,
-      244,  320,  320,  320,  281,  219,  219,  219,  288,  288,
-      288,  323,  323,  323,  290,  290,  290,  291,  291,  291,
-      314,  221,  401,  206,  317,  292,  292,  292,  293,  293,
-
-      293,  206,  294,  454,  402,  295,  296,  296,  296,  318,
-      206,  324,  324,  324,  322,  325,  403,  492,  326,  206,
-      462,  297,  298,  298,  298,  206,  299,  206,  404,  300,
-      328,  328,  328,  303,  303,  303,  461,  304,  206,  439,
-      305,  306,  306,  306,  206,  516,  329,  330,  330,  330,
-      441,  331,  206,  443,  332,  463,  307,  333,  333,  333,
-      309,  309,  309,  466,  310,  444,  206,  311,  335,  335,
-      335,  206,  334,  337,  337,  337,  339,  339,  339,  320,
-      320,  320,  437,  336,  346,  346,  346,  206,  338,  323,
-      323,  323,  340,  481,  324,  324,  324,  486,  325,  453,
-
-      347,  326,  328,  328,  328,  330,  330,  330,  206,  331,
-      443,  206,  332,  333,  333,  333,  206,  467,  329,  349,
-      349,  349,  444,  350,  493,  206,  351,  436,  334,  335,
-      335,  335,  352,  352,  352,  206,  353,  206,  484,  354,
-      337,  337,  337,  470,  336,  355,  355,  355,  206,  356,
-      206,  206,  357,  206,  499,  338,  339,  339,  339,  346,
-      346,  346,  349,  349,  349,  206,  350,  206,  435,  351,
-      485,  510,  340,  488,  473,  347,  352,  352,  352,  206,
-      353,  487,  502,  354,  355,  355,  355,  489,  356,  206,
-      206,  357,  365,  365,  365,  365,  365,  365,  376,  376,
-
-      376,  378,  378,  378,  380,  380,  380,  206,  206,  206,
-      490,  206,  206,  377,  206,  517,  379,  206,  206,  381,
-      376,  376,  376,  387,  387,  387,  511,  388,  496,  206,
-      389,  371,  505,  372,  497,  377,  503,  206,  373,  378,
-      378,  378,  390,  390,  390,  491,  391,  206,  494,  392,
-      380,  380,  380,  500,  379,  393,  393,  393,  206,  394,
-      495,  426,  395,  501,  425,  381,  387,  387,  387,  424,
-      388,  206,  423,  389,  390,  390,  390,  206,  391,  206,
-      206,  392,  393,  393,  393,  414,  394,  506,  206,  395,
-      409,  409,  409,  415,  415,  415,  417,  417,  417,  418,
-
-      418,  418,  409,  409,  409,  410,  281,  514,  507,  206,
-      206,  508,  206,  515,  419,  281,  518,  410,  281,  420,
-      420,  420,  206,  421,  206,  206,  422,  415,  415,  415,
-      428,  428,  428,  509,  206,  281,  417,  417,  417,  418,
-      418,  418,  206,  206,  206,  512,  206,  513,  206,  413,
-      206,  412,  206,  427,  419,  281,  430,  430,  430,  522,
-      431,  519,  429,  432,  420,  420,  420,  523,  421,  534,
-      520,  422,  281,  526,  428,  428,  428,  458,  458,  458,
-      281,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      206,  411,  279,  281,  282,  279,  279,  279,  281,  279,
-
-      440,  206,  368,  528,  206,  206,  458,  458,  458,  206,
-      206,  279,  279,  279,  279,  279,  279,  279,  279,  279,
-      279,  279,  281,  535,  279,  206,  527,  279,  279,  279,
-      281,  279,  430,  430,  430,  521,  431,  206,  540,  432,
-      206,  364,  317,  279,  279,  472,  472,  472,  281,  279,
-      279,  279,  279,  279,  447,  279,  279,  279,  541,  538,
-      279,  206,  529,  279,  279,  279,  281,  279,  206,  206,
-      544,  532,  206,  206,  474,  474,  474,  206,  206,  279,
-      279,  279,  279,  279,  279,  279,  279,  279,  279,  447,
-      206,  539,  279,  206,  524,  279,  279,  279,  281,  279,
-
-      472,  472,  472,  525,  475,  206,  545,  476,  477,  477,
-      477,  279,  279,  474,  474,  474,  206,  478,  530,  533,
-      479,  477,  477,  477,  206,  482,  206,  536,  483,  206,
-      531,  537,  206,  206,  206,  206,  206,  206,  206,  206,
-      206,  206,  206,  206,  552,  206,  555,  363,  552,  362,
-      555,  542,  543,  358,  546,  547,  206,  206,  206,  206,
-      550,  551,  553,  558,  554,  556,  556,  556,  558,  559,
-      559,  559,  548,  549,  348,  206,  345,  206,  556,  556,
-      556,  557,  561,  561,  561,  560,  559,  559,  559,  561,
-      561,  561,  341,  327,  557,  321,  319,  281,  562,  315,
-
-      313,  312,  560,  308,  301,  562,   52,   52,   52,   52,
-       52,   52,   52,   53,   53,   53,   53,   53,   53,   53,
-       58,   58,   58,   58,   58,   58,   58,   61,   61,   61,
-       61,   61,   61,   61,   64,   64,   64,   64,   64,   64,
-       64,   67,   67,   67,   67,   67,   67,   67,   74,   74,
-       74,   74,   74,   74,   74,   82,   82,   82,   82,   82,
-       82,   82,   86,   86,   86,   86,   86,   86,   86,  104,
-      104,  104,  104,  104,  104,  104,  119,  119,  119,  119,
-      119,  119,  119,  141,  141,  141,  289,  141,  150,  150,
-      150,  286,  150,  157,  157,  157,  285,  157,  167,  167,
-
-      167,  167,  167,  284,  167,  182,  283,  182,  193,  277,
-      193,  201,  275,  201,  205,  205,  205,  205,  205,  205,
-      205,  211,  274,  271,  211,  220,  220,  220,  220,  220,
-      220,  233,  233,  233,  233,  233,  233,  243,  243,  243,
-      243,  243,  243,  279,  279,  279,  279,  279,  279,  279,
-      433,  433,  433,  433,  433,  433,  433,  434,  434,  434,
-      434,  434,  434,  434,  442,  442,  442,  442,  442,  442,
-      442,  445,  445,  445,  445,  445,  445,  445,  455,  455,
-      455,  455,  455,  455,  455,  457,  457,  457,  457,  457,
-      457,  457,  270,  266,  263,  260,  259,  258,  257,  256,
-
-      254,  253,  252,  251,  250,  249,  248,  206,  246,  241,
-      240,  239,  238,  237,  236,  231,  230,  229,  228,  227,
-      226,  225,  224,  223,  218,  217,  216,  215,  214,  213,
+       55,   55,   55,   55,   91,   55,   91,   91,   55,   91,
+      127,  174,   78,  456,  175,   78,  464,  172,   92,  210,
+       77,   92,   77,   79,   80,   55,   80,   79,   79,   79,
+
+       79,   79,   79,   79,   81,   79,   82,   79,   83,   79,
+       84,   79,   82,   82,   82,   82,   82,   82,   82,   82,
+       82,   82,   82,   79,   79,   82,   82,   82,   82,   85,
+       82,   82,   82,   82,   82,   86,   82,   87,   82,   82,
+       82,   82,   88,   89,   82,   82,   82,   82,   55,   55,
+       55,   55,   55,   55,  124,  124,  124,  124,  124,  124,
+      172,  456,   93,  369,  370,   93,   94,   95,   55,   95,
+       94,   94,   94,   94,   94,   94,   94,   96,   94,  281,
+       94,   98,   94,   99,   94,  102,   55,  102,  102,   55,
+      102,  102,   55,  102,  206,  206,   94,   94,  247,  103,
+
+      460,  173,  103,  208,  459,  104,  343,  100,   94,   95,
+       55,   95,   94,   94,   94,   94,   94,   94,   94,   96,
+       94,  281,   94,   98,   94,   99,   94,  102,   55,  102,
+       55,   55,   55,   55,   55,   55,  206,  281,   94,   94,
+      374,  104,  359,  281,  105,  281,  282,  105,  128,  100,
+      102,   55,  102,  102,   55,  102,   55,   55,   55,   55,
+       55,   55,  127,  344,  103,  281,  281,  103,  361,  281,
+      106,  281,  128,  106,  102,   55,  102,  102,   55,  102,
+      102,   55,  102,  102,   55,  102,  127,  360,  104,  206,
+      375,  104,  206,  366,  107,  385,  128,  107,   55,   55,
+
+       55,   55,   55,   55,  124,  124,  124,  124,  124,  124,
+      127,  382,  108,  456,  522,  108,  109,  110,   55,  110,
+      109,  109,  109,  109,  109,  109,  109,  111,  109,  112,
+      109,  113,  109,  114,  109,  112,  112,  112,  112,  112,
+      112,  112,  112,  112,  112,  112,  109,  109,  112,  112,
+      112,  112,  115,  112,  112,  112,  112,  112,  116,  112,
+      117,  112,  118,  112,  112,  112,  112,  112,  112,  112,
+      112,  120,   55,  120,  120,   55,  120,   68,   69,   68,
+       69,  128,   70,  133,   70,  121,  128,  128,  121,  206,
+      122,  128,  122,  148,  456,  127,  124,  124,  124,  206,
+
+      127,  127,  124,  124,  124,  127,  123,  281,  123,  128,
+      134,  124,  124,  124,  139,  128,  135,  206,  128,  136,
+      383,  128,  149,  127,  137,  153,  128,  128,  153,  127,
+      486,  155,  127,  397,  153,  127,  124,  124,  124,  367,
+      127,  127,  157,  451,  154,  124,  124,  124,  139,  155,
+      154,  139,  128,  154,  139,  156,  154,  206,  155,  164,
+      157,  156,  154,  124,  124,  124,  127,  156,  224,  224,
+      224,  224,  224,  224,  230,  230,  230,  230,  230,  230,
+      242,  242,  242,  206,  226,  384,  281,  226,  450,  281,
+      232,  449,  448,  232,  278,  206,  244,  242,  242,  242,
+
+      254,  254,  254,  258,  258,  258,  227,  224,  224,  224,
+      224,  224,  224,  244,  386,  255,  399,  396,  259,  224,
+      224,  224,  206,  226,  233,  206,  226,  230,  230,  230,
+      230,  230,  230,  401,  316,  226,  230,  230,  230,  281,
+      206,  245,  443,  232,  398,  402,  232,  270,  270,  270,
+      452,  446,  232,  438,  273,  273,  273,  262,  242,  242,
+      242,  403,  271,  242,  242,  242,  400,  206,  265,  274,
+      242,  242,  242,  404,  244,  280,  280,  280,  206,  244,
+      285,  285,  285,  254,  254,  254,  244,  289,  289,  289,
+      443,  281,  282,  286,  286,  286,  406,  287,  255,  446,
+
+      288,  416,  290,  437,  206,  276,  258,  258,  258,  292,
+      292,  292,  206,  293,  454,  281,  294,  224,  224,  224,
+      206,  259,  230,  230,  230,  302,  302,  302,  303,  303,
+      303,  461,  405,  226,  304,  304,  304,  408,  232,  270,
+      270,  270,  305,  305,  305,  206,  306,  206,  206,  307,
+      308,  308,  308,  297,  271,  273,  273,  273,  463,  310,
+      310,  310,  206,  311,  534,  309,  312,  300,  407,  469,
+      274,  242,  242,  242,  280,  280,  280,  285,  285,  285,
+      206,  286,  286,  286,  206,  287,  465,  244,  288,  206,
+      281,  289,  289,  289,  320,  320,  320,  206,  321,  462,
+
+      492,  322,  323,  323,  323,  206,  290,  314,  206,  439,
+      317,  292,  292,  292,  467,  293,  466,  324,  294,  325,
+      325,  325,  327,  327,  327,  318,  329,  329,  329,  331,
+      331,  331,  436,  435,  326,  426,  425,  328,  230,  230,
+      230,  206,  330,  334,  334,  334,  302,  302,  302,  303,
+      303,  303,  443,  441,  232,  304,  304,  304,  305,  305,
+      305,  206,  306,  206,  444,  307,  308,  308,  308,  335,
+      335,  335,  443,  336,  424,  453,  337,  333,  310,  310,
+      310,  309,  311,  480,  444,  312,  339,  339,  339,  320,
+      320,  320,  423,  321,  206,  206,  322,  323,  323,  323,
+
+      470,  206,  340,  345,  345,  345,  206,  346,  471,  414,
+      347,  493,  324,  325,  325,  325,  348,  348,  348,  206,
+      349,  206,  496,  350,  327,  327,  327,  206,  326,  351,
+      351,  351,  206,  352,  473,  497,  353,  206,  206,  328,
+      329,  329,  329,  331,  331,  331,  355,  355,  355,  334,
+      334,  334,  487,  335,  335,  335,  330,  336,  206,  481,
+      337,  498,  356,  339,  339,  339,  345,  345,  345,  490,
+      346,  413,  412,  347,  348,  348,  348,  206,  349,  340,
+      484,  350,  351,  351,  351,  206,  352,  206,  206,  353,
+      355,  355,  355,  365,  365,  365,  365,  365,  365,  376,
+
+      376,  376,  378,  378,  378,  206,  356,  485,  491,  206,
+      488,  411,  206,  206,  377,  206,  499,  379,  380,  380,
+      380,  376,  376,  376,  387,  387,  387,  489,  388,  500,
+      206,  389,  371,  381,  372,  206,  377,  206,  206,  373,
+      378,  378,  378,  390,  390,  390,  494,  391,  368,  206,
+      392,  380,  380,  380,  501,  379,  393,  393,  393,  364,
+      394,  495,  206,  395,  502,  206,  381,  387,  387,  387,
+      363,  388,  206,  510,  389,  390,  390,  390,  503,  391,
+      362,  535,  392,  393,  393,  393,  206,  394,  504,  206,
+      395,  409,  409,  409,  415,  415,  415,  417,  417,  417,
+
+      418,  418,  418,  409,  409,  409,  410,  281,  511,  505,
+      206,  206,  508,  206,  206,  419,  281,  206,  410,  281,
+      420,  420,  420,  358,  421,  206,  206,  422,  415,  415,
+      415,  428,  428,  428,  509,  206,  281,  417,  417,  417,
+      418,  418,  418,  506,  206,  528,  507,  206,  512,  513,
+      552,  552,  206,  206,  427,  419,  281,  430,  430,  430,
+      206,  431,  206,  429,  432,  420,  420,  420,  206,  421,
+      206,  514,  422,  281,  357,  428,  428,  428,  458,  458,
+      458,  281,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  206,  206,  279,  281,  282,  279,  279,  279,  281,
+
+      279,  440,  206,  354,  515,  206,  518,  458,  458,  458,
+      206,  538,  279,  279,  279,  279,  279,  279,  279,  279,
+      279,  279,  279,  281,  539,  279,  206,  206,  279,  279,
+      279,  281,  279,  430,  430,  430,  516,  431,  519,  341,
+      432,  206,  338,  317,  279,  279,  472,  472,  472,  281,
+      279,  279,  279,  279,  279,  447,  279,  279,  279,  540,
+      541,  279,  206,  529,  279,  279,  279,  281,  279,  206,
+      206,  332,  532,  206,  544,  474,  474,  474,  206,  206,
+      279,  279,  279,  279,  279,  279,  279,  279,  279,  279,
+      447,  206,  542,  279,  206,  517,  279,  279,  279,  281,
+
+      279,  472,  472,  472,  520,  475,  206,  206,  476,  477,
+      477,  477,  279,  279,  474,  474,  474,  206,  478,  206,
+      521,  479,  477,  477,  477,  206,  482,  206,  206,  483,
+      206,  523,  206,  524,  206,  533,  536,  537,  206,  206,
+      206,  206,  206,  206,  206,  525,  206,  206,  206,  206,
+      206,  206,  526,  527,  555,  206,  319,  530,  543,  531,
+      546,  281,  555,  558,  315,  547,  206,  558,  550,  551,
+      553,  206,  206,  545,  554,  556,  556,  556,  313,  206,
+      548,  549,  559,  559,  559,  556,  556,  556,  561,  561,
+      561,  557,  559,  559,  559,  561,  561,  561,  560,  301,
+
+      299,  557,  298,  296,  562,  295,  291,  284,  560,  283,
+      277,  562,   52,   52,   52,   52,   52,   52,   52,   53,
+       53,   53,   53,   53,   53,   53,   58,   58,   58,   58,
+       58,   58,   58,   61,   61,   61,   61,   61,   61,   61,
+       64,   64,   64,   64,   64,   64,   64,   67,   67,   67,
+       67,   67,   67,   67,   74,   74,   74,   74,   74,   74,
+       74,   90,   90,   90,   90,   90,   90,   90,   97,   97,
+       97,   97,   97,   97,   97,  101,  101,  101,  101,  101,
+      101,  101,  119,  119,  119,  119,  119,  119,  119,  141,
+      141,  141,  275,  141,  151,  151,  151,  272,  151,  159,
+
+      159,  159,  269,  159,  167,  167,  167,  167,  167,  268,
+      167,  187,  267,  187,  191,  266,  191,  201,  264,  201,
+      205,  205,  205,  205,  205,  205,  205,  211,  263,  261,
+      211,  225,  225,  225,  225,  225,  225,  231,  231,  231,
+      231,  231,  231,  243,  243,  243,  243,  243,  243,  279,
+      279,  279,  279,  279,  279,  279,  433,  433,  433,  433,
+      433,  433,  433,  434,  434,  434,  434,  434,  434,  434,
+      442,  442,  442,  442,  442,  442,  442,  445,  445,  445,
+      445,  445,  445,  445,  455,  455,  455,  455,  455,  455,
+      455,  457,  457,  457,  457,  457,  457,  457,  260,  257,
+
+      256,  253,  252,  251,  250,  249,  248,  206,  246,  241,
+      240,  239,  238,  237,  236,  235,  234,  229,  228,  223,
+      222,  221,  220,  219,  218,  217,  216,  215,  214,  213,
       212,  209,  207,  206,  204,  203,  202,  200,  199,  198,
-      197,  196,  195,  194,  192,  191,  190,  189,  188,  187,
-      186,  185,  184,  183,  181,  180,  179,  178,  177,  176,
-      171,  168,  170,  166,  165,  163,  162,  161,  158,  156,
-      154,  153,  152,  151,  149,  142,  140,  138,  132,  131,
+      197,  196,  195,  194,  193,  192,  190,  189,  188,  186,
+      185,  184,  183,  182,  181,  180,  179,  178,  177,  176,
+      171,  168,  170,  166,  165,  163,  162,  161,  160,  158,
+      152,  150,  147,  146,  145,  142,  140,  138,  132,  131,
       132,  131,  130,  129,  563,   51,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
 
@@ -857,176 +857,176 @@ static yyconst flex_int16_t yy_chk[1642] =
         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
         6,    6,    6,    9,    0,    3,   10,   11,    4,   12,
         9,    5,  464,   10,    6,    7,    7,    7,    8,    8,
-        8,   13,   13,   11,  115,   12,   13,   13,  115,    7,
+        8,   13,   13,   11,   86,   12,   13,   13,   86,    7,
        14,   14,    8,  125,   13,   14,   14,   15,   15,  316,
        15,   56,   15,   14,   16,   16,  125,   16,  316,   16,
        15,   17,   17,   18,   18,   56,   57,   16,   19,   19,
        19,   20,   20,   20,   23,   23,   23,   24,   24,   24,
-       57,  133,   19,  134,  457,   20,  134,  172,   23,  172,
+       57,  134,   19,  457,  134,   20,  456,  172,   23,  172,
        17,   24,   18,   21,   21,   21,   21,   21,   21,   21,
 
-       21,   21,   21,   21,   21,   21,  367,   21,   21,   21,
-       21,   21,   25,   25,   25,   26,   26,   26,   27,   27,
-       27,  317,  133,   21,   21,  169,   25,  208,  456,   26,
-      367,  208,   27,  169,   21,   22,   22,   22,   22,   22,
-       22,   22,   22,   22,   22,   22,   22,   22,  317,   22,
-       22,   22,   22,   22,   28,   28,   28,   29,   29,   29,
-       30,   30,   30,  342,  344,   22,   22,  455,   28,  342,
-      318,   29,  363,  363,   30,   60,   22,   31,   31,   31,
-       32,   32,   32,   33,   33,   33,   34,   34,   34,   60,
-      318,   31,  360,  397,   32,  344,  343,   33,  366,   83,
-
-       34,   35,   35,   35,   36,   36,   36,   37,   37,   37,
-       38,   38,   38,   83,  343,   35,  465,  366,   36,  450,
-      360,   37,  397,  465,   38,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
-       41,   41,   41,   42,   42,   42,   43,   43,   43,   44,
-       44,   44,  432,  445,   41,  443,  443,   42,  448,  446,
-
-       43,  432,  445,   44,   45,   45,   45,   45,   45,   45,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
+       21,   21,   21,   21,   21,   21,   21,   21,   25,   25,
+       25,   26,   26,   26,   54,   54,   54,   55,   55,   55,
+      133,  455,   25,  363,  363,   26,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,  317,
+       27,   27,   27,   27,   27,   29,   29,   29,   30,   30,
+       30,   31,   31,   31,  208,  169,   27,   27,  208,   29,
+
+      450,  133,   30,  169,  448,   31,  317,   27,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,  366,   28,   28,   28,   28,   28,   32,   32,   32,
+       33,   33,   33,   34,   34,   34,  342,  344,   28,   28,
+      366,   32,  342,  318,   33,  443,  443,   34,   60,   28,
+       35,   35,   35,   36,   36,   36,   37,   37,   37,   38,
+       38,   38,   60,  318,   35,  360,  367,   36,  344,  343,
+       37,  374,   83,   38,   39,   39,   39,   40,   40,   40,
+       41,   41,   41,   42,   42,   42,   83,  343,   39,  516,
+      367,   40,  371,  360,   41,  374,   98,   42,   43,   43,
+
+       43,   44,   44,   44,   59,   59,   59,   80,   80,   80,
+       98,  371,   43,  446,  516,   44,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   47,
-       47,   47,   48,   48,   48,   49,   49,   50,   50,  461,
-       49,   70,   50,   47,  444,  461,   48,  372,   49,   78,
-       50,   54,   54,   54,   55,   55,   55,   59,   59,   59,
-       80,   80,   80,   78,   49,   88,   50,   93,   70,   87,
-
-       87,   87,   88,   89,   70,   98,   90,   70,  372,   88,
-       89,   93,   70,  112,   78,   91,  373,   89,   92,   98,
-       90,   95,   95,   95,  406,   92,  106,  112,   88,   91,
-       88,  107,   92,  106,  396,   88,   89,   93,   89,   90,
-      106,   90,  121,   89,  373,  107,   90,  406,   91,  121,
-       91,   92,  247,   92,  396,   91,  121,  438,   92,  105,
-      105,  105,  361,  247,  107,  109,  109,  109,  120,  120,
-      120,  124,  124,  124,  182,  182,  182,  183,  183,  183,
-      193,  193,  193,  194,  194,  194,  201,  201,  201,  278,
-      182,  467,  375,  183,  361,  437,  193,  374,  467,  194,
-
-      492,  278,  201,  202,  202,  202,  219,  219,  219,  220,
-      220,  220,  222,  222,  222,  228,  228,  228,  371,  202,
-      375,  374,  219,  382,  183,  220,  383,  194,  222,  492,
-      228,  230,  230,  230,  232,  232,  232,  371,  202,  233,
-      233,  233,  383,  384,  222,  382,  230,  235,  235,  235,
-      232,  236,  236,  236,  439,  233,  239,  239,  239,  242,
-      242,  242,  384,  235,  439,  399,  236,  243,  243,  243,
-      436,  239,  245,  245,  245,  242,  248,  248,  248,  255,
-      255,  255,  235,  243,  256,  256,  256,  399,  245,  258,
-      258,  258,  248,  248,  435,  255,  259,  259,  259,  260,
-
-      260,  260,  261,  261,  261,  262,  262,  262,  475,  262,
-      245,  398,  262,  263,  263,  263,  385,  261,  264,  264,
-      264,  267,  267,  267,  255,  265,  265,  265,  263,  265,
-      475,  398,  265,  264,  268,  268,  268,  267,  269,  269,
-      269,  386,  269,  385,  498,  269,  270,  270,  270,  268,
-      272,  272,  272,  426,  276,  276,  276,  267,  280,  280,
-      280,  270,  273,  273,  273,  272,  273,  498,  386,  273,
-      276,  285,  285,  285,  280,  287,  287,  287,  288,  288,
-      288,  289,  289,  289,  290,  290,  290,  291,  291,  291,
-      276,  287,  388,  441,  280,  292,  292,  292,  293,  293,
-
-      293,  486,  293,  441,  388,  293,  296,  296,  296,  280,
-      453,  297,  297,  297,  287,  297,  389,  486,  297,  510,
-      453,  296,  298,  298,  298,  452,  298,  427,  389,  298,
-      302,  302,  302,  303,  303,  303,  452,  303,  429,  427,
-      303,  306,  306,  306,  454,  510,  302,  307,  307,  307,
-      429,  307,  462,  431,  307,  454,  306,  308,  308,  308,
-      309,  309,  309,  462,  309,  431,  480,  309,  312,  312,
-      312,  476,  308,  313,  313,  313,  314,  314,  314,  320,
-      320,  320,  425,  312,  322,  322,  322,  440,  313,  323,
-      323,  323,  314,  476,  324,  324,  324,  480,  324,  440,
-
-      322,  324,  328,  328,  328,  330,  330,  330,  487,  330,
-      442,  463,  330,  333,  333,  333,  478,  463,  328,  334,
-      334,  334,  442,  334,  487,  493,  334,  424,  333,  335,
-      335,  335,  336,  336,  336,  504,  336,  466,  478,  336,
-      337,  337,  337,  466,  335,  338,  338,  338,  479,  338,
-      481,  482,  338,  496,  493,  337,  339,  339,  339,  346,
-      346,  346,  349,  349,  349,  483,  349,  470,  423,  349,
-      479,  504,  339,  482,  470,  346,  352,  352,  352,  484,
-      352,  481,  496,  352,  355,  355,  355,  483,  355,  511,
-      505,  355,  359,  359,  359,  365,  365,  365,  368,  368,
-
-      368,  369,  369,  369,  370,  370,  370,  497,  359,  499,
-      484,  365,  490,  368,  485,  511,  369,  488,  491,  370,
-      376,  376,  376,  377,  377,  377,  505,  377,  490,  489,
-      377,  365,  499,  365,  491,  376,  497,  494,  365,  378,
-      378,  378,  379,  379,  379,  485,  379,  495,  488,  379,
-      380,  380,  380,  494,  378,  381,  381,  381,  500,  381,
-      489,  414,  381,  495,  413,  380,  387,  387,  387,  412,
-      387,  508,  411,  387,  390,  390,  390,  509,  390,  501,
-      512,  390,  393,  393,  393,  404,  393,  500,  502,  393,
-      400,  400,  400,  405,  405,  405,  407,  407,  407,  408,
-
-      408,  408,  409,  409,  409,  400,  400,  508,  501,  405,
-      503,  502,  407,  509,  408,  408,  512,  409,  409,  410,
-      410,  410,  506,  410,  507,  513,  410,  415,  415,  415,
-      416,  416,  416,  503,  516,  410,  417,  417,  417,  418,
-      418,  418,  517,  415,  514,  506,  416,  507,  520,  403,
-      528,  402,  417,  415,  418,  418,  419,  419,  419,  516,
-      419,  513,  417,  419,  420,  420,  420,  517,  420,  528,
-      514,  420,  419,  520,  428,  428,  428,  447,  447,  447,
-      420,  421,  421,  421,  421,  421,  421,  421,  421,  421,
-      428,  401,  421,  447,  447,  421,  421,  421,  421,  421,
-
-      428,  521,  362,  522,  529,  534,  458,  458,  458,  515,
-      522,  421,  421,  422,  422,  422,  422,  422,  422,  422,
-      422,  422,  458,  529,  422,  535,  521,  422,  422,  422,
-      422,  422,  430,  430,  430,  515,  430,  538,  534,  430,
-      532,  358,  458,  422,  422,  469,  469,  469,  430,  433,
-      433,  433,  433,  433,  433,  433,  433,  433,  535,  532,
-      433,  469,  523,  433,  433,  433,  433,  433,  518,  523,
-      538,  526,  533,  539,  471,  471,  471,  519,  526,  433,
-      433,  434,  434,  434,  434,  434,  434,  434,  434,  434,
-      471,  533,  434,  524,  518,  434,  434,  434,  434,  434,
-
-      472,  472,  472,  519,  472,  525,  539,  472,  473,  473,
-      473,  434,  434,  474,  474,  474,  472,  474,  524,  527,
-      474,  477,  477,  477,  473,  477,  527,  530,  477,  474,
-      525,  531,  536,  537,  530,  540,  541,  477,  531,  542,
-      543,  544,  545,  548,  546,  549,  550,  348,  547,  345,
-      551,  536,  537,  341,  540,  541,  546,  547,  550,  551,
-      544,  545,  548,  553,  549,  552,  552,  552,  554,  555,
-      555,  555,  542,  543,  327,  553,  321,  554,  556,  556,
-      556,  552,  558,  558,  558,  555,  559,  559,  559,  561,
-      561,  561,  315,  301,  556,  286,  282,  279,  558,  277,
-
-      275,  274,  559,  271,  266,  561,  564,  564,  564,  564,
-      564,  564,  564,  565,  565,  565,  565,  565,  565,  565,
-      566,  566,  566,  566,  566,  566,  566,  567,  567,  567,
-      567,  567,  567,  567,  568,  568,  568,  568,  568,  568,
-      568,  569,  569,  569,  569,  569,  569,  569,  570,  570,
-      570,  570,  570,  570,  570,  571,  571,  571,  571,  571,
-      571,  571,  572,  572,  572,  572,  572,  572,  572,  573,
-      573,  573,  573,  573,  573,  573,  574,  574,  574,  574,
-      574,  574,  574,  575,  575,  575,  257,  575,  576,  576,
-      576,  254,  576,  577,  577,  577,  253,  577,  578,  578,
-
-      578,  578,  578,  252,  578,  579,  251,  579,  580,  246,
-      580,  581,  241,  581,  582,  582,  582,  582,  582,  582,
-      582,  583,  240,  238,  583,  584,  584,  584,  584,  584,
-      584,  585,  585,  585,  585,  585,  585,  586,  586,  586,
-      586,  586,  586,  587,  587,  587,  587,  587,  587,  587,
-      588,  588,  588,  588,  588,  588,  588,  589,  589,  589,
-      589,  589,  589,  589,  590,  590,  590,  590,  590,  590,
-      590,  591,  591,  591,  591,  591,  591,  591,  592,  592,
-      592,  592,  592,  592,  592,  593,  593,  593,  593,  593,
-      593,  593,  237,  231,  229,  227,  226,  225,  224,  223,
-
-      218,  217,  216,  213,  212,  211,  209,  205,  203,  200,
-      199,  198,  197,  196,  195,  192,  191,  190,  189,  188,
-      187,  186,  185,  184,  181,  180,  178,  177,  176,  175,
+       45,   47,   47,   47,   48,   48,   48,   49,   49,   50,
+       50,   78,   49,   70,   50,   47,   92,   93,   48,  372,
+       49,  108,   50,   92,  444,   78,   91,   91,   91,  480,
+
+       92,   93,   95,   95,   95,  108,   49,  361,   50,  105,
+       70,  102,  102,  102,   78,  106,   70,  383,  103,   70,
+      372,  104,   93,  105,   70,  103,  113,  107,  104,  106,
+      480,  108,  103,  383,  107,  104,  110,  110,  110,  361,
+      113,  107,  105,  438,  105,  120,  120,  120,  106,  105,
+      106,  103,  121,  103,  104,  106,  104,  373,  103,  121,
+      107,  104,  107,  124,  124,  124,  121,  107,  187,  187,
+      187,  188,  188,  188,  191,  191,  191,  192,  192,  192,
+      201,  201,  201,  247,  187,  373,  375,  188,  437,  385,
+      191,  436,  435,  192,  247,  382,  201,  202,  202,  202,
+
+      218,  218,  218,  221,  221,  221,  188,  224,  224,  224,
+      225,  225,  225,  202,  375,  218,  385,  382,  221,  227,
+      227,  227,  278,  224,  192,  384,  225,  230,  230,  230,
+      231,  231,  231,  388,  278,  227,  233,  233,  233,  386,
+      439,  202,  432,  230,  384,  388,  231,  238,  238,  238,
+      439,  432,  233,  426,  240,  240,  240,  227,  242,  242,
+      242,  389,  238,  243,  243,  243,  386,  397,  233,  240,
+      245,  245,  245,  389,  242,  248,  248,  248,  406,  243,
+      253,  253,  253,  254,  254,  254,  245,  256,  256,  256,
+      445,  248,  248,  255,  255,  255,  397,  255,  254,  445,
+
+      255,  406,  256,  425,  441,  245,  258,  258,  258,  259,
+      259,  259,  396,  259,  441,  399,  259,  262,  262,  262,
+      452,  258,  265,  265,  265,  267,  267,  267,  268,  268,
+      268,  452,  396,  262,  269,  269,  269,  399,  265,  270,
+      270,  270,  271,  271,  271,  528,  271,  454,  398,  271,
+      272,  272,  272,  262,  270,  273,  273,  273,  454,  274,
+      274,  274,  465,  274,  528,  272,  274,  265,  398,  465,
+      273,  276,  276,  276,  280,  280,  280,  285,  285,  285,
+      461,  286,  286,  286,  486,  286,  461,  276,  286,  453,
+      280,  289,  289,  289,  290,  290,  290,  427,  290,  453,
+
+      486,  290,  291,  291,  291,  462,  289,  276,  463,  427,
+      280,  292,  292,  292,  463,  292,  462,  291,  292,  295,
+      295,  295,  296,  296,  296,  280,  297,  297,  297,  298,
+      298,  298,  424,  423,  295,  414,  413,  296,  300,  300,
+      300,  429,  297,  301,  301,  301,  302,  302,  302,  303,
+      303,  303,  431,  429,  300,  304,  304,  304,  305,  305,
+      305,  475,  305,  440,  431,  305,  308,  308,  308,  309,
+      309,  309,  442,  309,  412,  440,  309,  300,  310,  310,
+      310,  308,  310,  475,  442,  310,  314,  314,  314,  320,
+      320,  320,  411,  320,  466,  487,  320,  323,  323,  323,
+
+      466,  467,  314,  324,  324,  324,  490,  324,  467,  404,
+      324,  487,  323,  325,  325,  325,  326,  326,  326,  491,
+      326,  481,  490,  326,  327,  327,  327,  470,  325,  328,
+      328,  328,  492,  328,  470,  491,  328,  476,  484,  327,
+      329,  329,  329,  331,  331,  331,  333,  333,  333,  334,
+      334,  334,  481,  335,  335,  335,  329,  335,  478,  476,
+      335,  492,  333,  339,  339,  339,  345,  345,  345,  484,
+      345,  403,  402,  345,  348,  348,  348,  485,  348,  339,
+      478,  348,  351,  351,  351,  479,  351,  493,  482,  351,
+      355,  355,  355,  359,  359,  359,  365,  365,  365,  368,
+
+      368,  368,  369,  369,  369,  483,  355,  479,  485,  359,
+      482,  401,  365,  494,  368,  488,  493,  369,  370,  370,
+      370,  376,  376,  376,  377,  377,  377,  483,  377,  494,
+      489,  377,  365,  370,  365,  496,  376,  504,  495,  365,
+      378,  378,  378,  379,  379,  379,  488,  379,  362,  497,
+      379,  380,  380,  380,  495,  378,  381,  381,  381,  358,
+      381,  489,  529,  381,  496,  498,  380,  387,  387,  387,
+      357,  387,  505,  504,  387,  390,  390,  390,  497,  390,
+      354,  529,  390,  393,  393,  393,  499,  393,  498,  502,
+      393,  400,  400,  400,  405,  405,  405,  407,  407,  407,
+
+      408,  408,  408,  409,  409,  409,  400,  400,  505,  499,
+      405,  503,  502,  407,  500,  408,  408,  501,  409,  409,
+      410,  410,  410,  341,  410,  506,  507,  410,  415,  415,
+      415,  416,  416,  416,  503,  508,  410,  417,  417,  417,
+      418,  418,  418,  500,  415,  522,  501,  416,  506,  507,
+      546,  547,  522,  417,  415,  418,  418,  419,  419,  419,
+      547,  419,  546,  417,  419,  420,  420,  420,  509,  420,
+      512,  508,  420,  419,  338,  428,  428,  428,  447,  447,
+      447,  420,  421,  421,  421,  421,  421,  421,  421,  421,
+      421,  428,  532,  421,  447,  447,  421,  421,  421,  421,
+
+      421,  428,  513,  332,  509,  533,  512,  458,  458,  458,
+      510,  532,  421,  421,  422,  422,  422,  422,  422,  422,
+      422,  422,  422,  458,  533,  422,  534,  535,  422,  422,
+      422,  422,  422,  430,  430,  430,  510,  430,  513,  315,
+      430,  538,  313,  458,  422,  422,  469,  469,  469,  430,
+      433,  433,  433,  433,  433,  433,  433,  433,  433,  534,
+      535,  433,  469,  523,  433,  433,  433,  433,  433,  511,
+      523,  299,  526,  536,  538,  471,  471,  471,  514,  526,
+      433,  433,  434,  434,  434,  434,  434,  434,  434,  434,
+      434,  471,  536,  434,  515,  511,  434,  434,  434,  434,
+
+      434,  472,  472,  472,  514,  472,  517,  518,  472,  473,
+      473,  473,  434,  434,  474,  474,  474,  472,  474,  519,
+      515,  474,  477,  477,  477,  473,  477,  520,  521,  477,
+      474,  517,  524,  518,  525,  527,  530,  531,  477,  537,
+      539,  540,  527,  530,  531,  519,  541,  542,  543,  544,
+      545,  548,  520,  521,  550,  549,  282,  524,  537,  525,
+      540,  279,  551,  554,  277,  541,  550,  553,  544,  545,
+      548,  551,  554,  539,  549,  552,  552,  552,  275,  553,
+      542,  543,  555,  555,  555,  556,  556,  556,  558,  558,
+      558,  552,  559,  559,  559,  561,  561,  561,  555,  266,
+
+      264,  556,  263,  261,  558,  260,  257,  252,  559,  251,
+      246,  561,  564,  564,  564,  564,  564,  564,  564,  565,
+      565,  565,  565,  565,  565,  565,  566,  566,  566,  566,
+      566,  566,  566,  567,  567,  567,  567,  567,  567,  567,
+      568,  568,  568,  568,  568,  568,  568,  569,  569,  569,
+      569,  569,  569,  569,  570,  570,  570,  570,  570,  570,
+      570,  571,  571,  571,  571,  571,  571,  571,  572,  572,
+      572,  572,  572,  572,  572,  573,  573,  573,  573,  573,
+      573,  573,  574,  574,  574,  574,  574,  574,  574,  575,
+      575,  575,  241,  575,  576,  576,  576,  239,  576,  577,
+
+      577,  577,  237,  577,  578,  578,  578,  578,  578,  236,
+      578,  579,  235,  579,  580,  234,  580,  581,  229,  581,
+      582,  582,  582,  582,  582,  582,  582,  583,  228,  223,
+      583,  584,  584,  584,  584,  584,  584,  585,  585,  585,
+      585,  585,  585,  586,  586,  586,  586,  586,  586,  587,
+      587,  587,  587,  587,  587,  587,  588,  588,  588,  588,
+      588,  588,  588,  589,  589,  589,  589,  589,  589,  589,
+      590,  590,  590,  590,  590,  590,  590,  591,  591,  591,
+      591,  591,  591,  591,  592,  592,  592,  592,  592,  592,
+      592,  593,  593,  593,  593,  593,  593,  593,  222,  220,
+
+      219,  217,  216,  213,  212,  211,  209,  205,  203,  200,
+      199,  198,  197,  196,  195,  194,  193,  190,  189,  186,
+      185,  184,  183,  182,  181,  180,  178,  177,  176,  175,
       174,  170,  168,  167,  166,  165,  164,  163,  162,  161,
-      160,  159,  158,  155,  154,  153,  152,  151,  148,  147,
+      160,  157,  156,  155,  154,  153,  152,  149,  148,  147,
       146,  145,  144,  143,  142,  139,  138,  137,  136,  135,
-      129,  128,  126,  123,  122,  118,  117,  116,  114,  110,
-      103,  102,  101,  100,   96,   85,   81,   77,   76,   75,
+      129,  128,  126,  123,  122,  118,  117,  116,  115,  111,
+      100,   96,   89,   88,   87,   85,   81,   77,   76,   75,
        69,   68,   66,   63,   51,  563,  563,  563,  563,  563,
       563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
 
@@ -1040,10 +1040,10 @@ static yyconst flex_int16_t yy_chk[1642] =
 /* Table of booleans, true if rule could match eol. */
 static yyconst flex_int32_t yy_rule_can_match_eol[93] =
     {   0,
-0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
-    1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
+    1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
+    1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
     1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
 
 static yy_state_type yy_last_accepting_state;
@@ -1066,13 +1066,13 @@ char *xbt_graph_parse_text;
  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
  * (1.9.6).
- *
+ * 
  * There are two, intertwined parts to this program, part A and part B.
  *
  * Part A
  * ------
- *
- * Some parts, here collectively called "Part A", are found in the
+ * 
+ * Some parts, here collectively called "Part A", are found in the 
  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
  *
@@ -1090,20 +1090,20 @@ char *xbt_graph_parse_text;
  * Notice that these are explicit rights granted to you for files
  * generated by the FleXML system.  For your rights in connection with
  * the FleXML system itself please consult the GNU General Public License.
- *
+ * 
  * Part B
  * ------
- *
- * The other parts, here collectively called "Part B", and which came
- * from the DTD used by FleXML to generate this program, can be
+ * 
+ * The other parts, here collectively called "Part B", and which came 
+ * from the DTD used by FleXML to generate this program, can be 
  * distributed (or not, as the case may be) under the terms of whoever
- * wrote them, provided these terms respect and obey the two conditions
+ * wrote them, provided these terms respect and obey the two conditions 
  * above under the heading "Part A".
  *
  * The author of and contributors to FleXML specifically disclaim
- * any copyright interest in "Part B", unless "Part B" was written
+ * any copyright interest in "Part B", unless "Part B" was written 
  * by the author of or contributors to FleXML.
- *
+ * 
  */
 
 /* Version strings. */
@@ -1116,7 +1116,7 @@ const char graphxml_flexml_version[] = "1.9.6";
 #include <assert.h>
 #include <stdarg.h>
 #include <ctype.h>
-
+     
 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
 # ifndef __STRICT_ANSI__
 #  include <io.h>
@@ -1125,7 +1125,7 @@ const char graphxml_flexml_version[] = "1.9.6";
 #else
 # include <unistd.h>
 #endif
-
+     
 #ifndef FLEXML_INDEXSTACKSIZE
 #define FLEXML_INDEXSTACKSIZE 1000
 #endif
@@ -1142,42 +1142,42 @@ const char graphxml_flexml_version[] = "1.9.6";
 int graphxml_pcdata_ix;
 extern char *graphxml_bufferstack;
 #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
-AT_graphxml_node_position___y AX_graphxml_node_position___y;
-#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
-short int graphxml_node_position___y_isset;
+AT_graphxml_edge_data AX_graphxml_edge_data;
+#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
+short int graphxml_edge_data_isset;
 AT_graphxml_edge_label AX_graphxml_edge_label;
 #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
 short int graphxml_edge_label_isset;
-AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected;
-#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
-short int graphxml_graph_isDirected_isset;
-AT_graphxml_node_label AX_graphxml_node_label;
-#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
-short int graphxml_node_label_isset;
 AT_graphxml_edge_length AX_graphxml_edge_length;
 #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
 short int graphxml_edge_length_isset;
+AT_graphxml_edge_name AX_graphxml_edge_name;
+#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
+short int graphxml_edge_name_isset;
 AT_graphxml_edge_source AX_graphxml_edge_source;
 #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
 short int graphxml_edge_source_isset;
 AT_graphxml_edge_target AX_graphxml_edge_target;
 #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
 short int graphxml_edge_target_isset;
-AT_graphxml_node_name AX_graphxml_node_name;
-#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
-short int graphxml_node_name_isset;
-AT_graphxml_edge_data AX_graphxml_edge_data;
-#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
-short int graphxml_edge_data_isset;
+AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected;
+#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
+short int graphxml_graph_isDirected_isset;
 AT_graphxml_node_data AX_graphxml_node_data;
 #define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
 short int graphxml_node_data_isset;
-AT_graphxml_edge_name AX_graphxml_edge_name;
-#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
-short int graphxml_edge_name_isset;
+AT_graphxml_node_label AX_graphxml_node_label;
+#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
+short int graphxml_node_label_isset;
+AT_graphxml_node_name AX_graphxml_node_name;
+#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
+short int graphxml_node_name_isset;
 AT_graphxml_node_position___x AX_graphxml_node_position___x;
 #define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
 short int graphxml_node_position___x_isset;
+AT_graphxml_node_position___y AX_graphxml_node_position___y;
+#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
+short int graphxml_node_position___y_isset;
 
 /* XML state. */
 #ifdef FLEX_DEBUG
@@ -1286,7 +1286,7 @@ static void pushbuffer(int p)
 {
     ck_ilimit();
     indexstack[inext++] = p;
-    indexstack[inext++] = bnext;
+    indexstack[inext++] = bnext;    
 }
 
 static int popbuffer(void)
@@ -1336,21 +1336,21 @@ const char* *graphxml_statenames=NULL;
 #define VALUE1 6
 #define VALUE2 7
 #define CDATA 8
-#define ROOT_graphxml_graph 9
-#define AL_graphxml_graph 10
-#define S_graphxml_graph 11
-#define S_graphxml_graph_1 12
-#define S_graphxml_graph_2 13
-#define S_graphxml_graph_3 14
-#define S_graphxml_graph_4 15
-#define S_graphxml_graph_5 16
-#define E_graphxml_graph 17
-#define ROOT_graphxml_node 18
-#define AL_graphxml_node 19
-#define E_graphxml_node 20
-#define ROOT_graphxml_edge 21
-#define AL_graphxml_edge 22
-#define E_graphxml_edge 23
+#define ROOT_graphxml_edge 9
+#define AL_graphxml_edge 10
+#define E_graphxml_edge 11
+#define ROOT_graphxml_graph 12
+#define AL_graphxml_graph 13
+#define S_graphxml_graph 14
+#define S_graphxml_graph_1 15
+#define S_graphxml_graph_2 16
+#define S_graphxml_graph_3 17
+#define S_graphxml_graph_4 18
+#define S_graphxml_graph_5 19
+#define E_graphxml_graph 20
+#define ROOT_graphxml_node 21
+#define AL_graphxml_node 22
+#define E_graphxml_node 23
 #define IMPOSSIBLE 24
 
 #ifndef YY_NO_UNISTD_H
@@ -1436,11 +1436,11 @@ static int input (void );
         static int yy_start_stack_ptr = 0;
         static int yy_start_stack_depth = 0;
         static int *yy_start_stack = NULL;
-
+    
     static void yy_push_state (int new_state );
-
+    
     static void yy_pop_state (void );
-
+    
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
 #ifdef __ia64__
@@ -1548,7 +1548,7 @@ YY_DECL
        yy_state_type yy_current_state;
        char *yy_cp, *yy_bp;
        int yy_act;
-
+    
        if ( !(yy_init) )
                {
                (yy_init) = 1;
@@ -1609,6 +1609,9 @@ YY_DECL
   graphxml_statenames[VALUE1] = NULL;
   graphxml_statenames[VALUE2] = NULL;
   graphxml_statenames[CDATA] = NULL;
+  graphxml_statenames[ROOT_graphxml_edge] = NULL;
+  graphxml_statenames[AL_graphxml_edge] = NULL;
+  graphxml_statenames[E_graphxml_edge] = "edge";
   graphxml_statenames[ROOT_graphxml_graph] = NULL;
   graphxml_statenames[AL_graphxml_graph] = NULL;
   graphxml_statenames[S_graphxml_graph] = "graph";
@@ -1621,9 +1624,6 @@ YY_DECL
   graphxml_statenames[ROOT_graphxml_node] = NULL;
   graphxml_statenames[AL_graphxml_node] = NULL;
   graphxml_statenames[E_graphxml_node] = "node";
-  graphxml_statenames[ROOT_graphxml_edge] = NULL;
-  graphxml_statenames[AL_graphxml_edge] = NULL;
-  graphxml_statenames[E_graphxml_edge] = "edge";
   }
 
  /* COMMENTS and PIs: handled uniformly for efficiency. */
@@ -1677,7 +1677,7 @@ yy_find_action:
                        yy_size_t yyl;
                        for ( yyl = 0; yyl < xbt_graph_parse_leng; ++yyl )
                                if ( xbt_graph_parse_text[yyl] == '\n' )
-
+                                          
     xbt_graph_parse_lineno++;
 ;
                        }
@@ -1742,7 +1742,7 @@ SKIP;
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-SET(DOCTYPE);
+SET(DOCTYPE); 
        YY_BREAK
 case 12:
 /* rule 12 can match eol */
@@ -1753,12 +1753,12 @@ FAIL("Bad declaration %s.",xbt_graph_parse_text);
 case 13:
 /* rule 13 can match eol */
 YY_RULE_SETUP
-SET(ROOT_graphxml_graph);
+SET(ROOT_graphxml_edge);
        YY_BREAK
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-SET(ROOT_graphxml_edge);
+SET(ROOT_graphxml_graph);
        YY_BREAK
 case 15:
 /* rule 15 can match eol */
@@ -1780,351 +1780,351 @@ FAIL("EOF in prolog.");
        YY_BREAK
 
 /* RULES DERIVED FROM DTD. */
-/* <!-- Small DTD for xbt graphs. -->  */
-/*     isDirected (true|false) "true"
+/*     label           CDATA                ""
+  *     name            CDATA               #IMPLIED
+  *     source          CDATA               #REQUIRED
+  *     target          CDATA               #REQUIRED
+  *     length          CDATA               "-1.0"
+  *     data            CDATA               ""
   * >  */
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <graph> is not allowed here.");
+FAIL("Starting tag <edge> is not allowed here.");
        YY_BREAK
 case 19:
 /* rule 19 can match eol */
 YY_RULE_SETUP
 {
-  AX_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
-  graphxml_graph_isDirected_isset = 0;
-  ENTER(AL_graphxml_graph); pushbuffer(0);
+  AX_graphxml_edge_data = 0;
+  graphxml_edge_data_isset = 0;
+  AX_graphxml_edge_label = 0;
+  graphxml_edge_label_isset = 0;
+  AX_graphxml_edge_length = 11;
+  graphxml_edge_length_isset = 0;
+  AX_graphxml_edge_name = 0;
+  graphxml_edge_name_isset = 0;
+  AX_graphxml_edge_source = 0;
+  graphxml_edge_source_isset = 0;
+  AX_graphxml_edge_target = 0;
+  graphxml_edge_target_isset = 0;
+  ENTER(AL_graphxml_edge); pushbuffer(0);
   }
        YY_BREAK
 
 case 20:
 /* rule 20 can match eol */
+YY_RULE_SETUP
+if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");} graphxml_edge_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_data);
+       YY_BREAK
 case 21:
 /* rule 21 can match eol */
 YY_RULE_SETUP
-A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
+if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");}  graphxml_edge_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_data);
        YY_BREAK
 case 22:
 /* rule 22 can match eol */
+YY_RULE_SETUP
+if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");} graphxml_edge_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_label);
+       YY_BREAK
 case 23:
 /* rule 23 can match eol */
 YY_RULE_SETUP
-A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false;
+if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");}  graphxml_edge_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_label);
        YY_BREAK
 case 24:
+/* rule 24 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE; STag_graphxml_graph();graphxml_pcdata_ix = 0; ENTER(S_graphxml_graph);
- }
+if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");} graphxml_edge_length_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_length);
        YY_BREAK
 case 25:
+/* rule 25 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE; STag_graphxml_graph(); graphxml_pcdata_ix = 0; ETag_graphxml_graph(); popbuffer(); /* attribute */
-  switch (YY_START) {
-   case ROOT_graphxml_graph: SET(EPILOG); break;
-  }
- }
+if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");}  graphxml_edge_length_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_length);
        YY_BREAK
 case 26:
+/* rule 26 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of graph element.", xbt_graph_parse_text[0]);
+if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");} graphxml_edge_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_name);
        YY_BREAK
 case 27:
+/* rule 27 can match eol */
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `graph' element start tag.",xbt_graph_parse_text);
-       YY_BREAK
-case YY_STATE_EOF(AL_graphxml_graph):
-FAIL("EOF in attribute list of `graph' element.");
+if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");}  graphxml_edge_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_name);
        YY_BREAK
-
 case 28:
 /* rule 28 can match eol */
 YY_RULE_SETUP
-{
-  LEAVE;
-  ETag_graphxml_graph();
-  popbuffer(); /* attribute */
-  switch (YY_START) {
-   case ROOT_graphxml_graph: SET(EPILOG); break;
-  }
- }
+if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");} graphxml_edge_source_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_source);
        YY_BREAK
 case 29:
 /* rule 29 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</graph>' expected.",xbt_graph_parse_text);
+if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");}  graphxml_edge_source_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_source);
        YY_BREAK
 case 30:
+/* rule 30 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</graph>' expected.",xbt_graph_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(S_graphxml_graph):
-case YY_STATE_EOF(E_graphxml_graph):
-case YY_STATE_EOF(S_graphxml_graph_3):
-case YY_STATE_EOF(S_graphxml_graph_5):
-case YY_STATE_EOF(S_graphxml_graph_1):
-FAIL("Premature EOF: `</graph>' expected.");
+if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");} graphxml_edge_target_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_target);
        YY_BREAK
-
-/*     label           CDATA                ""
-  *     name            CDATA                #REQUIRED
-  *     data            CDATA                ""
-  *     position_x         CDATA                "-1.0"
-  *     position_y         CDATA                "-1.0"
-  * >  */
 case 31:
 /* rule 31 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <node> is not allowed here.");
+if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");}  graphxml_edge_target_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_target);
        YY_BREAK
 case 32:
-/* rule 32 can match eol */
 YY_RULE_SETUP
 {
-  AX_graphxml_node_label = 0;
-  graphxml_node_label_isset = 0;
-  AX_graphxml_node_name = 0;
-  graphxml_node_name_isset = 0;
-  AX_graphxml_node_data = 0;
-  graphxml_node_data_isset = 0;
-  AX_graphxml_node_position___x = 1;
-  graphxml_node_position___x_isset = 0;
-  AX_graphxml_node_position___y = 6;
-  graphxml_node_position___y_isset = 0;
-  ENTER(AL_graphxml_node); pushbuffer(0);
-  }
+  if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
+  if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
+  LEAVE; STag_graphxml_edge();graphxml_pcdata_ix = 0; ENTER(E_graphxml_edge);
+ }
        YY_BREAK
-
 case 33:
-/* rule 33 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");} graphxml_node_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_label);
+{
+  if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
+  if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
+  LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */
+  switch (YY_START) {
+   case ROOT_graphxml_edge: SET(EPILOG); break;
+   case S_graphxml_graph: case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_4: case S_graphxml_graph_5: SET(S_graphxml_graph_5); break;
+  }
+ }
        YY_BREAK
 case 34:
-/* rule 34 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");}  graphxml_node_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_label);
+FAIL("Unexpected character `%c' in attribute list of edge element.", xbt_graph_parse_text[0]);
        YY_BREAK
 case 35:
-/* rule 35 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");} graphxml_node_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_name);
+FAIL("Bad attribute `%s' in `edge' element start tag.",xbt_graph_parse_text);
+       YY_BREAK
+case YY_STATE_EOF(AL_graphxml_edge):
+FAIL("EOF in attribute list of `edge' element.");
        YY_BREAK
+
 case 36:
 /* rule 36 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");}  graphxml_node_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_name);
+{
+  LEAVE;
+  ETag_graphxml_edge();
+  popbuffer(); /* attribute */
+  switch (YY_START) {
+   case ROOT_graphxml_edge: SET(EPILOG); break;
+   case S_graphxml_graph: case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_4: case S_graphxml_graph_5: SET(S_graphxml_graph_5); break;
+  }
+ }
        YY_BREAK
 case 37:
 /* rule 37 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");} graphxml_node_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_data);
+FAIL("Unexpected end-tag `%s': `</edge>' expected.",xbt_graph_parse_text);
        YY_BREAK
 case 38:
-/* rule 38 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");}  graphxml_node_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_data);
+FAIL("Unexpected character `%c': `</edge>' expected.",xbt_graph_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_graphxml_edge):
+FAIL("Premature EOF: `</edge>' expected.");
        YY_BREAK
+
+/* <!-- Small DTD for xbt graphs. -->  */
+/*     isDirected (true|false) "true"
+  * >  */
 case 39:
 /* rule 39 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_position___x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");} graphxml_node_position___x_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position___x);
+FAIL("Starting tag <graph> is not allowed here.");
        YY_BREAK
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_position___x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");}  graphxml_node_position___x_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position___x);
+{
+  AX_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
+  graphxml_graph_isDirected_isset = 0;
+  ENTER(AL_graphxml_graph); pushbuffer(0);
+  }
        YY_BREAK
+
 case 41:
 /* rule 41 can match eol */
-YY_RULE_SETUP
-if (graphxml_node_position___y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");} graphxml_node_position___y_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position___y);
-       YY_BREAK
 case 42:
 /* rule 42 can match eol */
 YY_RULE_SETUP
-if (graphxml_node_position___y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");}  graphxml_node_position___y_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position___y);
+A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
        YY_BREAK
 case 43:
+/* rule 43 can match eol */
+case 44:
+/* rule 44 can match eol */
+YY_RULE_SETUP
+A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false;
+       YY_BREAK
+case 45:
 YY_RULE_SETUP
 {
-  if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
-  LEAVE; STag_graphxml_node();graphxml_pcdata_ix = 0; ENTER(E_graphxml_node);
+  LEAVE; STag_graphxml_graph();graphxml_pcdata_ix = 0; ENTER(S_graphxml_graph);
  }
        YY_BREAK
-case 44:
+case 46:
 YY_RULE_SETUP
 {
-  if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
-  LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */
+  LEAVE; STag_graphxml_graph(); graphxml_pcdata_ix = 0; ETag_graphxml_graph(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
-   case ROOT_graphxml_node: SET(EPILOG); break;
+   case ROOT_graphxml_graph: SET(EPILOG); break;
   }
  }
        YY_BREAK
-case 45:
+case 47:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of node element.", xbt_graph_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of graph element.", xbt_graph_parse_text[0]);
        YY_BREAK
-case 46:
+case 48:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `node' element start tag.",xbt_graph_parse_text);
+FAIL("Bad attribute `%s' in `graph' element start tag.",xbt_graph_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_graphxml_node):
-FAIL("EOF in attribute list of `node' element.");
+case YY_STATE_EOF(AL_graphxml_graph):
+FAIL("EOF in attribute list of `graph' element.");
        YY_BREAK
 
-case 47:
-/* rule 47 can match eol */
+case 49:
+/* rule 49 can match eol */
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_graphxml_node();
+  ETag_graphxml_graph();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
-   case ROOT_graphxml_node: SET(EPILOG); break;
+   case ROOT_graphxml_graph: SET(EPILOG); break;
   }
  }
        YY_BREAK
-case 48:
-/* rule 48 can match eol */
-YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</node>' expected.",xbt_graph_parse_text);
-       YY_BREAK
-case 49:
-YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</node>' expected.",xbt_graph_parse_text[0]);
-       YY_BREAK
-case YY_STATE_EOF(E_graphxml_node):
-FAIL("Premature EOF: `</node>' expected.");
-       YY_BREAK
-
-/*     label           CDATA                ""
-  *     name            CDATA               #IMPLIED
-  *     source          CDATA               #REQUIRED
-  *     target          CDATA               #REQUIRED
-  *     length          CDATA               "-1.0"
-  *     data            CDATA               ""
-  * >  */
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-FAIL("Starting tag <edge> is not allowed here.");
+FAIL("Unexpected end-tag `%s': `</graph>' expected.",xbt_graph_parse_text);
        YY_BREAK
 case 51:
-/* rule 51 can match eol */
 YY_RULE_SETUP
-{
-  AX_graphxml_edge_label = 0;
-  graphxml_edge_label_isset = 0;
-  AX_graphxml_edge_name = 0;
-  graphxml_edge_name_isset = 0;
-  AX_graphxml_edge_source = 0;
-  graphxml_edge_source_isset = 0;
-  AX_graphxml_edge_target = 0;
-  graphxml_edge_target_isset = 0;
-  AX_graphxml_edge_length = 11;
-  graphxml_edge_length_isset = 0;
-  AX_graphxml_edge_data = 0;
-  graphxml_edge_data_isset = 0;
-  ENTER(AL_graphxml_edge); pushbuffer(0);
-  }
+FAIL("Unexpected character `%c': `</graph>' expected.",xbt_graph_parse_text[0]);
+       YY_BREAK
+case YY_STATE_EOF(E_graphxml_graph):
+case YY_STATE_EOF(S_graphxml_graph):
+case YY_STATE_EOF(S_graphxml_graph_1):
+case YY_STATE_EOF(S_graphxml_graph_3):
+case YY_STATE_EOF(S_graphxml_graph_5):
+FAIL("Premature EOF: `</graph>' expected.");
        YY_BREAK
 
+/*     label           CDATA                ""
+  *     name            CDATA                #REQUIRED
+  *     data            CDATA                ""
+  *     position_x         CDATA                "-1.0"
+  *     position_y         CDATA                "-1.0"
+  * >  */
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");} graphxml_edge_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_label);
+FAIL("Starting tag <node> is not allowed here.");
        YY_BREAK
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");}  graphxml_edge_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_label);
+{
+  AX_graphxml_node_data = 0;
+  graphxml_node_data_isset = 0;
+  AX_graphxml_node_label = 0;
+  graphxml_node_label_isset = 0;
+  AX_graphxml_node_name = 0;
+  graphxml_node_name_isset = 0;
+  AX_graphxml_node_position___x = 1;
+  graphxml_node_position___x_isset = 0;
+  AX_graphxml_node_position___y = 6;
+  graphxml_node_position___y_isset = 0;
+  ENTER(AL_graphxml_node); pushbuffer(0);
+  }
        YY_BREAK
+
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");} graphxml_edge_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_name);
+if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");} graphxml_node_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_data);
        YY_BREAK
 case 55:
 /* rule 55 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");}  graphxml_edge_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_name);
+if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");}  graphxml_node_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_data);
        YY_BREAK
 case 56:
 /* rule 56 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");} graphxml_edge_source_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_source);
+if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");} graphxml_node_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_label);
        YY_BREAK
 case 57:
 /* rule 57 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");}  graphxml_edge_source_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_source);
+if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");}  graphxml_node_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_label);
        YY_BREAK
 case 58:
 /* rule 58 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");} graphxml_edge_target_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_target);
+if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");} graphxml_node_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_name);
        YY_BREAK
 case 59:
 /* rule 59 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");}  graphxml_edge_target_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_target);
+if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");}  graphxml_node_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_name);
        YY_BREAK
 case 60:
 /* rule 60 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");} graphxml_edge_length_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_length);
+if (graphxml_node_position___x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");} graphxml_node_position___x_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position___x);
        YY_BREAK
 case 61:
 /* rule 61 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");}  graphxml_edge_length_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_length);
+if (graphxml_node_position___x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");}  graphxml_node_position___x_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position___x);
        YY_BREAK
 case 62:
 /* rule 62 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");} graphxml_edge_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_data);
+if (graphxml_node_position___y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");} graphxml_node_position___y_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position___y);
        YY_BREAK
 case 63:
 /* rule 63 can match eol */
 YY_RULE_SETUP
-if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");}  graphxml_edge_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_data);
+if (graphxml_node_position___y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");}  graphxml_node_position___y_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position___y);
        YY_BREAK
 case 64:
 YY_RULE_SETUP
 {
-  if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
-  if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
-  LEAVE; STag_graphxml_edge();graphxml_pcdata_ix = 0; ENTER(E_graphxml_edge);
+  if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
+  LEAVE; STag_graphxml_node();graphxml_pcdata_ix = 0; ENTER(E_graphxml_node);
  }
        YY_BREAK
 case 65:
 YY_RULE_SETUP
 {
-  if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
-  if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
-  LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */
+  if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
+  LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */
   switch (YY_START) {
-   case ROOT_graphxml_edge: SET(EPILOG); break;
-   case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph_1: case S_graphxml_graph: case S_graphxml_graph_3: SET(S_graphxml_graph_5); break;
+   case ROOT_graphxml_node: SET(EPILOG); break;
+   case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
   }
  }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c' in attribute list of edge element.", xbt_graph_parse_text[0]);
+FAIL("Unexpected character `%c' in attribute list of node element.", xbt_graph_parse_text[0]);
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-FAIL("Bad attribute `%s' in `edge' element start tag.",xbt_graph_parse_text);
+FAIL("Bad attribute `%s' in `node' element start tag.",xbt_graph_parse_text);
        YY_BREAK
-case YY_STATE_EOF(AL_graphxml_edge):
-FAIL("EOF in attribute list of `edge' element.");
+case YY_STATE_EOF(AL_graphxml_node):
+FAIL("EOF in attribute list of `node' element.");
        YY_BREAK
 
 case 68:
@@ -2132,25 +2132,25 @@ case 68:
 YY_RULE_SETUP
 {
   LEAVE;
-  ETag_graphxml_edge();
+  ETag_graphxml_node();
   popbuffer(); /* attribute */
   switch (YY_START) {
-   case ROOT_graphxml_edge: SET(EPILOG); break;
-   case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph_1: case S_graphxml_graph: case S_graphxml_graph_3: SET(S_graphxml_graph_5); break;
+   case ROOT_graphxml_node: SET(EPILOG); break;
+   case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
   }
  }
        YY_BREAK
 case 69:
 /* rule 69 can match eol */
 YY_RULE_SETUP
-FAIL("Unexpected end-tag `%s': `</edge>' expected.",xbt_graph_parse_text);
+FAIL("Unexpected end-tag `%s': `</node>' expected.",xbt_graph_parse_text);
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-FAIL("Unexpected character `%c': `</edge>' expected.",xbt_graph_parse_text[0]);
+FAIL("Unexpected character `%c': `</node>' expected.",xbt_graph_parse_text[0]);
        YY_BREAK
-case YY_STATE_EOF(E_graphxml_edge):
-FAIL("Premature EOF: `</edge>' expected.");
+case YY_STATE_EOF(E_graphxml_node):
+FAIL("Premature EOF: `</node>' expected.");
        YY_BREAK
 
 /* EPILOG: after the root element. */
@@ -2271,11 +2271,11 @@ YY_RULE_SETUP
 ECHO;
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(ROOT_graphxml_edge):
 case YY_STATE_EOF(ROOT_graphxml_graph):
 case YY_STATE_EOF(S_graphxml_graph_2):
 case YY_STATE_EOF(S_graphxml_graph_4):
 case YY_STATE_EOF(ROOT_graphxml_node):
-case YY_STATE_EOF(ROOT_graphxml_edge):
 case YY_STATE_EOF(IMPOSSIBLE):
        yyterminate();
 
@@ -2554,7 +2554,7 @@ static int yy_get_next_buffer (void)
 {
        yy_state_type yy_current_state;
        char *yy_cp;
-
+    
        yy_current_state = (yy_start);
 
        for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
@@ -2614,7 +2614,7 @@ static int yy_get_next_buffer (void)
 
 {
        int c;
-
+    
        *(yy_c_buf_p) = (yy_hold_char);
 
        if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
@@ -2676,7 +2676,7 @@ static int yy_get_next_buffer (void)
        (yy_hold_char) = *++(yy_c_buf_p);
 
        if ( c == '\n' )
-
+                  
     xbt_graph_parse_lineno++;
 ;
 
@@ -2686,12 +2686,12 @@ static int yy_get_next_buffer (void)
 
 /** Immediately switch to a different input stream.
  * @param input_file A readable stream.
- *
+ * 
  * @note This function does not reset the start condition to @c INITIAL .
  */
     void xbt_graph_parse_restart  (FILE * input_file )
 {
-
+    
        if ( ! YY_CURRENT_BUFFER ){
         xbt_graph_parse_ensure_buffer_stack ();
                YY_CURRENT_BUFFER_LVALUE =
@@ -2704,11 +2704,11 @@ static int yy_get_next_buffer (void)
 
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
- *
+ * 
  */
     void xbt_graph_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
 {
-
+    
        /* TODO. We should be able to replace this entire function body
         * with
         *              xbt_graph_parse_pop_buffer_state();
@@ -2748,13 +2748,13 @@ static void xbt_graph_parse__load_buffer_state  (void)
 /** Allocate and initialize an input buffer state.
  * @param file A readable stream.
  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
+ * 
  * @return the allocated buffer state.
  */
     YY_BUFFER_STATE xbt_graph_parse__create_buffer  (FILE * file, int  size )
 {
        YY_BUFFER_STATE b;
-
+    
        b = (YY_BUFFER_STATE) xbt_graph_parse_alloc(sizeof( struct yy_buffer_state )  );
        if ( ! b )
                YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__create_buffer()" );
@@ -2777,11 +2777,11 @@ static void xbt_graph_parse__load_buffer_state  (void)
 
 /** Destroy the buffer.
  * @param b a buffer created with xbt_graph_parse__create_buffer()
- *
+ * 
  */
     void xbt_graph_parse__delete_buffer (YY_BUFFER_STATE  b )
 {
-
+    
        if ( ! b )
                return;
 
@@ -2802,7 +2802,7 @@ static void xbt_graph_parse__load_buffer_state  (void)
 
 {
        int oerrno = errno;
-
+    
        xbt_graph_parse__flush_buffer(b );
 
        b->yy_input_file = file;
@@ -2818,13 +2818,13 @@ static void xbt_graph_parse__load_buffer_state  (void)
     }
 
         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
+    
        errno = oerrno;
 }
 
 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
+ * 
  */
     void xbt_graph_parse__flush_buffer (YY_BUFFER_STATE  b )
 {
@@ -2853,7 +2853,7 @@ static void xbt_graph_parse__load_buffer_state  (void)
  *  the current state. This function will allocate the stack
  *  if necessary.
  *  @param new_buffer The new state.
- *
+ *  
  */
 void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
 {
@@ -2883,7 +2883,7 @@ void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
 
 /** Removes and deletes the top of the stack, if present.
  *  The next element becomes the new top.
- *
+ *  
  */
 void xbt_graph_parse_pop_buffer_state (void)
 {
@@ -2907,7 +2907,7 @@ void xbt_graph_parse_pop_buffer_state (void)
 static void xbt_graph_parse_ensure_buffer_stack (void)
 {
        yy_size_t num_to_alloc;
-
+    
        if (!(yy_buffer_stack)) {
 
                /* First allocation is just for 2 elements, since we don't know if this
@@ -2920,9 +2920,9 @@ static void xbt_graph_parse_ensure_buffer_stack (void)
                                                                );
                if ( ! (yy_buffer_stack) )
                        YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse_ensure_buffer_stack()" );
-
+                                                                 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
+                               
                (yy_buffer_stack_max) = num_to_alloc;
                (yy_buffer_stack_top) = 0;
                return;
@@ -2950,13 +2950,13 @@ static void xbt_graph_parse_ensure_buffer_stack (void)
 /** Setup the input buffer state to scan directly from a user-specified character buffer.
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
+ * 
+ * @return the newly allocated buffer state object. 
  */
 YY_BUFFER_STATE xbt_graph_parse__scan_buffer  (char * base, yy_size_t  size )
 {
        YY_BUFFER_STATE b;
-
+    
        if ( size < 2 ||
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
             base[size-1] != YY_END_OF_BUFFER_CHAR )
@@ -2985,14 +2985,14 @@ YY_BUFFER_STATE xbt_graph_parse__scan_buffer  (char * base, yy_size_t  size )
 /** Setup the input buffer state to scan a string. The next call to xbt_graph_parse_lex() will
  * scan from a @e copy of @a str.
  * @param yystr a NUL-terminated string to scan
- *
+ * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
  *       xbt_graph_parse__scan_bytes() instead.
  */
 YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char * yystr )
 {
-
+    
        return xbt_graph_parse__scan_bytes(yystr,strlen(yystr) );
 }
 
@@ -3000,7 +3000,7 @@ YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char * yystr )
  * scan from a @e copy of @a bytes.
  * @param yybytes the byte buffer to scan
  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
+ * 
  * @return the newly allocated buffer state object.
  */
 YY_BUFFER_STATE xbt_graph_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
@@ -3009,7 +3009,7 @@ YY_BUFFER_STATE xbt_graph_parse__scan_bytes  (yyconst char * yybytes, yy_size_t
        char *buf;
        yy_size_t n;
        yy_size_t i;
-
+    
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = _yybytes_len + 2;
        buf = (char *) xbt_graph_parse_alloc(n  );
@@ -3095,16 +3095,16 @@ static void yy_fatal_error (yyconst char* msg )
 /* Accessor  methods (get/set functions) to struct members. */
 
 /** Get the current line number.
- *
+ * 
  */
 int xbt_graph_parse_get_lineno  (void)
 {
-
+        
     return xbt_graph_parse_lineno;
 }
 
 /** Get the input stream.
- *
+ * 
  */
 FILE *xbt_graph_parse_get_in  (void)
 {
@@ -3112,7 +3112,7 @@ FILE *xbt_graph_parse_get_in  (void)
 }
 
 /** Get the output stream.
- *
+ * 
  */
 FILE *xbt_graph_parse_get_out  (void)
 {
@@ -3120,7 +3120,7 @@ FILE *xbt_graph_parse_get_out  (void)
 }
 
 /** Get the length of the current token.
- *
+ * 
  */
 yy_size_t xbt_graph_parse_get_leng  (void)
 {
@@ -3128,7 +3128,7 @@ yy_size_t xbt_graph_parse_get_leng  (void)
 }
 
 /** Get the current token.
- *
+ * 
  */
 
 char *xbt_graph_parse_get_text  (void)
@@ -3138,18 +3138,18 @@ char *xbt_graph_parse_get_text  (void)
 
 /** Set the current line number.
  * @param line_number
- *
+ * 
  */
 void xbt_graph_parse_set_lineno (int  line_number )
 {
-
+    
     xbt_graph_parse_lineno = line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param in_str A readable stream.
- *
+ * 
  * @see xbt_graph_parse__switch_to_buffer
  */
 void xbt_graph_parse_set_in (FILE *  in_str )
@@ -3180,7 +3180,7 @@ static int yy_init_globals (void)
 
     /* We do not touch xbt_graph_parse_lineno unless the option is enabled. */
     xbt_graph_parse_lineno =  1;
-
+    
     (yy_buffer_stack) = 0;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
@@ -3210,7 +3210,7 @@ static int yy_init_globals (void)
 /* xbt_graph_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
 int xbt_graph_parse_lex_destroy  (void)
 {
-
+    
     /* Pop the buffer stack, destroying each element. */
        while(YY_CURRENT_BUFFER){
                xbt_graph_parse__delete_buffer(YY_CURRENT_BUFFER  );
index 144d9e6..2153d42 100644 (file)
@@ -174,12 +174,12 @@ void *xbt_heap_remove(xbt_heap_t H, int i)
  *  @param key the key associated to this object
  */
 void xbt_heap_rm_elm(xbt_heap_t H, void *content, double key) {
-       int i=0;
-       while (i < H->count && (KEY(H, i) != key || CONTENT(H, i) != content))
-               i++;
-       if (i == H->count)
-               return;
-       xbt_heap_remove(H,i);
+  int i=0;
+  while (i < H->count && (KEY(H, i) != key || CONTENT(H, i) != content))
+    i++;
+  if (i == H->count)
+    return;
+  xbt_heap_remove(H,i);
 }
 
 /**
index 8c7c827..8e2f0f6 100644 (file)
@@ -66,7 +66,7 @@ void xbt_lib_set(xbt_lib_t lib, const char *key, int level, void *obj)
     XBT_DEBUG("Replace %p by %p element under key '%s:%d'",
               elts[level], obj, key, level);
     if (lib->free_f[level])
-       lib->free_f[level](elts[level]);
+      lib->free_f[level](elts[level]);
   }
   elts[level] = obj;
 }
index 6592d41..49d4529 100644 (file)
@@ -695,8 +695,6 @@ static void xbt_log_connect_categories(void)
 
   /* surf */
   XBT_LOG_CONNECT(surf);
-  XBT_LOG_CONNECT(platf_generator);
-  XBT_LOG_CONNECT(random);
   XBT_LOG_CONNECT(surf_config);
   XBT_LOG_CONNECT(surf_cpu);
   XBT_LOG_CONNECT(surf_cpu_cas);
@@ -1097,7 +1095,6 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
   dot = control_string;
   control_string += strcspn(control_string, ":= ");
   eq = control_string;
-  control_string += strcspn(control_string, " ");
 
   if(*dot != '.' && (*eq == '=' || *eq == ':'))
     xbt_die ("Invalid control string '%s'", orig_control_string);
@@ -1123,9 +1120,9 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
 
     if(i<XBT_LOG_STATIC_THRESHOLD){
      fprintf(stderr,
-                "Priority '%s' (in setting '%s') is above allowed priority '%s'.\n\n"
-                "Compiling SimGrid with -DNDEBUG forbids the levels 'trace' and 'debug'\n"
-                "while -DNLOG forbids any logging, at any level.",
+         "Priority '%s' (in setting '%s') is above allowed priority '%s'.\n\n"
+         "Compiling SimGrid with -DNDEBUG forbids the levels 'trace' and 'debug'\n"
+         "while -DNLOG forbids any logging, at any level.",
              eq + 1, name, xbt_log_priority_names[XBT_LOG_STATIC_THRESHOLD]);
      exit(1);
     }else if (i < xbt_log_priority_infinite) {
@@ -1162,9 +1159,9 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
     if (!strncmp(neweq, "file:", 5)) {
       set->appender = xbt_log_appender_file_new(neweq + 5);
     }else if (!strncmp(neweq, "rollfile:", 9)) {
-               set->appender = xbt_log_appender2_file_new(neweq + 9,1);
+    set->appender = xbt_log_appender2_file_new(neweq + 9,1);
     }else if (!strncmp(neweq, "splitfile:", 10)) {
-               set->appender = xbt_log_appender2_file_new(neweq + 10,0);
+    set->appender = xbt_log_appender2_file_new(neweq + 10,0);
     } else {
       THROWF(arg_error, 0, "Unknown appender log type: '%s'", neweq);
     }
index 8b9ebaa..3440236 100644 (file)
@@ -359,7 +359,7 @@ void mmalloc_postexit(void)
 size_t mmalloc_get_bytes_used_remote(size_t heaplimit, const malloc_info* heapinfo)
 {
   int bytes = 0;
-  for (size_t i=0; i < heaplimit; ++i){
+  for (size_t i=0; i<=heaplimit; ++i){
     if (heapinfo[i].type == MMALLOC_TYPE_UNFRAGMENTED){
       if (heapinfo[i].busy_block.busy_size > 0)
         bytes += heapinfo[i].busy_block.busy_size;
diff --git a/src/xbt/mmalloc/mmtrace.awk b/src/xbt/mmalloc/mmtrace.awk
deleted file mode 100644 (file)
index d7689ce..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-#  Awk program to analyze mtrace.c output.
-#
-$1 == "+"      { if (allocated[$2] != "")
-                   print "+", $2, "Alloc", NR, "duplicate:", allocated[$2];
-                 else
-                   allocated[$2] = $3;
-               }
-$1 == "-"      { if (allocated[$2] != "") {
-                   allocated[$2] = "";
-                   if (allocated[$2] != "")
-                       print "DELETE FAILED", $2, allocated[$2];
-                 } else
-                   print "-", $2, "Free", NR, "was never alloc'd";
-               }
-$1 == "<"      { if (allocated[$2] != "")
-                   allocated[$2] = "";
-                 else
-                   print "-", $2, "Realloc", NR, "was never alloc'd";
-               }
-$1 == ">"      { if (allocated[$2] != "")
-                   print "+", $2, "Realloc", NR, "duplicate:", allocated[$2];
-                 else
-                   allocated[$2] = $3;
-               }
-
-# Ignore "= Start"
-$1 == "="      { }
-# Ignore failed realloc attempts for now
-$1 == "!"      { }
-
-
-END            { for (x in allocated) 
-                   if (allocated[x] != "")
-                     print "+", x, allocated[x];
-               }
index 7033d6e..82f8141 100644 (file)
@@ -138,7 +138,10 @@ xbt_log_appender_t xbt_log_appender2_file_new(char *arg,int roll) {
   xbt_assert(sep>0);
   data->filename=xbt_strdup(sep+1);
   *sep='\0';
-  data->limit=atol(buf);
+  char *endptr;
+  data->limit=strtol(buf,&endptr,10);
+  xbt_assert(endptr[0]=='\0', "Invalid buffer size: %s", buf);
+  xbt_free(buf);
   if(roll)
     data->count=-1;
   else
index 9c718df..7c6795f 100644 (file)
@@ -90,7 +90,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
 
 static void xbt_preinit(void) {
   unsigned int seed = 2147483647;
-#ifndef WIN32
+#ifndef _XBT_WIN32
   xbt_pagesize = sysconf(_SC_PAGESIZE);
 #else
   SYSTEM_INFO si;
@@ -115,7 +115,7 @@ static void xbt_preinit(void) {
   xbt_dict_preinit();
    
   srand(seed);
-#ifndef _WIN32
+#ifndef _XBT_WIN32
   srand48(seed);
 #endif
   atexit(xbt_postexit);
index 2083693..2dda1b2 100644 (file)
@@ -68,13 +68,16 @@ ssize_t xbt_getline(char **buf, size_t *n, FILE *stream)
  */
 char *xbt_dirname(const char *path) {
 #if _MSC_VER
-         char drive[_MAX_DRIVE];
-         char dir[_MAX_DIR];
-         errno_t err;
-         err = _splitpath_s(path, drive, _MAX_DRIVE, dir, _MAX_DIR, NULL,0, NULL,0);
-         return bprintf("%s%s",drive,dir);
+    char drive[_MAX_DRIVE];
+    char dir[_MAX_DIR];
+    errno_t err;
+    err = _splitpath_s(path, drive, _MAX_DRIVE, dir, _MAX_DIR, NULL,0, NULL,0);
+    return bprintf("%s%s",drive,dir);
 #else
-         return dirname(xbt_strdup(path));
+    char *tmp = xbt_strdup(path);
+    char *res = xbt_strdup(dirname(tmp));
+    free(tmp);
+    return res;
 #endif
 }
 /** @brief Returns the file component of a path (reimplementation of POSIX basename)
@@ -83,12 +86,15 @@ char *xbt_dirname(const char *path) {
  */
 char *xbt_basename(const char *path) {
 #if _MSC_VER
-         char file[1024];
-         char ext[1024];
-         errno_t err;
-         err = _splitpath_s(path, NULL,0, NULL,0, file,1024, ext,1024);
-         return bprintf("%s.%s",file,ext);
+    char file[1024];
+    char ext[1024];
+    errno_t err;
+    err = _splitpath_s(path, NULL,0, NULL,0, file,1024, ext,1024);
+    return bprintf("%s.%s",file,ext);
 #else
-         return basename(xbt_strdup(path));
+    char *tmp = xbt_strdup(path);
+    char *res = xbt_strdup(basename(tmp));
+    free(tmp);
+    return res;
 #endif
 }
index db8e2ac..fd52a4d 100644 (file)
@@ -45,7 +45,7 @@ void xbt_mutex_release(xbt_mutex_t mutex)
 
 void xbt_mutex_destroy(xbt_mutex_t mutex)
 {
-  simcall_mutex_destroy((smx_mutex_t) mutex);
+  SIMIX_mutex_destroy((smx_mutex_t) mutex);
 }
 
 /***** condition related functions *****/
@@ -80,7 +80,7 @@ void xbt_cond_broadcast(xbt_cond_t cond)
 
 void xbt_cond_destroy(xbt_cond_t cond)
 {
-  simcall_cond_destroy((smx_cond_t) cond);
+  SIMIX_cond_destroy((smx_cond_t) cond);
 }
 
 /***** barrier related functions *****/
index f7ed95e..78c4733 100644 (file)
@@ -1,6 +1,6 @@
 /* xbt_os_thread -- portability layer over the pthread API                  */
 /* Used in RL to get win/lin portability, and in SG when CONTEXT_THREAD     */
-/* in SG, when using CONTEXT_UCONTEXT, xbt_os_thread_stub is used instead   */
+/* in SG, when using HAVE_UCONTEXT_CONTEXTS, xbt_os_thread_stub is used instead   */
 
 /* Copyright (c) 2007-2015. The SimGrid Team.
  * All rights reserved.                                                     */
@@ -103,10 +103,13 @@ void xbt_os_thread_mod_preinit(void)
            "pthread_key_create failed for xbt_self_thread_key");
   
   main_thread = xbt_new(s_xbt_os_thread_t, 1);
+  main_thread->name = NULL;
+  main_thread->detached = 0;
   main_thread->name = (char *) "main";
-  main_thread->start_routine = NULL;
   main_thread->param = NULL;
+  main_thread->start_routine = NULL;
   main_thread->running_ctx = xbt_new(xbt_running_ctx_t, 1);
+  main_thread->extra_data = NULL;
   XBT_RUNNING_CTX_INITIALIZE(main_thread->running_ctx);
 
   if ((errcode = pthread_setspecific(xbt_self_thread_key, main_thread)))
@@ -291,14 +294,10 @@ void xbt_os_thread_exit(int *retval)
 
 xbt_os_thread_t xbt_os_thread_self(void)
 {
-  xbt_os_thread_t res;
-
   if (!thread_mod_inited)
     return NULL;
 
-  res = pthread_getspecific(xbt_self_thread_key);
-
-  return res;
+  return pthread_getspecific(xbt_self_thread_key);
 }
 
 void xbt_os_thread_key_create(xbt_os_thread_key_t* key) {
@@ -1303,8 +1302,11 @@ void xbt_os_thread_set_extra_data(void *data)
 
 void *xbt_os_thread_get_extra_data(void)
 {
-  xbt_os_thread_t self = xbt_os_thread_self();
-  return self? self->extra_data : NULL;
+  xbt_os_thread_t thread = xbt_os_thread_self();
+  if (thread)
+    return xbt_os_thread_self()->extra_data;
+  else
+    return NULL;
 }
 
 xbt_os_rmutex_t xbt_os_rmutex_init(void)
index b9eef79..9be103f 100644 (file)
@@ -140,7 +140,7 @@ void xbt_replay_action_unregister(const char *action_name)
 int _xbt_replay_action_init(void)
 {
   if (xbt_action_funs)
-         return 0;
+    return 0;
   is_replay_active = 1;
   xbt_action_funs = xbt_dict_new_homogeneous(NULL);
   xbt_action_queues = xbt_dict_new_homogeneous(NULL);
index 5935010..cfb2fea 100644 (file)
@@ -18,9 +18,9 @@
 #include "src/xbt_modinter.h"
 #include "xbt/sysdep.h"
 #include "xbt/xbt_os_thread.h"
-#include "src/portable.h"           /* CONTEXT_THREADS */
+#include "src/portable.h"           /* HAVE_THREAD_CONTEXTS */
 
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
 #ifndef WIN32
 #ifdef HAVE_PTHREAD
 /* xbt_threads is loaded in libsimgrid when they are used to implement the xbt_context.
index c2384f1..cee4235 100644 (file)
@@ -874,9 +874,46 @@ int xbt_str_start_with(const char* str, const char* start)
   return 1;
 }
 
+/** @brief Parse an integer out of a string, or raise an error
+ *
+ * The #str is passed as argument to your #error_msg, as follows:
+ *       THROWF(arg_error, 0, error_msg, str);
+ */
+long int xbt_str_parse_int(const char* str, const char* error_msg)
+{
+  char *endptr;
+  if (str == NULL || str[0] == '\0')
+    THROWF(arg_error, 0, error_msg, str);
+
+  long int res = strtol(str, &endptr, 10);
+  if (endptr[0] != '\0')
+    THROWF(arg_error, 0, error_msg, str);
+
+  return res;
+}
+/** @brief Parse a double out of a string, or raise an error
+ *
+ * The #str is passed as argument to your #error_msg, as follows:
+ *       THROWF(arg_error, 0, error_msg, str);
+ */
+double xbt_str_parse_double(const char* str, const char* error_msg)
+{
+  char *endptr;
+  if (str == NULL || str[0] == '\0')
+    THROWF(arg_error, 0, error_msg, str);
+
+  double res = strtod(str, &endptr);
+  if (endptr[0] != '\0')
+    THROWF(arg_error, 0, error_msg, str);
+
+  return res;
+}
+
 #ifdef SIMGRID_TEST
 #include "xbt/str.h"
 
+XBT_TEST_SUITE("xbt_str", "String Handling");
+
 #define mytest(name, input, expected) \
   xbt_test_add(name); \
   d=xbt_str_split_quoted(input); \
@@ -886,8 +923,6 @@ int xbt_str_start_with(const char* str, const char* start)
                    input,s,expected);\
                    free(s); \
                    xbt_dynar_free(&d);
-
-XBT_TEST_SUITE("xbt_str", "String Handling");
 XBT_TEST_UNIT("xbt_str_split_quoted", test_split_quoted, "test the function xbt_str_split_quoted")
 {
   xbt_dynar_t d;
@@ -1062,4 +1097,54 @@ XBT_TEST_UNIT("xbt_str_diff", test_diff, "test the function xbt_str_diff")
   }
 }
 
+#define test_parse_error(function, name, variable, str)                 \
+  do {                                                                  \
+    xbt_test_add(name);                                                 \
+    TRY {                                                               \
+      variable = function(str, "Parse error");                          \
+      xbt_test_fail("The test '%s' did not detect the problem",name );  \
+    } CATCH(e) {                                                        \
+      if (e.category != arg_error) {                                    \
+        xbt_test_exception(e);                                          \
+      } else {                                                          \
+        xbt_ex_free(e);                                                 \
+      }                                                                 \
+    }                                                                   \
+  } while (0)
+#define test_parse_ok(function, name, variable, str, value)             \
+  do {                                                                  \
+    xbt_test_add(name);                                                 \
+    TRY {                                                               \
+      variable = function(str, "Parse error");                          \
+    } CATCH(e) {                                                        \
+      xbt_test_exception(e);                                            \
+    }                                                                   \
+    xbt_test_assert(variable == value, "Fail to parse '%s'", str);      \
+  } while (0)
+
+XBT_TEST_UNIT("xbt_str_parse", test_parse, "Test the parsing functions")
+{
+  xbt_ex_t e;
+  int rint = -9999;
+  test_parse_ok(xbt_str_parse_int, "Parse int", rint, "42", 42);
+  test_parse_ok(xbt_str_parse_int, "Parse 0 as an int", rint, "0", 0);
+  test_parse_ok(xbt_str_parse_int, "Parse -1 as an int", rint, "-1", -1);
+
+  test_parse_error(xbt_str_parse_int, "Parse int + noise", rint, "342 cruft");
+  test_parse_error(xbt_str_parse_int, "Parse NULL as an int", rint, NULL);
+  test_parse_error(xbt_str_parse_int, "Parse '' as an int", rint, "");
+  test_parse_error(xbt_str_parse_int, "Parse cruft as an int", rint, "cruft");
+
+  double rdouble = -9999;
+  test_parse_ok(xbt_str_parse_double, "Parse 42 as a double", rdouble, "42", 42);
+  test_parse_ok(xbt_str_parse_double, "Parse 42.5 as a double", rdouble, "42.5", 42.5);
+  test_parse_ok(xbt_str_parse_double, "Parse 0 as a double", rdouble, "0", 0);
+  test_parse_ok(xbt_str_parse_double, "Parse -1 as a double", rdouble, "-1", -1);
+
+  test_parse_error(xbt_str_parse_double, "Parse double + noise", rdouble, "342 cruft");
+  test_parse_error(xbt_str_parse_double, "Parse NULL as a double", rdouble, NULL);
+  test_parse_error(xbt_str_parse_double, "Parse '' as a double", rdouble, "");
+  test_parse_error(xbt_str_parse_double, "Parse cruft as a double", rdouble, "cruft");
+}
+
 #endif                          /* SIMGRID_TEST */
index 366825d..5247795 100644 (file)
@@ -5,7 +5,6 @@ if(enable_smpi)
       set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
   endif()
 
-
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
@@ -18,19 +17,12 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/bug-17132.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bug-17132-surf-debug.tesh
   PARENT_SCOPE)
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/bug-17132.c
   PARENT_SCOPE)
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/README
   PARENT_SCOPE)
-
diff --git a/teshsuite/java/CMakeLists.txt b/teshsuite/java/CMakeLists.txt
deleted file mode 100644 (file)
index 1e0ef76..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
similarity index 50%
rename from examples/scala/master_slave_kill/CMakeLists.txt
rename to teshsuite/java/semaphore/CMakeLists.txt
index 6b014b8..1469e80 100644 (file)
@@ -1,17 +1,14 @@
-set(example scala_master_slave_kill)
+set(example java_semaphore_gc)
 set(sources
-  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Master.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/MsKill.scala
-  ${CMAKE_CURRENT_SOURCE_DIR}/Slave.scala
+  ${CMAKE_CURRENT_SOURCE_DIR}/SemaphoreGC.java
   )
 
-if(enable_scala)
+if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
     DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
+    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR}
                              -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
     COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
     COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
@@ -21,23 +18,9 @@ endif()
 
 set(tesh_files
   ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/kill.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/semaphore_gc.tesh
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
diff --git a/teshsuite/java/semaphore/SemaphoreGC.java b/teshsuite/java/semaphore/SemaphoreGC.java
new file mode 100644 (file)
index 0000000..ec1b6aa
--- /dev/null
@@ -0,0 +1,56 @@
+/* Copyright (c) 2016. The SimGrid Team. All rights reserved.               */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+/* This test ensures that the used semaphores are not garbage-collected while we still use it.
+ * This was reported as bug #19893 on gforge.
+ */
+
+package semaphore;
+
+import org.simgrid.msg.*;
+import org.simgrid.msg.Process;
+import org.simgrid.trace.Trace;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+class SemCreator extends Process {
+       Semaphore sem; 
+
+       SemCreator(Host h, String n){
+               super(h, n);
+       }
+
+       public void main(String[] args) throws MsgException{
+               int j; 
+               Msg.info("Creating 50 new Semaphores, yielding and triggering a GC after each");
+               for(j = 1; j <= 50; j++) {
+                       sem = new Semaphore(0);
+                       waitFor(10); 
+                       System.gc();
+               }
+               Msg.info("It worked, we survived. The test is passed.");
+       }
+}
+
+
+public class SemaphoreGC {
+       public static void main(String[] args) throws Exception {
+
+               Msg.init(args);
+               if (args.length < 1) {
+                       Msg.info("Usage: java -cp simgrid.jar:. semaphore.SemaphoreGC <deployment.xml>");
+                       System.exit(1);                 
+               }
+               Msg.createEnvironment(args[0]);
+
+               Host[] hosts = Host.all();
+               new SemCreator(hosts[0], "SemCreator").start();
+
+               Msg.run();
+       }
+
+}
diff --git a/teshsuite/java/semaphore/semaphore_gc.tesh b/teshsuite/java/semaphore/semaphore_gc.tesh
new file mode 100644 (file)
index 0000000..41bc593
--- /dev/null
@@ -0,0 +1,5 @@
+$ java -classpath ${classpath:=.} semaphore.SemaphoreGC ${srcdir:=.}/../../examples/platforms/small_platform.xml "--log=root.fmt:[%10.4r]%e(%i:%P@%h)%e%m%n"
+> [    0.0000] (0:maestro@) Using regular java threads.
+> [    0.0000] (1:SemCreator@Fafard) Creating 50 new Semaphores, yielding and triggering a GC after each
+> [  500.0000] (1:SemCreator@Fafard) It worked, we survived. The test is passed.
+> [  500.0000] (0:maestro@) MSG_main finished; Cleaning up the simulation...
index 18c2174..5f3db60 100644 (file)
@@ -1,6 +1,5 @@
 set(example java_sleep_host_off)
 set(sources
-  ${CMAKE_CURRENT_SOURCE_DIR}/Main.java
   ${CMAKE_CURRENT_SOURCE_DIR}/SleepHostOff.java
   )
 
@@ -20,23 +19,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/sleep_host_off.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/sleep_host_off_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${sources}
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
diff --git a/teshsuite/java/sleep_host_off/Main.java b/teshsuite/java/sleep_host_off/Main.java
deleted file mode 100644 (file)
index 3cc4cea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-package sleep_host_off;
-
-import org.simgrid.msg.Host;
-import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.NativeException;
-
-public class Main {
-
-    public static void main(String[] args) throws NativeException {
-       /* Init. internal values */
-        Msg.init(args);
-
-        if (args.length < 2) {
-            Msg.info("Usage  : Main platform_file.xml dployment_file.xml");
-            System.exit(1);
-        }
-
-       /* construct the platform and deploy the application */
-        Msg.createEnvironment(args[0]);
-        Msg.deployApplication(args[1]);
-
-        try {
-            Msg.run();
-        } catch (Exception e){
-            System.out.println("Bye bye the program crashes !");
-        }
-
-    }
-}
index 1d60cad..cebf7af 100644 (file)
@@ -14,42 +14,63 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class SleepHostOff extends Process{
-  public static Host jupiter = null;
-
-  public SleepHostOff(Host host, String name, String[]args) {
-    super(host,name,args);
-  }
-
-  public void main(String[] strings) throws MsgException {
-
-    try {
-      jupiter = Host.getByName("Jupiter");
-    } catch (HostNotFoundException e) {
-      e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-    }
-
-    Msg.info("**** **** **** ***** ***** Test Sleep ***** ***** **** **** ****");
-    Msg.info("Test sleep: Create a process on Jupiter, the process simply make periodic sleep, turn off Jupiter");
-    new Process(jupiter, "sleep", null) {
-      public void main(String[] args) {
-        while (true) {
-          Msg.info("I'm not dead");
-          try {
-            Process.sleep(10);
-          } catch (HostFailureException e) {
-            Msg.info("catch HostException: "+e.getLocalizedMessage());
-            break; //Break is needed to finalize the endless loop 
-          }
-        }
-      }
-    }.start();
-
-    Process.sleep(20);
-    Msg.info("Stop Jupiter");
-    jupiter.off();
-    Msg.info("Jupiter has been stopped");
-    Process.sleep(300);
-    Msg.info("Test sleep seems ok, cool !(number of Process : " + Process.getCount() + ", it should be 1 (i.e. the Test one))\n");
-  }
+class Sleeper extends Process {
+       public Sleeper(Host host, String name, String[] args) {
+               super(host,name,args);
+       }
+       public void main(String[] args) {
+               while (true) {
+                       Msg.info("I'm not dead");
+                       try {
+                               Process.sleep(10);
+                       } catch (HostFailureException e) {
+                               Msg.info("catch HostException: "+e.getLocalizedMessage());
+                               break; //Break is needed to finalize the endless loop 
+                       }
+               }
+       }       
+}
+
+class TestRunner extends Process {
+
+       public TestRunner(Host host, String name, String[] args) {
+               super(host,name,args);
+       }
+
+       public void main(String[] strings) throws MsgException {
+               Host host = Host.all()[1];
+
+
+               Msg.info("**** **** **** ***** ***** Test Sleep ***** ***** **** **** ****");
+               Msg.info("Test sleep: Create a process on "+host.getName()+" that simply make periodic sleep, turn off "+host.getName());
+               new Sleeper(host, "Sleeper", null).start();
+
+               waitFor(0.02);
+               Msg.info("Stop "+host.getName());
+               host.off();
+               Msg.info(host.getName()+" has been stopped");
+               waitFor(0.3);
+               Msg.info("Test sleep seems ok, cool! (number of Process : " + Process.getCount() + ", it should be 1 (i.e. the Test one))");
+       }
+}
+
+public class SleepHostOff {
+
+       public static void main(String[] args) throws Exception {
+               /* Init. internal values */
+               Msg.init(args);
+
+               if (args.length < 1) {
+                       Msg.info("Usage: java -cp simgrid.jar:. sleep_host_off.SleepHostOff <platform.xml>");
+                       System.exit(1);
+               }
+
+               /* construct the platform and deploy the application */
+               Msg.createEnvironment(args[0]);
+
+               Host[] hosts = Host.all();
+               new TestRunner(hosts[0], "TestRunner", null).start();
+
+               Msg.run();
+       }
 }
index 5e77e17..c371d7f 100644 (file)
@@ -1,13 +1,12 @@
-$ java -classpath ${classpath:=.} sleep_host_off.Main ${srcdir:=.}/../../examples/platforms/small_platform.xml ${srcdir:=.}/sleep_host_off/sleep_host_off_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} sleep_host_off.SleepHostOff ${srcdir:=.}/../../examples/platforms/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Using regular java threads.
-> [  0.000000] (1:sleep_host_off.SleepHostOff@Tremblay) **** **** **** ***** ***** Test Sleep ***** ***** **** **** ****
-> [  0.000000] (1:sleep_host_off.SleepHostOff@Tremblay) Test sleep: Create a process on Jupiter, the process simply make periodic sleep, turn off Jupiter
-> [  0.000000] (2:sleep@Jupiter) I'm not dead
-> [  0.010000] (2:sleep@Jupiter) I'm not dead
-> [  0.020000] (1:sleep_host_off.SleepHostOff@Tremblay) Stop Jupiter
-> [  0.020000] (2:sleep@Jupiter) I'm not dead
-> [  0.020000] (2:sleep@Jupiter) catch HostException: Host Failure (null)
-> [  0.020000] (1:sleep_host_off.SleepHostOff@Tremblay) Jupiter has been stopped
-> [  0.320000] (1:sleep_host_off.SleepHostOff@Tremblay) Test sleep seems ok, cool !(number of Process : 1, it should be 1 (i.e. the Test one))
->
+> [  0.000000] (1:TestRunner@Fafard) **** **** **** ***** ***** Test Sleep ***** ***** **** **** ****
+> [  0.000000] (1:TestRunner@Fafard) Test sleep: Create a process on Tremblay that simply make periodic sleep, turn off Tremblay
+> [  0.000000] (2:Sleeper@Tremblay) I'm not dead
+> [  0.010000] (2:Sleeper@Tremblay) I'm not dead
+> [  0.020000] (1:TestRunner@Fafard) Stop Tremblay
+> [  0.020000] (2:Sleeper@Tremblay) I'm not dead
+> [  0.020000] (2:Sleeper@Tremblay) catch HostException: Host Failure (null)
+> [  0.020000] (1:TestRunner@Fafard) Tremblay has been stopped
+> [  0.320000] (1:TestRunner@Fafard) Test sleep seems ok, cool! (number of Process : 1, it should be 1 (i.e. the Test one))
 > [  0.320000] (0:maestro@) MSG_main finished; Cleaning up the simulation...
index 96fcb1c..5394f0b 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="sleep_host_off.SleepHostOff">
-  </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="sleep_host_off.SleepHostOff"/>
 </platform>
index 8256397..73d251e 100644 (file)
@@ -13,15 +13,12 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/with_mutex_handling.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/without_mutex_handling.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/mutex_handling.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/mutex_handling.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 19d6829..7edcfc5 100644 (file)
@@ -8,10 +8,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/dwarf.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dwarf.cpp
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 9801f45..ce37b27 100644 (file)
@@ -8,10 +8,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/dwarf_expression.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dwarf_expression.cpp
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d5aad96..e07970b 100644 (file)
@@ -66,7 +66,7 @@ int main(int argc, char *argv[])
 {
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
 
    const char *platform_file = argv[1];
   const char *application_file = argv[2];
index 73e165a..7f60f93 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3"><!-- For using with ping_pong, platform_sendrecv.xml -->
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- For using with ping_pong, platform_sendrecv.xml -->
   <!-- receiver my_name -->
-  <process host="Disney" function="receiver"></process>
+  <process host="Disney" function="receiver"/>
 
   <!-- sender my_name receiver_name other_sender_name -->
   <process host="Jill" function="sender">
@@ -12,5 +12,4 @@
   <process host="UNIX" function="sender">
     <argument value="Y"/>
   </process>
-
 </platform>
index e4e986d..e768581 100644 (file)
@@ -6,15 +6,12 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/random_bug.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/random_bug_replay.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/random_bug.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/random_bug.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 46b16ec..d9ecb02 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-   <process host="Tremblay" function="app"/>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="app"/>
+</platform>
diff --git a/teshsuite/msg/CMakeLists.txt b/teshsuite/msg/CMakeLists.txt
deleted file mode 100644 (file)
index 0b5b777..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-### Add definitions for compile
-
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(teshsuite_src
-  ${teshsuite_src}
-  PARENT_SCOPE
-  )
-set(bin_files
-
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
index 7f9b57b..7141cba 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(get_sender get_sender.c)
-
-### Add definitions for compile
 target_link_libraries(get_sender simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/get_sender.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/get_sender_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/get_sender.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 9ae95b3..2437d64 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-   <!-- Deployment -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
    <process host="Tremblay" function="send"/>
    <process host="Tremblay" function="receive"/>
- </platform>
+</platform>
index e6c78e1..776a811 100644 (file)
@@ -3,7 +3,6 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 foreach(x host_on_off host_on_off_wait host_on_off_recv)
   add_executable(${x} ${x}.c)
   target_link_libraries(${x} simgrid)
-
 endforeach()
 
 set(tesh_files
@@ -11,26 +10,14 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_wait.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_recv.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off.c
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_wait.c
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_recv.c
-  PARENT_SCOPE
-  )
-
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_d.xml
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 427b45f..1c6e376 100644 (file)
@@ -109,8 +109,8 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
-            argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", 
+       argv[0], argv[0]);
   
   platform_file = argv[1];
   application_file = argv[2];
index 5c8fc7f..8ff8862 100644 (file)
@@ -1,11 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-  </process>
-
-  <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Jupiter" function="slave">
-  </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
+  <process host="Jupiter" function="slave"/>
 </platform>
index 73adf38..937396b 100644 (file)
@@ -86,7 +86,7 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
 
   platform_file = argv[1];
   application_file = argv[2];
index a3d829e..622c3cf 100644 (file)
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
 
   platform_file = argv[1];
   application_file = argv[2];
index a2ab6a5..166f781 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(host_on_off_processes host_on_off_processes.c)
-
-### Add definitions for compile
 target_link_libraries(host_on_off_processes simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_processes.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_processes_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/host_on_off_processes.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0bf7f20..a9a6559 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="test_launcher">
-  </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="test_launcher"/>
 </platform>
index f906c05..c8c0e90 100644 (file)
@@ -12,23 +12,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pid.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pid_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/pid.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f1c9122..e2ae5a4 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-   <!-- Deployment -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
    <process host="Tremblay" function="sendpid"/>
    <process host="Tremblay" function="sendpid"/>
    <process host="Tremblay" function="sendpid"/>
    <process host="Tremblay" function="killall"/>
- </platform>
+</platform>
index 00d7576..685c635 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(process process.c)
-
-### Add definitions for compile
 target_link_libraries(process simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/process.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/process_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/process.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 18cf2d1..5c75202 100644 (file)
@@ -79,7 +79,7 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc == 3, "Usage: %s platform_file deployment_file\n"
-            "\n Example: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\n Example: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
  
   platform_file = argv[1];
   application_file = argv[2];
index ee058c5..2b4aabc 100644 (file)
@@ -1,11 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-  </process>
-
-  <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Tremblay" function="slave">
-  </process>
-</platform>
\ No newline at end of file
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
+  <process host="Tremblay" function="slave"/>
+</platform>
index cdd4d36..883aa86 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(process_join ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/process_join/process_join.c)
-
-### Add definitions for compile
 target_link_libraries(process_join simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/process_join.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/process_join_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/process_join.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 6346190..ea69ac8 100644 (file)
@@ -1,7 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-  </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
 </platform>
index 89e4b2e..be971df 100644 (file)
@@ -15,24 +15,13 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/storage_basic.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/deployment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/storage_basic.c
   ${CMAKE_CURRENT_SOURCE_DIR}/concurrent_rw.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 201d8bc..0e8c60a 100644 (file)
@@ -58,9 +58,9 @@ void display_storage_properties(msg_storage_t storage){
   if (xbt_dict_length(props) > 0){
     XBT_INFO("\tProperties of mounted storage: %s", MSG_storage_get_name(storage));
     xbt_dict_foreach(props, cursor, key, data)
-         XBT_INFO("\t\t'%s' -> '%s'", key, data);
+    XBT_INFO("\t\t'%s' -> '%s'", key, data);
   }else{
-       XBT_INFO("\tNo property attached.");
+  XBT_INFO("\tNo property attached.");
   }
 }
 
@@ -97,16 +97,16 @@ void display_storage_content(msg_storage_t storage){
 
 int host(int argc, char *argv[])
 {
-       char name[2048];
-       sprintf(name,"%s%i", FILENAME1,MSG_process_self_PID());
-       msg_file_t file = MSG_file_open(name, NULL);
-       //MSG_file_read(file, MSG_file_get_size(file));
-       MSG_file_write(file, 500000);
+  char name[2048];
+  sprintf(name,"%s%i", FILENAME1,MSG_process_self_PID());
+  msg_file_t file = MSG_file_open(name, NULL);
+  //MSG_file_read(file, MSG_file_get_size(file));
+  MSG_file_write(file, 500000);
 
-       XBT_INFO("Size of %s: %llu", MSG_file_get_name(file), MSG_file_get_size(file));
-       MSG_file_close(file);
+  XBT_INFO("Size of %s: %llu", MSG_file_get_name(file), MSG_file_get_size(file));
+  MSG_file_close(file);
 
-       return 1;
+  return 1;
 }
 
 
@@ -120,7 +120,7 @@ int main(int argc, char **argv)
   MSG_function_register("host", host);
   storage_info(MSG_host_by_name(xbt_strdup("host")));
   for(i = 0 ; i<10; i++){
-       MSG_process_create(xbt_strdup("host"), host, NULL, MSG_host_by_name(xbt_strdup("host")));
+    MSG_process_create(xbt_strdup("host"), host, NULL, MSG_host_by_name(xbt_strdup("host")));
   }
 
 
index d4303cb..d3dc3b3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="alice" function="server" />
   <process host="bob" function="client" />
 </platform>
index c19be28..400c47f 100644 (file)
@@ -58,9 +58,9 @@ void display_storage_properties(msg_storage_t storage){
   if (xbt_dict_length(props) > 0){
     XBT_INFO("\tProperties of mounted storage: %s", MSG_storage_get_name(storage));
     xbt_dict_foreach(props, cursor, key, data)
-         XBT_INFO("\t\t'%s' -> '%s'", key, data);
+    XBT_INFO("\t\t'%s' -> '%s'", key, data);
   }else{
-       XBT_INFO("\tNo property attached.");
+  XBT_INFO("\tNo property attached.");
   }
 }
 
index 6d709e6..716f4be 100644 (file)
@@ -1,30 +1,17 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(task_destroy_cancel task_destroy_cancel.c)
-
-### Add definitions for compile
 target_link_libraries(task_destroy_cancel simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/task_destroy_cancel.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/task_destroy_cancel_d.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/task_destroy_cancel.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 112c719..a2cdc76 100644 (file)
@@ -124,9 +124,9 @@ int slave(int argc, char *argv[])
     MSG_task_execute(task);
     end = MSG_get_clock();
     XBT_INFO("Task \"%s\" done in %f (amount %f)"
-               , MSG_task_get_name(task)
-               , end - start
-               , MSG_task_get_flops_amount(task));
+        , MSG_task_get_name(task)
+        , end - start
+        , MSG_task_get_flops_amount(task));
 
     MSG_task_destroy(task);
     task = NULL;
@@ -145,7 +145,7 @@ int main(int argc, char *argv[])
 
   MSG_init(&argc, argv);
   xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-            "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+       "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
   
   platform_file = argv[1];
   application_file = argv[2];
index 5c8fc7f..8ff8862 100644 (file)
@@ -1,11 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-  </process>
-
-  <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Jupiter" function="slave">
-  </process>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
+  <process host="Jupiter" function="slave"/>
 </platform>
index 089d9ee..e7663b6 100644 (file)
@@ -1,15 +1,12 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(test_trace_integration test_trace_integration.c)
-
-### Add definitions for compile
 target_link_libraries(test_trace_integration simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/trace.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test-hbp1.0-hbp1.0-hbp1.0.xml
@@ -24,18 +21,8 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/test-hbp1-c1s1-c1s2.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/test-hbp1-c1s1-c3s2.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/test-hbp2.5-hbp1.5.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_trace_integration.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 59999f3..2f4692a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="0">
        <argument value="40"/>
        <argument value="1.0"/>
index c31b162..f5f4a76 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="0">
        <argument value="220"/>
        <argument value="1.0"/>
index f98849c..b02d52d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
        <argument value="40"/>
        <argument value="1.0"/>
index 6b23c8d..a648155 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
        <argument value="260"/>
        <argument value="1.0"/>
index 941e807..6ce00b5 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="20">
        <argument value="40"/>
        <argument value="1.0"/>
index 554cc8f..e045ffa 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="20">
        <argument value="140"/>
        <argument value="1.0"/>
index df79a21..4c2b0f2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="40">
        <argument value="40"/>
        <argument value="1.0"/>
index 6948020..9b62918 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="40">
        <argument value="260"/>
        <argument value="1.0"/>
index 11be503..9254e10 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace">
        <argument value="170"/>
        <argument value="1.0"/>
index a2b9898..e359c41 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
        <argument value="25"/>
        <argument value="1.0"/>
index a409a31..df5a68a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
        <argument value="150"/>
        <argument value="1.5"/>
index cb16f35..89fffcc 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <process host="Cpu B" function="test_trace" start_time="10">
        <argument value="50"/>
        <argument value="2.5"/>
index ff5292c..d0f52cf 100644 (file)
@@ -22,14 +22,10 @@ int test_trace(int argc, char *argv[])
   double task_comp_size = 2800;
   double task_prio = 1.0;
 
-  if (argc != 3) {
-    printf
-        ("Wrong number of arguments!\nUsage:\n\t1) task computational size in FLOPS\n\t2 task priority\n");
-    exit(1);
-  }
+  xbt_assert (argc == 3,"Wrong number of arguments!\nUsage: %s <task computational size in FLOPS> <task priority>", argv[0]);
 
-  task_comp_size = atof(argv[1]);
-  task_prio = atof(argv[2]);
+  task_comp_size = xbt_str_parse_double(argv[1],"Invalid computational size: %s");
+  task_prio = xbt_str_parse_double(argv[2], "Invalid task priority: %s");
 
   XBT_INFO("Testing the trace integration cpu model: CpuTI");
   XBT_INFO("Task size: %f", task_comp_size);
index d8f341e..05cdb9c 100644 (file)
@@ -1,25 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(availability_test availability_test.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(availability_test simgrid m)
-else()
-  target_link_libraries(availability_test simgrid)
-endif()
+target_link_libraries(availability_test simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/availability_test.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/availability_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 88d34f0..a0f3c73 100644 (file)
@@ -4,24 +4,15 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
-#include <stddef.h>
-#include <unistd.h>
 #include <simgrid/simdag.h>
 #include <xbt/log.h>
-#include <xbt/ex.h>
-#include <signal.h>
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test,"Logging for the current example");
 
 static int name_compare_hosts(const void *n1, const void *n2)
 {
-  return strcmp(
-      sg_host_get_name(*(sg_host_t *) n1),
-      sg_host_get_name(*(sg_host_t *) n2)
-  );
+  return strcmp(sg_host_get_name(*(sg_host_t *) n1), sg_host_get_name(*(sg_host_t *) n2));
 }
 
 static void scheduleDAX(xbt_dynar_t dax)
@@ -33,54 +24,34 @@ static void scheduleDAX(xbt_dynar_t dax)
   int totalHosts = sg_host_count();
   qsort((void *) ws_list, totalHosts, sizeof(sg_host_t), name_compare_hosts);
 
-
   xbt_dynar_foreach(dax, cursor, task) {
     if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ) {
-      if (!strcmp(SD_task_get_name(task), "end")
-          || !strcmp(SD_task_get_name(task), "root")) {
-        XBT_INFO("Scheduling %s to node: %s", SD_task_get_name(task),
-                sg_host_get_name(ws_list[0]));
+      if (!strcmp(SD_task_get_name(task), "end") || !strcmp(SD_task_get_name(task), "root")) {
+        XBT_INFO("Scheduling %s to node: %s", SD_task_get_name(task), sg_host_get_name(ws_list[0]));
         SD_task_schedulel(task, 1, ws_list[0]);
       } else {
-        XBT_INFO("Scheduling %s to node: %s", SD_task_get_name(task),
-                sg_host_get_name(ws_list[(cursor) % totalHosts]));
+        XBT_INFO("Scheduling %s to node: %s", SD_task_get_name(task), sg_host_get_name(ws_list[(cursor) % totalHosts]));
         SD_task_schedulel(task, 1, ws_list[(cursor) % totalHosts]);
       }
     }
   }
 }
 
-static xbt_dynar_t initDynamicThrottling(int argc, char *argv[])
+int main(int argc, char *argv[])
 {
   SD_init(&argc, argv);
-  xbt_assert(argc == 3,
-      "Error on parameters.\n"
-      "Usage: %s <XML platform file>  <DAX file>\n", argv[0]);
-
-  FILE *testFile = fopen(argv[1], "r");
-  xbt_assert(testFile, "Cannot open platform file %s.\n", argv[1]);
-  testFile = fopen(argv[2], "r");
-  xbt_assert(testFile, "Cannot open DAX file %s.\n", argv[2]);
+  xbt_assert(argc > 2, "Usage: %s platform_file dax_file\n"
+             "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml", argv[0], argv[0]);
 
   SD_create_environment(argv[1]);
   xbt_dynar_t dax = SD_daxload(argv[2]);
 
-  // Schedule DAX
   XBT_INFO("Scheduling DAX...");
   scheduleDAX(dax);
   XBT_INFO("DAX scheduled");
   SD_simulate(-1);
   XBT_INFO("Simulation done.");
 
-  return dax;
-}
-
-int main(int argc, char *argv[])
-{
-
-  /* Start process... */
-  xbt_dynar_t dax = initDynamicThrottling(argc, argv);
-
   // Free memory
   while (!xbt_dynar_is_empty(dax)) {
     SD_task_t task = xbt_dynar_pop_as(dax, SD_task_t);
index b23c3b0..69af506 100644 (file)
@@ -8,24 +8,13 @@ add_executable(basic4 basic4.c)
 add_executable(basic5 basic5.c)
 add_executable(basic6 basic6.c)
 
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(basic0 simgrid m pthread )
-  target_link_libraries(basic1 simgrid m pthread )
-  target_link_libraries(basic2 simgrid m pthread )
-  target_link_libraries(basic3 simgrid m pthread )
-  target_link_libraries(basic4 simgrid m pthread )
-  target_link_libraries(basic5 simgrid m pthread )
-  target_link_libraries(basic6 simgrid m pthread )
-else()
-  target_link_libraries(basic0 simgrid)
-  target_link_libraries(basic1 simgrid)
-  target_link_libraries(basic2 simgrid)
-  target_link_libraries(basic3 simgrid)
-  target_link_libraries(basic4 simgrid)
-  target_link_libraries(basic5 simgrid)
-  target_link_libraries(basic6 simgrid)
-endif()
+target_link_libraries(basic0 simgrid)
+target_link_libraries(basic1 simgrid)
+target_link_libraries(basic2 simgrid)
+target_link_libraries(basic3 simgrid)
+target_link_libraries(basic4 simgrid)
+target_link_libraries(basic5 simgrid)
+target_link_libraries(basic6 simgrid)
 
 set(tesh_files
   ${tesh_files}
@@ -36,12 +25,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/basic4.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/basic5.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/basic6.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/basic0.c
@@ -51,13 +35,4 @@ set(teshsuite_src
   ${CMAKE_CURRENT_SOURCE_DIR}/basic4.c
   ${CMAKE_CURRENT_SOURCE_DIR}/basic5.c
   ${CMAKE_CURRENT_SOURCE_DIR}/basic6.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b14c08c..4b472c3 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -16,21 +14,14 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic0, sd, "SimDag test basic0");
  *   - Create a no-op Init task
  *   - Create two communication tasks: 100MB and 1B
  *   - Schedule them concurrently on the two hosts of the platform
- * The two communications occur simultaneously but one is so short that it has
- * no impact on the other.
+ * The two communications occur simultaneously but one is so short that it has no impact on the other.
  * Simulated time should be:
  *          1e8/1.25e8 + 1e-4 = 0.8001 seconds
- * This corresponds to paying latency once and having the full bandwidth for the
- * big message.
+ * This corresponds to paying latency once and having the full bandwidth for the big message.
  */
 int main(int argc, char **argv)
 {
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskB;
   /* scheduling parameters */
-
   double communication_amount1[] = { 0, 1e8, 0, 0 };
   double communication_amount2[] = { 0, 1, 0, 0 };
   const double no_cost[] = { 0.0, 0.0 };
@@ -42,22 +33,18 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Init", NULL, 1.0);
-  taskA = SD_task_create("Task Comm 1", NULL, 1.0);
-  taskB = SD_task_create("Task Comm 2", NULL, 1.0);
-
-  /* let's launch the simulation! */
-
-  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost,
-                   no_cost, -1.0);
-  SD_task_schedule(taskA, 2, sg_host_list(), no_cost,
-                   communication_amount1, -1.0);
-  SD_task_schedule(taskB, 2, sg_host_list(), no_cost,
-                   communication_amount2, -1.0);
+  SD_task_t taskInit = SD_task_create("Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task Comm 1", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task Comm 2", NULL, 1.0);
 
   SD_task_dependency_add(NULL, NULL, taskInit, taskA);
   SD_task_dependency_add(NULL, NULL, taskInit, taskB);
 
+  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost, no_cost, -1.0);
+  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, communication_amount1, -1.0);
+  SD_task_schedule(taskB, 2, sg_host_list(), no_cost, communication_amount2, -1.0);
+
+  /* let's launch the simulation! */
   SD_simulate(-1.0);
   SD_task_destroy(taskInit);
   SD_task_destroy(taskA);
index 851a53e..1d0b508 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -23,17 +21,11 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic1, sd, "SimDag test basic1");
  */
 int main(int argc, char **argv)
 {
-
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskB;
-
+  /* scheduling parameters */
   double communication_amount1 = 1e9;
   double communication_amount2 = 1e9;
   double no_cost = 0.0;
 
-  const sg_host_t *workstation;
-
   /* initialization of SD */
   SD_init(&argc, argv);
 
@@ -41,27 +33,20 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Init", NULL, 1.0);
-  taskA = SD_task_create("Task Comm A", NULL, 1.0);
-  taskB = SD_task_create("Task Comm B", NULL, 1.0);
-
+  SD_task_t taskInit = SD_task_create("Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task Comm A", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task Comm B", NULL, 1.0);
 
-  /* scheduling parameters */
+  SD_task_dependency_add(NULL, NULL, taskInit, taskA);
+  SD_task_dependency_add(NULL, NULL, taskInit, taskB);
 
+  const sg_host_t *hosts = sg_host_list();
 
-  workstation = sg_host_list();
+  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost, &no_cost, -1.0);
+  SD_task_schedule(taskA, 1, &hosts[0], &no_cost, &communication_amount1, -1.0);
+  SD_task_schedule(taskB, 1, &hosts[1], &no_cost, &communication_amount2, -1.0);
 
   /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost,
-                   &no_cost, -1.0);
-  SD_task_schedule(taskA, 1, &workstation[0], &no_cost,
-                   &communication_amount1, -1.0);
-  SD_task_schedule(taskB, 1, &workstation[1], &no_cost,
-                   &communication_amount2, -1.0);
-
-  SD_task_dependency_add(NULL, NULL, taskInit, taskA);
-  SD_task_dependency_add(NULL, NULL, taskInit, taskB);
-
   SD_simulate(-1.0);
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
index 74edbe7..96b8408 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -16,20 +14,14 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic2, sd, "SimDag test basic2");
  *   - Create a no-op Init task
  *   - Create two communication tasks: 1GB and 100MB
  *   - Schedule them concurrently on the two hosts of the platform
- * The two communications occur simultaneously. They share the network for the
- * duration of the shortest one, then the longest one has the full bandwidth.
+ * The two communications occur simultaneously. They share the network for the duration of the shortest one, then the
+ * longest one has the full bandwidth.
  * Simulated time should be:
  *          1e8/(1/2*1.25e8) + 9e8/1.25e8) + 1e-4 = 8.8001 seconds
  */
 int main(int argc, char **argv)
 {
-
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskB;
-
-  const sg_host_t *workstation;
-
+  /* scheduling parameters */
   double communication_amount1 = 1e9;
   double communication_amount2 = 1e8;
   double no_cost = 0.0;
@@ -41,26 +33,20 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Init", NULL, 1.0);
-  taskA = SD_task_create("Task Comm A", NULL, 1.0);
-  taskB = SD_task_create("Task Comm B", NULL, 1.0);
+  SD_task_t taskInit = SD_task_create("Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task Comm A", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task Comm B", NULL, 1.0);
 
+  SD_task_dependency_add(NULL, NULL, taskInit, taskA);
+  SD_task_dependency_add(NULL, NULL, taskInit, taskB);
 
-  /* scheduling parameters */
+  const sg_host_t *workstation = sg_host_list();
 
-  workstation = sg_host_list();
+  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost, &no_cost, -1.0);
+  SD_task_schedule(taskA, 1, &workstation[0], &no_cost, &communication_amount1, -1.0);
+  SD_task_schedule(taskB, 1, &workstation[1], &no_cost, &communication_amount2, -1.0);
 
   /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost,
-                   &no_cost, -1.0);
-  SD_task_schedule(taskA, 1, &workstation[0], &no_cost,
-                   &communication_amount1, -1.0);
-  SD_task_schedule(taskB, 1, &workstation[1], &no_cost,
-                   &communication_amount2, -1.0);
-
-  SD_task_dependency_add(NULL, NULL, taskInit, taskA);
-  SD_task_dependency_add(NULL, NULL, taskInit, taskB);
-
   SD_simulate(-1.0);
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
index 94690ac..6c2e431 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -18,13 +16,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic3, sd, "SimDag test basic3");
  */
 int main(int argc, char **argv)
 {
-
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskFin;
-
   /* scheduling parameters */
-
   double no_cost[] = { 0.0, 0.0, 0.0, 0.0 };
 
   /* initialization of SD */
@@ -34,21 +26,18 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Task Init", NULL, 1.0);
-  taskA = SD_task_create("Task A", NULL, 1.0);
-  taskFin = SD_task_create("Task Fin", NULL, 1.0);
-
-  /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost,
-                   no_cost, -1.0);
-  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, no_cost,
-                   -1.0);
-  SD_task_schedule(taskFin, 1, sg_host_list(), no_cost, no_cost,
-                   -1.0);
+  SD_task_t taskInit = SD_task_create("Task Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
+  SD_task_t taskFin = SD_task_create("Task Fin", NULL, 1.0);
 
   SD_task_dependency_add(NULL, NULL, taskInit, taskA);
   SD_task_dependency_add(NULL, NULL, taskA, taskFin);
 
+  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost, no_cost, -1.0);
+  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, no_cost, -1.0);
+  SD_task_schedule(taskFin, 1, sg_host_list(), no_cost, no_cost, -1.0);
+
+  /* let's launch the simulation! */
   SD_simulate(-1.0);
   SD_task_destroy(taskInit);
   SD_task_destroy(taskA);
index a3ab2e3..c1c36f9 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -20,14 +18,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic4, sd, "SimDag test basic4");
  */
 int main(int argc, char **argv)
 {
-  /* creation of the tasks and their dependencies */
-
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskFin;
-
   /* scheduling parameters */
-
   double no_cost[] = { 0., 0., 0., 0. };
   double amount[] = { 0., 1., 0., 0. };
 
@@ -38,22 +29,18 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Task Init", NULL, 1.0);
-  taskA = SD_task_create("Task A", NULL, 1.0);
-  taskFin = SD_task_create("Task Fin", NULL, 1.0);
-
-
-  /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost,
-                   no_cost, -1.0);
-  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, amount,
-                   -1.0);
-  SD_task_schedule(taskFin, 1, sg_host_list(), no_cost, no_cost,
-                   -1.0);
+  SD_task_t taskInit = SD_task_create("Task Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
+  SD_task_t taskFin = SD_task_create("Task Fin", NULL, 1.0);
 
   SD_task_dependency_add(NULL, NULL, taskInit, taskA);
   SD_task_dependency_add(NULL, NULL, taskA, taskFin);
 
+  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost, no_cost, -1.0);
+  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, amount, -1.0);
+  SD_task_schedule(taskFin, 1, sg_host_list(), no_cost, no_cost, -1.0);
+
+  /* let's launch the simulation! */
   SD_simulate(-1.0);
   SD_task_destroy(taskInit);
   SD_task_destroy(taskA);
index 7ca6bb1..59e0bf6 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -22,14 +20,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic5, sd, "SimDag test basic5");
  */
 int main(int argc, char **argv)
 {
-
-  /* creation of the tasks and their dependencies */
-  SD_task_t taskInit;
-  SD_task_t taskA;
-  SD_task_t taskB;
-
   /* scheduling parameters */
-
   double no_cost[] = { 0., 0., 0., 0. };
   double amount[] = { 0., 100000., 0., 0. };
   double comput[] = { 10000000. };
@@ -41,21 +32,18 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Task Init", NULL, 1.0);
-  taskA = SD_task_create("Task A", NULL, 1.0);
-  taskB = SD_task_create("Task B", NULL, 1.0);
-
-  /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost,
-                   no_cost, -1.0);
-  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, amount,
-                   -1.0);
-  SD_task_schedule(taskB, 1, sg_host_list(), comput, no_cost,
-                   -1.0);
+  SD_task_t taskInit = SD_task_create("Task Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task B", NULL, 1.0);
 
   SD_task_dependency_add(NULL, NULL, taskInit, taskA);
   SD_task_dependency_add(NULL, NULL, taskInit, taskB);
 
+  SD_task_schedule(taskInit, 1, sg_host_list(), no_cost, no_cost, -1.0);
+  SD_task_schedule(taskA, 2, sg_host_list(), no_cost, amount, -1.0);
+  SD_task_schedule(taskB, 1, sg_host_list(), comput, no_cost, -1.0);
+
+  /* let's launch the simulation! */
   SD_simulate(-1.0);
   SD_task_destroy(taskInit);
   SD_task_destroy(taskA);
index 7b5582f..5a2b3d5 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/asserts.h"
 #include "xbt/log.h"
@@ -26,24 +24,20 @@ int main(int argc, char **argv)
 {
   double comm_cost[] = { 0.0, 0.0, 0.0, 0.0 };
   double comp_cost[] = { 1.0 };
-  SD_task_t taskA, taskB;
   xbt_dynar_t ret;
 
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  taskA = SD_task_create("Task A", NULL, 1.0);
-  taskB = SD_task_create("Task B", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task B", NULL, 1.0);
 
-  SD_task_schedule(taskA, 1, sg_host_list(), comp_cost,
-                   comm_cost, -1.0);
-  SD_task_schedule(taskB, 1, sg_host_list(), comp_cost,
-                   comm_cost, -1.0);
+  SD_task_schedule(taskA, 1, sg_host_list(), comp_cost, comm_cost, -1.0);
+  SD_task_schedule(taskB, 1, sg_host_list(), comp_cost, comm_cost, -1.0);
 
   ret = SD_simulate(-1.0);
-  xbt_assert(xbt_dynar_length(ret) == 2,
-      "I was expecting the completion of 2 tasks, but I got %lu instead",
-      xbt_dynar_length(ret));
+  xbt_assert(xbt_dynar_length(ret) == 2, "I was expecting the completion of 2 tasks, but I got %lu instead",
+             xbt_dynar_length(ret));
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
 
index ef0660c..d62eb99 100644 (file)
@@ -1,33 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(incomplete incomplete.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(incomplete simgrid m pthread )
-else()
-  target_link_libraries(incomplete simgrid)
-endif()
+target_link_libraries(incomplete simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/incomplete.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/incomplete.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d108d09..68238f0 100644 (file)
@@ -4,8 +4,6 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
@@ -23,12 +21,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(incomplete, sd, "SimDag incomplete test");
  */
 int main(int argc, char **argv)
 {
-
-  SD_task_t taskInit;
-  SD_task_t taskA, taskB, taskC, taskD;
-
-  const sg_host_t *workstation;
-
+  /* scheduling parameters */
   double communication_amount1 = 1e9;
   double no_cost = 0.0;
 
@@ -39,31 +32,25 @@ int main(int argc, char **argv)
   SD_create_environment(argv[1]);
 
   /* creation of the tasks and their dependencies */
-  taskInit = SD_task_create("Init", NULL, 1.0);
-  taskA = SD_task_create("Task A", NULL, 1.0);
-  taskB = SD_task_create("Task B", NULL, 1.0);
-  taskC = SD_task_create("Task C", NULL, 1.0);
-  taskD = SD_task_create("Task D", NULL, 1.0);
-
-
-  /* scheduling parameters */
-
-  workstation = sg_host_list();
+  SD_task_t taskInit = SD_task_create("Init", NULL, 1.0);
+  SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
+  SD_task_t taskB = SD_task_create("Task B", NULL, 1.0);
+  SD_task_t taskC = SD_task_create("Task C", NULL, 1.0);
+  SD_task_t taskD = SD_task_create("Task D", NULL, 1.0);
 
   SD_task_dependency_add(NULL, NULL, taskInit, taskA);
   SD_task_dependency_add(NULL, NULL, taskInit, taskB);
   SD_task_dependency_add(NULL, NULL, taskC, taskD);
 
-  /* let's launch the simulation! */
-  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost,
-                   &no_cost, -1.0);
-  SD_task_schedule(taskA, 1, &workstation[0], &no_cost,
-                     &communication_amount1, -1.0);
-  SD_task_schedule(taskD, 1, &workstation[0], &no_cost,
-                     &communication_amount1, -1.0);
+  const sg_host_t *hosts = sg_host_list();
 
+  SD_task_schedule(taskInit, 1, sg_host_list(), &no_cost, &no_cost, -1.0);
+  SD_task_schedule(taskA, 1, &hosts[0], &no_cost, &communication_amount1, -1.0);
+  SD_task_schedule(taskD, 1, &hosts[0], &no_cost, &communication_amount1, -1.0);
 
+  /* let's launch the simulation! */
   SD_simulate(-1.);
+
   SD_task_destroy(taskA);
   SD_task_destroy(taskB);
   SD_task_destroy(taskC);
diff --git a/teshsuite/simdag/network/CMakeLists.txt b/teshsuite/simdag/network/CMakeLists.txt
deleted file mode 100644 (file)
index 801abab..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-add_executable(test_reinit_costs test_reinit_costs.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(test_reinit_costs simgrid m pthread )
-else()
-  target_link_libraries(test_reinit_costs simgrid)
-endif()
-
-set(tesh_files
-  ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/test_reinit_costs.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1sl.xml
-  PARENT_SCOPE
-  )
-set(teshsuite_src
-  ${teshsuite_src}
-  ${CMAKE_CURRENT_SOURCE_DIR}/test_reinit_costs.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
index a303490..7c60a4b 100644 (file)
@@ -3,42 +3,23 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 add_executable(test_intra_all2all test_intra_all2all.c)
 add_executable(test_intra_independent_comm test_intra_independent_comm.c)
 add_executable(test_intra_scatter test_intra_scatter.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(test_intra_all2all simgrid m pthread )
-  target_link_libraries(test_intra_independent_comm simgrid m pthread )
-  target_link_libraries(test_intra_scatter simgrid m pthread )
-else()
-  target_link_libraries(test_intra_all2all simgrid)
-  target_link_libraries(test_intra_independent_comm simgrid)
-  target_link_libraries(test_intra_scatter simgrid)
-endif()
+target_link_libraries(test_intra_all2all simgrid)
+target_link_libraries(test_intra_independent_comm simgrid)
+target_link_libraries(test_intra_scatter simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_all2all.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_independent_comm.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_scatter.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_4p_1switch.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_all2all.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_independent_comm.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_intra_scatter.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d879f07..57ab438 100644 (file)
@@ -1,55 +1,23 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
-   <host id="cpu2" power="1f"/>
-   <host id="cpu3" power="1f"/>
-   
-   <link id="switch" bandwidth="2Bps" latency="1s" sharing_policy="FATPIPE"/>
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <link id="link1" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <link id="link2" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <link id="link3" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link1"/>
-   </route>
-   <route src="cpu0" dst="cpu2">
-     <link_ctn id="link0"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link2"/>
-   </route>
-   <route src="cpu0" dst="cpu3">
-     <link_ctn id="link0"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link3"/>
-   </route>
-   <route src="cpu1" dst="cpu2">
-     <link_ctn id="link1"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link2"/>
-   </route>
-   <route src="cpu1" dst="cpu3">
-     <link_ctn id="link1"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link3"/>
-   </route>
-   
-   <route src="cpu2" dst="cpu3">
-     <link_ctn id="link2"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link3"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="AS0" routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
+    <host id="cpu2" speed="1f"/>
+    <host id="cpu3" speed="1f"/>
+
+    <link id="switch" bandwidth="2Bps" latency="1s" sharing_policy="FATPIPE"/>
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+    <link id="link1" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+    <link id="link2" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+    <link id="link3" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/><link_ctn id="switch"/><link_ctn id="link1"/></route>
+    <route src="cpu0" dst="cpu2"><link_ctn id="link0"/><link_ctn id="switch"/><link_ctn id="link2"/></route>
+    <route src="cpu0" dst="cpu3"><link_ctn id="link0"/><link_ctn id="switch"/><link_ctn id="link3"/></route>
+    <route src="cpu1" dst="cpu2"><link_ctn id="link1"/><link_ctn id="switch"/><link_ctn id="link2"/></route>
+    <route src="cpu1" dst="cpu3"><link_ctn id="link1"/><link_ctn id="switch"/><link_ctn id="link3"/></route>
+    <route src="cpu2" dst="cpu3"><link_ctn id="link2"/><link_ctn id="switch"/><link_ctn id="link3"/></route>
+  </AS>
+</platform>
index 06f52ed..7e746af 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 /*
  * send 1 byte from all to all
  * + 2 secs latency
  * should be 8  (platform_4p_1switch.xml)
- * 
  */
 
 int main(int argc, char **argv)
 {
-  double time;
-  SD_task_t task;
-
   double communication_amount[] = { 0.0, 1.0, 1.0, 1.0,
-    1.0, 0.0, 1.0, 1.0,
-    1.0, 1.0, 0.0, 1.0,
-    1.0, 1.0, 1.0, 0.0,
-  };
+                                    1.0, 0.0, 1.0, 1.0,
+                                    1.0, 1.0, 0.0, 1.0,
+                                    1.0, 1.0, 1.0, 0.0 };
 
   double no_cost[] = { 0.0, 0.0, 0.0, 0.0 };
 
-
-  /***************************************/
-
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("All2all task", NULL, 1.0);
+  SD_task_t task = SD_task_create("All2all task", NULL, 1.0);
 
-  SD_task_schedule(task, 4, sg_host_list(), no_cost,
-                   communication_amount, -1.0);
+  SD_task_schedule(task, 4, sg_host_list(), no_cost, communication_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 158f6f9..56d851e 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 /*
 
 int main(int argc, char **argv)
 {
-  double time;
-  SD_task_t task;
-
   double communication_amount[] = { 0.0, 1.0, 0.0, 0.0,
-    0.0, 0.0, 0.0, 0.0,
-    0.0, 0.0, 0.0, 1.0,
-    0.0, 0.0, 0.0, 0.0,
-  };
+                                    0.0, 0.0, 0.0, 0.0,
+                                    0.0, 0.0, 0.0, 1.0,
+                                    0.0, 0.0, 0.0, 0.0 };
 
   double no_cost[] = { 0.0, 0.0, 0.0, 0.0 };
 
-
-  /***************************************/
-
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("Comm 1", NULL, 1.0);
+  SD_task_t task = SD_task_create("Comm 1", NULL, 1.0);
 
-  SD_task_schedule(task, 4, sg_host_list(), no_cost,
-                   communication_amount, -1.0);
+  SD_task_schedule(task, 4, sg_host_list(), no_cost, communication_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 65174d4..8fc362d 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 /*
 
 int main(int argc, char **argv)
 {
-  double time;
-  SD_task_t task;
 
   double communication_amount[] = { 0.0, 1.0, 2.0, 3.0,
-    0.0, 0.0, 0.0, 0.0,
-    0.0, 0.0, 0.0, 0.0,
-    0.0, 0.0, 0.0, 0.0,
-  };
-
+                                    0.0, 0.0, 0.0, 0.0,
+                                    0.0, 0.0, 0.0, 0.0,
+                                    0.0, 0.0, 0.0, 0.0 };
   double no_cost[] = { 0.0, 0.0, 0.0, 0.0 };
 
-
-  /***************************************/
-
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("Scatter task", NULL, 1.0);
+  SD_task_t task = SD_task_create("Scatter task", NULL, 1.0);
 
-  SD_task_schedule(task, 4, sg_host_list(), no_cost,
-                   communication_amount, -1.0);
+  SD_task_schedule(task, 4, sg_host_list(), no_cost, communication_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 638c6c0..5f68137 100644 (file)
@@ -4,19 +4,10 @@ add_executable(test_latency1 test_latency1.c)
 add_executable(test_latency2 test_latency2.c)
 add_executable(test_latency3 test_latency3.c)
 add_executable(test_latency_bound test_latency_bound.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(test_latency1 simgrid m pthread )
-  target_link_libraries(test_latency2 simgrid m pthread )
-  target_link_libraries(test_latency3 simgrid m pthread )
-  target_link_libraries(test_latency_bound simgrid m pthread )
-else()
-  target_link_libraries(test_latency1 simgrid)
-  target_link_libraries(test_latency2 simgrid)
-  target_link_libraries(test_latency3 simgrid)
-  target_link_libraries(test_latency_bound simgrid)
-endif()
+target_link_libraries(test_latency1 simgrid)
+target_link_libraries(test_latency2 simgrid)
+target_link_libraries(test_latency3 simgrid)
+target_link_libraries(test_latency_bound simgrid)
 
 set(tesh_files
   ${tesh_files}
@@ -24,29 +15,18 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency2.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency3.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency_bound.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1bb.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1fl.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1sl.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1switch.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency1.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency3.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_latency_bound.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c886e96..ef7632a 100644 (file)
@@ -1,22 +1,15 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
<AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f" />
-   <host id="cpu1" power="1f" />
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
 
-   <!-- 
-       large latency backbone
-       10000 because
-       20000 is MAX_TCP_WIN_SIZE
-       max bw = MAX_TCP_WIN_SIZE / ( 2 * latency )
-       which is then 1 and 1 is smallest possible
-   -->
+    <!-- large latency backbone 10000 because 20000 is MAX_TCP_WIN_SIZE
+         max bw = MAX_TCP_WIN_SIZE / ( 2 * latency ) which is then 1 and 1 is smallest possible -->
 
-   <link id="link0" bandwidth="2Bps" latency="2.777777777777777777777777778h" sharing_policy="SHARED" />
+    <link id="link0" bandwidth="2Bps" latency="2.777777777777777777777777778h" sharing_policy="SHARED"/>
 
-   <route src="cpu0" dst="cpu1">
-      <link_ctn id="link0" />
-   </route>
- </AS>
- </platform>
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+  </AS>
+</platform>
index acd0ebb..84bf34d 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
<AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="FATPIPE"/>
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
+
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="FATPIPE"/>
+
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
 </AS>
+</platform>
index 90e6a84..53e2f8a 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
+
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
 </AS>
+</platform>
index 4e1dccd..bd1e546 100644 (file)
@@ -1,18 +1,14 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
 
-   <link id="switch" bandwidth="2Bps" latency="1s" sharing_policy="FATPIPE"/>
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <link id="link1" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+    <link id="switch" bandwidth="2Bps" latency="1s" sharing_policy="FATPIPE"/>
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+    <link id="link1" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
 
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link1"/>
-   </route>
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/><link_ctn id="switch"/><link_ctn id="link1"/></route>
  </AS>
  </platform>
index bf73f7d..4896951 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 /*
  * 
  * this is a test for multiple platforms
  * see tesh file for expected output
- * 
  */
 int main(int argc, char **argv)
 {
-  double time;
   double communication_amount[] = { 0.0, 1.0, 0.0, 0.0 };
   const double no_cost[] = { 0.0, 0.0 };
-  SD_task_t task;
 
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("Comm 1", NULL, 1.0);
+  SD_task_t task = SD_task_create("Comm 1", NULL, 1.0);
 
-  SD_task_schedule(task, 2, sg_host_list(), no_cost,
-                   communication_amount, -1.0);
+  SD_task_schedule(task, 2, sg_host_list(), no_cost, communication_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 5a22fa0..ceafd26 100644 (file)
@@ -7,23 +7,15 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
-
 /*
  * bw and latency test 2
  * send 2 x 1 byte from 2 task in same direction 0 -> 1 
- * 
  */
 
 int main(int argc, char **argv)
 {
-  double time;
-  SD_task_t root;
-  SD_task_t task1;
-  SD_task_t task2;
   double communication_amount1[] = { 0.0, 1.0, 0.0, 0.0 };
   double communication_amount2[] = { 0.0, 1.0, 0.0, 0.0 };
   double no_cost1[] = { 0.0 };
@@ -32,25 +24,20 @@ int main(int argc, char **argv)
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  root = SD_task_create("Root", NULL, 1.0);
-  task1 = SD_task_create("Comm 1", NULL, 1.0);
-  task2 = SD_task_create("Comm 2", NULL, 1.0);
+  SD_task_t root = SD_task_create("Root", NULL, 1.0);
+  SD_task_t task1 = SD_task_create("Comm 1", NULL, 1.0);
+  SD_task_t task2 = SD_task_create("Comm 2", NULL, 1.0);
 
-  SD_task_schedule(root, 1, sg_host_list(), no_cost1, no_cost1,
-                   -1.0);
-  SD_task_schedule(task1, 2, sg_host_list(), no_cost,
-                   communication_amount1, -1.0);
-  SD_task_schedule(task2, 2, sg_host_list(), no_cost,
-                   communication_amount2, -1.0);
+  SD_task_schedule(root, 1, sg_host_list(), no_cost1, no_cost1, -1.0);
+  SD_task_schedule(task1, 2, sg_host_list(), no_cost, communication_amount1, -1.0);
+  SD_task_schedule(task2, 2, sg_host_list(), no_cost, communication_amount2, -1.0);
 
   SD_task_dependency_add(NULL, NULL, root, task1);
   SD_task_dependency_add(NULL, NULL, root, task2);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(root);
index 22b491f..c7ba9e4 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 /**
  * same intention as test 2
  * sending 2 x 1 bytes at the same time 
  * this time in opposite direction
- * 
  */
 
 int main(int argc, char **argv)
 {
-  double time;
-  SD_task_t root;
-  SD_task_t task1;
-  SD_task_t task2;
   double communication_amount1[] = { 0.0, 1.0, 0.0, 0.0 };
   double communication_amount2[] = { 0.0, 0.0, 1.0, 0.0 };
   double no_cost1[] = { 0.0 };
@@ -33,25 +26,20 @@ int main(int argc, char **argv)
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  root = SD_task_create("Root", NULL, 1.0);
-  task1 = SD_task_create("Comm 1", NULL, 1.0);
-  task2 = SD_task_create("Comm 2", NULL, 1.0);
+  SD_task_t root = SD_task_create("Root", NULL, 1.0);
+  SD_task_t task1 = SD_task_create("Comm 1", NULL, 1.0);
+  SD_task_t task2 = SD_task_create("Comm 2", NULL, 1.0);
 
-  SD_task_schedule(root, 1, sg_host_list(), no_cost1,
-                   no_cost1, -1.0);
-  SD_task_schedule(task1, 2, sg_host_list(), no_cost,
-                   communication_amount1, -1.0);
-  SD_task_schedule(task2, 2, sg_host_list(), no_cost,
-                   communication_amount2, -1.0);
+  SD_task_schedule(root, 1, sg_host_list(), no_cost1, no_cost1, -1.0);
+  SD_task_schedule(task1, 2, sg_host_list(), no_cost, communication_amount1, -1.0);
+  SD_task_schedule(task2, 2, sg_host_list(), no_cost, communication_amount2, -1.0);
 
   SD_task_dependency_add(NULL, NULL, root, task1);
   SD_task_dependency_add(NULL, NULL, root, task2);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(root);
@@ -59,6 +47,5 @@ int main(int argc, char **argv)
   SD_task_destroy(task2);
 
   SD_exit();
-
   return 0;
 }
index 234a3e3..357c4cc 100644 (file)
@@ -7,8 +7,6 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 #define TASK_NUM 3
  * 3 flows exceed bandwidth
  * should be 10001.5
  * because the max tcp win size is 20000
- * 
- * @todo@ test assumes that max tcp win size is 20000
- * assert this
  */
 
 int main(int argc, char **argv)
 {
-  int i;
-  double time;
   double communication_amount[] = { 0.0, 1.0, 0.0, 0.0 };
   double no_cost[] = { 0.0, 0.0 };
 
-  SD_task_t root;
   SD_task_t task[TASK_NUM];
 
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  // xbt_assert( check max tcp win size, "MAX TCP WIN SIZE is 20000");
-
-  root = SD_task_create("Root", NULL, 1.0);
-  SD_task_schedule(root, 1, sg_host_list(), no_cost, no_cost,
-                   -1.0);
+  SD_task_t root = SD_task_create("Root", NULL, 1.0);
+  SD_task_schedule(root, 1, sg_host_list(), no_cost, no_cost, -1.0);
 
-  for (i = 0; i < TASK_NUM; i++) {
+  for (int i = 0; i < TASK_NUM; i++) {
     task[i] = SD_task_create("Comm", NULL, 1.0);
-    SD_task_schedule(task[i], 2, sg_host_list(), no_cost,
-                     communication_amount, -1.0);
+    SD_task_schedule(task[i], 2, sg_host_list(), no_cost, communication_amount, -1.0);
     SD_task_dependency_add(NULL, NULL, root, task[i]);
   }
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
-  for (i = 0; i < TASK_NUM; i++) {
+  for (int i = 0; i < TASK_NUM; i++) {
     SD_task_destroy(task[i]);
   }
   SD_task_destroy(root);
 
   SD_exit();
-
   return 0;
 }
diff --git a/teshsuite/simdag/network/platform_2p_1sl.xml b/teshsuite/simdag/network/platform_2p_1sl.xml
deleted file mode 100644 (file)
index 92cdc2e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
-   <!-- 
-   <link id="link0" bandwidth="125MBps" latency="200us" sharing_policy="SHARED"/>
-    -->
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
- </AS>
- </platform>
diff --git a/teshsuite/simdag/network/test_reinit_costs.c b/teshsuite/simdag/network/test_reinit_costs.c
deleted file mode 100644 (file)
index 55b6ded..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Computation tests                                                        */
-
-/* Copyright (c) 2007, 2009-2011, 2013-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "simgrid/simdag.h"
-
-/*
- * This test checks if the reinitialization of
- * surf works properly. 
- * 1 test: empty task, reinit, empty task
- * 2 test: comm cost task, reinit, empty task
- * 
- * output should be:
- * 0
- * 1.5
- */
-
-static SD_task_t create_empty_cost_root()
-{
-  double no_cost[] = { 0.0 };
-  SD_task_t root;
-
-  root = SD_task_create("Root", NULL, 1.0);
-  SD_task_schedule(root, 1, sg_host_list(), no_cost, no_cost,
-                   -1.0);
-
-  return root;
-}
-
-static void zero_cost_test(int *argc, char *argv[])
-{
-  double time;
-  SD_task_t task;
-
-  SD_init(argc, argv);
-  SD_create_environment(argv[1]);
-
-  task = create_empty_cost_root();
-  SD_simulate(-1.0);
-  SD_task_destroy(task);
-
-  SD_application_reinit();
-
-  task = create_empty_cost_root();
-  SD_simulate(-1.0);
-  SD_task_destroy(task);
-
-  SD_simulate(-1.0);
-
-  time = SD_get_clock();
-  printf("%g\n", time);
-  fflush(stdout);
-
-  SD_exit();
-}
-
-static SD_task_t create_root_with_costs()
-{
-  double comp_cost[] = { 0.0, 0.0 };
-  double comm_cost[] = { 0.0, 1.0, 0.0, 0.0 };
-  SD_task_t root;
-
-  root = SD_task_create("Root", NULL, 1.0);
-  SD_task_schedule(root, 2, sg_host_list(), comp_cost,
-                   comm_cost, -1.0);
-
-  return root;
-}
-
-static void zero_cost_test2(int *argc, char *argv[])
-{
-  double time;
-  SD_task_t task;
-
-  SD_init(argc, argv);
-  SD_create_environment(argv[1]);
-
-  task = create_root_with_costs();
-  SD_simulate(-1.0);
-  SD_task_destroy(task);
-
-  SD_application_reinit();
-
-  task = create_empty_cost_root();
-  SD_simulate(-1.0);
-  SD_task_destroy(task);
-
-  SD_simulate(-1.0);
-
-  time = SD_get_clock();
-  printf("%g\n", time);
-  fflush(stdout);
-
-  SD_exit();
-}
-
-int main(int argc, char **argv)
-{
-
-  zero_cost_test(&argc, argv);
-
-  zero_cost_test2(&argc, argv);
-
-  return 0;
-}
diff --git a/teshsuite/simdag/network/test_reinit_costs.tesh b/teshsuite/simdag/network/test_reinit_costs.tesh
deleted file mode 100644 (file)
index a2defbf..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-
-p Reinitialization test
-
-! expect signal SIGABRT
-$ simdag/network/test_reinit_costs ${srcdir:=.}/simdag/network/platform_2p_1sl.xml --cfg=path:${srcdir} --log=sd_kernel.thres=warning "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks.
-> [  0.000000] (0:maestro@) This function is not working since the C++ links and others. Please report the problem if you really need that function.
-
index 2d6d0cd..176ea1e 100644 (file)
@@ -2,39 +2,21 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(test_comp_only_seq test_comp_only_seq.c)
 add_executable(test_comp_only_par test_comp_only_par.c)
-
-### Add definitions for compile
-if(NOT WIN32)
-  target_link_libraries(test_comp_only_seq simgrid m pthread )
-  target_link_libraries(test_comp_only_par simgrid m pthread )
-else()
-  target_link_libraries(test_comp_only_seq simgrid)
-  target_link_libraries(test_comp_only_par simgrid)
-endif()
+target_link_libraries(test_comp_only_seq simgrid)
+target_link_libraries(test_comp_only_par simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_comp_only_par.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/test_comp_only_seq.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1sl_hetero.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_2p_1sl.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/test_comp_only_par.c
   ${CMAKE_CURRENT_SOURCE_DIR}/test_comp_only_seq.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index e6d67a4..771d797 100644 (file)
@@ -1,14 +1,12 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="cpu0" power="1f"/>
-   <host id="cpu1" power="1f"/>
-   <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
-   <route src="cpu0" dst="cpu1">
-     <link_ctn id="link0"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="AS0" routing="Full">
+    <host id="cpu0" speed="1f"/>
+    <host id="cpu1" speed="1f"/>
+
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED"/>
+
+    <route src="cpu0" dst="cpu1"><link_ctn id="link0"/></route>
+  </AS>
+</platform>
index 5deb9ad..55805e5 100644 (file)
@@ -1,15 +1,12 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-       <host id="cpu0" power="1f" />
-       <host id="cpu1" power="2f" />
-       <link id="link0" bandwidth="1Bps" latency="500ms"
-               sharing_policy="SHARED" />
-       <route src="cpu0" dst="cpu1">
-               <link_ctn id="link0" />
-       </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="cpu0" speed="1f" />
+    <host id="cpu1" speed="2f" />
+
+    <link id="link0" bandwidth="1Bps" latency="500ms" sharing_policy="SHARED" />
+
+     <route src="cpu0" dst="cpu1"><link_ctn id="link0" /></route>
+  </AS>
+</platform>
index 6ad02ee..7d20631 100644 (file)
@@ -5,36 +5,26 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
-
 #include "simgrid/simdag.h"
 
 int main(int argc, char **argv)
 {
-
-  double time;
   double comm_amount[] = { 0.0, 0.0, 0.0, 0.0 };
   double comp_cost[] = { 1.0, 1.0 };
 
-  SD_task_t task;
-
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("partask", NULL, 1.0);
-  SD_task_schedule(task, 2, sg_host_list(), comp_cost,
-                   comm_amount, -1.0);
+  SD_task_t task = SD_task_create("partask", NULL, 1.0);
+  SD_task_schedule(task, 2, sg_host_list(), comp_cost, comm_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 9b17ca0..8bc1c66 100644 (file)
 int main(int argc, char **argv)
 {
 
-  double time;
   double comm_amount[] = { 0.0 };
   double comp_cost[] = { 1.0 };
 
-  SD_task_t task;
-
   SD_init(&argc, argv);
   SD_create_environment(argv[1]);
 
-  task = SD_task_create("seqtask", NULL, 1.0);
-  SD_task_schedule(task, 1, sg_host_list(), comp_cost,
-                   comm_amount, -1.0);
+  SD_task_t task = SD_task_create("seqtask", NULL, 1.0);
+  SD_task_schedule(task, 1, sg_host_list(), comp_cost, comm_amount, -1.0);
 
   SD_simulate(-1.0);
 
-  time = SD_get_clock();
-
-  printf("%g\n", time);
+  printf("%g\n", SD_get_clock());
   fflush(stdout);
 
   SD_task_destroy(task);
 
   SD_exit();
-
   return 0;
 }
index 422a577..89f52e4 100644 (file)
@@ -1,10 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(basic_parsing_test basic_parsing_test.c)
-add_executable(is_router_test is_router_test.c)
+add_executable(is_router_test is_router_test.cpp)
 add_executable(flatifier flatifier.cpp)
-add_executable(basic_tracing basic_tracing.c)
 add_executable(basic_link_test basic_link_test.c)
+target_link_libraries(basic_parsing_test simgrid)
+target_link_libraries(is_router_test simgrid)
+target_link_libraries(flatifier simgrid)
+target_link_libraries(basic_link_test simgrid)
 
 ### Add definitions for compile
 if(NOT WIN32)
@@ -12,17 +15,6 @@ if(NOT WIN32)
   add_executable(evaluate_get_route_time Evaluate_get_route_time.c)
   target_link_libraries(evaluate_get_route_time simgrid m)
   target_link_libraries(evaluate_parse_time simgrid m)
-  target_link_libraries(basic_parsing_test simgrid m)
-  target_link_libraries(is_router_test simgrid m)
-  target_link_libraries(flatifier simgrid m)
-  target_link_libraries(basic_tracing simgrid m)
-  target_link_libraries(basic_link_test simgrid m)
-else()
-  target_link_libraries(basic_parsing_test simgrid)
-  target_link_libraries(is_router_test simgrid)
-  target_link_libraries(flatifier simgrid)
-  target_link_libraries(basic_tracing simgrid)
-  target_link_libraries(basic_link_test simgrid)
 endif()
 
 set(tesh_files
@@ -37,8 +29,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/bogus_two_hosts_asymetric.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bogus_missing_gateway.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bogus_disk_attachment.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/four_hosts_Dijkstra_ns3.xml
@@ -48,12 +39,7 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts_multi_hop.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_file.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_multicore.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_foreach.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_fullduplex.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_one_host_random.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_one_host.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_properties_foreach.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_properties_override.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_router_id.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/one_host_availability.xml
@@ -71,7 +57,6 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/platform_include.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/properties.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/random.xml
-  ${CMAKE_CURRENT_SOURCE_DIR}/route_override.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/test_of_is_router.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/three_hosts_non_symmetric_route.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/two_clusters_one_name.xml
@@ -89,23 +74,16 @@ set(xml_files
   ${CMAKE_CURRENT_SOURCE_DIR}/clusterB.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/Dijkstra.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/bogus_disk_attachment.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/basic_parsing_test.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/basic_tracing.c
   ${CMAKE_CURRENT_SOURCE_DIR}/basic_link_test.c
   ${CMAKE_CURRENT_SOURCE_DIR}/Evaluate_get_route_time.c
   ${CMAKE_CURRENT_SOURCE_DIR}/Evaluate_parse_time.c
   ${CMAKE_CURRENT_SOURCE_DIR}/flatifier.cpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/is_router_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  ${CMAKE_CURRENT_SOURCE_DIR}/is_router_test.cpp
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bob0_availability_file.trace
@@ -117,5 +95,4 @@ set(txt_files
   ${CMAKE_CURRENT_SOURCE_DIR}/link1.bw
   ${CMAKE_CURRENT_SOURCE_DIR}/link1.fail
   ${CMAKE_CURRENT_SOURCE_DIR}/link1.lat
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 4df752e..64b39c8 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
  <AS  id="AS0"  routing="Dijkstra">
 
-   <host id="NODO01" power="10Mf"/>
-   <host id="NODO02" power="10Mf"/>
+   <host id="NODO01" speed="10Mf"/>
+   <host id="NODO02" speed="10Mf"/>
    
    <router id="ROUTER" />
    
@@ -29,4 +29,4 @@
    </route>
 
  </AS>
-</platform>
\ No newline at end of file
+</platform>
index 835fed2..5737ea5 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "src/surf/surf_private.h"
+#include "surf/surf.h"
 #include "xbt/xbt_os_time.h"
 
 #define BILLION  1000000000L;
-extern routing_platf_t routing_platf;
 
 int main(int argc, char **argv)
 {
-  sg_host_t w1, w2;
-  const sg_host_t *workstations;
   int i, j;
-  int list_size;
   xbt_os_timer_t timer = xbt_os_timer_new();
 
-  /* SD initialization */
   SD_init(&argc, argv);
-
-  /* creation of the environment */
   SD_create_environment(argv[1]);
 
-  workstations = sg_host_list();
-  list_size = sg_host_count();
+  sg_host_t *hosts = sg_host_list();
+  int host_count = sg_host_count();
 
   /* Random number initialization */
   srand( (int) (xbt_os_time()*1000) );
 
-  do{
-    i = rand()%list_size;
-    j = rand()%list_size;
-  }while(i==j);
+  do {
+    i = rand()%host_count;
+    j = rand()%host_count;
+  } while(i==j);
 
-  w1 = workstations[i];
-  w2 = workstations[j];
+  sg_host_t h1 = hosts[i];
+  sg_host_t h2 = hosts[j];
   printf("%d\tand\t%d\t\t",i,j);
 
   xbt_os_cputimer_start(timer);
-  SD_route_get_list(w1, w2);
+  SD_route_get_list(h1, h2);
   xbt_os_cputimer_stop(timer);
 
   printf("%f\n", xbt_os_timer_elapsed(timer) );
 
+  xbt_free(hosts);
   SD_exit();
 
   return 0;
index cbf827e..08fa38b 100644 (file)
@@ -7,18 +7,13 @@
 //teshsuite/simdag/platforms/evaluate_parse_time ../examples/platforms/nancy.xml
 
 #include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
-#include "src/surf/surf_private.h"
+#include "surf/surf.h"
 #include "xbt/xbt_os_time.h"
 
-extern routing_platf_t routing_platf;
-
 int main(int argc, char **argv)
 {
   xbt_os_timer_t timer = xbt_os_timer_new();
-
-  /* initialization of SD */
   SD_init(&argc, argv);
 
   /* creation of the environment, timed */
@@ -28,8 +23,7 @@ int main(int argc, char **argv)
 
   /* Display the result and exit after cleanup */
   printf( "%f\n", xbt_os_timer_elapsed(timer) );
-    printf("Workstation number: %zu, link number: %d\n",
-           sg_host_count(), sg_link_count());
+  printf("Workstation number: %zu, link number: %d\n", sg_host_count(), sg_link_count());
   if(argv[2]){
     printf("Wait for %ss\n",argv[2]);
     sleep(atoi(argv[2]));
index 173fd65..f8de5b8 100644 (file)
@@ -5,44 +5,34 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 #include "xbt/log.h"
 
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic_link_test, sd,
-                                "SimDag test basic_link_test");
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(basic_link_test, sd, "SimDag test basic_link_test");
 
 static int cmp_link(const void*a, const void*b) {
-       const char *nameA = sg_link_name(*(SD_link_t*)a);
-       const char *nameB = sg_link_name(*(SD_link_t*)b);
-  return strcmp( nameA, nameB );
+  return strcmp(sg_link_name(*(SD_link_t*)a)  , sg_link_name(*(SD_link_t*)b));
 }
 
 int main(int argc, char **argv)
 {
-  int i;
   const char *user_data = "some user_data";
-  const SD_link_t *links;
 
   /* initialization of SD */
   SD_init(&argc, argv);
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
-  links = sg_link_list();
+  const SD_link_t *links = sg_link_list();
   int count = sg_link_count();
   XBT_INFO("Link count: %d", count);
   qsort((void *)links, count, sizeof(SD_link_t), cmp_link);
    
-  for(i=0; i < count; i++){
-    XBT_INFO("%s: latency = %.5f, bandwidth = %f",
-             sg_link_name(links[i]),
-             sg_link_latency(links[i]),
-             sg_link_bandwidth(links[i]));
+  for (int i=0; i < count; i++){
+    XBT_INFO("%s: latency = %.5f, bandwidth = %f", sg_link_name(links[i]),
+             sg_link_latency(links[i]), sg_link_bandwidth(links[i]));
     sg_link_data_set(links[i], (void*) user_data);
-    if(strcmp(user_data, (const char*)sg_link_data(links[i]))){
-      XBT_ERROR("User data was corrupted.");
-    }
+    xbt_assert(!strcmp(user_data, (const char*)sg_link_data(links[i])),"User data was corrupted.");
   }
 
   SD_exit();
index e7cbf0b..054964d 100644 (file)
@@ -5,88 +5,61 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <stdio.h>
-#include <stdlib.h>
 #include "simgrid/simdag.h"
 
 int main(int argc, char **argv)
 {
-  /* SD initialization */
-
-  sg_host_t w1, w2;
-  const sg_host_t *workstations;
-  const SD_link_t *route;
-  const char *name1;
-  const char *name2;
-  int route_size, i, j, k;
-  int list_size;
-
-#ifdef _XBT_WIN32
-  setbuf(stderr, NULL);
-  setbuf(stdout, NULL);
-#else
-  setvbuf(stdout, NULL, _IOLBF, 0);
-#endif
-
   SD_init(&argc, argv);
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
-  printf("Workstation number: %zu, link number: %d\n",
-         sg_host_count(), sg_link_count());
+  printf("Workstation number: %zu, link number: %d\n", sg_host_count(), sg_link_count());
 
+  sg_host_t *hosts = sg_host_list();
   if (argc >= 3) {
     if (!strcmp(argv[2], "ONE_LINK")) {
-      workstations = sg_host_list();
-      w1 = workstations[0];
-      w2 = workstations[1];
-      name1 = sg_host_get_name(w1);
-      name2 = sg_host_get_name(w2);
+      sg_host_t h1 = hosts[0];
+      sg_host_t h2 = hosts[1];
+      const char *name1 = sg_host_get_name(h1);
+      const char *name2 = sg_host_get_name(h2);
 
       printf("Route between %s and %s\n", name1, name2);
-      route = SD_route_get_list(w1, w2);
-      route_size = SD_route_get_size(w1, w2);
+      SD_link_t *route = SD_route_get_list(h1, h2);
+      int route_size = SD_route_get_size(h1, h2);
       printf("Route size %d\n", route_size);
-      for (i = 0; i < route_size; i++) {
-      printf("  Link %s: latency = %f, bandwidth = %f\n",
-           sg_link_name(route[i]),
-           sg_link_latency(route[i]),
-           sg_link_bandwidth(route[i]));
-      }
+      for (int i = 0; i < route_size; i++)
+        printf("  Link %s: latency = %f, bandwidth = %f\n", sg_link_name(route[i]),
+               sg_link_latency(route[i]), sg_link_bandwidth(route[i]));
       printf("Route latency = %f, route bandwidth = %f\n",
-         SD_route_get_latency(w1, w2),
-         SD_route_get_bandwidth(w1, w2));
+             SD_route_get_latency(h1, h2), SD_route_get_bandwidth(h1, h2));
+      xbt_free(route);
     }
     if (!strcmp(argv[2], "FULL_LINK")) {
-      workstations = sg_host_list();
-      list_size = sg_host_count();
-      for (i = 0; i < list_size; i++) {
-      w1 = workstations[i];
-      name1 = sg_host_get_name(w1);
-      for (j = 0; j < list_size; j++) {
-        w2 = workstations[j];
-        name2 = sg_host_get_name(w2);
-        printf("Route between %s and %s\n", name1, name2);
-        route = SD_route_get_list(w1, w2);
-        route_size = SD_route_get_size(w1, w2);
-        printf("  Route size %d\n", route_size);
-        for (k = 0; k < route_size; k++) {
-        printf("  Link %s: latency = %f, bandwidth = %f\n",
-             sg_link_name(route[k]),
-             sg_link_latency(route[k]),
-             sg_link_bandwidth(route[k]));
+      int list_size = sg_host_count();
+      for (int i = 0; i < list_size; i++) {
+        sg_host_t h1 = hosts[i];
+        const char *name1 = sg_host_get_name(h1);
+        for (int j = 0; j < list_size; j++) {
+          sg_host_t h2 = hosts[j];
+          const char *name2 = sg_host_get_name(h2);
+          printf("Route between %s and %s\n", name1, name2);
+          SD_link_t *route = SD_route_get_list(h1, h2);
+          int route_size = SD_route_get_size(h1, h2);
+          printf("  Route size %d\n", route_size);
+          for (int k = 0; k < route_size; k++) {
+            printf("  Link %s: latency = %f, bandwidth = %f\n",
+                sg_link_name(route[k]), sg_link_latency(route[k]), sg_link_bandwidth(route[k]));
+          }
+          printf("  Route latency = %f, route bandwidth = %f\n",
+                 SD_route_get_latency(h1, h2), SD_route_get_bandwidth(h1, h2));
+          xbt_free(route);
         }
-        printf("  Route latency = %f, route bandwidth = %f\n",
-           SD_route_get_latency(w1, w2),
-           SD_route_get_bandwidth(w1, w2));
-      }
       }
     }
-    if (!strcmp(argv[2], "PROP")) {
-      printf("SG_TEST_mem: %s\n",
-          sg_host_get_property_value(sg_host_by_name("host1"),
-          "SG_TEST_mem"));
-    }
+    if (!strcmp(argv[2], "PROP"))
+      printf("SG_TEST_mem: %s\n", sg_host_get_property_value(sg_host_by_name("host1"), "SG_TEST_mem"));
   }
+  xbt_free(hosts);
 
   SD_exit();
   return 0;
index e64f4bb..8e249d2 100644 (file)
@@ -1,7 +1,3 @@
-! output sort
-$ ${bindir:=.}/simdag/platforms/basic_parsing_test --cfg=path:simdag/platforms one_cluster_properties_override.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Configuration change: Set 'path' to 'simdag/platforms'
-
 ! output sort
 $ ${bindir:=.}/simdag/platforms/basic_parsing_test --cfg=path:simdag/platforms one_host_trace_file.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Configuration change: Set 'path' to 'simdag/platforms'
diff --git a/teshsuite/simdag/platforms/basic_tracing.c b/teshsuite/simdag/platforms/basic_tracing.c
deleted file mode 100644 (file)
index 5b8db61..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (c) 2008-2015. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "simgrid/msg.h"
-
-int host(int argc, char *argv[]);
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(basic_tracing,"Messages specific for this example");
-
-int host(int argc, char *argv[])
-{
-  XBT_INFO("Sleep for 1s");
-  MSG_process_sleep(1);
-  return 0;
-}
-
-int main(int argc, char **argv)
-{
-  int res;
-  xbt_dynar_t all_hosts;
-  msg_host_t first_host;
-  MSG_init(&argc, argv);
-  MSG_create_environment(argv[1]);
-  MSG_function_register("host", host);
-  all_hosts = MSG_hosts_as_dynar();
-  first_host = xbt_dynar_pop_as(all_hosts,msg_host_t);
-  MSG_process_create( "host", host, NULL, first_host);
-  xbt_dynar_free(&all_hosts);
-
-  res = MSG_main();
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-
-  return res != MSG_OK;
-}
index c807446..26bb0d9 100644 (file)
@@ -1,5 +1,5 @@
 ! expect signal SIGABRT
 $ ${bindir:=.}/flatifier bogus_disk_attachment.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
-> [  0.000000] [0:maestro@] Parse error at bogus_disk_attachment.xml:26: Unable to attach storage cdisk: host plouf doesn't exist.
+> [  0.000000] [0:maestro@] Parse error at bogus_disk_attachment.xml:21: Unable to attach storage cdisk: host plouf doesn't exist.
 > [  0.000000] [0:maestro@] Exiting now
index 0f9ee4a..b7c85a2 100644 (file)
@@ -1,26 +1,21 @@
-
 <!-- THIS FILE IS INVALID.
 
-It declares a storage attached to a nonexistant host (plouf)
-See bogus_disk_attachment.tesh -->
+It declares a storage attached to a nonexistant host (plouf). See bogus_disk_attachment.tesh -->
 
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS id="AS0" routing="Full">
-    <!-- STORAGE TYPES -->
-    <storage_type id="single_HDD" model="SSD" size="4000">
-      <model_prop id="Bwrite" value="30000000" /> <!-- 30Mo/s -->
-      <model_prop id="Bread" value="100000000" /> <!-- 100Mo/s -->
-      <model_prop id="Bconnection" value="150000000" /> <!-- 150Mo/s -->
+    <storage_type id="single_HDD" model="SSD" size="4kB">
+      <model_prop id="Bwrite" value="30MBps" />
+      <model_prop id="Bread" value="100MBps" />
+      <model_prop id="Bconnection" value="150MBps" /> 
     </storage_type>
 
     <storage id="cdisk" typeId="single_HDD"  attach="plouf" />
 
-    <!-- HOSTS -->
-    <host id="client" power="1000000000">
+    <host id="client" speed="1Gf">
       <mount storageId="cdisk" name="/sd1" />
     </host>
   </AS>
-</platform>
\ No newline at end of file
+</platform>
index 5ffbd2f..2696ab2 100644 (file)
@@ -1,17 +1,20 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS id="World" routing="Full">
-     <AS id="us" routing="Full">
-                <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" core="24" power="9.27114e8" bw="938e6" lat="270us"/>
+    <AS id="us" routing="Full">
+       <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" core="24" speed="9.27114e8f"
+                bw="938e6Bps" lat="270us"/>
     </AS>
     <AS id="fr" routing="Full">
-                <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" core="24" power="9.27114e8" bw="938e6" lat="270us"/>
+       <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" core="24" speed="9.27114e8f"
+                bw="938e6Bps" lat="270us"/>
     </AS>
 
     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
 
-    <ASroute src="us" gw_src="node-cluster_router.cluster.us" dst="fr" gw_dst="neud-grappe_router.grappe.fr" symmetrical="YES">
+    <ASroute src="us" gw_src="node-cluster_router.cluster.us" dst="fr" gw_dst="neud-grappe_router.grappe.fr"
+             symmetrical="YES">
         <link_ctn id="backbone"/>
     </ASroute>
   </AS>
index 0237bad..ea44a75 100644 (file)
@@ -1,11 +1,11 @@
 ! expect signal SIGABRT
 $ ${bindir:=.}/flatifier bogus_missing_src_gateway.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
-> [  0.000000] [0:maestro@] Parse error at bogus_missing_src_gateway.xml:16: gw_src="nod-cluster_router.cluster.us" not found for ASroute from "us" to "fr"
+> [  0.000000] [0:maestro@] Parse error at bogus_missing_src_gateway.xml:17: ASroute gw_src='nod-cluster_router.cluster.us' does name a node.
 > [  0.000000] [0:maestro@] Exiting now
 
 ! expect signal SIGABRT
 $ ${bindir:=.}/flatifier bogus_missing_dst_gateway.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
-> [  0.000000] [0:maestro@] Parse error at bogus_missing_dst_gateway.xml:16: gw_dst="neud-grappe_router.grappe.fr" not found for ASroute from "us" to "fr"
+> [  0.000000] [0:maestro@] Parse error at bogus_missing_dst_gateway.xml:17: ASroute gw_dst='neud-grappe_router.grappe.fr' does name a node.
 > [  0.000000] [0:maestro@] Exiting now
index a97b589..258965c 100644 (file)
@@ -1,17 +1,20 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS id="World" routing="Full">
      <AS id="us" routing="Full">
-                <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" core="24" power="9.27114e8" bw="938e6" lat="270us"/>
-    </AS>
+        <cluster id="cluster" suffix=".cluster.us" prefix="node-" radical="1-4" core="24" speed="9.27114e8f"
+                 bw="938e6Bps" lat="270us"/>
+      </AS>
     <AS id="fr" routing="Full">
-                <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" core="24" power="9.27114e8" bw="938e6" lat="270us"/>
+        <cluster id="grappe" suffix=".grappe.fr" prefix="noeud-" radical="1-4" core="24" speed="9.27114e8f"
+                 bw="938e6Bps" lat="270us"/>
     </AS>
 
     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
 
-    <ASroute src="us" gw_src="nod-cluster_router.cluster.us" dst="fr" gw_dst="noeud-grappe_router.grappe.fr" symmetrical="YES">
+    <ASroute src="us" gw_src="nod-cluster_router.cluster.us" dst="fr" gw_dst="noeud-grappe_router.grappe.fr" 
+             symmetrical="YES">
         <link_ctn id="backbone"/>
     </ASroute>
   </AS>
index 7577cda..10c9d3b 100644 (file)
@@ -1,29 +1,21 @@
-
 <!-- THIS FILE IS INVALID.
 
 It declares a route alice->bob and another bob->alice, both being different.
-It is used to check that this (bogus) file is detected as is (see
-two_hosts_asymetric.tesh) -->
+It is used to check that this (bogus) file is detected as is (see two_hosts_asymetric.tesh) -->
 
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
  <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <link id="link1" bandwidth="125MBps" latency="50us"/>
-   <link id="link2" bandwidth="125MBps" latency="50us"/>
-   <link id="link3" bandwidth="125MBps" latency="50us"/>
-   <link id="link4" bandwidth="125MBps" latency="50us"/>
-   
-   <route src="bob" dst="alice">
-     <link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link4"/>
-   </route>
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
 
-   <route src="alice" dst="bob">
-     <link_ctn id="link4"/><link_ctn id="link3"/><link_ctn id="link1"/>
-   </route>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+    <link id="link4" bandwidth="125MBps" latency="50us"/>
 
- </AS>
- </platform>
+   <route src="bob"   dst="alice"><link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link4"/></route>
+   <route src="alice" dst="bob">  <link_ctn id="link4"/><link_ctn id="link3"/><link_ctn id="link1"/></route>
+  </AS>
+</platform>
index 2403429..efcf85d 100644 (file)
@@ -1,11 +1,9 @@
 ! expect signal SIGABRT
 $ ${bindir:=.}/flatifier bogus_two_hosts_asymetric.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
-> [  0.000000] [0:maestro@] Parse error at bogus_two_hosts_asymetric.xml:24: A route between "alice" and "bob" already exists with a different content. If you are trying to define a reverse route, you must set the symmetrical=no attribute to your routes tags.
-> [  0.000000] [0:maestro@] Exiting now
+> [  0.000000] [0:maestro@] Error while loading bogus_two_hosts_asymetric.xml: The route between alice and bob already exists (Rq: routes are symmetrical by default).
 
 ! expect signal SIGABRT
 $ ${bindir:=.}/flatifier bogus_two_hosts_asymetric-2.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
-> [  0.000000] [0:maestro@] Parse error at bogus_two_hosts_asymetric-2.xml:26: A route between "alice" and "bob" already exists with a different content. If you are trying to define a reverse route, you must set the symmetrical=no attribute to your routes tags.
-> [  0.000000] [0:maestro@] Exiting now
+> [  0.000000] [0:maestro@] Error while loading bogus_two_hosts_asymetric-2.xml: The route between alice and bob already exists (Rq: routes are symmetrical by default).
index f2c260c..83c23c3 100644 (file)
@@ -1,27 +1,20 @@
-
 <!-- THIS FILE IS INVALID.
 
 It declares a route alice->bob and another bob->alice, both being different.
-It is used to check that this (bogus) file is detected as is (see
-two_hosts_asymetric.tesh) -->
+It is used to check that this (bogus) file is detected as is (see two_hosts_asymetric.tesh) -->
 
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
+
    <link id="link1" bandwidth="125MBps" latency="50us"/>
    <link id="link2" bandwidth="125MBps" latency="50us"/>
-   
-   <route src="bob" dst="alice">
-     <link_ctn id="link1"/>
-   </route>
 
-   <route src="alice" dst="bob">
-     <link_ctn id="link2"/>
-   </route>
+   <route src="bob" dst="alice"><link_ctn id="link1"/></route>
 
- </AS>
- </platform>
+   <route src="alice" dst="bob"><link_ctn id="link2"/></route>
+  </AS>
+</platform>
index ab96c62..ad7bcdf 100644 (file)
@@ -1,5 +1,4 @@
 <AS id="ASA" routing="Full">
-  <cluster id="clusterA" prefix="A" suffix=".hamburger.edu"
-   radical="0,2-4,6" power="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us"/>
+  <cluster id="clusterA" prefix="A" suffix=".hamburger.edu" radical="0,2-4,6" power="1Gf" bw="125MBps" lat="50us"
+           bb_bw="2.25GBps" bb_lat="500us"/>
 </AS>
index 581b755..c46abfc 100644 (file)
@@ -102,13 +102,6 @@ int main(int argc, char **argv)
   const SD_link_t *links;
   xbt_os_timer_t parse_time = xbt_os_timer_new();
 
-#ifdef _XBT_WIN32
-  setbuf(stderr, NULL);
-  setbuf(stdout, NULL);
-#else
-  setvbuf(stdout, NULL, _IOLBF, 0);
-#endif
-
   SD_init(&argc, argv);
 
   if (parse_cmdline(&timings, &downgrade, &platformFile, argc, argv) || !platformFile) {
@@ -162,8 +155,8 @@ int main(int argc, char **argv)
 
     // Routers
     xbt_lib_foreach(as_router_lib, cursor_src, key, value1) {
-      if(surf_routing_edge_get_rc_type((sg_netcard_t)xbt_lib_get_or_null(as_router_lib, key,
-          ROUTING_ASR_LEVEL)) == SURF_NETWORK_ELEMENT_ROUTER)
+      value1 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib, key, ROUTING_ASR_LEVEL);
+      if(value1->getRcType() == SURF_NETWORK_ELEMENT_ROUTER)
       {
         printf("  <router id=\"%s\"/>\n",key);
       }
@@ -195,9 +188,7 @@ int main(int argc, char **argv)
       value1 = sg_host_by_name(src)->pimpl_netcard;
       xbt_dict_foreach(host_list, cursor_dst, dst, host2) //to host
       {
-        printf("  <route src=\"%s\" dst=\"%s\">\n  "
-            ,src
-            ,dst);
+        printf("  <route src=\"%s\" dst=\"%s\">\n  ", src, dst);
         xbt_dynar_t route=NULL;
         value2 = sg_host_by_name(dst)->pimpl_netcard;
         routing_platf->getRouteAndLatency(value1, value2, &route,NULL);
@@ -213,20 +204,16 @@ int main(int argc, char **argv)
       }
       xbt_lib_foreach(as_router_lib, cursor_dst, dst, value2) //to router
       {
-        if(routing_get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){
-          printf("  <route src=\"%s\" dst=\"%s\">\n  "
-              ,src
-              ,dst);
+        value2 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
+        if(value2->getRcType() == SURF_NETWORK_ELEMENT_ROUTER){
+          printf("  <route src=\"%s\" dst=\"%s\">\n  ", src, dst);
           xbt_dynar_t route=NULL;
-          value2 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
           routing_platf->getRouteAndLatency((sg_netcard_t)value1,(sg_netcard_t)value2,&route,NULL);
           for(i=0;i<xbt_dynar_length(route) ;i++)
           {
             void *link = xbt_dynar_get_as(route,i,void *);
 
-            char *link_name = xbt_strdup(surf_resource_name((surf_cpp_resource_t)link));
-            printf("<%s id=\"%s\"/>",link_ctn,link_name);
-            free(link_name);
+            printf("<%s id=\"%s\"/>",link_ctn,surf_resource_name((surf_cpp_resource_t)link));
           }
           printf("\n  </route>\n");
         }
@@ -236,15 +223,13 @@ int main(int argc, char **argv)
     xbt_lib_foreach(as_router_lib, cursor_src, src, value1) // Routes from router
     {
       value1 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,src,ROUTING_ASR_LEVEL);
-      if(routing_get_network_element_type(src) == SURF_NETWORK_ELEMENT_ROUTER){
+      if (value1->getRcType() == SURF_NETWORK_ELEMENT_ROUTER){
         xbt_lib_foreach(as_router_lib, cursor_dst, dst, value2) //to router
           {
-          if(routing_get_network_element_type(dst) == SURF_NETWORK_ELEMENT_ROUTER){
-            printf("  <route src=\"%s\" dst=\"%s\">\n  "
-                ,src
-                ,dst);
+          value2 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
+          if(value2->getRcType() == SURF_NETWORK_ELEMENT_ROUTER){
+            printf("  <route src=\"%s\" dst=\"%s\">\n  ", src, dst);
             xbt_dynar_t route=NULL;
-            value2 = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
             routing_platf->getRouteAndLatency((sg_netcard_t)value1,(sg_netcard_t)value2,&route,NULL);
             for(i=0;i<xbt_dynar_length(route) ;i++)
             {
index afa5236..7991374 100644 (file)
@@ -1,7 +1,5 @@
 #! ./tesh
 
-! output sort
-
 $ ${bindir:=.}/flatifier$EXEEXT one_cluster.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n"
 > [  0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks.
 > <?xml version='1.0'?>
index 1650a42..58ca334 100644 (file)
@@ -1,30 +1,20 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Dijkstra">
-       <host id="host1" power="1Gf"/>
-       <host id="host2" power="1Gf"/>
-       <host id="host3" power="1Gf"/>
-       <host id="host4" power="1Gf"/>
-       <link id="link1" bandwidth="125GBps" latency="50us"/>
-       <link id="link2" bandwidth="125MBps" latency="5us"/>
-       <link id="link3" bandwidth="125kBps" latency="500ns"/>
-       <link id="link4" bandwidth="125Bps" latency="5ns"/>  
-        
-   <route src="host1" dst="host2" symmetrical="NO">
-     <link_ctn id="link1"/>
-   </route>
-   <route src="host2" dst="host1" symmetrical="NO">
-     <link_ctn id="link1"/>
-   </route> 
-   
-   <route src="host1" dst="host3" symmetrical="NO">
-     <link_ctn id="link2"/>
-   </route>
-   <route src="host3" dst="host1" symmetrical="NO">
-     <link_ctn id="link2"/>
-   </route>
-   
- </AS>
- </platform>
\ No newline at end of file
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Dijkstra">
+    <host id="host1" speed="1Gf"/>
+    <host id="host2" speed="1Gf"/>
+    <host id="host3" speed="1Gf"/>
+    <host id="host4" speed="1Gf"/>
+
+    <link id="link1" bandwidth="125GBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="5us"/>
+    <link id="link3" bandwidth="125kBps" latency="500ns"/>
+    <link id="link4" bandwidth="125Bps" latency="5ns"/>  
+
+    <route src="host1" dst="host2" symmetrical="NO"><link_ctn id="link1"/></route>
+    <route src="host2" dst="host1" symmetrical="NO"><link_ctn id="link1"/></route> 
+    <route src="host1" dst="host3" symmetrical="NO"><link_ctn id="link2"/></route>
+    <route src="host3" dst="host1" symmetrical="NO"><link_ctn id="link2"/></route>
+  </AS>
+</platform>
index e92b087..b9054e2 100644 (file)
@@ -1,32 +1,20 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Floyd">
-       <host id="host1" power="1Gf"/>
-       <host id="host2" power="1Gf"/>
-       <host id="host3" power="1Gf"/>
-       <host id="host4" power="1Gf"/>
-       <link id="link1" bandwidth="125MBps" latency="50us"/>
-       <link id="link2" bandwidth="125MBps" latency="50us"/>
-       <link id="link3" bandwidth="125MBps" latency="50us"/>
-       <link id="link4" bandwidth="125MBps" latency="50us"/>  
-        
-   <route src="host1" dst="host2">
-     <link_ctn id="link1"/>
-   </route>
-      
-   <route src="host1" dst="host3">
-     <link_ctn id="link2"/>
-   </route>
-   
-   <route src="host2" dst="host3">
-     <link_ctn id="link3"/>
-   </route>
-      
-   <route src="host3" dst="host4">
-     <link_ctn id="link4"/>
-   </route>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Floyd">
+    <host id="host1" speed="1Gf"/>
+    <host id="host2" speed="1Gf"/>
+    <host id="host3" speed="1Gf"/>
+    <host id="host4" speed="1Gf"/>
 
- </AS>
- </platform>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+    <link id="link4" bandwidth="125MBps" latency="50us"/>  
+
+    <route src="host1" dst="host2"><link_ctn id="link1"/></route>
+    <route src="host1" dst="host3"><link_ctn id="link2"/></route>
+    <route src="host2" dst="host3"><link_ctn id="link3"/></route>
+    <route src="host3" dst="host4"><link_ctn id="link4"/></route>
+  </AS>
+</platform>
index b5d3a22..c93c4e2 100644 (file)
@@ -1,43 +1,25 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Floyd">
-       <host id="host1" power="1Gf"/>
-       <host id="host2" power="1Gf"/>
-       <host id="host3" power="1Gf"/>
-       <host id="host4" power="1Gf"/>
-       <host id="host5" power="1Gf"/>
-       <link id="link1" bandwidth="125MBps" latency="50us"/>
-       <link id="link2" bandwidth="125MBps" latency="50us"/>
-       <link id="link3" bandwidth="125MBps" latency="50us"/>
-       <link id="link4" bandwidth="125MBps" latency="50us"/>  
-       <link id="link5" bandwidth="125MBps" latency="50us"/>
-       <link id="link6" bandwidth="125MBps" latency="50us"/> 
-        
-   <route src="host1" dst="host2">
-     <link_ctn id="link1"/>
-   </route>
-      
-   <route src="host1" dst="host3">
-     <link_ctn id="link2"/>
-   </route>
-   
-   <route src="host2" dst="host3">
-     <link_ctn id="link3"/>
-   </route>
-      
-   <route src="host3" dst="host4">
-     <link_ctn id="link4"/>
-   </route>
-   
-   <route src="host2" dst="host5">
-     <link_ctn id="link5"/>
-   </route>
-      
-   <route src="host3" dst="host5">
-     <link_ctn id="link6"/>
-   </route>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Floyd">
+    <host id="host1" speed="1Gf"/>
+    <host id="host2" speed="1Gf"/>
+    <host id="host3" speed="1Gf"/>
+    <host id="host4" speed="1Gf"/>
+    <host id="host5" speed="1Gf"/>
 
- </AS>
- </platform>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+    <link id="link4" bandwidth="125MBps" latency="50us"/>  
+    <link id="link5" bandwidth="125MBps" latency="50us"/>
+    <link id="link6" bandwidth="125MBps" latency="50us"/> 
+
+    <route src="host1" dst="host2"><link_ctn id="link1"/></route>
+    <route src="host1" dst="host3"><link_ctn id="link2"/></route>
+    <route src="host2" dst="host3"><link_ctn id="link3"/></route>
+    <route src="host3" dst="host4"><link_ctn id="link4"/></route>
+    <route src="host2" dst="host5"><link_ctn id="link5"/></route>
+    <route src="host3" dst="host5"><link_ctn id="link6"/></route>
+  </AS>
+</platform>
index 1c0709c..bf2c664 100644 (file)
@@ -1,28 +1,19 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Floyd">
-       <host id="host1" power="1Gf"/>
-       <host id="host2" power="1Gf"/>
-       <host id="host3" power="1Gf"/>
-       <host id="host4" power="1Gf"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Floyd">
+    <host id="host1" speed="1Gf"/>
+    <host id="host2" speed="1Gf"/>
+    <host id="host3" speed="1Gf"/>
+    <host id="host4" speed="1Gf"/>
  
-       <link id="link1" bandwidth="125GBps" latency="50us"/>
-       <link id="link2" bandwidth="125MBps" latency="5us"/>
-       <link id="link3" bandwidth="125kBps" latency="500ns"/>
-       <link id="link4" bandwidth="1.25kBps" latency="5ns"/>  
-        
-   <route src="host1" dst="host2">
-     <link_ctn id="link1"/>
-   </route>
-   
-   <route src="host2" dst="host3">
-     <link_ctn id="link3"/>
-   </route>
-      
-   <route src="host3" dst="host4">
-     <link_ctn id="link4"/>
-   </route>
+    <link id="link1" bandwidth="125GBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="5us"/>
+    <link id="link3" bandwidth="125kBps" latency="500ns"/>
+    <link id="link4" bandwidth="1.25kBps" latency="5ns"/>  
 
- </AS>
- </platform>
\ No newline at end of file
+    <route src="host1" dst="host2"><link_ctn id="link1"/></route>
+    <route src="host2" dst="host3"><link_ctn id="link3"/></route>
+    <route src="host3" dst="host4"><link_ctn id="link4"/></route>
+  </AS>
+</platform>
similarity index 56%
rename from teshsuite/simdag/platforms/is_router_test.c
rename to teshsuite/simdag/platforms/is_router_test.cpp
index 41209c6..fbe96d0 100644 (file)
@@ -6,9 +6,9 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include "src/surf/surf_private.h"
-
-extern routing_platf_t routing_platf;
+#include "simgrid/simdag.h"
+#include "surf/surf.h"
+#include "src/surf/surf_routing.hpp"
 
 int main(int argc, char **argv)
 {
@@ -17,11 +17,6 @@ int main(int argc, char **argv)
   xbt_lib_cursor_t cursor = NULL;
   char *key, *data;
 
-#ifdef _XBT_WIN32
-  setbuf(stderr, NULL);
-  setbuf(stdout, NULL);
-#endif
-
   SD_init(&argc, argv);
 
   /* creation of the environment */
@@ -29,18 +24,13 @@ int main(int argc, char **argv)
 
   size = xbt_dict_length(host_list) + xbt_lib_length(as_router_lib);
 
-  printf("Workstation number: %zu, link number: %d, elmts number: %d\n",
-         sg_host_count(), sg_link_count(), size);
+  printf("Workstation number: %zu, link number: %d, elmts number: %d\n", sg_host_count(), sg_link_count(), size);
 
-  xbt_dict_foreach(host_list, cursor, key, data) {
-    printf("   - Seen: \"%s\" is type : %d\n", key,
-           (int) routing_get_network_element_type(key));
-  }
+  xbt_dict_foreach(host_list, cursor, key, data)
+    printf("   - Seen: \"%s\" is type : %d\n", key, (int) sg_netcard_by_name_or_null(key)->getRcType());
 
-  xbt_lib_foreach(as_router_lib, cursor, key, data) {
-    printf("   - Seen: \"%s\" is type : %d\n", key,
-           (int) routing_get_network_element_type(key));
-  }
+  xbt_lib_foreach(as_router_lib, cursor, key, data)
+    printf("   - Seen: \"%s\" is type : %d\n", key, (int) sg_netcard_by_name_or_null(key)->getRcType());
 
   SD_exit();
   return 0;
index 4476c9f..49a4694 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-   radical="0,2-4,6" power="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us"/>
+  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+           bb_bw="2.25GBps" bb_lat="500us"/>
 </AS>
 </platform>
index 5e061e8..5dc8190 100644 (file)
@@ -1,11 +1,9 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-   radical="0,2" power="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us"
-   state_file="${prefix}${radical}_state_file.trace"
-   availability_file="${prefix}${radical}_availability_file.trace"/>
+  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2" speed="1Gf" bw="125MBps" lat="50us"
+           bb_bw="2.25GBps" bb_lat="500us" state_file="${prefix}${radical}_state_file.trace"
+           availability_file="${prefix}${radical}_availability_file.trace"/>
 </AS>
 </platform>
diff --git a/teshsuite/simdag/platforms/one_cluster_foreach.xml b/teshsuite/simdag/platforms/one_cluster_foreach.xml
deleted file mode 100644 (file)
index 5303166..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <set id="myCluster" prefix="bob" suffix=".hamburger.edu"
-        radical="0,2-4,6"/>
-   <foreach set_id="myCluster">
-     <host id="$1" power="1Gf"/>
-     <link id="$1" bandwidth="125MBps" latency="50us"/>
-   </foreach>
-   <link id="bob_backbone" bandwidth="2.25GBps" latency="500us"
-       sharing_policy="FATPIPE"/>
-  
-   <route:multi src="myCluster" dst="myCluster" symmetric="NO">
-     <link_ctn id="$src"/>
-     <link_ctn id="bob_backbone"/>
-     <link_ctn id="$dst"/>
-   </route:multi>
- </AS>
- </platform>
index 13d314c..543f7f7 100644 (file)
@@ -1,10 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-   radical="0,2-4,6" power="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us"
-   sharing_policy="FULLDUPLEX"/>
+  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+   bb_bw="2.25GBps" bb_lat="500us" sharing_policy="FULLDUPLEX"/>
 </AS>
 </platform>
index 884ec32..589aa15 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-   radical="0,2-4,6" power="1Gf" core="6" bw="125MBps" lat="50us"/>
+  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" core="6" 
+           bw="125MBps" lat="50us"/>
 </AS>
 </platform>
diff --git a/teshsuite/simdag/platforms/one_cluster_one_host.xml b/teshsuite/simdag/platforms/one_cluster_one_host.xml
deleted file mode 100644 (file)
index 82f5660..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-          radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-          bb_bw="2.25GBps" bb_lat="500us"/>
-   <host id="trudy" power="250Mf"/>
-   <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
-   <route:multi src="bob_cluster" dst="trudy" symmetric="YES">
-     <link_ctn id="backbone"/>
-   </route:multi>
- </AS>
- </platform>
diff --git a/teshsuite/simdag/platforms/one_cluster_one_host_random.xml b/teshsuite/simdag/platforms/one_cluster_one_host_random.xml
deleted file mode 100644 (file)
index 2983e23..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <random id="myRandomGenerator" generator="DRAND48"
-         min="1000000000" max="2000000000" mean="1600000000"
-         std_deviation="12"/>
-
-  <set id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-       radical="0-3"/>
-
-  <host id="bob" power="$rand(myRandomGenerator)"/>
-  
-  <foreach set_id="bob_cluster">
-    <host id="$1" power="$rand(myRandomGenerator)"/>
-    <link id="$1" bandwidth="125MBps" latency="50us"/>
-  </foreach>
-   </AS>
- </platform>
diff --git a/teshsuite/simdag/platforms/one_cluster_properties_foreach.xml b/teshsuite/simdag/platforms/one_cluster_properties_foreach.xml
deleted file mode 100644 (file)
index 84f603a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <set id="myCluster" prefix="bob" suffix=".hamburger.edu"
-       radical="0,2-4,6"/>
-
-  <foreach set_id="myCluster">
-    <host id="$1" power="1Gf">
-      <prop id="cores" value="2"/>
-      <prop id="os" value="Linux"/>
-    </host>
-    <link id="$1" bandwidth="125MBps" latency="50us"/>
-  </foreach>
-</platform>
diff --git a/teshsuite/simdag/platforms/one_cluster_properties_override.xml b/teshsuite/simdag/platforms/one_cluster_properties_override.xml
deleted file mode 100644 (file)
index b53681b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-  <set id="myCluster" prefix="bob" suffix=".hamburger.edu"
-       radical="0,2-4,6"/>
-
-  <foreach set_id="myCluster">
-    <host id="$1" power="1Gf">
-      <prop id="cores" value="2"/>
-      <prop id="os" value="Linux"/>
-    </host>
-    <link id="$1" bandwidth="125MBps" latency="50us"/>
-  </foreach>
-
-  <host id="bob0.hamburger.edu" power="1Gf">
-    <prop id="cores" value="4"/>
-  </host>
-</platform>
index afa5b4f..5111016 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS id="AS0" routing="Full">
-  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-   radical="0,2-4,6" power="1Gf" bw="125MBps" lat="50us"
-   bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
+  <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0,2-4,6" speed="1Gf" bw="125MBps" lat="50us"
+           bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
 </AS>
 </platform>
index 700b046..9d07959 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf"/>
   </AS>
 </platform>
index f00a4e7..7845c7d 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"
-        availability_file="bob.trace"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="bob" speed="500Mf" availability_file="bob.trace"/>
+</AS>
 </platform>
index e2063d8..3691ccd 100644 (file)
@@ -1,11 +1,11 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="1Gf">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="bob" speed="1Gf">
     <prop id="memory" value="1000000000"/>
     <prop id="disk" value="80E9"/>
     <prop id="OS" value="Linux 2.6.22-14"/>
   </host>
-  </AS>
+</AS>
 </platform>
index 684f8a1..b2402d9 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"
-        state_file="bob.fail"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf" state_file="bob.fail"/>
+  </AS>
 </platform>
index 810b639..07aa26b 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"
-        state="OFF"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+     <host id="bob" speed="500Mf" state="OFF"/>
+  </AS>
 </platform>
index 0fdfcc4..115e742 100644 (file)
@@ -1,8 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"
-        state="ON"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf" state="ON"/>
+  </AS>
 </platform>
index 5f5d4ad..081295e 100644 (file)
@@ -1,9 +1,9 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS0"  routing="Full">
-  <host id="bob" power="1Gf"/>  
-</AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>  
+  </AS>
   <trace id="myTrace" file="bob.trace" periodicity="1.0"/>
-  <trace_connect trace="myTrace" element="bob" kind="POWER"/>
+  <trace_connect trace="myTrace" element="bob" kind="SPEED"/>
 </platform>
index 8f7730b..b558d30 100644 (file)
@@ -1,15 +1,14 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 <AS  id="AS0"  routing="Full">
-  <host id="bob" power="1Gf"/>
-</AS>  
+  <host id="bob" speed="1Gf"/>
+</AS>
   <trace id="myTrace" periodicity="1.0">
     0.0 1.0
     11.0 0.5
     20.0 0.8
   </trace>
 
-  <trace_connect trace="myTrace" element="bob" kind="POWER"/>
-
+  <trace_connect trace="myTrace" element="bob" kind="SPEED"/>
 </platform>
index 76c95f0..85dd598 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"/>
-  <link id="link1" bandwidth="80MBps" latency="100us"
-        bandwidth_file="link1.bw" latency_file="link1.lat"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+<AS  id="AS0"  routing="Full">
+  <host id="bob" speed="500Mf"/>
+  <link id="link1" bandwidth="80MBps" latency="100us" bandwidth_file="link1.bw" latency_file="link1.lat"/>
+</AS>
 </platform>
index 7a3bd79..103a540 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"/>
-  <link id="link1" bandwidth="125MBps" latency="50us"
-        sharing_policy="FATPIPE"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf"/>
+    <link id="link1" bandwidth="125MBps" latency="50us" sharing_policy="FATPIPE"/>
+  </AS>
 </platform>
index 6bcccb3..1b427f0 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"/>
-  <link id="link1" bandwidth="125MBps" latency="50us"/>
-</AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf"/>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+  </AS>
 </platform>
index 6c6e35d..7eeea58 100644 (file)
@@ -1,9 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-        <AS  id="AS0"  routing="Full">
-  <host id="bob" power="500Mf"/>
-  <link id="link1" bandwidth="80MBps" latency="100us"
-        state_file="link1.fail"/>
-               </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="500Mf"/>
+    <link id="link1" bandwidth="80MBps" latency="100us" state_file="link1.fail"/>
+  </AS>
 </platform>
index 1d6ae96..1c172ee 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       <AS id="main" routing="Full">
-               <include file="clusterA.xml"></include>
-               <include file="clusterB.xml"></include>
-       </AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS id="main" routing="Full">
+    <include file="clusterA.xml"></include>
+    <include file="clusterB.xml"></include>
+  </AS>
 </platform>
index c0f11b8..a15bf7a 100644 (file)
@@ -1,16 +1,14 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-       
-<config id="General">
-       <prop id="maxmin/precision" value="0.000010"></prop>
-       <prop id="cpu/optim" value="TI"></prop>
-       <prop id="host/model" value="compound"></prop>
-       <prop id="network/model" value="Vegas"></prop>
-       <prop id="path" value="~/"></prop>
-</config>
-       
-<AS  id="AS0"  routing="Full">
-       <host id="bob" power="500Mf"/>
-</AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <config id="General">
+    <prop id="maxmin/precision" value="0.000010"></prop>
+    <prop id="cpu/optim" value="TI"></prop>
+    <prop id="host/model" value="compound"></prop>
+    <prop id="network/model" value="Vegas"></prop>
+    <prop id="path" value="~/"></prop>
+  </config>
+  <AS  id="AS0"  routing="Full">
+     <host id="bob" speed="500Mf"/>
+  </AS>
 </platform>
index eee7263..573c424 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
 
 <config id="General">
   <prop id="rngstream/seed" value="12345;12345;12345;12345;12345;12345"></prop>
 
 <!--  tentative de description de variables linéairement corrélées. Ã€ revoir et confirmer... -->
 <random_law_type id="white" type="Gaussion" mean="1000" max="10000"/>
-<random_core_and_power_type 
-id_core="foo" 
-id_power="Core2010" 
-mode="linear" base="NBcore" linear_a="0.5" linear_b="1000" noise="white"/>
+<random_core_and_power_type id_core="foo"id_power="Core2010" mode="linear" base="NBcore" 
+                            linear_a="0.5" linear_b="1000" noise="white"/>
 
 <AS  id="AS0"  routing="Full">
   <!-- Horizontal streams -->
-  <host id="foo" power="123.121kf" state_trace="mystate" availability_trace="mypow_avail"/> 
+  <host id="foo" speed="123.121kf" state_trace="mystate" availability_trace="mypow_avail"/> 
   <link id="bar" bandwidth=""   bandwidth_trace="mybw" latency_trace="mylat"/>
-  <cluster  id="bob_cluster"
-        prefix="bob"
-        suffix=".hamburger.edu"
-        radical="0-1"
-        power="100kf"
-        bw=""
-        lat="50us"
-        bb_bw="2.25GBps"
-        bb_lat="500us"
+  <cluster  id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-1" speed="100kf"
+        bw="" lat="50us" bb_bw="2.25GBps"  bb_lat="500us"
         bw_trace="mybw"
         availability_trace="mywpow_avail"
         state_trace="mystate"
-        />
-        
+   />
+
   <!-- Vertical stream ? -->
-  <peer_set id="peer_home"
-        prefix="home"
-        suffix=".edu"
-        radical="1-10000"
-        power="CustomPower"
+  <peer_set id="peer_home" prefix="home" suffix=".edu" radical="1-10000"
+        speed="CustomPower"
         bw_in_trace="mybw"
         bw_out="CustomBWval"
         lat="50us"
-        />
-   <peer_set 
-     />
-</AS>  
+  />
+  <peer_set/>
+</AS>
 </platform>
diff --git a/teshsuite/simdag/platforms/route_override.xml b/teshsuite/simdag/platforms/route_override.xml
deleted file mode 100644 (file)
index 9ea9e36..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-          radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-          bb_bw="2.25GBps" bb_lat="500us"/>
-   <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr"
-          radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-          bb_bw="2.25GBps" bb_lat="500us"/>
-   <link id="backbone" bandwidth="1.25GBps" latency="500us"/>
-   <route:multi src="bob_cluster" dst="alice_cluster" symmetric="YES">
-     <link_ctn id="backbone"/>
-     <link_ctn id="$dst"/>
-   </route:multi>
-   <route:multi src="bob0.hamburger.edu" dst="$*" action="OVERRIDE" symmetric="NO">
-     <link_ctn id="$src"/>
-     <link_ctn id="backbone"/>
-     <link_ctn id="$dst"/>
-   </route:multi>
-   <route:multi src="bob0.hamburger.edu" dst="bob_cluster" action="OVERRIDE" symmetric="NO">
-     <link_ctn id="$src"/>
-     <link_ctn id="bob_cluster_bb"/>
-     <link_ctn id="$dst"/>
-   </route:multi>
- </AS>
- </platform>
index a0ee484..3f5d239 100644 (file)
@@ -1,33 +1,31 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-<AS  id="AS"  routing="Full">
-       
-       <AS  id="AS0"  routing="Full">
-          <host id="host01" power="1Gf"/>
-          <host id="host02" power="500Mf"/>
-          <router id="router1"/>
-       </AS>
-       <AS  id="AS1"  routing="Floyd">
-          <host id="host03" power="1Gf"/>
-          <host id="host04" power="500Mf"/>
-          <router id="router2"/>
-       </AS>
-       <AS  id="AS2"  routing="Dijkstra">
-          <host id="host05" power="1Gf"/>
-          <host id="host06" power="500Mf"/>
-          <router id="router3"/>
-          </AS>
-       <AS  id="AS3"  routing="DijkstraCache">
-          <host id="host07" power="1Gf"/>
-          <host id="host08" power="500Mf"/>
-          <router id="router4"/>
-       </AS>
-       <AS  id="AS4"  routing="None">
-          <host id="host09" power="1Gf"/>
-          <host id="host10" power="500Mf"/>
-          <router id="router5"/>
-       </AS>
-       
-</AS>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS"  routing="Full">
+    <AS  id="AS0"  routing="Full">
+       <host id="host01" speed="1Gf"/>
+       <host id="host02" speed="500Mf"/>
+       <router id="router1"/>
+    </AS>
+    <AS  id="AS1"  routing="Floyd">
+       <host id="host03" speed="1Gf"/>
+       <host id="host04" speed="500Mf"/>
+       <router id="router2"/>
+    </AS>
+    <AS  id="AS2"  routing="Dijkstra">
+       <host id="host05" speed="1Gf"/>
+       <host id="host06" speed="500Mf"/>
+       <router id="router3"/>
+    </AS>
+   <AS  id="AS3"  routing="DijkstraCache">
+       <host id="host07" speed="1Gf"/>
+       <host id="host08" speed="500Mf"/>
+       <router id="router4"/>
+   </AS>
+   <AS  id="AS4"  routing="None">
+       <host id="host09" speed="1Gf"/>
+       <host id="host10" speed="500Mf"/>
+       <router id="router5"/>
+   </AS>
+  </AS>
 </platform>
index a1aa7e7..e4e0706 100644 (file)
@@ -1,29 +1,18 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <host id="trudy" power="250Mf"/>
-   <link id="link1" bandwidth="125MBps" latency="50us"/>
-   <link id="link2" bandwidth="125MBps" latency="50us"/>
-   <link id="link3" bandwidth="125MBps" latency="50us"/>
-   <route src="bob" dst="alice" symmetrical="NO">
-     <link_ctn id="link1"/>
-   </route>
-   <route src="alice" dst="bob" symmetrical="NO">
-     <link_ctn id="link2"/>
-     <link_ctn id="link3"/>
-   </route>
-   <route src="bob" dst="trudy">
-     <link_ctn id="link2"/>
-   </route>
-   <route src="trudy" dst="alice">
-     <link_ctn id="link3"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
+    <host id="trudy" speed="250Mf"/>
+
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+
+   <route src="bob" dst="alice" symmetrical="NO"><link_ctn id="link1"/></route>
+   <route src="alice" dst="bob" symmetrical="NO"><link_ctn id="link2"/><link_ctn id="link3"/></route>
+   <route src="bob" dst="trudy"><link_ctn id="link2"/></route>
+   <route src="trudy" dst="alice"><link_ctn id="link3"/></route>
+  </AS>
+</platform>
index e4f3a8a..e40b830 100644 (file)
@@ -1,24 +1,17 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-       
- <AS  id="AS0"  routing="Full">
-       
-     <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-           radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us"/>
-   
-     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr"
-           radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us"/>  
-       
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us"/>
+    <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us"/>  
+
      <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
-       
-     <ASroute src="bob_cluster" dst="alice_cluster" 
-        gw_src="bobbob_cluster_router.hamburger.edu" 
-        gw_dst="alicealice_cluster_router.crepe.fr">
-               <link_ctn id="backbone"/>
+
+     <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bobbob_cluster_router.hamburger.edu" 
+              gw_dst="alicealice_cluster_router.crepe.fr">
+        <link_ctn id="backbone"/>
      </ASroute>
-     
- </AS>
- </platform>
+  </AS>
+</platform>
index 8270507..0625fd3 100644 (file)
@@ -1,31 +1,18 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS id="AS0"  routing="Full">
-
-    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-             radical="0-1" power="1Gf" bw="125MBps" lat="50us"
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
              bb_bw="2.25GBps" bb_lat="500us"/>
-   
-    <cluster id="bob_cluster_1" prefix="bob" suffix=".hamburger.edu"
-             radical="2-3" power="1Gf" bw="125MBps" lat="50us"
+
+    <cluster id="bob_cluster_1" prefix="bob" suffix=".hamburger.edu" radical="2-3" speed="1Gf" bw="125MBps" lat="50us"
              bb_bw="2.25GBps" bb_lat="500us"/>
-           
+
     <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
-   
-    <ASroute src="bob_cluster" 
-             dst="bob_cluster_1" 
-             gw_src="bobbob_cluster_router.hamburger.edu" 
+
+    <ASroute src="bob_cluster" dst="bob_cluster_1" gw_src="bobbob_cluster_router.hamburger.edu" 
              gw_dst="bobbob_cluster_1_router.hamburger.edu">
       <link_ctn id="backbone"/>
-    </ASroute>  
-    
-    <ASroute src="bob_cluster_1" 
-             dst="bob_cluster" 
-             gw_src="bobbob_cluster_1_router.hamburger.edu" 
-             gw_dst="bobbob_cluster_router.hamburger.edu">
-      <link_ctn id="backbone"/>
-    </ASroute>   
-
+    </ASroute>
   </AS>
-</platform>
\ No newline at end of file
+</platform>
index ed56047..7c0e117 100644 (file)
@@ -1,30 +1,19 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
-       
- <AS  id="AS0"  routing="Full">
-       
-     <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-           radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
-   
-     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr"
-           radical="0-4" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us" router_id="alice_cluster_router"/>  
-       
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+     <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+              bb_bw="2.25GBps" bb_lat="500us" router_id="bob_cluster_router"/>
+     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-4" speed="1Gf" bw="125MBps" lat="50us"
+              bb_bw="2.25GBps" bb_lat="500us" router_id="alice_cluster_router"/>  
+
      <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
-       
-     <ASroute src="bob_cluster" dst="alice_cluster" 
-        gw_src="bob_cluster_router" 
-        gw_dst="alice_cluster_router">
-               <link_ctn id="backbone"/>
+
+     <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bob_cluster_router" gw_dst="alice_cluster_router">
+        <link_ctn id="backbone"/>
      </ASroute>
-        
-     <ASroute src="alice_cluster" dst="bob_cluster" 
-        gw_src="alice_cluster_router" 
-        gw_dst="bob_cluster_router">
-               <link_ctn id="backbone"/>
-     </ASroute>   
-     
- </AS>
- </platform>
+     <ASroute src="alice_cluster" dst="bob_cluster" gw_src="alice_cluster_router" gw_dst="bob_cluster_router">
+        <link_ctn id="backbone"/>
+     </ASroute>
+  </AS>
+</platform>
index 9b24c0b..9afb8cf 100644 (file)
@@ -1,24 +1,18 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">        
- <AS  id="AS0"  routing="Full">
-       
-     <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu"
-           radical="0-1" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us"/>
-   
-     <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr"
-           radical="0-1" power="1Gf" bw="125MBps" lat="50us"
-           bb_bw="2.25GBps" bb_lat="500us"/>  
-       
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <cluster id="bob_cluster" prefix="bob" suffix=".hamburger.edu" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us"/>
+    <cluster id="alice_cluster" prefix="alice" suffix=".crepe.fr" radical="0-1" speed="1Gf" bw="125MBps" lat="50us"
+             bb_bw="2.25GBps" bb_lat="500us"/>  
+
      <link id="backbone" bandwidth="1.25GBps" latency="500us"/>  
-       
-     <ASroute src="bob_cluster" dst="alice_cluster" 
-        gw_src="bobbob_cluster_router.hamburger.edu" 
-        gw_dst="alicealice_cluster_router.crepe.fr"
-        symmetrical="YES">
-               <link_ctn id="backbone"/>
-     </ASroute>        
- </AS>
- </platform>
+
+     <ASroute src="bob_cluster" dst="alice_cluster" gw_src="bobbob_cluster_router.hamburger.edu" 
+              gw_dst="alicealice_cluster_router.crepe.fr" symmetrical="YES">
+        <link_ctn id="backbone"/>
+     </ASroute>
+  </AS>
+</platform>
 
index 6c4aba0..5048e04 100644 (file)
@@ -1,19 +1,14 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <link id="link_bob" bandwidth="125MBps" latency="50us"/>
-   <link id="link_alice" bandwidth="125MBps" latency="50us"/>
-   <link id="switch" bandwidth="125MBps" latency="50us"
-         sharing_policy="FATPIPE"/>
-   <route src="bob" dst="alice">
-     <link_ctn id="link_bob"/>
-     <link_ctn id="switch"/>
-     <link_ctn id="link_alice"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
+
+    <link id="link_bob" bandwidth="125MBps" latency="50us"/>
+    <link id="link_alice" bandwidth="125MBps" latency="50us"/>
+    <link id="switch" bandwidth="125MBps" latency="50us" sharing_policy="FATPIPE"/>
+
+    <route src="bob" dst="alice"><link_ctn id="link_bob"/><link_ctn id="switch"/><link_ctn id="link_alice"/></route>
+  </AS>
+</platform>
index c1845c5..6140f0b 100644 (file)
@@ -1,14 +1,12 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <link id="link1" bandwidth="125MBps" latency="50us"/>
-   
-   <route src="bob" dst="alice">
-     <link_ctn id="link1"/>
-   </route>
- </AS>
- </platform>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
+
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+
+    <route src="bob" dst="alice"><link_ctn id="link1"/></route>
+  </AS>
+</platform>
index 127f310..25c944c 100644 (file)
@@ -1,20 +1,13 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <link id="link1" bandwidth="125MBps" latency="50us"
-   sharing_policy="FULLDUPLEX"/>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
 
-   <route src="alice" dst="bob" symmetrical="NO">
-     <link_ctn id="link1" direction="UP"/>
-   </route>
-   <route src="bob" dst="alice" symmetrical="NO">
-     <link_ctn id="link1" direction="DOWN"/>
-   </route>
+    <link id="link1" bandwidth="125MBps" latency="50us" sharing_policy="FULLDUPLEX"/>
 
- </AS>
- </platform>
+    <route src="alice" dst="bob" symmetrical="NO"><link_ctn id="link1" direction="UP"/></route>
+    <route src="bob" dst="alice" symmetrical="NO"><link_ctn id="link1" direction="DOWN"/></route>
+  </AS>
+</platform>
index a8b46d4..a0c5550 100644 (file)
@@ -1,19 +1,14 @@
 <?xml version='1.0'?>
- <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
- <platform version="3">
- <AS  id="AS0"  routing="Full">
-   <host id="bob" power="1Gf"/>
-   <host id="alice" power="500Mf"/>
-   <link id="link1" bandwidth="125MBps" latency="50us"/>
-   <link id="link2" bandwidth="125MBps" latency="50us"/>
-   <link id="link3" bandwidth="125MBps" latency="50us"/>
-   
-   <route src="bob" dst="alice" symmetrical="YES">
-     <link_ctn id="link1"/>
-        <link_ctn id="link2"/>
-        <link_ctn id="link3"/>
-   </route>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <AS  id="AS0"  routing="Full">
+    <host id="bob" speed="1Gf"/>
+    <host id="alice" speed="500Mf"/>
 
- </AS>
- </platform>
+    <link id="link1" bandwidth="125MBps" latency="50us"/>
+    <link id="link2" bandwidth="125MBps" latency="50us"/>
+    <link id="link3" bandwidth="125MBps" latency="50us"/>
+
+    <route src="bob" dst="alice" symmetrical="YES"><link_ctn id="link1"/><link_ctn id="link2"/><link_ctn id="link3"/></route>
+  </AS>
+</platform>
index abea074..4fcacc6 100644 (file)
@@ -8,22 +8,8 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/factory_raw.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/factory_thread.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/factory_ucontext.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/check_defaults.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c0a5784..ed9b2cc 100644 (file)
@@ -6,24 +6,13 @@ target_link_libraries(stack_overflow simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/stack_overflow.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/stack_overflow.xml
   ${CMAKE_CURRENT_SOURCE_DIR}/stack_overflow_platform.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/stack_overflow.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 92bb770..1f24711 100644 (file)
@@ -6,9 +6,7 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "simgrid/platf.h"
 #include "simgrid/simix.h"
-#include "surf/surfxml_parse.h"
 #include "xbt/log.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(test, "my log messages");
@@ -32,11 +30,11 @@ static int master(int argc, char *argv[])
 {
   XBT_INFO("Launching our nice bugged recursive function...");
   unsigned i = 1;
-  do {
+  while (i <= 0x80000000u) {
     i *= 2;
     unsigned res = collatz(i, i);
     XBT_VERB("collatz(%u, %u) returned %u", i, i, res);
-  } while (i <= 0x80000000u);
+  }
   return 0;
 }
 
@@ -44,10 +42,7 @@ int main(int argc, char *argv[])
 {
   SIMIX_global_init(&argc, argv);
 
-  if (argc != 3) {
-    printf("Usage: %s platform.xml deployment.xml\n", argv[0]);
-    exit(EXIT_FAILURE);
-  }
+  xbt_assert(argc == 3, "Usage: %s platform.xml deployment.xml\n", argv[0]);
 
   SIMIX_function_register("master", master);
   SIMIX_create_environment(argv[1]);
index 5277d7a..ea69ac8 100644 (file)
@@ -1,9 +1,5 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-  </process>
-
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Tremblay" function="master"/>
 </platform>
index 33e7b04..72c5c05 100644 (file)
@@ -1,10 +1,7 @@
 <?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
-<platform version="3">
-
-  <!-- The hosts -->
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
   <AS  id="AS0"  routing="Full">
-   <host id="Tremblay" power="98.095Mf"/>
+   <host id="Tremblay" speed="98.095Mf"/>
   </AS>
-
 </platform>
index 2123cff..0f9d37f 100644 (file)
@@ -7,27 +7,8 @@ if(enable_smpi)
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 endif()
 
-
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  PARENT_SCOPE
-  )
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile_coll
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 2bab00c..461a767 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(allgather_coll simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/allgather_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allgather_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f3e6d3f..357400d 100644 (file)
@@ -16,23 +16,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allgatherv_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 85f36d0..da60278 100644 (file)
@@ -14,29 +14,13 @@ if(enable_smpi)
   target_link_libraries(allreduce_coll simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll_large.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allreduce.c
   ${CMAKE_CURRENT_SOURCE_DIR}/allreduce_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index dfdd5e9..e4d3721 100644 (file)
@@ -21,25 +21,14 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/clusters.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_coll.c
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoall_basic.c
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoall2.c
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hostfile_cluster
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index a76bcbf..b4b1f75 100644 (file)
@@ -16,23 +16,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/alltoallv_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index a3fbb2e..6bef622 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(barrier_coll simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/barrier_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/barrier.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 286a9a1..8082f5b 100644 (file)
@@ -14,29 +14,13 @@ if(enable_smpi)
   target_link_libraries(bcast_coll simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/bcast.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bcast_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/bcast.c
   ${CMAKE_CURRENT_SOURCE_DIR}/bcast_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c25ecea..d3d1510 100644 (file)
@@ -16,29 +16,13 @@ if(enable_smpi)
   target_link_libraries(compute3 simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/compute.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/compute.c
   ${CMAKE_CURRENT_SOURCE_DIR}/compute2.c
   ${CMAKE_CURRENT_SOURCE_DIR}/compute3.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 7d1b3b2..24e2bfa 100644 (file)
@@ -16,23 +16,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/gather_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/gather_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c72e295..30f167a 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(hvector_test simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/hvector.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/hvector_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 49300b3..116a9de 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(indexed_test simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/indexed.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/indexed_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 83a27b0..af1878e 100644 (file)
@@ -1,21 +1,7 @@
-set(tesh_files
-  ${tesh_files}
-
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(examples_src
-  ${examples_src}
-  PARENT_SCOPE
-  )
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/generate_report
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 
 #set(stdo_std_smpi
 #  ${CMAKE_CURRENT_SOURCE_DIR}/topol/cartmap.std
index a25fef7..6b0070d 100644 (file)
@@ -49,14 +49,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/attr2type.c
@@ -76,14 +68,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/fkeyvalcomm.c
   ${CMAKE_CURRENT_SOURCE_DIR}/fkeyvaltype.c
   ${CMAKE_CURRENT_SOURCE_DIR}/keyval_double_free.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 42ab296..50c3974 100644 (file)
@@ -199,14 +199,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   set_target_properties(allred PROPERTIES COMPILE_FLAGS "-O0" LINK_FLAGS "-O0")
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/allgather2.c 
@@ -300,14 +292,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/scattern.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/scatterv.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/uoplong.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 2af91af..39ad856 100644 (file)
@@ -4,10 +4,8 @@
  *  (C) 2003 by Argonne National Laboratory.
  *      See COPYRIGHT in top-level directory.
  */
-
 #include "mpi.h"
 #include "mpitest.h"
-#include "smpi_cocci.h"
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef HAVE_SYS_TIME_H
 #include <time.h>
 #include <math.h>
 #include <assert.h>
-
 /* FIXME: What is this test supposed to accomplish? */
-
 #define START_BUF (1)
 #define LARGE_BUF (256 * 1024)
-
 /* FIXME: MAX_BUF is too large */
 #define MAX_BUF   (32 * 1024 * 1024)
 #define LOOPS 10
-
-SMPI_VARINIT_GLOBAL(sbuf, char*);
-SMPI_VARINIT_GLOBAL(rbuf, char*);
-SMPI_VARINIT_GLOBAL(recvcounts, int*);
-SMPI_VARINIT_GLOBAL(displs, int*);
-SMPI_VARINIT_GLOBAL_AND_SET(errs, int, 0);
-
+char *sbuf, *rbuf;
+int *recvcounts, *displs;
+int errs = 0;
 /* #define dprintf printf */
 #define dprintf(...)
-
 typedef enum {
     REGULAR,
     BCAST,
@@ -43,46 +33,43 @@ typedef enum {
     LINEAR_DECREASE,
     BELL_CURVE
 } test_t;
-
 void comm_tests(MPI_Comm comm);
-double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double * max_time);
-
-int main(int argc, char ** argv)
+double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time);
+int main(int argc, char **argv)
 {
     int comm_size, comm_rank;
     MPI_Comm comm;
-
     MTest_Init(&argc, &argv);
     MPI_Comm_size(MPI_COMM_WORLD, &comm_size);
     MPI_Comm_rank(MPI_COMM_WORLD, &comm_rank);
-
+    if (comm_size < 3) {
+        fprintf(stderr, "At least 3 processes required\n");
+        MPI_Abort(MPI_COMM_WORLD, 1);
+    }
     if (LARGE_BUF * comm_size > MAX_BUF)
         goto fn_exit;
-
-    SMPI_VARGET_GLOBAL(sbuf) = (void *) calloc(MAX_BUF, 1);
-    SMPI_VARGET_GLOBAL(rbuf) = (void *) calloc(MAX_BUF, 1);
-
+    sbuf = (void *) calloc(MAX_BUF, 1);
+    rbuf = (void *) calloc(MAX_BUF, 1);
     srand(time(NULL));
-
-    SMPI_VARGET_GLOBAL(recvcounts) = (void *) malloc(comm_size * sizeof(int));
-    SMPI_VARGET_GLOBAL(displs) = (void *) malloc(comm_size * sizeof(int));
-    if (!SMPI_VARGET_GLOBAL(recvcounts) || !SMPI_VARGET_GLOBAL(displs) || !SMPI_VARGET_GLOBAL(sbuf) || !SMPI_VARGET_GLOBAL(rbuf)) {
+    recvcounts = (void *) malloc(comm_size * sizeof(int));
+    displs = (void *) malloc(comm_size * sizeof(int));
+    if (!recvcounts || !displs || !sbuf || !rbuf) {
         fprintf(stderr, "Unable to allocate memory:\n");
-       if (!SMPI_VARGET_GLOBAL(sbuf)) fprintf(stderr,"\tsbuf of %d bytes\n", MAX_BUF );
-       if (!SMPI_VARGET_GLOBAL(rbuf)) fprintf(stderr,"\trbuf of %d bytes\n", MAX_BUF );
-       if (!SMPI_VARGET_GLOBAL(recvcounts)) fprintf(stderr,"\trecvcounts of %zd bytes\n", comm_size * sizeof(int) );
-       if (!SMPI_VARGET_GLOBAL(displs)) fprintf(stderr,"\tdispls of %zd bytes\n", comm_size * sizeof(int) );
+        if (!sbuf)
+            fprintf(stderr, "\tsbuf of %d bytes\n", MAX_BUF);
+        if (!rbuf)
+            fprintf(stderr, "\trbuf of %d bytes\n", MAX_BUF);
+        if (!recvcounts)
+            fprintf(stderr, "\trecvcounts of %zd bytes\n", comm_size * sizeof(int));
+        if (!displs)
+            fprintf(stderr, "\tdispls of %zd bytes\n", comm_size * sizeof(int));
         fflush(stderr);
         MPI_Abort(MPI_COMM_WORLD, -1);
-        exit(-1);
     }
-
     if (!comm_rank) {
         dprintf("Message Range: (%d, %d); System size: %d\n", START_BUF, LARGE_BUF, comm_size);
         fflush(stdout);
     }
-
-
     /* COMM_WORLD tests */
     if (!comm_rank) {
         dprintf("\n\n==========================================================\n");
@@ -90,7 +77,6 @@ int main(int argc, char ** argv)
         dprintf("==========================================================\n");
     }
     comm_tests(MPI_COMM_WORLD);
-
     /* non-COMM_WORLD tests */
     if (!comm_rank) {
         dprintf("\n\n==========================================================\n");
@@ -101,7 +87,6 @@ int main(int argc, char ** argv)
     if (comm_rank < comm_size - 1)
         comm_tests(comm);
     MPI_Comm_free(&comm);
-
     /* Randomized communicator tests */
     if (!comm_rank) {
         dprintf("\n\n==========================================================\n");
@@ -111,65 +96,53 @@ int main(int argc, char ** argv)
     MPI_Comm_split(MPI_COMM_WORLD, 0, rand(), &comm);
     comm_tests(comm);
     MPI_Comm_free(&comm);
-
-    free(SMPI_VARGET_GLOBAL(sbuf));
-    free(SMPI_VARGET_GLOBAL(rbuf));
-    free(SMPI_VARGET_GLOBAL(recvcounts));
-    free(SMPI_VARGET_GLOBAL(displs));
-
-fn_exit:
-    MTest_Finalize(SMPI_VARGET_GLOBAL(errs));
+    free(sbuf);
+    free(rbuf);
+    free(recvcounts);
+    free(displs);
+  fn_exit:
+    MTest_Finalize(errs);
     MPI_Finalize();
-
     return 0;
 }
-
 void comm_tests(MPI_Comm comm)
 {
     int comm_size, comm_rank;
     double rtime = rtime;       /* stop warning about unused variable */
     double max_time;
     long long msg_size;
-
     MPI_Comm_size(comm, &comm_size);
     MPI_Comm_rank(comm, &comm_rank);
-
     for (msg_size = START_BUF; msg_size <= LARGE_BUF; msg_size *= 2) {
         if (!comm_rank) {
             dprintf("\n====> MSG_SIZE: %d\n", (int) msg_size);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, REGULAR, &max_time);
         if (!comm_rank) {
             dprintf("REGULAR:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, BCAST, &max_time);
         if (!comm_rank) {
             dprintf("BCAST:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, SPIKE, &max_time);
         if (!comm_rank) {
             dprintf("SPIKE:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, HALF_FULL, &max_time);
         if (!comm_rank) {
             dprintf("HALF_FULL:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, LINEAR_DECREASE, &max_time);
         if (!comm_rank) {
             dprintf("LINEAR_DECREASE:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
             fflush(stdout);
         }
-
         rtime = run_test(msg_size, comm, BELL_CURVE, &max_time);
         if (!comm_rank) {
             dprintf("BELL_CURVE:\tAVG: %.3f\tMAX: %.3f\n", rtime, max_time);
@@ -177,75 +150,67 @@ void comm_tests(MPI_Comm comm)
         }
     }
 }
-
-double run_test(long long msg_size, MPI_Comm comm, test_t test_type, 
-               double * max_time)
+double run_test(long long msg_size, MPI_Comm comm, test_t test_type, double *max_time)
 {
     int i, j;
     int comm_size, comm_rank;
     double start, end;
     double total_time, avg_time;
     MPI_Aint tmp;
-
     MPI_Comm_size(comm, &comm_size);
     MPI_Comm_rank(comm, &comm_rank);
-
-    SMPI_VARGET_GLOBAL(displs)[0] = 0;
+    displs[0] = 0;
     for (i = 0; i < comm_size; i++) {
         if (test_type == REGULAR)
-            SMPI_VARGET_GLOBAL(recvcounts)[i] = msg_size;
+            recvcounts[i] = msg_size;
         else if (test_type == BCAST)
-            SMPI_VARGET_GLOBAL(recvcounts)[i] = (!i) ? msg_size : 0;
+            recvcounts[i] = (!i) ? msg_size : 0;
         else if (test_type == SPIKE)
-            SMPI_VARGET_GLOBAL(recvcounts)[i] = (!i) ? (msg_size / 2) : (msg_size / (2 * (comm_size - 1)));
+            recvcounts[i] = (!i) ? (msg_size / 2) : (msg_size / (2 * (comm_size - 1)));
         else if (test_type == HALF_FULL)
-            SMPI_VARGET_GLOBAL(recvcounts)[i] = (i < (comm_size / 2)) ? (2 * msg_size) : 0;
+            recvcounts[i] = (i < (comm_size / 2)) ? (2 * msg_size) : 0;
         else if (test_type == LINEAR_DECREASE) {
             tmp = 2 * msg_size * (comm_size - 1 - i) / (comm_size - 1);
-           if (tmp != (int)tmp) {
-               fprintf( stderr, "Integer overflow in variable tmp\n" );
-               MPI_Abort( MPI_COMM_WORLD, 1 );
-                exit(1);
-           }
-            SMPI_VARGET_GLOBAL(recvcounts)[i] = (int) tmp;
-
+            if (tmp != (int) tmp) {
+                fprintf(stderr, "Integer overflow in variable tmp\n");
+                MPI_Abort(MPI_COMM_WORLD, 1);
+            }
+            recvcounts[i] = (int) tmp;
             /* If the maximum message size is too large, don't run */
-            if (tmp > MAX_BUF) return 0;
+            if (tmp > MAX_BUF)
+                return 0;
         }
         else if (test_type == BELL_CURVE) {
             for (j = 0; j < i; j++) {
-                if (i - 1 + j >= comm_size) continue;
+                if (i - 1 + j >= comm_size)
+                    continue;
                 tmp = msg_size * comm_size / (log(comm_size) * i);
-                SMPI_VARGET_GLOBAL(recvcounts)[i - 1 + j] = (int) tmp;
-                SMPI_VARGET_GLOBAL(displs)[i - 1 + j] = 0;
-
+                recvcounts[i - 1 + j] = (int) tmp;
+                displs[i - 1 + j] = 0;
                 /* If the maximum message size is too large, don't run */
-                if (tmp > MAX_BUF) return 0;
+                if (tmp > MAX_BUF)
+                    return 0;
             }
         }
-
         if (i < comm_size - 1)
-            SMPI_VARGET_GLOBAL(displs)[i+1] = SMPI_VARGET_GLOBAL(displs)[i] + SMPI_VARGET_GLOBAL(recvcounts)[i];
+            displs[i + 1] = displs[i] + recvcounts[i];
     }
-
     /* Test that:
-       1: sbuf is large enough
-       2: rbuf is large enough
-       3: There were no failures (e.g., tmp nowhere > rbuf size 
-    */
+     * 1: sbuf is large enough
+     * 2: rbuf is large enough
+     * 3: There were no failures (e.g., tmp nowhere > rbuf size
+     */
     MPI_Barrier(comm);
     start = MPI_Wtime();
     for (i = 0; i < LOOPS; i++) {
-        MPI_Allgatherv(SMPI_VARGET_GLOBAL(sbuf), SMPI_VARGET_GLOBAL(recvcounts)[comm_rank], MPI_CHAR,
-                       SMPI_VARGET_GLOBAL(rbuf), SMPI_VARGET_GLOBAL(recvcounts), SMPI_VARGET_GLOBAL(displs), MPI_CHAR, comm);
+        MPI_Allgatherv(sbuf, recvcounts[comm_rank], MPI_CHAR,
+                       rbuf, recvcounts, displs, MPI_CHAR, comm);
     }
     end = MPI_Wtime();
     MPI_Barrier(comm);
-
     /* Convert to microseconds (why?) */
     total_time = 1.0e6 * (end - start);
     MPI_Reduce(&total_time, &avg_time, 1, MPI_DOUBLE, MPI_SUM, 0, comm);
     MPI_Reduce(&total_time, max_time, 1, MPI_DOUBLE, MPI_MAX, 0, comm);
-
     return (avg_time / (LOOPS * comm_size));
 }
index 60bf0a4..4249a92 100644 (file)
@@ -7,7 +7,6 @@
 
 #include "mpi.h"
 #include "mpitest.h"
-#include "smpi_cocci.h"
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef HAVE_SYS_TIME_H
index bf13e8a..3caf57e 100644 (file)
@@ -10,7 +10,6 @@
 
 #include "mpi.h"
 #include "mpitest.h"
-#include "smpi_cocci.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
index ce971b5..0621e16 100644 (file)
@@ -62,14 +62,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/cmfree.c 
@@ -97,14 +89,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/icm.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/icsplit.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/probe-intercomm.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5a26dcb..7c92987 100644 (file)
@@ -144,14 +144,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/blockindexed-misc.c 
@@ -219,14 +211,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/zero-blklen-vector.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/zeroblks.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/zeroparms.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 3a18100..f15b0cd 100644 (file)
@@ -29,17 +29,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   target_link_libraries(typeattr2f simgrid mtest_f77)
   target_link_libraries(typeattr3f simgrid mtest_f77)
   target_link_libraries(typeattrf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-)
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/attraints.h
@@ -54,10 +45,6 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/typeattrf.f
   PARENT_SCOPE
 )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
index 4c9d34c..74459dc 100644 (file)
@@ -39,17 +39,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   target_link_libraries(split_typef simgrid mtest_f77)
   target_link_libraries(uallreducef simgrid mtest_f77)
   target_link_libraries(vw_inplacef simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allredint8f.f
@@ -66,14 +57,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/split_typef.f
   ${CMAKE_CURRENT_SOURCE_DIR}/uallreducef.f
   ${CMAKE_CURRENT_SOURCE_DIR}/vw_inplacef.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index ac440db..9882a17 100644 (file)
@@ -15,29 +15,14 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 
  # target_link_libraries(commerrf simgrid mtest_f77)
 #  target_link_libraries(commnamef simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/commerrf.f
   ${CMAKE_CURRENT_SOURCE_DIR}/commnamef.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0e1d4d7..fc2942a 100644 (file)
@@ -35,17 +35,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(typenamef simgrid mtest_f77)
 #  target_link_libraries(typesnamef simgrid mtest_f77)
 #  target_link_libraries(typesubf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allctypesf.f
@@ -60,14 +51,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/typenamef.f
   ${CMAKE_CURRENT_SOURCE_DIR}/typesnamef.f
   ${CMAKE_CURRENT_SOURCE_DIR}/typesubf.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 5026d9b..6de863c 100644 (file)
@@ -17,17 +17,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(allocmemf simgrid mtest_f77)
 #  target_link_libraries(c2f2cf simgrid mtest_f77)
 #  target_link_libraries(ctypesinf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/add1size.h
@@ -37,14 +28,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/c2fmult.c
   ${CMAKE_CURRENT_SOURCE_DIR}/ctypesfromc.c
   ${CMAKE_CURRENT_SOURCE_DIR}/ctypesinf.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 115ddf5..d47edb7 100644 (file)
@@ -11,34 +11,18 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-
   add_executable(infotest2f infotest2f.f ../util/mtestf.f)
   add_executable(infotestf infotestf.f ../util/mtestf.f)
   target_link_libraries(infotest2f simgrid mtest_f77)
   target_link_libraries(infotestf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/infotest2f.f 
  ${CMAKE_CURRENT_SOURCE_DIR}/infotestf.f 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0491a17..6d7fda3 100644 (file)
@@ -12,29 +12,14 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 
   add_executable(baseenvf baseenvf.f)
   target_link_libraries(baseenvf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/baseenvf.f
   ${CMAKE_CURRENT_SOURCE_DIR}/checksizes.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 16f995f..3dfc6c4 100644 (file)
@@ -20,17 +20,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(greqf simgrid mtest_f77)
   #target_link_libraries(mprobef simgrid mtest_f77)
   target_link_libraries(statusesf simgrid mtest_f77)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allpairf.f
@@ -39,14 +30,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/greqf.f
   ${CMAKE_CURRENT_SOURCE_DIR}/mprobef.f
   ${CMAKE_CURRENT_SOURCE_DIR}/statusesf.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 3595f85..d5b57fd 100644 (file)
@@ -35,18 +35,8 @@ target_link_libraries(wingetf simgrid mtest_f77)
 target_link_libraries(winnamef simgrid mtest_f77)
 target_link_libraries(winscale1f simgrid mtest_f77)
 #target_link_libraries(winscale2f simgrid mtest_f77)
-
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/winaccf.f
@@ -64,14 +54,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/winscale1f.f
   ${CMAKE_CURRENT_SOURCE_DIR}/winscale2f.f
   ${CMAKE_CURRENT_SOURCE_DIR}/addsize.h
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 4f2703a..1258e4a 100644 (file)
@@ -18,27 +18,13 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(dgraph_unwgtf simgrid mtest_f77)
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dgraph_wgtf.f
   ${CMAKE_CURRENT_SOURCE_DIR}/dgraph_unwgtf.f
   ${CMAKE_CURRENT_SOURCE_DIR}/cartcrf.f
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f0bff73..e853598 100644 (file)
@@ -17,5 +17,4 @@ endif()
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/../util/mtestf.f
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index bdefabe..7d29837 100644 (file)
@@ -37,17 +37,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   target_link_libraries(split_typef90  simgrid mtest_f90)
   target_link_libraries(uallreducef90  simgrid mtest_f90)
   target_link_libraries(vw_inplacef90  simgrid mtest_f90)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allredint8f90.f90
@@ -64,14 +55,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/split_typef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/uallreducef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/vw_inplacef90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 05a3d79..cdedaad 100644 (file)
@@ -47,17 +47,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(typenamef90 simgrid mtest_f90)
 #  target_link_libraries(typesnamef90 simgrid mtest_f90)
 #  target_link_libraries(typesubf90 simgrid mtest_f90)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allctypesf90.f90
@@ -79,14 +70,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/typenamef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/typesnamef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/typesubf90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 11e84f2..b782197 100644 (file)
@@ -13,29 +13,14 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   add_executable(infotestf90 infotestf90.f90 ../util/mtestf90.f90)
   target_link_libraries(infotest2f90  simgrid mtest_f90)
   target_link_libraries(infotestf90  simgrid mtest_f90)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/infotest2f90.f90 
  ${CMAKE_CURRENT_SOURCE_DIR}/infotestf90.f90 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index f3aaa77..de127c5 100644 (file)
@@ -11,28 +11,13 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 
   add_executable(baseenvf90 baseenvf90.f90)
   target_link_libraries(baseenvf90 simgrid mtest_f90)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/baseenvf90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 2c3f619..d293207 100644 (file)
@@ -17,17 +17,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 #  target_link_libraries(greqf90 simgrid mtest_f90)
 #  target_link_libraries(mprobef90 simgrid mtest_f90)
   target_link_libraries(statusesf90 simgrid mtest_f90)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/allpairf90.f90
@@ -35,14 +26,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/greqf90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/mprobef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/statusesf90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 32f074a..720c473 100644 (file)
@@ -35,18 +35,8 @@ target_link_libraries(wingetf90 simgrid mtest_f90)
 target_link_libraries(winnamef90 simgrid mtest_f90)
 target_link_libraries(winscale1f90 simgrid mtest_f90)
 #target_link_libraries(winscale2f90 simgrid mtest_f90)
-
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/winaccf90.f90
@@ -63,14 +53,8 @@ set(examples_src
   ${CMAKE_CURRENT_SOURCE_DIR}/winnamef90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/winscale1f90.f90
   ${CMAKE_CURRENT_SOURCE_DIR}/winscale2f90.f90
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 01eafe2..9abba67 100644 (file)
@@ -11,12 +11,9 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
 
   #F90 version of the mtest library
   add_library(mtest_f90 STATIC ../util/mtestf90.f90)
-
 endif()
 
-
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/../util/mtestf90.f90
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 65b7bc8..4752ea1 100644 (file)
@@ -23,17 +23,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   target_link_libraries(grouptest simgrid mtest_c)
   target_link_libraries(gtranks simgrid mtest_c)
   target_link_libraries(gtranksperf simgrid mtest_c)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/groupcreate.c 
@@ -42,14 +33,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/grouptest.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/gtranks.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/gtranksperf.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index e7f412c..259cdd9 100644 (file)
@@ -7,11 +7,10 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   endif()
 
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-  
+
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-
   add_executable(infodel infodel.c)
   add_executable(infodup infodup.c)
 #  add_executable(infoenv infoenv.c)
@@ -21,8 +20,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   add_executable(infotest infotest.c)
   add_executable(infovallen infovallen.c)
 
-
-
   target_link_libraries(infodel simgrid mtest_c)
   target_link_libraries(infodup simgrid mtest_c)
 #  target_link_libraries(infoenv simgrid mtest_c)
@@ -31,20 +28,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   target_link_libraries(infoorder simgrid mtest_c)
   target_link_libraries(infotest simgrid mtest_c)
   target_link_libraries(infovallen simgrid mtest_c)
-
-
-
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/infodel.c 
@@ -55,14 +40,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/infoorder.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/infotest.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/infovallen.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 64b9266..9066dc2 100644 (file)
@@ -29,17 +29,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   target_link_libraries(library_version simgrid mtest_c)
 #  target_link_libraries(timeout simgrid mtest_c)
   target_link_libraries(version simgrid mtest_c)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/attrself.c 
@@ -51,14 +42,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/library_version.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/timeout.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/version.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 85760a4..686fe1b 100644 (file)
@@ -7,11 +7,10 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   endif()
 
   set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-  
+
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-
   add_executable(commcreatep commcreatep.c)
 #  add_executable(dtpack dtpack.c)
 #  add_executable(indexperf indexperf.c)
@@ -24,7 +23,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   add_executable(transp-datatype transp-datatype.c)
   add_executable(twovec twovec.c)
 
-
   target_link_libraries(commcreatep simgrid mtest_c)
 #  target_link_libraries(dtpack simgrid mtest_c)
 #  target_link_libraries(indexperf simgrid mtest_c)
@@ -36,20 +34,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   target_link_libraries(timer simgrid mtest_c)
   target_link_libraries(transp-datatype simgrid mtest_c)
   target_link_libraries(twovec simgrid mtest_c)
-
-
-
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/allredtrace.c 
@@ -64,15 +50,9 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/timer.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/transp-datatype.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/twovec.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/README
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 656d79b..4ca54a0 100644 (file)
@@ -87,17 +87,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 #  target_link_libraries(sendself simgrid mtest_c)
   target_link_libraries(waitany-null simgrid mtest_c)
   target_link_libraries(waittestnull simgrid mtest_c)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/anyall.c 
@@ -138,14 +129,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/sendself.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/waitany-null.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/waittestnull.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 4bbd73f..ec4fdaa 100644 (file)
@@ -11,7 +11,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-
   add_executable(accfence1 accfence1.c)
   add_executable(accfence2_am accfence2_am.c)
   add_executable(accfence2 accfence2.c)
@@ -108,8 +107,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 #  add_executable(win_zero win_zero.c)
 #  add_executable(wintest wintest.c)
 
-
-
   target_link_libraries(accfence1 simgrid mtest_c)
   target_link_libraries(accfence2_am simgrid mtest_c)
   target_link_libraries(accfence2 simgrid mtest_c)
@@ -206,8 +203,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 #  target_link_libraries(win_zero simgrid mtest_c)
 #  target_link_libraries(wintest simgrid mtest_c)
 
-
-
  set_target_properties(accfence1 PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
  set_target_properties(accfence2_am PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
  set_target_properties(accfence2 PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
@@ -303,17 +298,8 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
 # set_target_properties(win_large_shm PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
 # set_target_properties(win_zero PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
 # set_target_properties(wintest PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
   ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/accfence1.c 
@@ -411,16 +397,10 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/win_shared_noncontig.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/win_shared_noncontig_put.c 
  ${CMAKE_CURRENT_SOURCE_DIR}/wintest.c 
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
   ${CMAKE_CURRENT_SOURCE_DIR}/mcs-mutex.h
   ${CMAKE_CURRENT_SOURCE_DIR}/squelch.h
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 84181a0..3a9fd06 100644 (file)
@@ -10,7 +10,6 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-
 add_executable(cartcreates cartcreates.c)
 #add_executable(cartmap1 cartmap1.c)
 add_executable(cartshift1 cartshift1.c)
@@ -29,7 +28,6 @@ add_executable(cartzero cartzero.c)
 #  add_executable(topodup topodup.c)
 #add_executable(topotest topotest.c)
 
-
 target_link_libraries(cartcreates simgrid mtest_c)
 # target_link_libraries(cartmap1 simgrid mtest_c)
 target_link_libraries(cartshift1 simgrid mtest_c)
@@ -47,17 +45,8 @@ target_link_libraries(cartzero simgrid mtest_c)
 #  target_link_libraries(neighb_coll simgrid mtest_c)
 #  target_link_libraries(topodup simgrid mtest_c)
 #  target_link_libraries(topotest simgrid mtest_c)
-
 endif()
 
-set(tesh_files
-  ${tesh_files}
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(examples_src
  ${examples_src}
  ${CMAKE_CURRENT_SOURCE_DIR}/cartcreates.c
@@ -78,14 +67,8 @@ set(examples_src
  ${CMAKE_CURRENT_SOURCE_DIR}/testlist
  ${CMAKE_CURRENT_SOURCE_DIR}/topodup.c
  ${CMAKE_CURRENT_SOURCE_DIR}/topotest.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index e922072..e0813e7 100644 (file)
@@ -7,7 +7,6 @@
 #include "mpi.h"
 #include "mpitestconf.h"
 #include "mpitest.h"
-#include "smpi_cocci.h"
 #if defined(HAVE_STDIO_H) || defined(STDC_HEADERS)
 #include <stdio.h>
 #endif
index 6fb21c9..dc15032 100644 (file)
@@ -14,32 +14,18 @@ if(enable_smpi)
   target_link_libraries(dsend simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/pt2pt.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/TI_output.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/broken_hostfiles.tesh
-
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/dsend.c
   ${CMAKE_CURRENT_SOURCE_DIR}/pingpong.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(txt_files
   ${txt_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/empty-hostfile.txt
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index b32da37..651fa42 100644 (file)
@@ -16,31 +16,15 @@ if(enable_smpi)
   target_link_libraries(reduce_scatter_coll simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce_coll.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce.c
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce_coll.c
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 41b6bc7..0df0d9c 100644 (file)
@@ -32,7 +32,7 @@ int main( int argc, char **argv )
     MPI_Comm_rank( comm, &rank );
     sendbuf = (int *) malloc( size * sizeof(int) );
     for (i=0; i<size; i++) 
-       sendbuf[i] = rank + i;
+  sendbuf[i] = rank + i;
     recvcounts = (int *)malloc( size * sizeof(int) );
     recvbuf = (int *)malloc( size * sizeof(int) );
     for (i=0; i<size; i++) 
@@ -41,14 +41,14 @@ int main( int argc, char **argv )
     sumval = size * rank + ((size - 1) * size)/2;
 /* recvbuf should be size * (rank + i) */
     if (recvbuf[0] != sumval) {
-       err++;
-       fprintf( stdout, "Did not get expected value for reduce scatter\n" );
-       fprintf( stdout, "[%d] Got %d expected %d\n", rank, recvbuf[0], sumval );
+  err++;
+  fprintf( stdout, "Did not get expected value for reduce scatter\n" );
+  fprintf( stdout, "[%d] Got %d expected %d\n", rank, recvbuf[0], sumval );
     }
 
     MPI_Allreduce( &err, &toterr, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD );
     if (rank == 0 && toterr == 0) {
-       printf( " No Errors\n" );
+  printf( " No Errors\n" );
     }
     free(sendbuf);
     free(recvcounts);
index bfa8644..7388027 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(scatter simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/scatter_coll.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/scatter.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index d1a19c0..517ce09 100644 (file)
@@ -14,27 +14,11 @@ if(enable_smpi)
   endif()
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/shared.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/shared.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c45cbc3..a410060 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(struct_test simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/struct.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/struct_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 44c4480..b356e78 100644 (file)
@@ -12,27 +12,11 @@ if(enable_smpi)
   target_link_libraries(vector_test simgrid)
 endif()
 
-
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/vector.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/vector_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
diff --git a/teshsuite/surf/CMakeLists.txt b/teshsuite/surf/CMakeLists.txt
deleted file mode 100644 (file)
index 1e0ef76..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
index 7284c8d..0f1b817 100644 (file)
@@ -12,22 +12,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/lmm_usage.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/lmm_usage.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 3d7dfab..429e117 100644 (file)
@@ -13,22 +13,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/maxmin_bench.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/maxmin_bench.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index a066102..1ac7848 100644 (file)
@@ -15,23 +15,9 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/surf_usage.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/surf_usage.cpp
   ${CMAKE_CURRENT_SOURCE_DIR}/surf_usage2.cpp
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 8aa09ec..c05e66b 100644 (file)
@@ -9,7 +9,6 @@
 #include <stdio.h>
 #include "simgrid/sg_config.h"
 #include "surf/surf.h"
-#include "surf/surfxml_parse.h" // for reset callback
 #include "src/surf/surf_interface.hpp"
 #include "src/surf/cpu_interface.hpp"
 
@@ -58,8 +57,8 @@ void test(char *platform)
   hostB = sg_host_by_name("Cpu B");
 
   /* Let's check that those two processors exist */
-  XBT_DEBUG("%s : %p", surf_cpu_name(hostA->pimpl_cpu), hostA);
-  XBT_DEBUG("%s : %p", surf_cpu_name(hostB->pimpl_cpu), hostB);
+  XBT_DEBUG("%s : %p", sg_host_get_name(hostA), hostA);
+  XBT_DEBUG("%s : %p", sg_host_get_name(hostB), hostB);
 
   /* Let's do something on it */
   actionA = hostA->pimpl_cpu->execution_start(1000.0);
index 41024bc..3230aa2 100644 (file)
@@ -9,7 +9,6 @@
 #include <stdio.h>
 #include "simgrid/sg_config.h"
 #include "surf/surf.h"
-#include "surf/surfxml_parse.h" // for reset callback
 #include "src/surf/surf_interface.hpp"
 #include "src/surf/cpu_interface.hpp"
 
index f4345e8..09c918a 100644 (file)
@@ -12,22 +12,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/trace_usage.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/trace_usage.cpp
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index c9fb7e4..d6f648c 100644 (file)
@@ -24,7 +24,7 @@ class DummyTestResource
 public:
   DummyTestResource(const char *name) : Resource(nullptr,name) {}
   bool isUsed() override {return false;}
-  void updateState(tmgr_trace_iterator_t it, double date, double value) override {}
+  void apply_event(tmgr_trace_iterator_t it, double value) override {}
 };
 
 static void test(void)
index e9c2066..1d6f8b3 100644 (file)
@@ -12,23 +12,12 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/graphxml_usage.tesh
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(xml_files
   ${xml_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/graph.xml
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/graphxml_usage.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 0d11fc0..d4cf170 100644 (file)
@@ -12,22 +12,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/heap_bench.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/heap_bench.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 4420c95..319a260 100644 (file)
@@ -1,29 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(log_large_test log_large_test.c)
-
-### Add definitions for compile
 target_link_libraries(log_large_test simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/log_large_test.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/log_large_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 3a1fe76..977aa2d 100644 (file)
@@ -13,22 +13,8 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/log_usage.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/log_usage_ndebug.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/log_usage.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index a364217..8981832 100644 (file)
@@ -6,22 +6,8 @@ target_link_libraries(mallocator simgrid)
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/mallocator.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/mallocator_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 508321a..12ef3cd 100644 (file)
@@ -9,22 +9,8 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/mmalloc_64.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/mmalloc_32.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/mmalloc_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 893d9aa..37672a0 100644 (file)
@@ -1,29 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(parallel_log_crashtest parallel_log_crashtest.c)
-
-### Add definitions for compile
 target_link_libraries(parallel_log_crashtest simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/parallel_log_crashtest.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/parallel_log_crashtest.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 345884b..d82fe5b 100644 (file)
@@ -12,22 +12,8 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/parmap_bench.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(testsuite_src
   ${testsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/parmap_bench.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index 94d6aeb..d75f385 100644 (file)
@@ -1,29 +1,13 @@
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(parmap_test parmap_test.c)
-
-### Add definitions for compile
 target_link_libraries(parmap_test simgrid)
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/parmap_test.tesh
-  PARENT_SCOPE
-  )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
 set(teshsuite_src
   ${teshsuite_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/parmap_test.c
-  PARENT_SCOPE
-  )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+  PARENT_SCOPE)
index ee75b3d..30701d8 100644 (file)
@@ -1,19 +1,17 @@
 ### define source packages
 
 set(EXTRA_DIST
-  src/bindings/java/MANIFEST.MF.in
+  src/bindings/java/MANIFEST.in
   src/include/instr/instr_interface.h
   src/include/mc/datatypes.h
   src/include/mc/mc.h
   src/mc/mc_mmu.h
   src/mc/PageStore.hpp
   src/mc/mc_record.h
-  src/include/simgrid/platf_interface.h
   src/include/simgrid/sg_config.h
   src/include/smpi/smpi_interface.h
   src/include/surf/datatypes.h
   src/include/surf/maxmin.h
-  src/include/surf/random_mgr.h
   src/include/surf/surf.h
   src/include/surf/surfxml_parse_values.h
   src/include/xbt/win32_ucontext.h
@@ -61,11 +59,11 @@ set(EXTRA_DIST
   src/surf/ns3/ns3_interface.h
   src/surf/ns3/ns3_simulator.h
   src/surf/ns3/red-queue.h
-  src/surf/platf_generator_private.h
-  src/surf/platform.hpp
   src/surf/plugins/energy.hpp
-  src/surf/simgrid.dtd
-  src/surf/simgrid_dtd.c
+  src/surf/xml/simgrid.dtd
+  src/surf/xml/simgrid_dtd.h
+  src/surf/xml/simgrid_dtd.c
+  src/surf/xml/surfxml_sax_cb.cpp
   src/surf/storage_interface.hpp
   src/surf/storage_n11.hpp
   src/surf/surf_interface.hpp
@@ -77,17 +75,16 @@ set(EXTRA_DIST
   src/surf/surf_routing_dijkstra.hpp
   src/surf/surf_routing_floyd.hpp
   src/surf/surf_routing_full.hpp
-  src/surf/surf_routing_generic.hpp
+  src/surf/surf_routing_RoutedGraph.hpp
   src/surf/surf_routing_none.hpp
   src/surf/surf_routing_private.hpp
   src/surf/surf_routing_vivaldi.hpp
-  src/surf/surfxml_parse.c
   src/surf/vm_hl13.hpp
   src/surf/PropertyHolder.hpp
   src/surf/virtual_machine.hpp
   src/surf/host_clm03.hpp
   src/surf/host_interface.hpp
-  src/surf/host_ptask_L07.hpp
+  src/surf/ptask_L07.hpp
   src/xbt/automaton/automaton_lexer.yy.c
   src/xbt/automaton/parserPromela.lex
   src/xbt/automaton/parserPromela.tab.cacc
@@ -116,7 +113,6 @@ set(EXTRA_DIST
   src/xbt/mmalloc/mmalloc.texi
   src/xbt/mmalloc/mmorecore.c
   src/xbt/mmalloc/mmprivate.h
-  src/xbt/mmalloc/mmtrace.awk
   src/xbt/mmalloc/mrealloc.c
   src/xbt/probes.h
   src/xbt/win32_ucontext.c
@@ -229,24 +225,24 @@ set(SMPI_SRC
   src/smpi/colls/smpi_intel_mpi_selector.c
   src/smpi/colls/smpi_openmpi_selector.c
   src/smpi/colls/smpi_mvapich2_selector.c
-  src/smpi/instr_smpi.c
-  src/smpi/smpi_base.c
-  src/smpi/smpi_bench.c
+  src/smpi/instr_smpi.cpp
+  src/smpi/smpi_base.cpp
+  src/smpi/smpi_bench.cpp
   src/smpi/smpi_memory.cpp
-  src/smpi/smpi_c99.c
-  src/smpi/smpi_coll.c
-  src/smpi/smpi_comm.c
-  src/smpi/smpi_deployment.c
-  src/smpi/smpi_dvfs.c
-  src/smpi/smpi_global.c
-  src/smpi/smpi_group.c
-  src/smpi/smpi_mpi.c
-  src/smpi/smpi_mpi_dt.c
-  src/smpi/smpi_pmpi.c
-  src/smpi/smpi_replay.c
-  src/smpi/smpi_rma.c
-  src/smpi/smpi_topo.c
-  src/smpi/smpi_f77.c
+  src/smpi/smpi_c99.cpp
+  src/smpi/smpi_coll.cpp
+  src/smpi/smpi_comm.cpp
+  src/smpi/smpi_deployment.cpp
+  src/smpi/smpi_dvfs.cpp
+  src/smpi/smpi_global.cpp
+  src/smpi/smpi_group.cpp
+  src/smpi/smpi_mpi.cpp
+  src/smpi/smpi_mpi_dt.cpp
+  src/smpi/smpi_pmpi.cpp
+  src/smpi/smpi_replay.cpp
+  src/smpi/smpi_rma.cpp
+  src/smpi/smpi_topo.cpp
+  src/smpi/smpi_f77.cpp
   )
 
 set(XBT_SRC
@@ -314,7 +310,7 @@ set(SURF_SRC
   src/surf/cpu_ti.cpp
   src/surf/fair_bottleneck.cpp
   src/surf/instr_routing.cpp
-  src/surf/instr_surf.c
+  src/surf/instr_surf.cpp
   src/surf/lagrange.cpp
   src/surf/maxmin.cpp
   src/surf/network_cm02.cpp
@@ -322,10 +318,8 @@ set(SURF_SRC
   src/surf/network_interface.cpp
   src/surf/network_smpi.cpp
   src/surf/network_ib.cpp
-  src/surf/platf_generator.c
   src/surf/plugins/energy.cpp
   src/surf/PropertyHolder.cpp
-  src/surf/random_mgr.c
   src/surf/sg_platf.cpp
   src/surf/storage_interface.cpp
   src/surf/storage_n11.cpp
@@ -338,18 +332,20 @@ set(SURF_SRC
   src/surf/surf_routing_dijkstra.cpp
   src/surf/surf_routing_floyd.cpp
   src/surf/surf_routing_full.cpp
-  src/surf/surf_routing_generic.cpp
+  src/surf/surf_routing_RoutedGraph.cpp
   src/surf/surf_routing_none.cpp
   src/surf/surf_routing_vivaldi.cpp
-  src/surf/surfxml_parse.c
-  src/surf/surfxml_parseplatf.cpp
+  src/surf/xml/platf.hpp
+  src/surf/xml/platf_private.hpp
+  src/surf/xml/surfxml_sax_cb.cpp
+  src/surf/xml/surfxml_parseplatf.cpp
   src/surf/trace_mgr.hpp
   src/surf/trace_mgr.cpp
   src/surf/vm_hl13.cpp
   src/surf/virtual_machine.cpp
   src/surf/host_clm03.cpp
   src/surf/host_interface.cpp
-  src/surf/host_ptask_L07.cpp
+  src/surf/ptask_L07.cpp
   src/xbt/xbt_sg_stubs.c
   )
 
@@ -386,7 +382,7 @@ else()
 endif()
 
 # Boost context may not be available
-if (HAVE_BOOST_CONTEXT)
+if (HAVE_BOOST_CONTEXTS)
   set(SIMIX_SRC
       ${SIMIX_SRC}
       src/simix/BoostContext.hpp
@@ -525,11 +521,10 @@ list(APPEND JMSG_C_SRC ${JTRACE_C_SRC})
 list(APPEND JMSG_JAVA_SRC ${JTRACE_JAVA_SRC})
 
 set(LUA_SRC
-  src/bindings/lua/factories/host.lua
-  src/bindings/lua/lua_host.c
-  src/bindings/lua/lua_platf.c
-  src/bindings/lua/lua_debug.c
-  src/bindings/lua/simgrid_lua.c
+  src/bindings/lua/lua_host.cpp
+  src/bindings/lua/lua_platf.cpp
+  src/bindings/lua/lua_debug.cpp
+  src/bindings/lua/simgrid_lua.cpp
   )
 
 set(TRACING_SRC
@@ -551,10 +546,10 @@ set(JEDULE_SRC
   include/simgrid/jedule/jedule_output.h
   include/simgrid/jedule/jedule_platform.h
   include/simgrid/jedule/jedule_sd_binding.h
-  src/instr/jedule/jedule_events.c
-  src/instr/jedule/jedule_output.c
-  src/instr/jedule/jedule_platform.c
-  src/instr/jedule/jedule_sd_binding.c
+  src/instr/jedule/jedule_events.cpp
+  src/instr/jedule/jedule_output.cpp
+  src/instr/jedule/jedule_platform.cpp
+  src/instr/jedule/jedule_sd_binding.cpp
   )
 
 set(MC_SRC_BASE
@@ -659,8 +654,6 @@ set(headers_to_install
   include/simgrid/datatypes.h
   include/simgrid/modelchecker.h
   include/simgrid/forward.h
-  include/simgrid/platf.h
-  include/simgrid/platf_generator.h
   include/simgrid/simix.h
   include/simgrid/simix.hpp
   include/simgrid/host.h
@@ -678,11 +671,8 @@ set(headers_to_install
   include/simgrid/plugins/energy.h
   include/smpi/mpi.h
   include/smpi/smpi.h
-  include/smpi/smpi_cocci.h
   include/smpi/smpi_main.h
-  include/surf/simgrid_dtd.h
   include/surf/surf_routing.h
-  include/surf/surfxml_parse.h
   include/xbt.h
   include/xbt/RngStream.h
   include/xbt/asserts.h
@@ -713,6 +703,7 @@ set(headers_to_install
   include/xbt/mmalloc.h
   include/xbt/module.h
   include/xbt/parmap.h
+  include/xbt/range.hpp
   include/xbt/replay.h
   include/xbt/str.h
   include/xbt/strbuff.h
@@ -729,8 +720,8 @@ set(source_of_generated_headers
   src/context_sysv_config.h.in)
 
 ### depend of some variables setted upper
-# -->CONTEXT_THREADS CONTEXT_UCONTEXT
-if(${CONTEXT_THREADS}) #pthread
+# -->HAVE_THREAD_CONTEXTS HAVE_UCONTEXT_CONTEXTS
+if(${HAVE_THREAD_CONTEXTS}) #pthread
   set(SURF_SRC
     ${SURF_SRC}
     src/simix/ThreadContext.cpp
@@ -744,7 +735,7 @@ else() # NOT pthread
     )
 endif()
 
-if(${CONTEXT_THREADS}) #pthread
+if(${HAVE_THREAD_CONTEXTS}) #pthread
   set(SURF_SRC
     ${SURF_SRC}
     src/xbt/xbt_os_thread.c
@@ -756,7 +747,7 @@ else() # NOT pthread
     )
 endif()
 
-if(${CONTEXT_UCONTEXT}) #ucontext
+if(${HAVE_UCONTEXT_CONTEXTS}) #ucontext
   set(SURF_SRC
     ${SURF_SRC}
     src/simix/UContext.cpp
@@ -771,12 +762,14 @@ endif()
 ### Simgrid Lib sources
 set(simgrid_sources
   ${BINDINGS_SRC}
-  ${S4U_SRC}
+  ${MC_SRC_BASE}
   ${MSG_SRC}
+  ${S4U_SRC}
   ${SIMDAG_SRC}
   ${SIMGRID_SRC}
   ${SIMIX_SRC}
   ${SURF_SRC}
+  ${TRACING_SRC}
   ${XBT_SRC}
   )
 
@@ -799,16 +792,6 @@ if(enable_smpi)
     )
 endif()
 
-set(simgrid_sources
-    ${simgrid_sources}
-    ${TRACING_SRC}
-    )
-
-set(simgrid_sources
-  ${simgrid_sources}
-  ${MC_SRC_BASE}
-  )
-
 if(HAVE_MC)
   set(simgrid_sources
     ${simgrid_sources}
@@ -863,10 +846,6 @@ set(DOC_SOURCES
   doc/triva-time_interval.png
   doc/triva-time_interval.svg
 
-  doc/HelloWorld/CMakeLists.txt
-  doc/HelloWorld/HelloWorld.c
-  doc/HelloWorld/README
-
   doc/doxygen/FAQ.doc
   doc/doxygen/advanced.doc
   doc/doxygen/bindings.doc
@@ -935,7 +914,6 @@ set(DOC_TOOLS
 
 # these files get copied automatically to the html documentation
 set(DOC_IMG
-  ${CMAKE_HOME_DIRECTORY}/doc/simgrid.css
   ${CMAKE_HOME_DIRECTORY}/doc/sc3-description.png
   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/AS_hierarchy.png
   ${CMAKE_HOME_DIRECTORY}/doc/webcruft/Paje_MSG_screenshot.jpg
@@ -981,7 +959,6 @@ set(txt_files
   LICENSE-LGPL-2.1
   NEWS
   TODO
-  configure
   )
 
 set(EXAMPLES_CMAKEFILES_TXT
@@ -1040,16 +1017,11 @@ set(EXAMPLES_CMAKEFILES_TXT
   examples/s4u/CMakeLists.txt
   examples/s4u/basic/CMakeLists.txt
   examples/s4u/io/CMakeLists.txt
-  examples/scala/CMakeLists.txt
-  examples/scala/master_slave_bypass/CMakeLists.txt
-  examples/scala/master_slave_kill/CMakeLists.txt
-  examples/scala/masterslave/CMakeLists.txt
   examples/simdag/CMakeLists.txt
   examples/simdag/dax/CMakeLists.txt
   examples/simdag/dot/CMakeLists.txt
   examples/simdag/goal/CMakeLists.txt
   examples/simdag/io/CMakeLists.txt
-  examples/simdag/metaxml/CMakeLists.txt
   examples/simdag/properties/CMakeLists.txt
   examples/simdag/scheduling/CMakeLists.txt
   examples/smpi/CMakeLists.txt
@@ -1059,19 +1031,17 @@ set(EXAMPLES_CMAKEFILES_TXT
   examples/smpi/energy/CMakeLists.txt
   examples/smpi/energy/f77/CMakeLists.txt
   examples/smpi/energy/f90/CMakeLists.txt
-  examples/xbt/CMakeLists.txt
   )
 
 set(TESHSUITE_CMAKEFILES_TXT
   teshsuite/bug-17132/CMakeLists.txt
-  teshsuite/java/CMakeLists.txt
+  teshsuite/java/semaphore/CMakeLists.txt
   teshsuite/java/sleep_host_off/CMakeLists.txt
   teshsuite/lua/lua_platforms.tesh
   teshsuite/mc/CMakeLists.txt
   teshsuite/mc/dwarf/CMakeLists.txt
   teshsuite/mc/dwarf_expression/CMakeLists.txt
   teshsuite/mc/replay/CMakeLists.txt
-  teshsuite/msg/CMakeLists.txt
   teshsuite/msg/get_sender/CMakeLists.txt
   teshsuite/msg/host_on_off/CMakeLists.txt
   teshsuite/msg/host_on_off_processes/CMakeLists.txt
@@ -1084,7 +1054,6 @@ set(TESHSUITE_CMAKEFILES_TXT
   teshsuite/simdag/availability/CMakeLists.txt
   teshsuite/simdag/basic/CMakeLists.txt
   teshsuite/simdag/incomplete/CMakeLists.txt
-  teshsuite/simdag/network/CMakeLists.txt
   teshsuite/simdag/network/mxn/CMakeLists.txt
   teshsuite/simdag/network/p2p/CMakeLists.txt
   teshsuite/simdag/partask/CMakeLists.txt
@@ -1140,7 +1109,6 @@ set(TESHSUITE_CMAKEFILES_TXT
   teshsuite/smpi/mpich3-test/topo/CMakeLists.txt
   teshsuite/smpi/mpich3-test/rma/CMakeLists.txt
   teshsuite/smpi/mpich3-test/perf/CMakeLists.txt
-  teshsuite/surf/CMakeLists.txt
   teshsuite/surf/lmm_usage/CMakeLists.txt
   teshsuite/surf/maxmin_bench/CMakeLists.txt
   teshsuite/surf/surf_usage/CMakeLists.txt
@@ -1185,7 +1153,6 @@ set(CMAKE_SOURCE_FILES
   tools/cmake/Modules/FindNS3.cmake
   tools/cmake/Modules/FindRngStream.cmake
   tools/cmake/Modules/FindRubySimgrid.cmake
-  tools/cmake/Modules/FindScala.cmake
   tools/cmake/Modules/FindSimGrid.cmake
   tools/cmake/Modules/FindValgrind.cmake
   tools/cmake/Option.cmake
@@ -1198,12 +1165,8 @@ set(CMAKE_SOURCE_FILES
   tools/cmake/scripts/IPC/Run/Win32IO.pm
   tools/cmake/scripts/IPC/Run/Win32Pump.pm
   tools/cmake/scripts/Diff.pm
-  tools/cmake/scripts/Makefile.default
-  tools/cmake/scripts/SimGrid.packproj
   tools/cmake/scripts/generate_memcheck_tests.pl
   tools/cmake/scripts/my_valgrind.pl
-  tools/cmake/scripts/postinstall.sh
-  tools/cmake/scripts/preinstall.sh
   tools/cmake/scripts/update_tesh.pl
   tools/cmake/UnitTesting.cmake
   tools/cmake/src/internal_config.h.in
@@ -1229,6 +1192,7 @@ set(CMAKE_SOURCE_FILES
   )
 
 set(PLATFORMS_EXAMPLES
+  examples/platforms/2clusters.xml
   examples/platforms/bypassASroute.xml
   examples/platforms/bypassRoute.xml
   examples/platforms/cloud.xml
@@ -1239,28 +1203,25 @@ set(PLATFORMS_EXAMPLES
   examples/platforms/clusters_routing_full.xml
   examples/platforms/crosstraffic.xml
   examples/platforms/conf/gridpp_grid_2004.conf
-  examples/platforms/conf/gridpp_grid_2004.xml
   examples/platforms/conf/lcg_sept2004_grid.conf
-  examples/platforms/conf/lcg_sept2004_grid.xml
   examples/platforms/conf/transform_optorsim_platform.pl
   examples/platforms/config.xml
   examples/platforms/config_tracing.xml
+  examples/platforms/trace/faulty_host.trace
+  examples/platforms/trace/jupiter_speed.trace
+  examples/platforms/trace/link1_avail.trace
   examples/platforms/trace/linkBandwidth7.bw
   examples/platforms/trace/trace_A_failure.txt
   examples/platforms/trace/trace_A.txt
   examples/platforms/trace/trace_B.txt
   examples/platforms/data_center.xml
   examples/platforms/energy_platform.xml
+  examples/platforms/faulty_host.xml
   examples/platforms/fat_tree_cluster.xml
   examples/platforms/g5k.xml
-  examples/platforms/generation_scripts/create_hierarchical_clusters.pl
-  examples/platforms/generation_scripts/enhancedDTDwithHierarchicalCluster.pl
-  examples/platforms/generation_scripts/generate_g5k_platform.pl
-  examples/platforms/generation_scripts/generate_g5k_platform_cabinets.pl
   examples/platforms/griffon.xml
   examples/platforms/meta_cluster.xml
   examples/platforms/multicore_machine.xml
-  examples/platforms/platform.lua
   examples/platforms/platform.xml
   examples/platforms/prop.xml
   examples/platforms/routing_cluster.xml
@@ -1270,7 +1231,6 @@ set(PLATFORMS_EXAMPLES
   examples/platforms/storage/content/small_content.txt
   examples/platforms/storage/content/storage_content.txt
   examples/platforms/storage/content/win_storage_content.txt
-  examples/platforms/storage/remote_io.deployment.xml
   examples/platforms/storage/remote_io.xml
   examples/platforms/storage/storage.xml
   examples/platforms/small_platform.xml
@@ -1287,6 +1247,7 @@ set(PLATFORMS_EXAMPLES
   examples/platforms/syscoord/median_p2psim.syscoord
   examples/platforms/syscoord/median_p2psim.xml
   examples/platforms/torus_cluster.xml
+  examples/platforms/two_hosts.xml
   examples/platforms/two_hosts_platform.xml
   examples/platforms/two_hosts_platform_shared.xml
   examples/platforms/two_hosts_platform_with_availability.xml
index 865cc32..8f5338d 100644 (file)
@@ -6,8 +6,6 @@
 file(MAKE_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc/html/)
 install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/html/"
   DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/html/)
-install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/HelloWorld/"
-  DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/HelloWorld/)
 
 # binaries
 if(enable_smpi)
@@ -81,23 +79,6 @@ foreach(file ${examples_to_install})
     DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/examples/${location})
 endforeach(file ${examples_to_install})
 
-# bindings cruft
-
-if(HAVE_LUA)
-  file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/lib/lua/5.1")
-  add_custom_target(simgrid_lua ALL
-    DEPENDS simgrid
-    ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
-    )
-  add_custom_command(
-    OUTPUT ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
-    COMMAND ${CMAKE_COMMAND} -E create_symlink ../../libsimgrid.${LIB_EXE} ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
-    )
-  install(FILES ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
-    DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lua/5.1
-    )
-endif()
-
 ###########################################
 ### Fill in the "make uninstall" target ###
 ###########################################
@@ -246,7 +227,6 @@ endforeach(file ${source_to_pack})
 
 add_custom_command(
   TARGET dist-dir
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
   COMMAND ${CMAKE_COMMAND} -E echo "${GIT_VERSION}" > ${PROJECT_NAME}-${release_version}/.gitversion
   )
 
index b44c32a..175d693 100644 (file)
@@ -108,6 +108,8 @@ add_custom_target(sync-gforge-doc
   COMMAND ${RSYNC_CMD} doc/html/simgrid_modules2.png doc/html/simgrid_modules.png doc/webcruft/simgrid_logo_2011.png
   doc/webcruft/simgrid_logo_2011_small.png scm.gforge.inria.fr:/home/groups/simgrid/htdocs/simgrid/${release_version}/
 
+  COMMAND ${RSYNC_CMD} src/surf/xml/simgrid.dtd scm.gforge.inria.fr:/home/groups/simgrid/htdocs/simgrid/
+
   WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
   )
 add_dependencies(sync-gforge-doc documentation)
index 7f09188..d720229 100644 (file)
@@ -58,7 +58,7 @@ message("-- [Java] simgrid-java includes: ${CHECK_INCLUDES}")
 ## Files to include in simgrid.jar
 ##
 set(SIMGRID_JAR "${CMAKE_BINARY_DIR}/simgrid.jar")
-set(MANIFEST_IN_FILE "${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.MF.in")
+set(MANIFEST_IN_FILE "${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.in")
 set(MANIFEST_FILE "${CMAKE_BINARY_DIR}/src/bindings/java/MANIFEST.MF")
 
 set(LIBSIMGRID_SO
@@ -106,12 +106,6 @@ endif()
 
 if(enable_lib_in_jar)
 
-  # Stripping disabled for the time being to make Java debuggable. We should introduce a proper option for that.
-  #find_program(STRIP_COMMAND strip)
-  #mark_as_advanced(STRIP_COMMAND)
-  #if(NOT STRIP_COMMAND)
-  #  set(STRIP_COMMAND "cmake -E echo (strip not found)")
-  #endif()
   
   set(SG_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
   
@@ -136,22 +130,15 @@ if(enable_lib_in_jar)
     COMMENT "Add the native libs into simgrid.jar..."
     DEPENDS simgrid simgrid-java ${JAVALIBS}
          
-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${JAVA_NATIVE_PATH}
     COMMAND ${CMAKE_COMMAND} -E make_directory   ${JAVA_NATIVE_PATH}
     
-    ## strip seems to fail on Mac on binaries that are already stripped.
-    ## It then spits: "symbols referenced by indirect symbol table entries that can't be stripped"
-    #COMMAND ${STRIP_COMMAND} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_SO}      || true
-    #COMMAND ${STRIP_COMMAND} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_JAVA_SO} || true
-
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}      ${JAVA_NATIVE_PATH}
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} ${JAVA_NATIVE_PATH}
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}      ${JAVA_NATIVE_PATH}/${LIBSIMGRID_SO}
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_JAVA_SO}
     # There is no way to disable the dependency of mingw-64 on that lib, unfortunately
     # nor to script cmake -E properly, so let's be brutal
-    COMMAND ${CMAKE_COMMAND} -E copy C:/mingw64/bin/libwinpthread-1.dll  ${JAVA_NATIVE_PATH} || true
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different C:/mingw64/bin/libwinpthread-1.dll  ${JAVA_NATIVE_PATH}/libwinpthread-1.dll || true
     
     COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR}  ${JAVA_NATIVE_PATH}
-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${JAVA_NATIVE_PATH}
     
     COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in ${JAVA_NATIVE_PATH}"
     COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${SIMGRID_JAR}" org.simgrid.NativeLib
index fbedec0..9ba2824 100644 (file)
@@ -144,40 +144,41 @@ if(enable_maintainer_mode AND NOT WIN32)
     set(string15 "'s/FAIL(\"Premature EOF/if(!ETag_surfxml_include_state()) FAIL(\"Premature EOF/'")
 
     ADD_CUSTOM_COMMAND(
-      OUTPUT   ${CMAKE_HOME_DIRECTORY}/include/surf/simgrid_dtd.h
+      OUTPUT   ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h
       ${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h
       ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
-      ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid_dtd.c
+      ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
       ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.c
       ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
 
-      DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid.dtd
+      DEPENDS  ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
       ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.dtd
       ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
 
-      #${CMAKE_HOME_DIRECTORY}/src/surf/simgrid_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid.dtd
-      COMMAND ${FLEXML_EXE} --root-tags platform -b 1000000 -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid.dtd -S src/surf/simgrid_dtd.l -L src/surf/simgrid.dtd
-      COMMAND ${SED_EXE} -i ${string14} src/surf/simgrid_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E echo "src/surf/simgrid_dtd.l"
+      #${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
+      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/surf/xml
+      COMMAND ${FLEXML_EXE} --root-tags platform -b 1000000 -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd -S src/surf/xml/simgrid_dtd.l -L src/surf/xml/simgrid.dtd
+      COMMAND ${SED_EXE} -i ${string14} src/surf/xml/simgrid_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/surf/xml/simgrid_dtd.l"
 
       #${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.l: ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.dtd
       COMMAND ${FLEXML_EXE} -b 1000000 -P graphxml --sysid=graphxml.dtd -S src/xbt/graphxml.l -L src/xbt/graphxml.dtd
       COMMAND ${SED_EXE} -i ${string14} src/xbt/graphxml.l
-      COMMAND ${CMAKE_COMMAND} -E echo "src/xbt/graphxml.l"
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/xbt/graphxml.l"
 
       #${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.l: ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
       COMMAND ${FLEXML_EXE} -b 1000000 --root-tags adag -P dax_ --sysid=dax.dtd -S src/simdag/dax_dtd.l -L src/simdag/dax.dtd
       COMMAND ${SED_EXE} -i ${string5} src/simdag/dax_dtd.l
       COMMAND ${SED_EXE} -i ${string14} src/simdag/dax_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E echo "src/simdag/dax_dtd.l"
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.l"
 
-      #${CMAKE_HOME_DIRECTORY}/include/surf/simgrid_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid.dtd
+      #${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid.dtd
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/include/surf/simgrid.h
-      COMMAND ${FLEXML_EXE} --root-tags platform -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid.dtd -H include/surf/simgrid_dtd.h -L src/surf/simgrid.dtd
-      COMMAND ${SED_EXE} -i ${string1} include/surf/simgrid_dtd.h
-      COMMAND ${SED_EXE} -i ${string2} include/surf/simgrid_dtd.h
-      COMMAND ${SED_EXE} -i ${string14} include/surf/simgrid_dtd.h
-      COMMAND ${CMAKE_COMMAND} -E echo "include/surf/simgrid_dtd.h"
+      COMMAND ${FLEXML_EXE} --root-tags platform -P surfxml --sysid=http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd -H src/surf/xml/simgrid_dtd.h -L src/surf/xml/simgrid.dtd
+      COMMAND ${SED_EXE} -i ${string1} src/surf/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string2} src/surf/xml/simgrid_dtd.h
+      COMMAND ${SED_EXE} -i ${string14} src/surf/xml/simgrid_dtd.h
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/surf/xml/simgrid_dtd.h"
 
       #${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h: ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.dtd
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h
@@ -185,7 +186,7 @@ if(enable_maintainer_mode AND NOT WIN32)
       COMMAND ${SED_EXE} -i ${string1} include/xbt/graphxml.h
       COMMAND ${SED_EXE} -i ${string2} include/xbt/graphxml.h
       COMMAND ${SED_EXE} -i ${string14} include/xbt/graphxml.h
-      COMMAND ${CMAKE_COMMAND} -E echo "include/xbt/graphxml.h"
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated include/xbt/graphxml.h"
 
       #${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h: ${CMAKE_HOME_DIRECTORY}/src/simdag/dax.dtd
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
@@ -193,16 +194,17 @@ if(enable_maintainer_mode AND NOT WIN32)
       COMMAND ${SED_EXE} -i ${string1} src/simdag/dax_dtd.h
       COMMAND ${SED_EXE} -i ${string2} src/simdag/dax_dtd.h
       COMMAND ${SED_EXE} -i ${string14} src/simdag/dax_dtd.h
-      COMMAND ${CMAKE_COMMAND} -E echo "src/simdag/dax_dtd.h"
-
-      #surf/simgrid_dtd.c: surf/simgrid_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i ${string8} src/surf/simgrid_dtd.l
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/surf
-      COMMAND ${FLEX_EXE} -o src/surf/simgrid_dtd.c -Psurf_parse_ --noline src/surf/simgrid_dtd.l
-      COMMAND ${SED_EXE} -i ${string9} src/surf/simgrid_dtd.c
-      COMMAND ${SED_EXE} -i ${string15} src/surf/simgrid_dtd.c
-      COMMAND ${CMAKE_COMMAND} -E echo "surf/simgrid_dtd.c"
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.h"
+
+      #surf/xml/simgrid_dtd.c: surf/xml/simgrid_dtd.l
+      COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
+      COMMAND ${SED_EXE} -i ${string8} src/surf/xml/simgrid_dtd.l
+      COMMAND ${FLEX_EXE} -o src/surf/xml/simgrid_dtd.c -Psurf_parse_ --noline src/surf/xml/simgrid_dtd.l
+      COMMAND ${SED_EXE} -i ${string9} src/surf/xml/simgrid_dtd.c
+      COMMAND ${SED_EXE} -i ${string15} src/surf/xml/simgrid_dtd.c
+      COMMAND ${SED_EXE} -i 's/int yyl\;/unsigned int yyl\;/' src/surf/xml/simgrid_dtd.c
+      COMMAND ${SED_EXE} -i "s/register //" src/surf/xml/simgrid_dtd.c
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated surf/xml/simgrid_dtd.c"
 
       #xbt/graphxml.c: xbt/graphxml.l
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.c
@@ -210,15 +212,18 @@ if(enable_maintainer_mode AND NOT WIN32)
       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/xbt
       COMMAND ${FLEX_EXE} -o src/xbt/graphxml.c -Pxbt_graph_parse_ --noline src/xbt/graphxml.l
       COMMAND ${SED_EXE} -i ${string9} src/xbt/graphxml.c
-      COMMAND ${CMAKE_COMMAND} -E echo "xbt/graphxml.c"
+      COMMAND ${SED_EXE} -i 's/int yyl\;/unsigned int yyl\;/' src/xbt/graphxml.c
+      COMMAND ${SED_EXE} -i "s/register //" src/xbt/graphxml.c
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated xbt/graphxml.c"
 
       #simdag/dax_dtd.c: simdag/dax_dtd.l
       COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
       COMMAND ${SED_EXE} -i ${string8} src/simdag/dax_dtd.l
       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/src/simdag
       COMMAND ${FLEX_EXE} -o src/simdag/dax_dtd.c -Pdax_ --noline src/simdag/dax_dtd.l
-      COMMAND ${SED_EXE} -i ${string9} src/simdag/dax_dtd.c
-      COMMAND ${CMAKE_COMMAND} -E echo "simdag/dax_dtd.c"
+      COMMAND ${SED_EXE} -i ${string9}                        src/simdag/dax_dtd.c
+      COMMAND ${SED_EXE} -i 's/int yyl\;/unsigned int yyl\;/' src/simdag/dax_dtd.c
+      COMMAND ${CMAKE_COMMAND} -E echo "       Generated src/simdag/dax_dtd.c"
 
       WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY}
       COMMENT "Generating files in maintainer mode..."
@@ -226,10 +231,10 @@ if(enable_maintainer_mode AND NOT WIN32)
 
   else()
     if(NOT HAVE_FLEXML)
-      message(STATUS "Error : Install flexml before use maintainer mode.")
+      message(STATUS "Error : Install flexml to use the maintainer mode.")
     endif()
     if(NOT HAVE_FLEX)
-      message(STATUS "Error : Install flex before use maintainer mode.")
+      message(STATUS "Error : Install flex to use the maintainer mode.")
     endif()
     if(NOT SED_EXE)
       message(STATUS "Error : Install sed before use maintainer mode.")
@@ -241,10 +246,10 @@ if(enable_maintainer_mode AND NOT WIN32)
 endif()
 
     add_custom_target(maintainer_files
-      DEPENDS ${CMAKE_HOME_DIRECTORY}/include/surf/simgrid_dtd.h
-      ${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h
-      ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
-      ${CMAKE_HOME_DIRECTORY}/src/surf/simgrid_dtd.c
-      ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.c
-      ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
+      DEPENDS ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.h
+              ${CMAKE_HOME_DIRECTORY}/src/surf/xml/simgrid_dtd.c
+              ${CMAKE_HOME_DIRECTORY}/include/xbt/graphxml.h
+              ${CMAKE_HOME_DIRECTORY}/src/xbt/graphxml.c
+              ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.h
+              ${CMAKE_HOME_DIRECTORY}/src/simdag/dax_dtd.c
       )
index cd1f8fb..43efa54 100644 (file)
@@ -56,18 +56,14 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/s4u)
-
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala)
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_bypass)
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_kill)
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/masterslave)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/s4u/basic)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/s4u/io)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/dax)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/dot)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/goal)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/io)
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/metaxml)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/properties)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/scheduling)
 
@@ -79,9 +75,7 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f77)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f90)
 
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/xbt)
-
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/java)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/java/semaphore)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/java/sleep_host_off)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc)
@@ -89,7 +83,6 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf_expression)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay)
 
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/get_sender)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/host_on_off)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/host_on_off_processes)
@@ -103,7 +96,6 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/trace)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/availability)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/basic)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/incomplete)
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/mxn)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/p2p)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/partask)
@@ -167,7 +159,6 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/info)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/init)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/pt2pt)
 
-add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/surf/)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/surf/lmm_usage)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/surf/maxmin_bench)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/surf/surf_usage)
index b21a0ce..995dd7f 100644 (file)
@@ -25,11 +25,11 @@ endif()
 # Compute the dependencies of SimGrid
 #####################################
 set(SIMGRID_DEP "-lm")
-if (HAVE_BOOST_CONTEXT)
+if (HAVE_BOOST_CONTEXTS)
   set(SIMGRID_DEP "${SIMGRID_DEP} ${Boost_CONTEXT_LIBRARY}")
 endif()
 
-if(HAVE_PTHREAD AND ${CONTEXT_THREADS} AND NOT APPLE)
+if(HAVE_PTHREAD AND ${HAVE_THREAD_CONTEXTS} AND NOT APPLE)
   # Clang on recent Mac OS X is not happy about -pthread.
   SET(SIMGRID_DEP "${SIMGRID_DEP} -pthread")
 endif()
@@ -70,10 +70,9 @@ if(HAVE_GRAPHVIZ)
   endif()
 endif()
 
-if(HAVE_LIBSIGC++)
+if(SIMGRID_HAVE_LIBSIG)
   SET(SIMGRID_DEP "${SIMGRID_DEP} -lsigc-2.0")
   add_definitions(-DLIBSIGC)
-  set(SIMGRID_HAVE_LIBSIG 1)
 endif()
 
 if(HAVE_MC)
index 2d2aa03..e052359 100644 (file)
@@ -61,9 +61,9 @@ if(PATH_LIBSIGC++_LIB AND PATH_LIBSIGC++_H AND PATH_LIBSIGC++CONFIG_H)
   include_directories(${PATH_LIBSIGC++_H})
   include_directories(${PATH_LIBSIGC++CONFIG_H})
   link_directories(${PATH_LIBSIGC++_LIB})
-  set(HAVE_LIBSIGC++ "1")
+  set(SIMGRID_HAVE_LIBSIG "1")
 else()
-  set(HAVE_LIBSIGC++ "0")
+  set(SIMGRID_HAVE_LIBSIG "0")
 endif()
 
 mark_as_advanced(PATH_LIBSIGC++_H)
diff --git a/tools/cmake/Modules/FindScala.cmake b/tools/cmake/Modules/FindScala.cmake
deleted file mode 100644 (file)
index 777527a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-
-find_program(SCALA_COMPILE
-  NAMES scalac
-  PATH_SUFFIXES bin/
-  PATHS
-  /opt
-  /opt/local
-  /opt/csw
-  /sw
-  /usr
-  )
-
-message(STATUS "Looking for scalac")
-if(SCALA_COMPILE)
-  message(STATUS "Looking for scalac - found")
-else()
-  message(STATUS "Looking for scalac - not found")
-endif()
-
-set(SCALA_JARS "/usr/share/java/scala-compiler.jar:/usr/share/java/scala-library.jar:/usr/share/java/scalap.jar:/usr/share/java/scala/jline.jar:/usr/share/java/jansi.jar")
-
index e05ca06..6b554a4 100644 (file)
@@ -14,7 +14,6 @@ option(enable_compile_optimizations "Whether to produce efficient code for the S
 option(enable_documentation "Whether to produce documentation" on)
 option(enable_ns3    "Whether ns3 model is activated." off)
 option(enable_java   "Whether the Java bindings are activated." off)
-option(enable_scala  "Whether the Scala bindings are activated." off)
 option(enable_lua    "Whether the Lua bindings are activated." off)
 option(enable_compile_warnings "Whether compilation warnings should be turned into errors." off)
 option(enable_maintainer_mode "Whether flex and flexml files should be rebuilt." off)
@@ -59,10 +58,6 @@ else()
 endif()
 option(enable_smpi_ISP_testsuite "Whether the test suite from ISP should be built." off)
 
-if(enable_scala AND NOT enable_java)
-  message(WARNING "For using scala you must turn java on with this command:\ncmake -Denable_java=on .")
-endif()
-
 mark_as_advanced(HAVE_SSH)
 mark_as_advanced(HAVE_RSYNC)
 mark_as_advanced(BIBTEX2HTML_PATH)
index 4acd4e0..949a643 100644 (file)
@@ -57,8 +57,8 @@ if(enable_print_message)
   message("HAVE_THREAD_LOCAL_STORAGE ...: ${HAVE_THREAD_LOCAL_STORAGE}")
   message("HAVE_MMALLOC ................: ${HAVE_MMALLOC}")
   message("")
-  message("CONTEXT_THREADS .............: ${CONTEXT_THREADS}")
-  message("CONTEXT_UCONTEXT ............: ${CONTEXT_UCONTEXT}")
+  message("HAVE_THREAD_CONTEXTS .............: ${HAVE_THREAD_CONTEXTS}")
+  message("HAVE_UCONTEXT_CONTEXTS ............: ${HAVE_UCONTEXT_CONTEXTS}")
   message("______________________________________________________________________")
   message("______________________________________________________________________ DEBUG END")
   message("")
@@ -119,7 +119,7 @@ message("        Compile Smpi ................: ${HAVE_SMPI}")
 message("        Compile MPI testsuite .......: ${enable_smpi_MPICH3_testsuite}")
 message("        Compile Smpi f77 ............: ${SMPI_FORTRAN}")
 message("        Compile Smpi f90 ............: ${SMPI_FORTRAN}")
-message("        Compile Boost.Context support: ${HAVE_BOOST_CONTEXT}")
+message("        Compile Boost.Context support: ${HAVE_BOOST_CONTEXTS}")
 message("")
 message("        Maintainer mode .............: ${enable_maintainer_mode}")
 message("        Documentation................: ${enable_documentation}")
@@ -128,7 +128,7 @@ message("        Tracing mode ................: ${enable_tracing}")
 message("        Jedule  mode ................: ${enable_jedule}")
 message("        Latency bound ...............: ${enable_latency_bound_tracking}")
 message("        Graphviz mode ...............: ${HAVE_GRAPHVIZ}")
-message("        Sigc++ mode .................: ${HAVE_LIBSIGC++}")
+message("        Sigc++ mode .................: ${SIMGRID_HAVE_LIBSIG}")
 message("        Mallocators .................: ${enable_mallocators}")
 message("")
 message("        Simgrid dependencies ........: ${SIMGRID_DEP}")
index 832cad7..d3d6c0a 100644 (file)
@@ -38,10 +38,10 @@ MACRO(ADD_TESH_FACTORIES NAME FACTORIES)
     LIST(REMOVE_AT ARGR 0)
   ENDFOREACH()
   FOREACH(FACTORY ${FACTORIES})
-    if ((${FACTORY} STREQUAL "thread") OR
-        (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXT) OR
-        (${FACTORY} STREQUAL "raw" AND HAVE_RAWCTX) OR
-        (${FACTORY} STREQUAL "ucontext" AND CONTEXT_UCONTEXT))
+    if ((${FACTORY} STREQUAL "thread" AND HAVE_THREAD_CONTEXTS) OR
+        (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXTS) OR
+        (${FACTORY} STREQUAL "raw" AND HAVE_RAW_CONTEXTS) OR
+        (${FACTORY} STREQUAL "ucontext" AND HAVE_UCONTEXT_CONTEXTS))
       ADD_TESH("${NAME}-${FACTORY}" "--cfg" "contexts/factory:${FACTORY}" ${ARGR})
     ENDIF()
   ENDFOREACH()
@@ -97,7 +97,7 @@ IF(NOT enable_memcheck)
 
     ADD_TESH_FACTORIES(mc-bugged1                "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1.tesh)
     ADD_TESH_FACTORIES(mc-bugged2                "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged2.tesh)
-    IF(CONTEXT_UCONTEXT AND PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...)
+    IF(HAVE_UCONTEXT_CONTEXTS AND PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...)
       ADD_TESH(mc-bugged1-liveness-ucontext         --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness.tesh)
       ADD_TESH(mc-bugged1-liveness-ucontext-sparse  --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness_sparse.tesh)
       ADD_TESH(mc-bugged1-liveness-visited-ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness_visited.tesh)
@@ -116,18 +116,20 @@ IF(NOT enable_memcheck)
 
   ### SIMIX ###
   # BEGIN TESH TESTS
-  IF(HAVE_RAWCTX)
+  IF(HAVE_RAW_CONTEXTS)
     ADD_TESH(tesh-simix-factory-default          --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_raw.tesh)
-  ELSEIF(CONTEXT_UCONTEXT)
+  ELSEIF(HAVE_UCONTEXT_CONTEXTS)
     ADD_TESH(tesh-simix-factory-default          --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_ucontext.tesh)
   ELSE()
     ADD_TESH(tesh-simix-factory-default          --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_thread.tesh)
   ENDIF()
+  IF(HAVE_THREAD_CONTEXTS)
   ADD_TESH(tesh-simix-factory-thread             --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_thread.tesh)
-  IF(HAVE_RAWCTX)
+  ENDIF()
+  IF(HAVE_RAW_CONTEXTS)
     ADD_TESH(tesh-simix-factory-raw              --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_raw.tesh)
   ENDIF()
-  IF(CONTEXT_UCONTEXT)
+  IF(HAVE_UCONTEXT_CONTEXTS)
     ADD_TESH(tesh-simix-factory-ucontext         --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_ucontext.tesh)
   ENDIF()
   # END TESH TESTS
@@ -139,11 +141,13 @@ IF(NOT enable_memcheck)
     IF(WIN32 OR CMAKE_SYSTEM_NAME MATCHES "Darwin")
       # These tests are known to fail on Windows and Mac OS X
       # (the expected error message is not shown).
+      IF(HAVE_THREAD_CONTEXTS)
       SET_TESTS_PROPERTIES(stack-overflow-thread PROPERTIES WILL_FAIL true)
-      IF(CONTEXT_UCONTEXT)
+      ENDIF()
+      IF(HAVE_UCONTEXT_CONTEXTS)
         SET_TESTS_PROPERTIES(stack-overflow-ucontext PROPERTIES WILL_FAIL true)
       ENDIF()
-      IF(HAVE_RAWCTX)
+      IF(HAVE_RAW_CONTEXTS)
         SET_TESTS_PROPERTIES(stack-overflow-raw PROPERTIES WILL_FAIL true)
       ENDIF()
     ENDIF()
@@ -206,12 +210,12 @@ IF(NOT enable_memcheck)
   ADD_TESH_FACTORIES(msg-sendrecv-CLM03          "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
   ADD_TESH_FACTORIES(msg-sendrecv-Vegas          "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Vegas.tesh)
   ADD_TESH_FACTORIES(msg-sendrecv-Reno           "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Reno.tesh)
+  ADD_TESH_FACTORIES(msg-sendrecv-CLM03-main     "thread" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03_main.tesh)
   ADD_TESH_FACTORIES(msg-suspend                 "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/suspend/suspend.tesh)
   # This one is not usable:
   # ADD_TESH_FACTORIES(msg-exception                 "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/exception/exception.tesh)
   # The next one takes too much time to run with all factories
   ADD_TESH(msg-pmm                               --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/pmm/pmm.tesh)
-  ADD_TESH_FACTORIES(msg-masterslave-bypass      "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_bypass.tesh)
   ADD_TESH_FACTORIES(msg-masterslave-kill        "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_kill.tesh)
   ADD_TESH_FACTORIES(msg-masterslave-multicore   "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_multicore.tesh)
   ADD_TESH_FACTORIES(msg-masterslave-no-crosstraffic-mailbox   "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_mailbox.tesh)
@@ -238,6 +242,7 @@ IF(NOT enable_memcheck)
   ADD_TESH_FACTORIES(msg-ptask                   "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
   ADD_TESH_FACTORIES(msg-priority                "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/priority/priority.tesh)
   ADD_TESH_FACTORIES(msg-properties              "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/properties/msg_prop.tesh)
+  ADD_TESH_FACTORIES(msg-semaphores              "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/semaphores/synchro.tesh)
   ADD_TESH_FACTORIES(msg-icomms                  "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/icomms --cd ${CMAKE_BINARY_DIR}/examples/msg/icomms ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/peer.tesh)
   ADD_TESH_FACTORIES(msg-actions                 "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions actions.tesh)
   ADD_TESH_FACTORIES(msg-chord-no-crosstraffic   "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
@@ -297,7 +302,6 @@ IF(NOT enable_memcheck)
   ADD_TESH(tesh-simdag-bypass                    --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_parsing_test_bypass.tesh)
   ADD_TESH(tesh-simdag-flatifier                 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms flatifier.tesh)
   ADD_TESH(tesh-simdag-link                      --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_link_test.tesh)
-  ADD_TESH(tesh-simdag-reinit-costs              --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/test_reinit_costs.tesh)
   ADD_TESH(tesh-simdag-parser                    --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_parsing_test.tesh)
   ADD_TESH(tesh-simdag-parser-sym-full           --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_parsing_test_sym_full.tesh)
   ADD_TESH(tesh-simdag-full-links                --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms get_full_link.tesh)
@@ -414,13 +418,15 @@ IF(NOT enable_memcheck)
       ADD_TESH(tesh-smpi-clusters-types --cfg smpi/alltoall:mvapich2 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoall clusters.tesh)
     # END TESH TESTS
     IF(enable_smpi_MPICH3_testsuite)
-      ADD_TEST(test-smpi-mpich3-coll-thread      ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:thread -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
-      SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-thread    PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
-      IF(CONTEXT_UCONTEXT)
+      IF(HAVE_THREAD_CONTEXTS)
+        ADD_TEST(test-smpi-mpich3-coll-thread      ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:thread -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
+        SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-thread    PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
+      ENDIF()
+      IF(HAVE_UCONTEXT_CONTEXTS)
         ADD_TEST(test-smpi-mpich3-coll-ompi-ucontext ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:ucontext -execarg=--cfg=smpi/coll_selector:ompi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION} -execarg=--cfg=smpi/bcast:binomial_tree)
         SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-ompi-ucontext PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
       ENDIF()
-      IF(HAVE_RAWCTX)
+      IF(HAVE_RAW_CONTEXTS)
         ADD_TEST(test-smpi-mpich3-coll-mpich-raw   ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:mpich -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
       ADD_TEST(test-smpi-mpich3-coll-ompi-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:ompi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION} -execarg=--cfg=smpi/bcast:binomial_tree)
       ADD_TEST(test-smpi-mpich3-coll-mpich-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:mpich -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
@@ -428,7 +434,7 @@ IF(NOT enable_memcheck)
       ADD_TEST(test-smpi-mpich3-coll-impi-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:impi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
         SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-mpich-raw test-smpi-mpich3-coll-ompi-raw test-smpi-mpich3-coll-mpich-raw test-smpi-mpich3-coll-mvapich2-raw test-smpi-mpich3-coll-impi-raw  PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
       ENDIF()
-      IF(HAVE_RAWCTX)
+      IF(HAVE_RAW_CONTEXTS)
         ADD_TEST(test-smpi-mpich3-attr-raw       ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/attr ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/attr -tests=testlist -execarg=--cfg=contexts/factory:raw)
         ADD_TEST(test-smpi-mpich3-comm-raw       ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/comm ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/comm -tests=testlist -execarg=--cfg=contexts/factory:raw)
         ADD_TEST(test-smpi-mpich3-init-raw       ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/init ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/init -tests=testlist -execarg=--cfg=contexts/factory:raw)
@@ -441,7 +447,7 @@ IF(NOT enable_memcheck)
         ADD_TEST(test-smpi-mpich3-perf-raw       ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/perf ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/perf -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/running_power:-1)
         SET_TESTS_PROPERTIES(test-smpi-mpich3-attr-raw test-smpi-mpich3-comm-raw test-smpi-mpich3-init-raw test-smpi-mpich3-datatype-raw test-smpi-mpich3-group-raw test-smpi-mpich3-pt2pt-raw test-smpi-mpich3-topo-raw test-smpi-mpich3-rma-raw test-smpi-mpich3-info-raw PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
       ENDIF()
-      IF(SMPI_FORTRAN)
+      IF(SMPI_FORTRAN AND HAVE_THREAD_CONTEXTS)
         ADD_TEST(test-smpi-mpich3-thread-f77     ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f77/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f77/ -tests=testlist -execarg=--cfg=contexts/stack_size:8000 -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
         SET_TESTS_PROPERTIES(test-smpi-mpich3-thread-f77 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
         ADD_TEST(test-smpi-mpich3-thread-f90     ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
@@ -499,6 +505,7 @@ IF(NOT enable_memcheck)
     ADD_TESH(java-cloud-migration                --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/cloud/migration/migration.tesh)
     ADD_TESH(java-commTime                       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/commTime/commtime.tesh)
     ADD_TESH(java-energy                         --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/energy/energy.tesh)
+    ADD_TESH(java-storage                        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/io/storage.tesh)
     ADD_TESH(java-kademlia                       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/kademlia/kademlia.tesh)
     ADD_TESH(java-kill                           --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/master_slave_kill/kill.tesh)
     ADD_TESH(java-masterslave                    --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/masterslave/masterslave.tesh)
@@ -512,22 +519,8 @@ IF(NOT enable_memcheck)
 
     # teshsuite ones
     ADD_TESH(tesh-java-sleep-host-off            --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/teshsuite/java ${CMAKE_HOME_DIRECTORY}/teshsuite/java/sleep_host_off/sleep_host_off.tesh)
+    ADD_TESH(tesh-java-semaphore-gc              --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/teshsuite/java ${CMAKE_HOME_DIRECTORY}/teshsuite/java/semaphore/semaphore_gc.tesh)
   ENDIF()
-
-
-  ### SCALA ###
-  IF(enable_scala)
-    IF(WIN32)
-      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/\;${SIMGRID_JAR}\;${SCALA_JARS}")
-      STRING(REPLACE "\;" "§" TESH_CLASSPATH "${TESH_CLASSPATH}")
-    ELSE()
-      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/:${SIMGRID_JAR}:${SCALA_JARS}")
-    ENDIF()
-    ADD_TESH(scala-bypass                        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/scala --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/scala ${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_bypass/bypass.tesh)
-    ADD_TESH(scala-kill                          --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/scala --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/scala ${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_kill/kill.tesh)
-    ADD_TESH(scala-masterslave                   --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/scala --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/scala ${CMAKE_HOME_DIRECTORY}/examples/scala/masterslave/masterslave.tesh)
-  ENDIF()
-
 ENDIF()
 
 
diff --git a/tools/cmake/scripts/Makefile.default b/tools/cmake/scripts/Makefile.default
deleted file mode 100644 (file)
index a7d7400..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#THIS Makefile should be erase by Cmake when use command "cmake."
-
-all : 
-       @echo "THIS COMMAND IS NOT AVAILABLE!"
-       @echo "Since v3.4 we use Cmake. Now use:"
-       @echo "\tcmake -DCMAKE_INSTALL_PREFIX=<where_you_want> .\n\tmake\n\tmake install"
-
-clean : all
diff --git a/tools/cmake/scripts/SimGrid.packproj b/tools/cmake/scripts/SimGrid.packproj
deleted file mode 100644 (file)
index 4bdcc1e..0000000
+++ /dev/null
@@ -1,565 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>Hierarchy</key>
-       <dict>
-               <key>Attributes</key>
-               <dict>
-                       <key>Documents</key>
-                       <dict>
-                               <key>Background Image</key>
-                               <dict>
-                                       <key>IFPkgFlagBackgroundAlignment</key>
-                                       <integer>6</integer>
-                                       <key>IFPkgFlagBackgroundScaling</key>
-                                       <integer>2</integer>
-                                       <key>Mode</key>
-                                       <integer>1</integer>
-                                       <key>Path</key>
-                                       <string>../../doc/webcruft/simgrid_logo_2011.gif</string>
-                                       <key>Path Type</key>
-                                       <integer>2</integer>
-                               </dict>
-                               <key>License</key>
-                               <dict>
-                                       <key>International</key>
-                                       <dict>
-                                               <key>Mode</key>
-                                               <integer>0</integer>
-                                               <key>Path</key>
-                                               <string>../../LICENSE-LGPL-2.1</string>
-                                               <key>Path Type</key>
-                                               <integer>2</integer>
-                                       </dict>
-                               </dict>
-                               <key>ReadMe</key>
-                               <dict>
-                                       <key>International</key>
-                                       <dict>
-                                               <key>Mode</key>
-                                               <integer>0</integer>
-                                               <key>Path</key>
-                                               <string>../../README</string>
-                                               <key>Path Type</key>
-                                               <integer>2</integer>
-                                       </dict>
-                               </dict>
-                               <key>Welcome</key>
-                               <dict>
-                                       <key>International</key>
-                                       <dict>
-                                               <key>Mode</key>
-                                               <integer>0</integer>
-                                               <key>Path</key>
-                                               <string></string>
-                                               <key>Path Type</key>
-                                               <integer>2</integer>
-                                       </dict>
-                               </dict>
-                       </dict>
-                       <key>Files</key>
-                       <dict>
-                               <key>Compress</key>
-                               <true/>
-                               <key>Hierarchy</key>
-                               <dict>
-                                       <key>Children</key>
-                                       <array>
-                                               <dict>
-                                                       <key>Children</key>
-                                                       <array>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>SimGrid</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>2</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Utilities</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                       </array>
-                                                       <key>GID</key>
-                                                       <integer>80</integer>
-                                                       <key>Path</key>
-                                                       <string>Applications</string>
-                                                       <key>Path Type</key>
-                                                       <integer>1</integer>
-                                                       <key>Privileges</key>
-                                                       <integer>509</integer>
-                                                       <key>Type</key>
-                                                       <integer>1</integer>
-                                                       <key>UID</key>
-                                                       <integer>0</integer>
-                                               </dict>
-                                               <dict>
-                                                       <key>Children</key>
-                                                       <array>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Application Support</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Documentation</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Filesystems</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Frameworks</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Internet Plug-Ins</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>PreferencePanes</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Preferences</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Printers</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>QuickTime</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array/>
-                                                                       <key>GID</key>
-                                                                       <integer>80</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Scripts</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>509</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                       </array>
-                                                       <key>GID</key>
-                                                       <integer>80</integer>
-                                                       <key>Path</key>
-                                                       <string>Library</string>
-                                                       <key>Path Type</key>
-                                                       <integer>1</integer>
-                                                       <key>Privileges</key>
-                                                       <integer>1021</integer>
-                                                       <key>Type</key>
-                                                       <integer>1</integer>
-                                                       <key>UID</key>
-                                                       <integer>0</integer>
-                                               </dict>
-                                               <dict>
-                                                       <key>Children</key>
-                                                       <array>
-                                                               <dict>
-                                                                       <key>Children</key>
-                                                                       <array>
-                                                                               <dict>
-                                                                                       <key>Children</key>
-                                                                                       <array/>
-                                                                                       <key>GID</key>
-                                                                                       <integer>0</integer>
-                                                                                       <key>Path</key>
-                                                                                       <string>Extensions</string>
-                                                                                       <key>Path Type</key>
-                                                                                       <integer>1</integer>
-                                                                                       <key>Privileges</key>
-                                                                                       <integer>493</integer>
-                                                                                       <key>Type</key>
-                                                                                       <integer>1</integer>
-                                                                                       <key>UID</key>
-                                                                                       <integer>0</integer>
-                                                                               </dict>
-                                                                       </array>
-                                                                       <key>GID</key>
-                                                                       <integer>0</integer>
-                                                                       <key>Path</key>
-                                                                       <string>Library</string>
-                                                                       <key>Path Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>Privileges</key>
-                                                                       <integer>493</integer>
-                                                                       <key>Type</key>
-                                                                       <integer>1</integer>
-                                                                       <key>UID</key>
-                                                                       <integer>0</integer>
-                                                               </dict>
-                                                       </array>
-                                                       <key>GID</key>
-                                                       <integer>0</integer>
-                                                       <key>Path</key>
-                                                       <string>System</string>
-                                                       <key>Path Type</key>
-                                                       <integer>1</integer>
-                                                       <key>Privileges</key>
-                                                       <integer>493</integer>
-                                                       <key>Type</key>
-                                                       <integer>1</integer>
-                                                       <key>UID</key>
-                                                       <integer>0</integer>
-                                               </dict>
-                                       </array>
-                                       <key>GID</key>
-                                       <integer>80</integer>
-                                       <key>Path</key>
-                                       <string>/</string>
-                                       <key>Path Type</key>
-                                       <integer>1</integer>
-                                       <key>Privileges</key>
-                                       <integer>1021</integer>
-                                       <key>Type</key>
-                                       <integer>1</integer>
-                                       <key>UID</key>
-                                       <integer>0</integer>
-                               </dict>
-                               <key>IFPkgFlagDefaultLocation</key>
-                               <string>/Applications/SimGrid</string>
-                               <key>Imported Package</key>
-                               <false/>
-                               <key>Package Path</key>
-                               <string></string>
-                               <key>Split Forks</key>
-                               <true/>
-                       </dict>
-                       <key>Plugins</key>
-                       <dict>
-                               <key>PluginsList</key>
-                               <array>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>Introduction</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>ReadMe</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>License</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>Target</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>PackageSelection</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>Install</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>FinishUp</string>
-                                               <key>Type</key>
-                                               <integer>0</integer>
-                                       </dict>
-                               </array>
-                       </dict>
-                       <key>Scripts</key>
-                       <dict>
-                               <key>Additional Resources</key>
-                               <dict>
-                                       <key>International</key>
-                                       <array/>
-                               </dict>
-                               <key>Installation Scripts</key>
-                               <dict>
-                                       <key>IFInstallationScriptsPostflight</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string></string>
-                                               <key>Status</key>
-                                               <false/>
-                                       </dict>
-                                       <key>IFInstallationScriptsPostinstall</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>postinstall.sh</string>
-                                               <key>Path Type</key>
-                                               <integer>2</integer>
-                                               <key>Status</key>
-                                               <true/>
-                                       </dict>
-                                       <key>IFInstallationScriptsPostupgrade</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string></string>
-                                               <key>Status</key>
-                                               <false/>
-                                       </dict>
-                                       <key>IFInstallationScriptsPreflight</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string></string>
-                                               <key>Status</key>
-                                               <false/>
-                                       </dict>
-                                       <key>IFInstallationScriptsPreinstall</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string>preinstall.sh</string>
-                                               <key>Path Type</key>
-                                               <integer>2</integer>
-                                               <key>Status</key>
-                                               <true/>
-                                       </dict>
-                                       <key>IFInstallationScriptsPreupgrade</key>
-                                       <dict>
-                                               <key>Path</key>
-                                               <string></string>
-                                               <key>Status</key>
-                                               <false/>
-                                       </dict>
-                               </dict>
-                               <key>Requirements</key>
-                               <array/>
-                       </dict>
-                       <key>Settings</key>
-                       <dict>
-                               <key>Description</key>
-                               <dict>
-                                       <key>International</key>
-                                       <dict>
-                                               <key>IFPkgDescriptionDeleteWarning</key>
-                                               <string></string>
-                                               <key>IFPkgDescriptionDescription</key>
-                                               <string>SimGrid is a toolkit that provides core functionalities for the simulation of distributed applications in heterogeneous distributed environments. The specific goal of the project is to facilitate research in the area of parallel and distributed large scale systems, such as Grids, P2P systems and clouds. Its use cases encompass heuristic evaluation, application prototyping or even real application development and tuning.</string>
-                                               <key>IFPkgDescriptionTitle</key>
-                                               <string>SimGrid</string>
-                                               <key>IFPkgDescriptionVersion</key>
-                                               <string>3.8</string>
-                                       </dict>
-                               </dict>
-                               <key>Display Information</key>
-                               <dict>
-                                       <key>CFBundleGetInfoString</key>
-                                       <string>SimGrid 1.0 Copyrights Â© 2012 My Great Company</string>
-                                       <key>CFBundleIconFile</key>
-                                       <string>../../doc/webcruft/SGicon.icns</string>
-                                       <key>CFBundleIconFile Path Type</key>
-                                       <integer>2</integer>
-                                       <key>CFBundleIdentifier</key>
-                                       <string>com.mygreatcompany.pkg.SimGrid</string>
-                                       <key>CFBundleName</key>
-                                       <string>SimGrid</string>
-                                       <key>CFBundleShortVersionString</key>
-                                       <string>1.0</string>
-                               </dict>
-                               <key>Options</key>
-                               <dict>
-                                       <key>IFPkgFlagAllowBackRev</key>
-                                       <false/>
-                                       <key>IFPkgFlagAuthorizationAction</key>
-                                       <integer>0</integer>
-                                       <key>IFPkgFlagFollowLinks</key>
-                                       <false/>
-                                       <key>IFPkgFlagIsRequired</key>
-                                       <false/>
-                                       <key>IFPkgFlagOverwritePermissions</key>
-                                       <false/>
-                                       <key>IFPkgFlagRelocatable</key>
-                                       <false/>
-                                       <key>IFPkgFlagRestartAction</key>
-                                       <integer>0</integer>
-                                       <key>IFPkgFlagRootVolumeOnly</key>
-                                       <false/>
-                                       <key>IFPkgFlagUpdateInstalledLanguages</key>
-                                       <false/>
-                               </dict>
-                               <key>Version</key>
-                               <dict>
-                                       <key>IFMajorVersion</key>
-                                       <integer>3</integer>
-                                       <key>IFMinorVersion</key>
-                                       <integer>8</integer>
-                               </dict>
-                       </dict>
-               </dict>
-               <key>IFPkgFlagPackageSelection</key>
-               <integer>0</integer>
-               <key>Name</key>
-               <string>SimGrid-3.8</string>
-               <key>Status</key>
-               <integer>1</integer>
-               <key>Type</key>
-               <integer>1</integer>
-       </dict>
-       <key>Name</key>
-       <string>Project</string>
-       <key>Settings</key>
-       <dict>
-               <key>10.1 Compatibility</key>
-               <true/>
-               <key>Build Path</key>
-               <string>build</string>
-               <key>Build Path Type</key>
-               <integer>2</integer>
-               <key>Comment</key>
-               <string></string>
-               <key>Remove .DS_Store</key>
-               <true/>
-               <key>Remove .pbdevelopment</key>
-               <true/>
-               <key>Remove CVS</key>
-               <false/>
-       </dict>
-</dict>
-</plist>
index f57f8a2..130b0c3 100755 (executable)
@@ -140,7 +140,7 @@ while ( defined( $line = <MAKETEST> ) ) {
                     }
                     if ( $command =~ /^mkfile\s+(\S+)/) {
                         my $file = $1;
-                        # don't ask me to explain why so many backslashes...
+                        # don't ask me why so many backslashes. http://xkcd.com/1638/
                         $input =~ s/\\/\\\\\\\\/g;
                         $input =~ s/\n/\\\\n/g;
                         $input =~ s/"/\\\\042/g;
@@ -152,13 +152,16 @@ while ( defined( $line = <MAKETEST> ) ) {
                       foreach my $factory (split(';', $factories)) {
                         $close=0;
                         if( $factory =~ /^raw/) {
-                            print "${indent}if(HAVE_RAWCTX)\n";
+                            print "${indent}if(HAVE_RAW_CONTEXTS)\n";
                             $close=1;
                         }elsif( $factory =~ /^boost/) {
-                            print "${indent}if(HAVE_BOOST_CONTEXT)\n";
+                            print "${indent}if(HAVE_BOOST_CONTEXTS)\n";
                             $close=1;
                         }elsif( $factory =~ /^ucontext/) {
-                            print "${indent}if(CONTEXT_UCONTEXT)\n";
+                            print "${indent}if(HAVE_UCONTEXT_CONTEXTS)\n";
+                            $close=1;
+                        }elsif( $factory =~ /^thread/) {
+                            print "${indent}if(HAVE_THREAD_CONTEXTS)\n";
                             $close=1;
                         }
                         print "${indent}ADD_TEST(NAME memcheck-$name_test-$factory-$count\n";
diff --git a/tools/cmake/scripts/postinstall.sh b/tools/cmake/scripts/postinstall.sh
deleted file mode 100755 (executable)
index ef11450..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-echo "export SIMGRID_ROOT=/Applications/SimGrid" >> ~/.profile
-echo "export DYLD_LYBRARY_PATH=$DYLD_LYBRARY_PATH:$SIMGRID_ROOT/lib" >> ~/.profile
\ No newline at end of file
diff --git a/tools/cmake/scripts/preinstall.sh b/tools/cmake/scripts/preinstall.sh
deleted file mode 100755 (executable)
index f093e59..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/bash
-echo "\n#SIMGRID ICEBERG" >> ~/.profile
-return 0
\ No newline at end of file
index 9a41c9e..a014fba 100644 (file)
@@ -1,7 +1,7 @@
 /* internal_config.h -- characteristics of the platform, as probed by Cmake */
 
-/* This file is AUTOMATICALLY GENERATED by Cmake. Edit the following
  template instead tools/cmake/src/internal_config.h.in                    */
+/* Warning: The file internal_config.h is AUTOMATICALLY GENERATED by Cmake. 
* Edit the template instead: tools/cmake/src/internal_config.h.in          */
 
 /* Copyright (c) 2004-2014. The SimGrid Team.
  * All rights reserved.                                                     */
@@ -45,9 +45,6 @@
 #cmakedefine __VISUALC__ @__VISUALC__@
 #cmakedefine __BORLANDC__ @__BORLANDC__@
 #cmakedefine APPLE @APPLE@
-#ifdef _MSC_VER
-       #define HAVE_VA_COPY
-#endif
 /* Set to true if enable_model-checking is true */
 #cmakedefine MMALLOC_WANT_OVERRIDE_LEGACY @MMALLOC_WANT_OVERRIDE_LEGACY@
 #cmakedefine HAVE_MC @HAVE_MC@
@@ -55,9 +52,6 @@
 /* If have linux_futex.h */
 #cmakedefine HAVE_FUTEX_H @HAVE_FUTEX_H@
 
-/* Some variable for libsigc++ */
-#cmakedefine HAVE_LIBSIGC @HAVE_LIBSIGC++@
-
 /* Some variable for graphviz */
 #cmakedefine HAVE_GRAPHVIZ @HAVE_GRAPHVIZ@
 #cmakedefine HAVE_GRAPH_H @GRAPH_H@
 /* Path to the addr2line tool */
 #cmakedefine ADDR2LINE "@ADDR2LINE@"
 
-/* Predefined possible va_copy() implementation (id: ASP) */
-#cmakedefine __VA_COPY_USE_ASP(d, s) @__VA_COPY_USE_ASP@
-
-/* Predefined possible va_copy() implementation (id: ASS) */
-#cmakedefine __VA_COPY_USE_ASS(d, s) @__VA_COPY_USE_ASS@
-
-/* Predefined possible va_copy() implementation (id: C99) */
-#cmakedefine __VA_COPY_USE_C99(d, s) @__VA_COPY_USE_C99@
-
 /* Define if xbt contexts are based on our threads implementation or not */
-#cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@
+#cmakedefine HAVE_THREAD_CONTEXTS @HAVE_THREAD_CONTEXTS@
 
 /* Define to 1 if you have the <ucontext.h> header file. */
 #cmakedefine HAVE_UCONTEXT_H @HAVE_UCONTEXT_H@
 
 /* Define if xbt contexts are based on ucontext or not */
-#cmakedefine CONTEXT_UCONTEXT @CONTEXT_UCONTEXT@
-
-/* Predefined possible va_copy() implementation (id: CPP) */
-#cmakedefine __VA_COPY_USE_CPP(d, s) @__VA_COPY_USE_CPP@
-
-/* Predefined possible va_copy() implementation (id: CPS) */
-#cmakedefine __VA_COPY_USE_CPS(d, s) @__VA_COPY_USE_CPS@
-
-/* Predefined possible va_copy() implementation (id: GCB) */
-#cmakedefine __VA_COPY_USE_GCB(d, s) @__VA_COPY_USE_GCB@
-
-/* Predefined possible va_copy() implementation (id: GCH) */
-#cmakedefine __VA_COPY_USE_GCH(d, s) @__VA_COPY_USE_GCH@
-
-/* Predefined possible va_copy() implementation (id: GCM) */
-#cmakedefine __VA_COPY_USE_GCM(d, s) @__VA_COPY_USE_GCM@
+#cmakedefine HAVE_UCONTEXT_CONTEXTS @HAVE_UCONTEXT_CONTEXTS@
 
 /* Used to select the flavor of assembly that we need today */
 #cmakedefine PROCESSOR_i686 @PROCESSOR_i686@
 #cmakedefine PROCESSOR_x86_64 @PROCESSOR_x86_64@
 #cmakedefine CMAKE_SYSTEM_PROCESSOR @CMAKE_SYSTEM_PROCESSOR@
-#cmakedefine HAVE_RAWCTX @HAVE_RAWCTX@
-#cmakedefine HAVE_BOOST_CONTEXT @HAVE_BOOST_CONTEXT@
+#cmakedefine HAVE_RAW_CONTEXTS @HAVE_RAW_CONTEXTS@
+#cmakedefine HAVE_BOOST_CONTEXTS @HAVE_BOOST_CONTEXTS@
 
 /* Define to 1 if you have the GNU ld library */
 #cmakedefine HAVE_GNU_LD @HAVE_GNU_LD@
 /* Define to 1 if you have the <valgrind/valgrind.h> header file. */
 #cmakedefine HAVE_VALGRIND_VALGRIND_H @HAVE_VALGRIND_VALGRIND_H@
 
-/* Define if va_copy() macro exists (and no fallback implementation is
-   required) */
-#cmakedefine HAVE_VA_COPY @HAVE_VA_COPY@
-
 /* Define to 1 if you have the `vsnprintf' function. */
 #cmakedefine HAVE_VSNPRINTF @HAVE_VSNPRINTF@
 
    `char[]'. */
 #cmakedefine YYTEXT_POINTER 
 
-/* Optional va_copy() implementation activation */
-#ifndef HAVE_VA_COPY
-#define va_copy(d, s) __VA_COPY_USE(d, s)
-#endif
-/* Define to id of used va_copy() implementation */
-#cmakedefine __VA_COPY_USE(d, s) @__VA_COPY_USE@
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#cmakedefine const @const@
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#cmakedefine inline @inline@
-#endif
-
 /* Define to `unsigned int' if <sys/types.h> does not define. */
 #cmakedefine size_t @size_t@
index 6187f9e..27c7605 100644 (file)
@@ -25,9 +25,9 @@ int main(void) {
       return 0; // SUCCESS
    } else {
       if (error)
-        printf("Error while checking for dlsym: %s\n",error);
+   printf("Error while checking for dlsym: %s\n",error);
       else
-        printf("dlsym did not return any error, but failed to find malloc()\n");
+   printf("dlsym did not return any error, but failed to find malloc()\n");
       return 1; // FAILED
    }
 }
index f005341..d75dde5 100644 (file)
 static int iterate = 10;
 static int growsdown(int *x)
 {
-  int y;
-  y = (x > &y);
+  int y = (x > &y);
+   
   if (--iterate > 0)
     y = growsdown(&y);
-  if (y != (x > &y))
+
+  /* The stack sometimes changes at the 0th level. 
+   * Original version did fail in this case, but I changed this around SimGrid 3.13 because of https://bugs.debian.org/814272
+   * Every arch failed on that day :(
+   */
+  if (iterate != 0 && y != (x > &y)) {
+    fprintf(stderr, "The stack changed its direction! (Iteration: %d. It was growing %s; &y=%p; &prevY=%p)\n",
+           (10-iterate), y?"down":"up", &y, x);
     exit(1);
+  }
   return y;
 }
 
@@ -23,6 +31,6 @@ int main(int argc, char *argv[])
 {
   int x;
   printf("%s", growsdown(&x) ? "down" : "up");
-  exit(0);
-  return 1;
+
+  return 0;
 }
index 11336b0..7b8fe65 100644 (file)
@@ -20,20 +20,8 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/graphicator.tesh
   PARENT_SCOPE
   )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(tools_src
   ${tools_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/graphicator.c
   PARENT_SCOPE
   )
-set(bin_files
-  ${bin_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
index 8ea4497..7cae75e 100644 (file)
@@ -13,6 +13,7 @@
 + \.cproject
 + \.project
 + \.travis.yml
++ \.editorconfig
 + appveyor.yml
 + COPYRIGHT.template
 + README\.(coding|git)
@@ -23,7 +24,6 @@
 + contrib/.*
 
 + examples/msg/actions/NAS_LU_S_4/.*
-+ examples/msg/chainsend/generate_deployment_file\.rb
 + examples/msg/chord/chord3\.xml
 
 + examples/smpi/MM/command_exemple
index 8ac6bc9..330a41c 100644 (file)
@@ -3,7 +3,7 @@
 <!-- This file is an eclipse configuration file, to setup the code formater.
      Open the properties of your SimGrid project, "C/C++ General" -> "Formatter"
      Then, enable project-specific settings, and import this file. -->
-     
+
 <profiles version="1">
 <profile kind="CodeFormatterProfile" name="SimGrid" version="1">
 <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification" value="do not insert"/>
@@ -36,7 +36,7 @@
 <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
-<setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="next_line_shifted"/>
+<setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list" value="do not insert"/>
 <setting id="org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause" value="insert"/>
 <setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain" value="18"/>
 <setting id="org.eclipse.cdt.core.formatter.tabulation.char" value="space"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration" value="insert"/>
-<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list" value="do not insert"/>
+<setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list" value="insert"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
 <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
 <setting id="org.eclipse.cdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
index d18f223..a032416 100755 (executable)
@@ -12,60 +12,65 @@ Tool to generate the simgrid.jar
 import urllib2
 import zipfile
 import tempfile
-import os, sys, re
+import os
+import sys
+import re
+
+dists = ['https://ci.inria.fr/simgrid/job/SimGrid-Multi/build_mode=Debug,label=%s/lastSuccessfulBuild/artifact/build/SimGrid-3.11/simgrid.jar' % dist
+         for dist in ["small-debian-32", "small-debian-64", "small-freebsd-64-clang"]]
+dists.append(
+    'https://ci.inria.fr/simgrid/job/Simgrid-Mult-Win7/build_mode=Debug,label=windows-64/lastSuccessfulBuild/artifact/build/simgrid.jar')
 
-dists = ['https://ci.inria.fr/simgrid/job/SimGrid-Multi/build_mode=Debug,label=%s/lastSuccessfulBuild/artifact/build/SimGrid-3.11/simgrid.jar'%dist
-         for dist in ["small-debian-32"
-                     ,"small-debian-64"
-                     ,"small-freebsd-64-clang"]]
-dists.append('https://ci.inria.fr/simgrid/job/Simgrid-Mult-Win7/build_mode=Debug,label=windows-64/lastSuccessfulBuild/artifact/build/simgrid.jar')
 
 class SimJar(object):
-  def __init__(self, filename='simgrid.jar'):
-       self.zipfile = zipfile.ZipFile(filename, 'w')
-       self.done = set()
-       self.git_version = None
 
-  def addJar(self, filename):
-    with zipfile.ZipFile(filename) as zf:
-      platform = None
-      arch = None
-      git_version = None
-      for z in zf.infolist():
-       path = filter(None, z.filename.split('/'))
-       if len(path)==3 and path[0] == 'NATIVE':
-         platform, arch = path[1:3]
-       elif z.filename=='META-INF/MANIFEST.MF':
-          zf.read('META-INF/MANIFEST.MF')
-          git_version = re.findall(r"Implementation-Version: \"(.*?)\"", zf.read('META-INF/MANIFEST.MF'))
+    def __init__(self, filename='simgrid.jar'):
+        self.zipfile = zipfile.ZipFile(filename, 'w')
+        self.done = set()
+        self.git_version = None
+
+    def addJar(self, filename):
+        with zipfile.ZipFile(filename) as zf:
+            platform = None
+            arch = None
+            git_version = None
+            for z in zf.infolist():
+                path = filter(None, z.filename.split('/'))
+                if len(path) == 3 and path[0] == 'NATIVE':
+                    platform, arch = path[1:3]
+                elif z.filename == 'META-INF/MANIFEST.MF':
+                    zf.read('META-INF/MANIFEST.MF')
+                    git_version = re.findall(
+                        r"Implementation-Version: \"(.*?)\"", zf.read('META-INF/MANIFEST.MF'))
 
-      assert platform is not None and git_version is not None, "Jar file not valid (%s, %s)"%(platform, git_version)
-      print "Adding: %s %s"%(platform, arch)
-      if self.git_version is None:
-       self.git_version = git_version
-      elif self.git_version != git_version:
-       print "WARNING: Assembling jar of various commits (%s vs %s)"%(self.git_version, git_version)
+            assert platform is not None and git_version is not None, "Jar file not valid (%s, %s)" % (
+                platform, git_version)
+            print "Adding: %s %s" % (platform, arch)
+            if self.git_version is None:
+                self.git_version = git_version
+            elif self.git_version != git_version:
+                print "WARNING: Assembling jar of various commits (%s vs %s)" % (self.git_version, git_version)
 
-      for info in zf.infolist():
-        if info.filename not in self.done:
-          self.done.add(info.filename)
-          self.zipfile.writestr(info, zf.read(info.filename))
+            for info in zf.infolist():
+                if info.filename not in self.done:
+                    self.done.add(info.filename)
+                    self.zipfile.writestr(info, zf.read(info.filename))
 
-  def addByUrl(self, url):
-    data = urllib2.urlopen(url)
-    f = tempfile.NamedTemporaryFile(delete=False)
-    f.write(data.read())
-    f.close()
-    self.addJar(f.name)
-    os.unlink(f.name)
+    def addByUrl(self, url):
+        data = urllib2.urlopen(url)
+        f = tempfile.NamedTemporaryFile(delete=False)
+        f.write(data.read())
+        f.close()
+        self.addJar(f.name)
+        os.unlink(f.name)
 
-  def close(self):
-       self.zipfile.close()
+    def close(self):
+        self.zipfile.close()
 
-if __name__=="__main__":
-  jar = SimJar()
-  for dist in dists:
-       jar.addByUrl(dist)
-  for a in sys.argv[1:]:
-       jar.addJar(a)
-  jar.close()
+if __name__ == "__main__":
+    jar = SimJar()
+    for dist in dists:
+        jar.addByUrl(dist)
+    for a in sys.argv[1:]:
+        jar.addJar(a)
+    jar.close()
index 7ff91da..c9659d3 100755 (executable)
@@ -15,7 +15,7 @@
 use strict;
 use warnings;
 
-die "Please install iamerican to use that script.
+die "Please install iamerican to use that script.\n"
   unless (-r "/usr/lib/ispell/american.hash");
 
 sub check_content($) {
@@ -31,7 +31,7 @@ die "Call this script from its location or from the SimGrid root directory\n" un
 
 die "Usage: ". ($DICTFILE eq "./spell_dict.txt"? "./":"tools/internal/")."spell_comments.pl "
            ."`find ". ($DICTFILE eq "./spell_dict.txt"? "../../":".")." -name '*.[ch]' -o -name '*.hpp' -o -name '*.cpp' |grep -v umpire|grep -v smpi/mpich3-test|grep -v NAS`\n"
-  unless length(@ARGV)>1;
+  unless scalar(@ARGV)>1;
 
 my $total = 0;
 foreach my $file (@ARGV) {
index ba78a80..bb2f59a 100755 (executable)
@@ -13,11 +13,12 @@ first address encountered will be replaced by 0X0000001, second by 0X0000002, ..
 
 """
 
-import sys, re
+import sys
+import re
 
-if len(sys.argv)!=2:
-  print "Usage ./normalize-pointers.py <filename>"
-  sys.exit(1)
+if len(sys.argv) != 2:
+    print "Usage ./normalize-pointers.py <filename>"
+    sys.exit(1)
 
 f = open(sys.argv[1])
 t = f.read()
@@ -28,15 +29,11 @@ s = r.search(t)
 offset = 0
 pointers = {}
 while (s):
-  if s.group() not in pointers:
-    pointers[s.group()] = "0X%07d"%len(pointers)
-  print t[offset:s.start()],
-  print pointers[s.group()],
-  offset = s.end()
-  s = r.search(t, offset)
+    if s.group() not in pointers:
+        pointers[s.group()] = "0X%07d" % len(pointers)
+    print t[offset:s.start()],
+    print pointers[s.group()],
+    offset = s.end()
+    s = r.search(t, offset)
 
 print t[offset:]
-
-
-
-
index 948ddbb..191d473 100755 (executable)
@@ -7,38 +7,38 @@
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the license (GNU LGPL) which comes with this package.
 
-import sys, re
+import sys
+import re
 from lxml import etree
 
 xml = etree.parse(sys.argv[1])
 for e in xml.xpath('//*[@routing="RuleBased"]'):
-  e.attrib['routing'] = "Full"
-  ids = e.xpath('./*[@id]/@id')
-  done = set()  
-  for asr in e.xpath("./ASroute"):
-    src_ids = {}
-    dst_ids = {}
-    for id in ids:
-      src_s = re.search(r"%s"%asr.attrib['src'], id)
-      dst_s = re.search(r"%s"%asr.attrib['dst'], id)
-      if src_s  :
-        src_ids[id] = src_s
-      if dst_s:
-        dst_ids[id] = dst_s
-    for sid, smat in src_ids.items():
-      for did, dmat in dst_ids.items():
-        todo = tuple(sorted((smat.group(1), dmat.group(1))))
-        if todo not in done or asr.attrib.get("symmetrical")=="NO":
-          done.add(todo)
-          dasr = etree.tounicode(asr)
-          dasr = dasr.replace("$1src", smat.group(1))
-          dasr = dasr.replace("$1dst", dmat.group(1))
-          dasr = etree.fromstring(dasr)
-          dasr.tag = "__ASroute__"
-          dasr.attrib['src'] = sid
-          dasr.attrib['dst'] = did
-          asr.addnext(dasr)
-    asr.getparent().remove(asr)
+    e.attrib['routing'] = "Full"
+    ids = e.xpath('./*[@id]/@id')
+    done = set()
+    for asr in e.xpath("./ASroute"):
+        src_ids = {}
+        dst_ids = {}
+        for id in ids:
+            src_s = re.search(r"%s" % asr.attrib['src'], id)
+            dst_s = re.search(r"%s" % asr.attrib['dst'], id)
+            if src_s:
+                src_ids[id] = src_s
+            if dst_s:
+                dst_ids[id] = dst_s
+        for sid, smat in src_ids.items():
+            for did, dmat in dst_ids.items():
+                todo = tuple(sorted((smat.group(1), dmat.group(1))))
+                if todo not in done or asr.attrib.get("symmetrical") == "NO":
+                    done.add(todo)
+                    dasr = etree.tounicode(asr)
+                    dasr = dasr.replace("$1src", smat.group(1))
+                    dasr = dasr.replace("$1dst", dmat.group(1))
+                    dasr = etree.fromstring(dasr)
+                    dasr.tag = "__ASroute__"
+                    dasr.attrib['src'] = sid
+                    dasr.attrib['dst'] = did
+                    asr.addnext(dasr)
+        asr.getparent().remove(asr)
 
 print etree.tounicode(xml).replace("__ASroute__", "ASroute")
-
index 3976f66..8f6c631 100644 (file)
@@ -9,82 +9,87 @@
 
 # grep -ohrI 'bw=".*"' . | sort | uniq
 
-import sys, fnmatch, os
+import sys
+import fnmatch
+import os
 from decimal import Decimal
 import re
 
+
 def to_str(dec):
-  return re.sub(r"(\.\d*?)0*$", r"\1", dec.to_eng_string()).rstrip(".")
+    return re.sub(r"(\.\d*?)0*$", r"\1", dec.to_eng_string()).rstrip(".")
+
 
 def format(xml, formats, attrib):
-  res = []
-  m = re.search(r'%s="(.*?)"'%attrib, xml)
-  while m:
-    b, e = m.span(1)
-    res.append(xml[:b])
-    val = xml[b:e]
-    xml = xml[e:]
-    try:
-      power = Decimal(val)
-      tmp = to_str(power)
-      for p, f in formats:
-        d = power / p
-        if d >= 1.0:
-          tmp = "%s%s"%(to_str(d), f)
-          break
-      res.append(tmp)
-    except:
-      print "Error with:", val
-      res.append(val)
-    m = re.search(r'%s="(.*?)"'%attrib, xml)
-
-  res.append(xml)
-  return "".join(res)
+    res = []
+    m = re.search(r'%s="(.*?)"' % attrib, xml)
+    while m:
+        b, e = m.span(1)
+        res.append(xml[:b])
+        val = xml[b:e]
+        xml = xml[e:]
+        try:
+            power = Decimal(val)
+            tmp = to_str(power)
+            for p, f in formats:
+                d = power / p
+                if d >= 1.0:
+                    tmp = "%s%s" % (to_str(d), f)
+                    break
+            res.append(tmp)
+        except:
+            print "Error with:", val
+            res.append(val)
+        m = re.search(r'%s="(.*?)"' % attrib, xml)
+
+    res.append(xml)
+    return "".join(res)
+
 
 def formats(list):
-  return sorted(((Decimal(i), j) for i,j in list), key=lambda x: x[0], reverse=True)
+    return sorted(((Decimal(i), j) for i, j in list), key=lambda x: x[0], reverse=True)
 
 for root, dirnames, filenames in os.walk(sys.argv[1]):
-  for filename in fnmatch.filter(filenames, '*.xml'):
-    print root, dirnames, filename
-    path = os.path.join(root, filename)
-    xml = open(path).read()
-      
-    power_formats = formats([( "1E0",  "f"),
-                             "1E3", "kf"),
-                             "1E6", "Mf"),
-                             "1E9", "Gf"),
-                             ("1E12", "Tf"),
-                             ("1E15", "Pt"),
-                             ("1E18", "Ef"),
-                             ("1E21", "Zf")])
-    xml = format(xml, power_formats, "power")
-    
-    bandwidth_formats = formats([( "1E0",  "Bps"),
-                                 "1E3", "kBps"),
-                                 ( "1E6", "MBps"),                     
-                                 "1E9", "GBps"),
-                                 ("1E12", "TBps")])
-    xml = format(xml, bandwidth_formats, "bandwidth")
-    xml = format(xml, bandwidth_formats, "bw")
-    xml = format(xml, bandwidth_formats, "bb_bw")
-    xml = format(xml, bandwidth_formats, "bw_in")
-    xml = format(xml, bandwidth_formats, "bw_out")
-    
-    time_formats = formats([(     "1E-12",  "ps"),
-                            (     "1E-9" ,  "ns"),
-                            (     "1E-6" ,  "us"),
-                            (     "1E-3" ,  "ms"),
-                            (     "1E0"  ,   "s"),
-                            (    "60E0"  ,   "m"),
-                            (  "3600E0"  ,   "h"),                     
-                            ( "86400E0"  ,   "d"),
-                            ("604800E0"  ,   "w")])
-    xml = format(xml, time_formats, "latency")
-    xml = format(xml, time_formats, "lat")
-    xml = format(xml, time_formats, "bb_lat")
-    
-    #print xml
-    file = open(path, "w")
-    file.write(xml)
-    file.close()
+    for filename in fnmatch.filter(filenames, '*.xml'):
+        print root, dirnames, filename
+        path = os.path.join(root, filename)
+        xml = open(path).read()
+
+        power_formats = formats([("1E0", "f"),
+                                 ("1E3", "kf"),
+                                 ("1E6", "Mf"),
+                                 ("1E9", "Gf"),
+                                 ("1E12", "Tf"),
+                                 ("1E15", "Pt"),
+                                 ("1E18", "Ef"),
+                                 ("1E21", "Zf")])
+        xml = format(xml, power_formats, "power")
+
+        bandwidth_formats = formats([("1E0", "Bps"),
+                                     ("1E3", "kBps"),
+                                     ("1E6", "MBps"),
+                                     ("1E9", "GBps"),
+                                     ("1E12", "TBps")])
+        xml = format(xml, bandwidth_formats, "bandwidth")
+        xml = format(xml, bandwidth_formats, "bw")
+        xml = format(xml, bandwidth_formats, "bb_bw")
+        xml = format(xml, bandwidth_formats, "bw_in")
+        xml = format(xml, bandwidth_formats, "bw_out")
+
+        time_formats = formats([("1E-12", "ps"),
+                                ("1E-9", "ns"),
+                                ("1E-6", "us"),
+                                ("1E-3", "ms"),
+                                ("1E0", "s"),
+                                ("60E0", "m"),
+                                ("3600E0", "h"),
+                                ("86400E0", "d"),
+                                ("604800E0", "w")])
+        xml = format(xml, time_formats, "latency")
+        xml = format(xml, time_formats, "lat")
+        xml = format(xml, time_formats, "bb_lat")
+
+        # print xml
+        file = open(path, "w")
+        file.write(xml)
+        file.close()
index 7ec9879..da3df3f 100755 (executable)
@@ -28,7 +28,7 @@ is modified in place, without any kind of backup. You may want to save a copy
 before running the script.
 
 In SimGrid XML files, the standard version is indicated in the version
-attribute of the platform tag. Current version is 3. Here is a list of major
+attribute of the platform tag. Current version is 4. Here is a list of major
 changes in each version.
 
 =over 4
@@ -65,7 +65,7 @@ Several tags were renamed:
 
 =back
 
-=item B<Version 3:> Introduced in SimGrid 3.5 (this is the current version)
+=item B<Version 3:> Introduced in SimGrid 3.5
 
 =over 4
 
@@ -87,6 +87,42 @@ Several tags were renamed (for sake of XML sanity):
 
 =back
 
+=item B<Version 4:> Introduced in SimGrid 3.13 (this is the current version)
+
+=over 4
+
+=item
+
+Rename the attributes describing the amount of flop that a host / peer / cluster / cabinet can deliver per second.
+
+  <host power=...> -> <host speed=...>
+
+=item
+
+In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
+
+=item
+
+The DOCTYPE points to the right URL: http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
+
+=item
+
+Units are now mandatory in attributes. USE THE SCRIPT sg_xml_unit_converter.py TO CONVERT THIS
+
+     - speed. Old default: 'f' or 'flops'. Also defined: 
+        'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf' 
+        'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
+        
+     - bandwidth. Old default: 'Bps' bytes per second (or 'bps' but 1 Bps = 8 bps)
+       Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
+       And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps' 
+       
+     - latency. Old default: 's' second. Also defined:
+       'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond   
+
+
+=back
+
 =back
 
 =head1 AUTHORS
@@ -95,7 +131,7 @@ Several tags were renamed (for sake of XML sanity):
   
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (c) 2006-2014. The SimGrid Team. All rights reserved.
+Copyright (c) 2006-2016. The SimGrid Team. All rights reserved.
   
 This program is free software; you may redistribute it and/or modify it
 under the terms of GNU LGPL (v2.1) license.
@@ -106,15 +142,15 @@ under the terms of GNU LGPL (v2.1) license.
 use strict;
 
 my $fromversion=-1;
-my $toversion=3;
+my $toversion=4;
 
 my($output_string);
 
-$ARGV[0] or die "simgrid_update_xml.pl <platform.xml>\n";
-open INPUT, "$ARGV[0]" or die "Cannot open input file $ARGV[0]: $!\n";
+my $filename = $ARGV[0] or die "simgrid_update_xml.pl <platform.xml>\n";
+open INPUT, "$filename" or die "Cannot open input file $filename: $!\n";
 
 $output_string = "<?xml version='1.0'?>\n".
-    "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid.dtd\">\n".
+    "<!DOCTYPE platform SYSTEM \"http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd\">\n".
     "<platform version=\"$toversion\">\n";
 
 
@@ -129,18 +165,18 @@ while (defined($line = <INPUT>)) {
     
     if ($line =~ s/<platform(_description)? *>//) {
        $fromversion = 0;
-       print "version 0\n";
+       print "$filename was using version 0\n";
        next if !$line =~ /\S/;
     } elsif ($line =~ s/<platform.*version=["]*([0-9.])["]*>//) {
        $fromversion = $1;
-       print "version $fromversion\n";
        if ($fromversion == $toversion) {
-           die "Input platform file version is already $fromversion. This should be a no-op.\n";
+           die "Input platform file $filename is already conformant to version $fromversion. This should be a no-op.\n";
        }
        if ($fromversion > $toversion) {
-           die "Input platform file version is more recent than this script (file version: $fromversion; script version: $toversion)\n";
+           die "Input platform file $filename is more recent than this script (file version: $fromversion; script version: $toversion)\n";
        }
        next if !$line =~ /\S/;
+       print "$filename was using version $fromversion\n";
     }
     
     if ($fromversion == 0) {
@@ -185,18 +221,23 @@ while (defined($line = <INPUT>)) {
            $output_string .=  " <AS  id=\"AS0\"  routing=\"Full\">\n";
            $AS_opened=1;
        }
-    }
        
        if($line=~/<route /){$line =~ s/\<route/\<route symmetrical=\"NO\"/g;}
+    }
+    if ($fromversion < 4) {
+       $line =~ s/\bpower\b/speed/g;   
+       $line =~ s/\bkind="POWER"/kind="SPEED"/g;
+    }
+       
     $output_string .= "$line\n";
 }
 
 close INPUT;
 
 if ($fromversion == -1) {
-    die "Cannot retrieve the platform version\n";
+    die "Cannot retrieve the platform version of $filename\n";
 }
 
-open OUTPUT, "> $ARGV[0]";
+open OUTPUT, "> $filename";
 print OUTPUT $output_string;
 close OUTPUT;
index 62504af..8d0b3f9 100755 (executable)
@@ -1,34 +1,35 @@
-#!/usr/bin/env perl
+#!/usr/bin/env python
 # Compiler wrapper with stack-cleaner support (enabled by default).
 # Usage: ./compiler-wrapper target-compiler args [-f[no-]stack-cleaner]
 
-use warnings;
+import sys
+import os
+import re
 
-use File::Basename;
+compiler = sys.argv[1]
+enabled = True
+args = []
 
-my $compiler = shift(@ARGV);
+for arg in sys.argv[2:]:
+    if arg == "--help":
+        sys.stderr.write(
+            "Compiler wrapper with stack-cleaner.\n"
+            "Usage: {} compiler [-f[no-]stack-cleaner] [options]\n".format(sys.argv[0]))
+        sys.exit(0)
+    elif arg == "-fno-stack-cleaner":
+        enabled = False
+    elif arg == "-fstack-cleaner":
+        enabled = True
+    else:
+        args.append(arg)
 
-my $enable = 1;
+if enabled:
+    if re.match("^clang", os.path.basename(compiler)):
+        args.insert(0, "-no-integrated-as")
+    args.insert(0, os.path.dirname(sys.argv[0]))
+    args.insert(0, "-B")
+args.insert(0, compiler)
 
-my @args;
-my $arg;
-while($arg=shift(@ARGV)) {
-  if ($arg eq "-fno-stack-cleaner") {
-    $enable = 0;    
-  } elsif ($arg eq "-fstack-cleaner") {
-    $enable = 1;
-  }
-  else {
-    push @args, $arg;
-  }
-}
-
-if ($enable) {
-  if (basename($0) =~ /^clang/) {
-    unshift @args, "-no-integrated-as"
-  }
-  unshift @args, dirname($0);
-  unshift @args, "-B";
-}
-
-exec $compiler, @args
+os.execvp(args[0], args)
+sys.stderr.write("compiler-wrapper: Could not exec\n")
+os.exit(1)
index b0a018c..b75bf62 100644 (file)
@@ -3,8 +3,7 @@ configure_file("${CMAKE_HOME_DIRECTORY}/tools/tesh/tesh.pl"
 
     file(COPY        ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/Diff.pm
          DESTINATION ${CMAKE_BINARY_DIR}/bin
-         FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
-                          GROUP_EXECUTE GROUP_READ)
+         FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ)
     file(COPY        ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/IPC
          DESTINATION ${CMAKE_BINARY_DIR}/bin)
 
@@ -29,18 +28,9 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/IO-orders.tesh
   PARENT_SCOPE
   )
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
 set(bin_files
   ${bin_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/tesh.pl
-  ${CMAKE_CURRENT_SOURCE_DIR}/colorize.pl
   ${CMAKE_CURRENT_SOURCE_DIR}/generate_tesh
   PARENT_SCOPE
   )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
diff --git a/tools/tesh/colorize.pl b/tools/tesh/colorize.pl
deleted file mode 100755 (executable)
index 88b1f55..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env perl
-
-# Copyright (c) 2010, 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-use warnings;
-
-use Term::ANSIColor qw{:constants};
-$Term::ANSIColor::AUTORESET = 1;
-
-while(<>){
-    if($_ =~ m/^(\d+\:\s)?[-]\s.*/){
-       print BOLD RED $_;
-    }elsif ($_ =~ m/^(\d+\:\s)?[+]\s.*/){
-       print BOLD GREEN $_;
-    }else{
-       print BOLD $_;
-    }
-}
-
-